From: Matt Joiner Date: Tue, 18 Nov 2014 20:34:13 +0000 (-0600) Subject: Adding a duplicate magnet returns the existing torrent X-Git-Tag: v1.0.0~1512 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=1057ac80559d99eb88c639011a8f390da567893b;p=btrtrc.git Adding a duplicate magnet returns the existing torrent --- diff --git a/client.go b/client.go index 3979b396..5c1223c4 100644 --- a/client.go +++ b/client.go @@ -1229,13 +1229,17 @@ func (cl *Client) AddMagnet(uri string) (t *torrent, err error) { if err != nil { return } + cl.mu.Lock() + defer cl.mu.Unlock() + t = cl.torrent(m.InfoHash) + if t != nil { + return + } t, err = newTorrent(m.InfoHash, [][]string{m.Trackers}, cl.halfOpenLimit) if err != nil { return } t.DisplayName = m.DisplayName - cl.mu.Lock() - defer cl.mu.Unlock() err = cl.addTorrent(t) if err != nil { t.Close()