From ff44ba4e07e8f0746bbc34a8af1d413e1863876c Mon Sep 17 00:00:00 2001
From: zzz <zzz@i2pmail.org>
Date: Tue, 1 Jun 2021 08:50:18 -0400
Subject: [PATCH] i2psnark: Fix autostart for magnets

---
 .../java/src/org/klomp/snark/SnarkManager.java         | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java b/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java
index 821089f6bc..f27318da9c 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java
@@ -2363,6 +2363,7 @@ public class SnarkManager implements CompleteListener, ClientApp {
         String now = Long.toString(System.currentTimeMillis());
         config.setProperty(PROP_META_ADDED, now);
         config.setProperty(PROP_META_STAMP, now);
+        config.setProperty(PROP_META_RUNNING, "true");
         // save
         synchronized (_configLock) {
             saveConfig();
@@ -2495,7 +2496,8 @@ public class SnarkManager implements CompleteListener, ClientApp {
         public void run() {
             // don't bother delaying if auto start is false
             long delay = (60L * 1000) * getStartupDelayMinutes();
-            if (delay > 0 && shouldAutoStart()) {
+            boolean autostart = shouldAutoStart();
+            if (delay > 0 && autostart) {
                 int id = _messages.addMessageNoEscape(_t("Adding torrents in {0}", DataHelper.formatDuration2(delay)));
                 try { Thread.sleep(delay); } catch (InterruptedException ie) {}
                 // Remove that first message
@@ -2523,7 +2525,7 @@ public class SnarkManager implements CompleteListener, ClientApp {
                 if (doMagnets) {
                     // first run only
                     try {
-                        addMagnets();
+                        addMagnets(autostart);
                         doMagnets = false;
                     } catch (RuntimeException e) {
                         _log.error("Error in the DirectoryMonitor", e);
@@ -2671,7 +2673,7 @@ public class SnarkManager implements CompleteListener, ClientApp {
      *
      * @since 0.8.4
      */
-    private void addMagnets() {
+    private void addMagnets(boolean autostart) {
         boolean changed = false;
         for (Iterator<?> iter = _config.keySet().iterator(); iter.hasNext(); ) {
             String k = (String) iter.next();
@@ -2688,7 +2690,7 @@ public class SnarkManager implements CompleteListener, ClientApp {
                     String tracker = config.getProperty(PROP_META_MAGNET_TR);
                     String dir = config.getProperty(PROP_META_MAGNET_DIR);
                     File dirf = (dir != null) ? (new File(dir)) : null;
-                    addMagnet(name, ih, tracker, false, dirf);
+                    addMagnet(name, ih, tracker, false, autostart, dirf, this);
                 } else {
                     iter.remove();
                     changed = true;
-- 
GitLab