func (d *dialer) Dial() (mangos.Pipe, error) { conn, err := net.DialTCP("tcp", nil, d.addr) if err != nil { return nil, err } if err = d.opts.configTCP(conn); err != nil { conn.Close() return nil, err } return mangos.NewConnPipe(conn, d.sock) }
func (l *listener) Accept() (mangos.Pipe, error) { conn, err := l.listener.AcceptTCP() if err != nil { return nil, err } if err = l.opts.configTCP(conn); err != nil { conn.Close() return nil, err } return mangos.NewConnPipe(tls.Server(conn, l.config), l.sock) }
func (l *listener) Accept() (mangos.Pipe, error) { if l.listener == nil { return nil, mangos.ErrClosed } conn, err := l.listener.AcceptTCP() if err != nil { return nil, err } if err = l.opts.configTCP(conn); err != nil { conn.Close() return nil, err } return mangos.NewConnPipe(conn, l.sock) }
func (d *dialer) Dial() (mangos.Pipe, error) { var config *tls.Config tconn, err := net.DialTCP("tcp", nil, d.addr) if err != nil { return nil, err } if err = d.opts.configTCP(tconn); err != nil { tconn.Close() return nil, err } if v, ok := d.opts[mangos.OptionTLSConfig]; ok { config = v.(*tls.Config) } conn := tls.Client(tconn, config) return mangos.NewConnPipe(conn, d.sock, mangos.PropTLSConnState, conn.ConnectionState()) }