1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- package goStrongswanVici
- import (
- "fmt"
- )
- func (c *ClientConn) ListConns(ike string) ([]map[string]IKEConf, error) {
- conns := []map[string]IKEConf{}
- var eventErr error
- var err error
- err = c.RegisterEvent("list-conn", func(response map[string]interface{}) {
- conn := &map[string]IKEConf{}
- err = ConvertFromGeneral(response, conn)
- if err != nil {
- eventErr = fmt.Errorf("list-conn event error: %v", err)
- return
- }
- conns = append(conns, *conn)
- })
- if err != nil {
- return nil, fmt.Errorf("error registering list-conn event: %v", err)
- }
- if eventErr != nil {
- return nil, eventErr
- }
- reqMap := map[string]interface{}{}
- if ike != "" {
- reqMap["ike"] = ike
- }
- _, err = c.Request("list-conns", reqMap)
- if err != nil {
- return nil, fmt.Errorf("error requesting list-conns: %v", err)
- }
- err = c.UnregisterEvent("list-conn")
- if err != nil {
- return nil, fmt.Errorf("error unregistering list-conns event: %v", err)
- }
- return conns, nil
- }
|