i2psnark: Update tracker list after editing torrent (Gitlab #380)

This commit is contained in:
zzz
2022-12-31 07:35:25 -05:00
parent f2940146c4
commit b607304f7b
2 changed files with 19 additions and 1 deletions

View File

@ -1335,6 +1335,9 @@ public class Snark
*/
public void replaceMetaInfo(MetaInfo metainfo) {
meta = metainfo;
TrackerClient tc = trackerclient;
if (tc != null)
tc.reinitialize();
}
///////////// Begin StorageListener methods

View File

@ -94,7 +94,8 @@ public class TrackerClient implements Runnable {
private static final Hash DSA_ONLY_TRACKER = ConvertToHash.getHash("cfmqlafjfmgkzbt4r3jsfyhgsr5abgxryl6fnz3d3y5a365di5aa.b32.i2p");
private final I2PSnarkUtil _util;
private final MetaInfo meta;
// non-final for reinitialize()
private MetaInfo meta;
private final String infoHash;
private final String peerID;
private final String additionalTrackerURL;
@ -266,8 +267,22 @@ public class TrackerClient implements Runnable {
}
}
/**
* Call after editing torrent
* @since 0.9.57
*/
public synchronized void reinitialize() {
if (!_initialized || !stop)
return;
trackers.clear();
backupTrackers.clear();
meta = snark.getMetaInfo();
setup();
}
/**
* Do this one time only (not every time it is started).
* Unless torrent was edited.
* @since 0.9.1
*/
private void setup() {