From e68d5fec1fda539f34c50fb894b61f5a36aec755 Mon Sep 17 00:00:00 2001 From: Matt Joiner Date: Mon, 16 Dec 2013 18:47:23 +1100 Subject: [PATCH] Simplify the tracker.New interface, just take a string --- tracker/tracker.go | 11 ++++++++--- tracker/udp/udp_tracker_test.go | 9 +-------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/tracker/tracker.go b/tracker/tracker.go index 701bacc0..820880b4 100644 --- a/tracker/tracker.go +++ b/tracker/tracker.go @@ -57,12 +57,17 @@ func RegisterClientScheme(scheme string, newFunc func(*url.URL) Client) { schemes[scheme] = newFunc } -func New(url *url.URL) (cl Client, err error) { - newFunc, ok := schemes[url.Scheme] +// Returns ErrBadScheme if the tracker scheme isn't recognised. +func New(rawurl string) (cl Client, err error) { + url_s, err := url.Parse(rawurl) + if err != nil { + return + } + newFunc, ok := schemes[url_s.Scheme] if !ok { err = ErrBadScheme return } - cl = newFunc(url) + cl = newFunc(url_s) return } diff --git a/tracker/udp/udp_tracker_test.go b/tracker/udp/udp_tracker_test.go index c9ba04c2..4f524fd5 100644 --- a/tracker/udp/udp_tracker_test.go +++ b/tracker/udp/udp_tracker_test.go @@ -8,7 +8,6 @@ import ( "encoding/hex" "io" "net" - "net/url" "syscall" "testing" ) @@ -84,13 +83,7 @@ func TestConvertInt16ToInt(t *testing.T) { } func TestUDPTracker(t *testing.T) { - tr, err := tracker.New(func() *url.URL { - u, err := url.Parse("udp://tracker.openbittorrent.com:80/announce") - if err != nil { - t.Fatal(err) - } - return u - }()) + tr, err := tracker.New("udp://tracker.openbittorrent.com:80/announce") if err != nil { t.Fatal(err) } -- 2.48.1