mirror of
https://github.com/cmz0228/hysteria-dev.git
synced 2025-06-17 09:49:52 +00:00
Merge pull request #307 from HyNetwork/fix-tun-timeout-check
fix tun timeout check
This commit is contained in:
commit
5d98f7f5c3
@ -275,7 +275,7 @@ func client(config *clientConfig) {
|
|||||||
"src": addr.String(),
|
"src": addr.String(),
|
||||||
"dst": reqAddr,
|
"dst": reqAddr,
|
||||||
}).Debugf("TUN %s closed for timeout", strings.ToUpper(addr.Network()))
|
}).Debugf("TUN %s closed for timeout", strings.ToUpper(addr.Network()))
|
||||||
} else if err.Error() == "deadline exceeded" && strings.HasPrefix(addr.Network(), "tcp") {
|
} else if nErr, ok := err.(net.Error); ok && nErr.Timeout() && strings.HasPrefix(addr.Network(), "tcp") {
|
||||||
logrus.WithFields(logrus.Fields{
|
logrus.WithFields(logrus.Fields{
|
||||||
"src": addr.String(),
|
"src": addr.String(),
|
||||||
"dst": reqAddr,
|
"dst": reqAddr,
|
||||||
|
@ -35,9 +35,11 @@ func (s *Server) relayTCP(clientConn, relayConn net.Conn) {
|
|||||||
}
|
}
|
||||||
relayConn.Close()
|
relayConn.Close()
|
||||||
clientConn.Close()
|
clientConn.Close()
|
||||||
if closeErr != nil && closeErr.Error() == "deadline exceeded" {
|
if closeErr != nil {
|
||||||
|
if err, ok := closeErr.(net.Error); ok && err.Timeout() {
|
||||||
if clientConn, ok := clientConn.(tun2socks.TCPConn); ok {
|
if clientConn, ok := clientConn.(tun2socks.TCPConn); ok {
|
||||||
clientConn.Abort()
|
clientConn.Abort()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user