diff --git a/net/vmess/vmessout.go b/net/vmess/vmessout.go index 9f853366..7f7dc703 100644 --- a/net/vmess/vmessout.go +++ b/net/vmess/vmessout.go @@ -67,17 +67,18 @@ func (handler *VMessOutboundHandler) Start(ray core.OutboundRay) error { } func (handler *VMessOutboundHandler) startCommunicate(request *vmessio.VMessRequest, dest v2net.Address, ray core.OutboundRay) error { + input := ray.OutboundInput() + output := ray.OutboundOutput() + conn, err := net.DialTCP("tcp", nil, &net.TCPAddr{dest.IP, int(dest.Port), ""}) log.Debug("VMessOutbound dialing tcp: %s", dest.String()) if err != nil { log.Error("Failed to open tcp (%s): %v", dest.String(), err) + close(output) return err } defer conn.Close() - input := ray.OutboundInput() - output := ray.OutboundOutput() - requestWriter := vmessio.NewVMessRequestWriter() err = requestWriter.Write(conn, request) if err != nil {