diff options
Diffstat (limited to 'src/main_gui.cpp')
| -rw-r--r-- | src/main_gui.cpp | 22 |
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 | { |