Fix: trojan grpc udp broken

This commit is contained in:
gVisor bot 2021-04-05 23:26:13 +08:00
parent 709287e74b
commit 67ddbc47b5

View file

@ -104,15 +104,15 @@ func (t *Trojan) DialUDP(metadata *C.Metadata) (_ C.PacketConn, err error) {
return nil, fmt.Errorf("%s connect error: %w", t.addr, err) return nil, fmt.Errorf("%s connect error: %w", t.addr, err)
} }
tcpKeepAlive(c) tcpKeepAlive(c)
c, err = t.instance.StreamConn(c)
if err != nil {
c.Close()
return nil, fmt.Errorf("%s connect error: %w", t.addr, err)
}
} }
defer safeConnClose(c, err) defer safeConnClose(c, err)
c, err = t.instance.StreamConn(c)
if err != nil {
return nil, fmt.Errorf("%s connect error: %w", t.addr, err)
}
err = t.instance.WriteHeader(c, trojan.CommandUDP, serializesSocksAddr(metadata)) err = t.instance.WriteHeader(c, trojan.CommandUDP, serializesSocksAddr(metadata))
if err != nil { if err != nil {
return nil, err return nil, err