fix: safeConnClose not working

This commit is contained in:
wwqgtxx
2022-12-13 13:20:40 +08:00
parent 17cbbb5bf0
commit bffb0573a6
8 changed files with 51 additions and 17 deletions

View File

@@ -208,7 +208,9 @@ func (v *Vless) DialContext(ctx context.Context, metadata *C.Metadata, opts ...d
if err != nil {
return nil, err
}
defer safeConnClose(c, err)
defer func() {
safeConnClose(c, err)
}()
c, err = v.client.StreamConn(c, parseVlessAddr(metadata))
if err != nil {
@@ -223,7 +225,9 @@ func (v *Vless) DialContext(ctx context.Context, metadata *C.Metadata, opts ...d
return nil, fmt.Errorf("%s connect error: %s", v.addr, err.Error())
}
tcpKeepAlive(c)
defer safeConnClose(c, err)
defer func() {
safeConnClose(c, err)
}()
c, err = v.StreamConn(c, metadata)
return NewConn(c, v), err
@@ -247,7 +251,9 @@ func (v *Vless) ListenPacketContext(ctx context.Context, metadata *C.Metadata, o
if err != nil {
return nil, err
}
defer safeConnClose(c, err)
defer func() {
safeConnClose(c, err)
}()
c, err = v.client.StreamConn(c, parseVlessAddr(metadata))
} else {
@@ -256,7 +262,9 @@ func (v *Vless) ListenPacketContext(ctx context.Context, metadata *C.Metadata, o
return nil, fmt.Errorf("%s connect error: %s", v.addr, err.Error())
}
tcpKeepAlive(c)
defer safeConnClose(c, err)
defer func() {
safeConnClose(c, err)
}()
c, err = v.StreamConn(c, metadata)
}