From 176f6e6aa4d5abae7f1c5163c57ec4065a14167e Mon Sep 17 00:00:00 2001 From: Matt Joiner Date: Fri, 27 Mar 2015 17:18:45 +1100 Subject: [PATCH] Tidy up error handling on HTTP tracker client --- tracker/http.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tracker/http.go b/tracker/http.go index 8c2682a8..0a65fc70 100644 --- a/tracker/http.go +++ b/tracker/http.go @@ -5,7 +5,6 @@ import ( "errors" "fmt" "io" - "log" "net" "net/http" "net/url" @@ -79,10 +78,14 @@ func (me *client) Announce(ar *AnnounceRequest) (ret AnnounceResponse, err error defer resp.Body.Close() buf := bytes.Buffer{} io.Copy(&buf, resp.Body) - log.Printf("%q", buf.Bytes()) + if resp.StatusCode != 200 { + err = fmt.Errorf("response from tracker: %s: %s", resp.Status, buf.String()) + return + } var trackerResponse response - err = bencode.NewDecoder(&buf).Decode(&trackerResponse) + err = bencode.Unmarshal(buf.Bytes(), &trackerResponse) if err != nil { + err = fmt.Errorf("error decoding %q: %s", buf.Bytes(), err) return } if trackerResponse.FailureReason != "" { -- 2.48.1