From 1942d5b73bf1e20cea6264cb9f80ca7476603d43 Mon Sep 17 00:00:00 2001 From: Matt Joiner Date: Fri, 21 Nov 2014 00:07:04 -0600 Subject: [PATCH] Fix default torrent client address, and leaked resources --- client.go | 6 ++++++ fs/torrentfs_test.go | 7 ++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/client.go b/client.go index 3c0e6780..afec2b88 100644 --- a/client.go +++ b/client.go @@ -308,6 +308,9 @@ func NewClient(cfg *Config) (cl *Client, err error) { if addr := cl.ListenAddr(); addr != nil { return addr.String() } + if cfg.ListenAddr == "" { + return ":50007" + } return cfg.ListenAddr } if !cfg.DisableTCP { @@ -358,6 +361,9 @@ func (cl *Client) stopped() bool { func (me *Client) Stop() { me.mu.Lock() close(me.quit) + for _, l := range me.listeners { + l.Close() + } me.event.Broadcast() for _, t := range me.torrents { t.Close() diff --git a/fs/torrentfs_test.go b/fs/torrentfs_test.go index b6fc297d..185aa93e 100644 --- a/fs/torrentfs_test.go +++ b/fs/torrentfs_test.go @@ -143,11 +143,15 @@ func TestDownloadOnDemand(t *testing.T) { DataDir: layout.Completed, DisableTrackers: true, NoDHT: true, + ListenAddr: ":0", }) + if err != nil { + t.Fatalf("error creating seeder client: %s", err) + } + defer seeder.Stop() http.HandleFunc("/seeder", func(w http.ResponseWriter, req *http.Request) { seeder.WriteStatus(w) }) - defer seeder.Stop() _, err = seeder.AddMagnet(fmt.Sprintf("magnet:?xt=urn:btih:%x", layout.Metainfo.Info.Hash)) if err != nil { t.Fatal(err) @@ -157,6 +161,7 @@ func TestDownloadOnDemand(t *testing.T) { DownloadStrategy: torrent.NewResponsiveDownloadStrategy(0), DisableTrackers: true, NoDHT: true, + ListenAddr: ":0", // This can be used to check if clients can connect to other clients // with the same ID. -- 2.48.1