]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Fix default torrent client address, and leaked resources
authorMatt Joiner <anacrolix@gmail.com>
Fri, 21 Nov 2014 06:07:04 +0000 (00:07 -0600)
committerMatt Joiner <anacrolix@gmail.com>
Fri, 21 Nov 2014 06:07:04 +0000 (00:07 -0600)
client.go
fs/torrentfs_test.go

index 3c0e67805cb4d7badbc67d2a037251e23fcd97ce..afec2b887b0bc951d24f6efad4c69c8a771253a1 100644 (file)
--- 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()
index b6fc297d15a899886fb46ab8c58a5aa99ffd1743..185aa93e1536a2c67f0253b4f0383348d00fab7d 100644 (file)
@@ -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.