code: func (c *ClientConn) ListSas(ike string, ike_id string) (sas []map[string]IkeSa, err error) {
  	sas = []map[string]IkeSa{}
  	var eventErr error
  	//register event
  	err = c.RegisterEvent("list-sa", func(response map[string]interface{}) {
  		sa := &map[string]IkeSa{}
  		err = ConvertFromGeneral(response, sa)
  		if err != nil {
  			fmt.Printf("list-sa event error: %s\n", err)
  			eventErr = err
  			return
  		}
  		sas = append(sas, *sa)
  		//fmt.Printf("event %#v\n", response)
  	})
  	if err != nil {
  		return
  	}
  	if eventErr != nil {
  		return
  	}
  
  	inMap := map[string]interface{}{}
  	if ike != "" {
  		inMap["ike"] = ike
  	}
  	if ike_id != "" {
  		inMap["ike_id"] = ike_id
  	}
  	_, err = c.Request("list-sas", inMap)
  	if err != nil {
  		return
  	}
  	//fmt.Printf("request finish %#v\n", sas)
  	err = c.UnregisterEvent("list-sa")
  	if err != nil {
  		return
  	}
  	return
  }
docs: // To be simple, list all clients that are connecting to this server .
  // A client is a sa.
  // Lists currently active IKE_SAs