Skip to content

Commit

Permalink
add operation canceled error handler (#1056)
Browse files Browse the repository at this point in the history
  • Loading branch information
dafydd-t authored Aug 22, 2024
1 parent a1c7fd2 commit 7470982
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions backend/proxy/secure_socks_proxy.go
Original file line number Diff line number Diff line change
Expand Up @@ -290,12 +290,12 @@ func (d *instrumentedSocksDialer) DialContext(ctx context.Context, n, addr strin
c, err := dialer.DialContext(ctx, n, addr)

var code string
var oppErr *net.OpError
var opErr *net.OpError

switch {
case err == nil:
code = "0"
case errors.As(err, &oppErr):
case errors.As(err, &opErr):
unknownCode := socksUnknownError.FindStringSubmatch(err.Error())

// Socks errors defined here: https://cs.opensource.google/go/x/net/+/refs/tags/v0.15.0:internal/socks/socks.go;l=40-63
Expand All @@ -322,12 +322,14 @@ func (d *instrumentedSocksDialer) DialContext(ctx context.Context, n, addr strin
code = "io_timeout_error"
case strings.HasSuffix(err.Error(), "context canceled"):
code = "context_canceled_error"
case strings.HasSuffix(err.Error(), "operation was canceled"):
code = "context_canceled_error"
case len(unknownCode) > 1:
code = unknownCode[1]
default:
code = "socks_unknown_error"
}
log.DefaultLogger.Error("received oppErr from dialer", "network", n, "addr", addr, "oppErr", oppErr, "code", code)
log.DefaultLogger.Error("received opErr from dialer", "network", n, "addr", addr, "opErr", opErr, "code", code)
default:
log.DefaultLogger.Error("received err from dialer", "network", n, "addr", addr, "err", err)
code = "dial_error"
Expand Down

0 comments on commit 7470982

Please sign in to comment.