tracker/http.go | 13 ------------- tracker/tracker.go | 15 +++------------ tracker/udp.go | 14 +++----------- diff --git a/tracker/http.go b/tracker/http.go index 5d8fa6809d2c501fcac4c1e540750a13656daf8f..0f5c6c30df28a5c9a0d27b747212bd86cf606c80 100644 --- a/tracker/http.go +++ b/tracker/http.go @@ -102,16 +102,3 @@ ret.Seeders = trackerResponse.Complete ret.Peers, err = trackerResponse.UnmarshalPeers() return } - -func (c *httpClient) Connect() error { - // HTTP trackers do not require a connecting handshake. - return nil -} - -func (c *httpClient) String() string { - return c.URL() -} - -func (c *httpClient) URL() string { - return c.url.String() -} diff --git a/tracker/tracker.go b/tracker/tracker.go index 01a1952d17de5bd71102a034b9e753123b5d98c7..3c6633018f0e9c953381cc85ef46d63942748718 100644 --- a/tracker/tracker.go +++ b/tracker/tracker.go @@ -47,17 +47,12 @@ Stopped // The local peer is leaving the swarm. ) type client interface { - // Returns ErrNotConnected if Connect needs to be called. Announce(*AnnounceRequest) (AnnounceResponse, error) - Connect() error - String() string - URL() string Close() error } var ( - ErrNotConnected = errors.New("not connected") - ErrBadScheme = errors.New("unknown scheme") + ErrBadScheme = errors.New("unknown scheme") schemes = make(map[string]func(*url.URL) client) ) @@ -67,7 +62,7 @@ schemes[scheme] = newFunc } // Returns ErrBadScheme if the tracker scheme isn't recognised. -func new(rawurl string) (cl client, err error) { +func newClient(rawurl string) (cl client, err error) { url_s, err := url.Parse(rawurl) if err != nil { return @@ -82,15 +77,11 @@ return } func Announce(urlStr string, req *AnnounceRequest) (res AnnounceResponse, err error) { - cl, err := new(urlStr) + cl, err := newClient(urlStr) if err != nil { return } defer cl.Close() - err = cl.Connect() - if err != nil { - return - } return cl.Announce(req) } diff --git a/tracker/udp.go b/tracker/udp.go index a358269f62e8f98f4545aa5116c4815099581413..6d1228a38b991ba9047aea4165ecb118a4e39b56 100644 --- a/tracker/udp.go +++ b/tracker/udp.go @@ -100,17 +100,9 @@ } return nil } -func (c *udpClient) URL() string { - return c.url.String() -} - -func (c *udpClient) String() string { - return c.URL() -} - func (c *udpClient) Announce(req *AnnounceRequest) (res AnnounceResponse, err error) { - if !c.connected() { - err = ErrNotConnected + err = c.connect() + if err != nil { return } reqURI := c.url.RequestURI() @@ -244,7 +236,7 @@ func (c *udpClient) connected() bool { return !c.connectionIdReceived.IsZero() && time.Now().Before(c.connectionIdReceived.Add(time.Minute)) } -func (c *udpClient) Connect() (err error) { +func (c *udpClient) connect() (err error) { if c.connected() { return nil }