From: Matt Joiner Date: Fri, 27 Mar 2015 06:18:45 +0000 (+1100) Subject: Tidy up error handling on HTTP tracker client X-Git-Tag: v1.0.0~1235 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=176f6e6aa4d5abae7f1c5163c57ec4065a14167e;p=btrtrc.git Tidy up error handling on HTTP tracker client --- 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 != "" {