package deliver import "nanomsg.org/go-mangos" func commonMake(n *NNG, p protocol, opts map[string]interface{}) (mangos.Socket, error) { var sock mangos.Socket var err error if sock, err = newSocket(p); err != nil { return nil, err } if err = setSocketOptions(sock, opts); err != nil { sock.Close() sock = nil } if n.typ == agent { if err = sock.Listen(n.url); err != nil { sock.Close() sock = nil } } else { if err = sock.Dial(n.url); err != nil { sock.Close() sock = nil } } return sock, err } func (n *NNG) ppMakeNNG(typ td) (mangos.Socket, error) { p := proto(typ, n.mode) opts := optOther(p, optRaw(optDefault()), n.arguments...) return commonMake(n, p, opts) } func (n *NNG) rrMakeNNG(typ td) (mangos.Socket, error) { p := proto(typ, n.mode) opts := optDefault() return commonMake(n, p, opts) } func (n *NNG) busMakeNNG(typ td) (mangos.Socket, error) { var sock mangos.Socket var err error if sock, err = newSocket(BUS); err != nil { return nil, err } if err = sock.Listen(n.url); err != nil { sock.Close() sock = nil } // arguments are bus clients for _, arg := range n.arguments { switch arg.(type) { case string: url := arg.(string) if err = sock.Dial(url); err != nil { sock.Close() sock = nil break } default: } } if err = setSocketOptions(sock, nil); err != nil { return nil, err } return sock, err }