From: Matt Joiner Date: Mon, 19 Nov 2018 09:35:21 +0000 (+1100) Subject: Improve error handling for listening X-Git-Tag: v1.0.0~22 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=7f133b677c1fb4dee92a3d0b47c01880008b7133;p=btrtrc.git Improve error handling for listening Will help with #290. --- diff --git a/socket.go b/socket.go index d4c423d1..e7a200fe 100644 --- a/socket.go +++ b/socket.go @@ -10,6 +10,7 @@ import ( "github.com/anacrolix/missinggo" "github.com/anacrolix/missinggo/perf" + "github.com/pkg/errors" "golang.org/x/net/proxy" ) @@ -123,7 +124,7 @@ func listenAllRetry(nahs []networkAndHost, port int, proxyURL string, f firewall portStr := strconv.FormatInt(int64(port), 10) ss[0], err = listen(nahs[0].Network, net.JoinHostPort(nahs[0].Host, portStr), proxyURL, f) if err != nil { - return nil, false, fmt.Errorf("first listen: %s", err) + return nil, false, errors.Wrap(err, "first listen") } defer func() { if err != nil || retry { @@ -139,7 +140,7 @@ func listenAllRetry(nahs []networkAndHost, port int, proxyURL string, f firewall if err != nil { return ss, missinggo.IsAddrInUse(err) && port == 0, - fmt.Errorf("subsequent listen: %s", err) + errors.Wrap(err, "subsequent listen") } ss = append(ss, s) }