upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/src/main_gui.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/main_gui.cpp')
-rw-r--r--src/main_gui.cpp22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/main_gui.cpp b/src/main_gui.cpp
index f0fe903..3f52e91 100644
--- a/src/main_gui.cpp
+++ b/src/main_gui.cpp
@@ -143,6 +143,7 @@ static void PrintUsage()
143 printf(" /socks=HOST:PORT (SOCKS5 proxy for Nostr, .btf relay, and onion dials)\n"); 143 printf(" /socks=HOST:PORT (SOCKS5 proxy for Nostr, .btf relay, and onion dials)\n");
144 printf(" /tor[=HOST:PORT] (Tor mode; default SOCKS5 proxy is 127.0.0.1:9050)\n"); 144 printf(" /tor[=HOST:PORT] (Tor mode; default SOCKS5 proxy is 127.0.0.1:9050)\n");
145 printf(" /managedtor[=PATH] (start Tor, create a hidden service, advertise its onion)\n"); 145 printf(" /managedtor[=PATH] (start Tor, create a hidden service, advertise its onion)\n");
146 printf(" /nomanagedtor (disable automatic bundled Tor startup)\n");
146 printf(" /oniononly (do not fall back to rendezvous when a .btf onion dial fails)\n"); 147 printf(" /oniononly (do not fall back to rendezvous when a .btf onion dial fails)\n");
147 printf(" /btfseed=ADDRESS:ENCHEX (extra bootstrap peer, repeatable)\n"); 148 printf(" /btfseed=ADDRESS:ENCHEX (extra bootstrap peer, repeatable)\n");
148 printf("\n"); 149 printf("\n");
@@ -322,19 +323,30 @@ static void ParseStartupArguments(int argc, char* argv[])
322 } 323 }
323 324
324 bool fManagedTor = arg(argc, argv, "/managedtor") || arg(argc, argv, "-managedtor"); 325 bool fManagedTor = arg(argc, argv, "/managedtor") || arg(argc, argv, "-managedtor");
326 bool fNoManagedTor = arg(argc, argv, "/nomanagedtor") || arg(argc, argv, "-nomanagedtor");
325 bool fTorMode = arg(argc, argv, "/tor") || arg(argc, argv, "-tor"); 327 bool fTorMode = arg(argc, argv, "/tor") || arg(argc, argv, "-tor");
326 string socksProxy = argval2(argc, argv, "/socks", "-socks"); 328 string socksProxy = argval2(argc, argv, "/socks", "-socks");
327 if (fManagedTor) 329 string bundledTorPath;
330 bool fAutoManagedTor = !fManagedTor && !fNoManagedTor && !fTorMode &&
331 socksProxy.empty() && BtfBundledTorPath(bundledTorPath);
332 if (fManagedTor || fAutoManagedTor)
328 { 333 {
329 if (fTorMode || !socksProxy.empty()) 334 if (fManagedTor && (fTorMode || !socksProxy.empty()))
330 fprintf(stderr, "Warning: /managedtor takes precedence over /tor and /socks\n"); 335 fprintf(stderr, "Warning: /managedtor takes precedence over /tor and /socks\n");
331 336
332 string torPath = argval2(argc, argv, "/managedtor", "-managedtor"); 337 string torPath = fManagedTor ? argval2(argc, argv, "/managedtor", "-managedtor") : bundledTorPath;
333 string err; 338 string err;
334 if (!BtfStartManagedTor(torPath, err)) 339 if (!BtfStartManagedTor(torPath, err))
335 fprintf(stderr, "Ignoring /managedtor=%s: %s\n", torPath.c_str(), err.c_str()); 340 {
341 if (fAutoManagedTor)
342 fprintf(stderr, "Bundled Tor not enabled automatically: %s\n", err.c_str());
343 else
344 fprintf(stderr, "Ignoring /managedtor=%s: %s\n", torPath.c_str(), err.c_str());
345 }
336 else 346 else
337 fprintf(stderr, "Managed Tor enabled: %s\n", BtfManagedTorStatus().c_str()); 347 fprintf(stderr, "Managed Tor enabled%s: %s\n",
348 fAutoManagedTor ? " automatically" : "",
349 BtfManagedTorStatus().c_str());
338 } 350 }
339 else if (fTorMode) 351 else if (fTorMode)
340 { 352 {