12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- package goStrongswanVici
- import (
- "net"
- )
- type ClientOptions struct {
- Network string
- Addr string
-
-
- Dialer func() (net.Conn, error)
- }
- type Client struct {
- o ClientOptions
- }
- func NewClient(options ClientOptions) (client *Client) {
- if options.Dialer == nil {
- options.Dialer = func() (net.Conn, error) {
- return net.Dial(options.Network, options.Addr)
- }
- }
- return &Client{
- o: options,
- }
- }
- func NewClientFromDefaultSocket() (client *Client) {
- return NewClient(ClientOptions{
- Network: "unix",
- Addr: "/var/run/charon.vici",
- })
- }
- func (c *Client) NewConn() (conn *ClientConn, err error) {
- conn1, err := c.o.Dialer()
- if err != nil {
- return nil, err
- }
- return NewClientConn(conn1), nil
- }
- func (c *Client) ListSas(ike string, ike_id string) (sas []map[string]IkeSa, err error) {
- conn, err := c.NewConn()
- if err != nil {
- return nil, err
- }
- defer conn.Close()
- return conn.ListSas(ike, ike_id)
- }
- func (c *Client) ListAllVpnConnInfo() (list []VpnConnInfo, err error) {
- conn, err := c.NewConn()
- if err != nil {
- return nil, err
- }
- defer conn.Close()
- return conn.ListAllVpnConnInfo()
- }
- func (c *Client) Version() (out *Version, err error) {
- conn, err := c.NewConn()
- if err != nil {
- return nil, err
- }
- defer conn.Close()
- return conn.Version()
- }
- func (c *Client) Terminate(r *TerminateRequest) (err error) {
- conn, err := c.NewConn()
- if err != nil {
- return err
- }
- defer conn.Close()
- return conn.Terminate(r)
- }
|