修复读不到firstpayload时没有正确退出而导致空指针闪退问题.

This commit is contained in:
hahafool
2022-04-21 14:08:31 +08:00
parent a43cd88888
commit 718bc0412e

16
main.go
View File

@@ -1442,12 +1442,6 @@ advLayerHandshakeStep:
wlc.SetReadDeadline(time.Now().Add(time.Second))
n, err := wlc.Read(firstPayload)
if err != nil {
if ce := utils.CanLogWarn("Read first payload failed"); ce != nil {
ce.Write(
zap.String("target", targetAddr.String()),
zap.Error(err),
)
}
if !errors.Is(err, os.ErrDeadlineExceeded) {
if ce := utils.CanLogErr("Read first payload failed not because of timeout, will hung up"); ce != nil {
@@ -1459,7 +1453,15 @@ advLayerHandshakeStep:
clientConn.Close()
wlc.Close()
result = -1
return
} else {
if ce := utils.CanLogWarn("Read first payload but timeout, will relay without first payload."); ce != nil {
ce.Write(
zap.String("target", targetAddr.String()),
zap.Error(err),
)
}
}
}
@@ -1476,6 +1478,7 @@ advLayerHandshakeStep:
)
}
result = -1
return
}
} else {
@@ -1489,6 +1492,7 @@ advLayerHandshakeStep:
)
}
result = -1
return
}
}