listConns.go 969 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package goStrongswanVici
  2. import (
  3. "fmt"
  4. )
  5. func (c *ClientConn) ListConns(ike string) ([]map[string]IKEConf, error) {
  6. conns := []map[string]IKEConf{}
  7. var eventErr error
  8. var err error
  9. err = c.RegisterEvent("list-conn", func(response map[string]interface{}) {
  10. conn := &map[string]IKEConf{}
  11. err = ConvertFromGeneral(response, conn)
  12. if err != nil {
  13. eventErr = fmt.Errorf("list-conn event error: %v", err)
  14. return
  15. }
  16. conns = append(conns, *conn)
  17. })
  18. if err != nil {
  19. return nil, fmt.Errorf("error registering list-conn event: %v", err)
  20. }
  21. if eventErr != nil {
  22. return nil, eventErr
  23. }
  24. reqMap := map[string]interface{}{}
  25. if ike != "" {
  26. reqMap["ike"] = ike
  27. }
  28. _, err = c.Request("list-conns", reqMap)
  29. if err != nil {
  30. return nil, fmt.Errorf("error requesting list-conns: %v", err)
  31. }
  32. err = c.UnregisterEvent("list-conn")
  33. if err != nil {
  34. return nil, fmt.Errorf("error unregistering list-conns event: %v", err)
  35. }
  36. return conns, nil
  37. }