]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Don't error on setting info when we already have it
authorMatt Joiner <anacrolix@gmail.com>
Tue, 19 May 2020 05:22:58 +0000 (15:22 +1000)
committerMatt Joiner <anacrolix@gmail.com>
Tue, 19 May 2020 05:22:58 +0000 (15:22 +1000)
torrent.go

index 195027a3cca0f36a6b12eed3f162d1bc18281793..52c6124dc2f10569b799fde74f44c40517ea7b83 100644 (file)
@@ -377,9 +377,6 @@ func (t *Torrent) cacheLength() {
 }
 
 func (t *Torrent) setInfo(info *metainfo.Info) error {
-       if t.info != nil {
-               return errors.New("info already set")
-       }
        if err := validateInfo(info); err != nil {
                return fmt.Errorf("bad info: %s", err)
        }
@@ -431,11 +428,14 @@ func (t *Torrent) setInfoBytes(b []byte) error {
        if err := bencode.Unmarshal(b, &info); err != nil {
                return fmt.Errorf("error unmarshalling info bytes: %s", err)
        }
+       t.metadataBytes = b
+       t.metadataCompletedChunks = nil
+       if t.info != nil {
+               return nil
+       }
        if err := t.setInfo(&info); err != nil {
                return err
        }
-       t.metadataBytes = b
-       t.metadataCompletedChunks = nil
        t.onSetInfo()
        return nil
 }