diff options
Diffstat (limited to 'transports/obfs2')
-rw-r--r-- | transports/obfs2/obfs2.go | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/transports/obfs2/obfs2.go b/transports/obfs2/obfs2.go index bc2532b..a926141 100644 --- a/transports/obfs2/obfs2.go +++ b/transports/obfs2/obfs2.go @@ -108,8 +108,16 @@ func (cf *obfs2ClientFactory) ParseArgs(args *pt.Args) (interface{}, error) { return nil, validateArgs(args) } -func (cf *obfs2ClientFactory) WrapConn(conn net.Conn, args interface{}) (net.Conn, error) { - return newObfs2ClientConn(conn) +func (cf *obfs2ClientFactory) Dial(network, addr string, dialFn base.DialFunc, args interface{}) (net.Conn, error) { + conn, err := dialFn(network, addr) + if err != nil { + return nil, err + } + if conn, err = newObfs2ClientConn(conn); err != nil { + conn.Close() + return nil, err + } + return conn, nil } type obfs2ServerFactory struct { |