From 0f3c4cb3ec9710aaeb22bc3d0b14c43e1b969497 Mon Sep 17 00:00:00 2001
From: Matt Joiner <anacrolix@gmail.com>
Date: Wed, 21 May 2014 00:52:49 +1000
Subject: [PATCH] Add some String methods and contextual information in log
 messages

---
 client.go                  | 4 ++--
 torrent.go                 | 4 ++++
 tracker/tracker.go         | 1 +
 tracker/udp/udp_tracker.go | 4 ++++
 4 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/client.go b/client.go
index 5e074b3e..f94c8f57 100644
--- a/client.go
+++ b/client.go
@@ -632,7 +632,7 @@ newAnnounce:
 					log.Print(err)
 					return
 				}
-				log.Printf("%d new peers from %s", len(peers), "TODO")
+				log.Printf("%s: %d new peers from %s", t, len(peers), tr)
 				tier[0], tier[trIndex] = tier[trIndex], tier[0]
 				time.Sleep(time.Second * time.Duration(resp.Interval))
 				continue newAnnounce
@@ -755,7 +755,7 @@ func (me *Client) pieceHashed(t *torrent, piece peer_protocol.Integer, correct b
 	p.EverHashed = true
 	if correct {
 		p.PendingChunkSpecs = nil
-		log.Printf("got piece %d, (%d/%d)", piece, t.NumPiecesCompleted(), t.NumPieces())
+		log.Printf("%s: got piece %d, (%d/%d)", t, piece, t.NumPiecesCompleted(), t.NumPieces())
 		var next *list.Element
 		if t.Priorities != nil {
 			for e := t.Priorities.Front(); e != nil; e = next {
diff --git a/torrent.go b/torrent.go
index b0808df9..c747986e 100644
--- a/torrent.go
+++ b/torrent.go
@@ -37,6 +37,10 @@ type torrent struct {
 	Trackers [][]tracker.Client
 }
 
+func (t *torrent) String() string {
+	return t.MetaInfo.Name
+}
+
 func (t *torrent) NumPieces() int {
 	return len(t.MetaInfo.Pieces) / pieceHash.Size()
 }
diff --git a/tracker/tracker.go b/tracker/tracker.go
index 820880b4..ffae4341 100644
--- a/tracker/tracker.go
+++ b/tracker/tracker.go
@@ -44,6 +44,7 @@ type Client interface {
 	// Returns ErrNotConnected if Connect needs to be called.
 	Announce(*AnnounceRequest) (AnnounceResponse, error)
 	Connect() error
+	String() string
 }
 
 var (
diff --git a/tracker/udp/udp_tracker.go b/tracker/udp/udp_tracker.go
index 76a5ca52..b53c7624 100644
--- a/tracker/udp/udp_tracker.go
+++ b/tracker/udp/udp_tracker.go
@@ -87,6 +87,10 @@ type client struct {
 	url                  *url.URL
 }
 
+func (c *client) String() string {
+	return c.url.String()
+}
+
 func (c *client) Announce(req *tracker.AnnounceRequest) (res tracker.AnnounceResponse, err error) {
 	if !c.connected() {
 		err = tracker.ErrNotConnected
-- 
2.51.0