コード例 #1
0
ファイル: tcp.go プロジェクト: biocode/mangos
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)
}
コード例 #2
0
ファイル: tlstcp.go プロジェクト: biocode/mangos
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)
}
コード例 #3
0
ファイル: tcp.go プロジェクト: biocode/mangos
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)
}
コード例 #4
0
ファイル: tlstcp.go プロジェクト: biocode/mangos
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())
}