|
|
@ -248,7 +248,7 @@ std::string HelpMessage(HelpMessageMode mode) |
|
|
|
strUsage += " -bantime=<n> " + strprintf(_("Number of seconds to keep misbehaving peers from reconnecting (default: %u)"), 86400) + "\n"; |
|
|
|
strUsage += " -bind=<addr> " + _("Bind to given address and always listen on it. Use [host]:port notation for IPv6") + "\n"; |
|
|
|
strUsage += " -connect=<ip> " + _("Connect only to the specified node(s)") + "\n"; |
|
|
|
strUsage += " -discover " + _("Discover own IP address (default: 1 when listening and no -externalip)") + "\n"; |
|
|
|
strUsage += " -discover " + _("Discover own IP addresses (default: 1 when listening and no -externalip or -proxy)") + "\n"; |
|
|
|
strUsage += " -dns " + _("Allow DNS lookups for -addnode, -seednode and -connect") + " " + _("(default: 1)") + "\n"; |
|
|
|
strUsage += " -dnsseed " + _("Query for peer addresses via DNS lookup, if low on addresses (default: 1 unless -connect)") + "\n"; |
|
|
|
strUsage += " -externalip=<ip> " + _("Specify your own public address") + "\n"; |
|
|
@ -545,59 +545,64 @@ bool AppInit2(boost::thread_group& threadGroup) |
|
|
|
#endif |
|
|
|
|
|
|
|
// ********************************************************* Step 2: parameter interactions
|
|
|
|
|
|
|
|
// Set this early so that parameter interactions go to console
|
|
|
|
fPrintToConsole = GetBoolArg("-printtoconsole", false); |
|
|
|
fLogTimestamps = GetBoolArg("-logtimestamps", true); |
|
|
|
fLogIPs = GetBoolArg("-logips", false); |
|
|
|
|
|
|
|
if (mapArgs.count("-bind") || mapArgs.count("-whitebind")) { |
|
|
|
// when specifying an explicit binding address, you want to listen on it
|
|
|
|
// even when -connect or -proxy is specified
|
|
|
|
// when specifying an explicit binding address, you want to listen on it
|
|
|
|
// even when -connect or -proxy is specified
|
|
|
|
if (mapArgs.count("-bind")) { |
|
|
|
if (SoftSetBoolArg("-listen", true)) |
|
|
|
LogPrintf("%s: parameter interaction: -bind set -> setting -listen=1\n", __func__); |
|
|
|
} |
|
|
|
if (mapArgs.count("-whitebind")) { |
|
|
|
if (SoftSetBoolArg("-listen", true)) |
|
|
|
LogPrintf("AppInit2 : parameter interaction: -bind or -whitebind set -> setting -listen=1\n"); |
|
|
|
LogPrintf("%s: parameter interaction: -whitebind set -> setting -listen=1\n", __func__); |
|
|
|
} |
|
|
|
|
|
|
|
if (mapArgs.count("-connect") && mapMultiArgs["-connect"].size() > 0) { |
|
|
|
// when only connecting to trusted nodes, do not seed via DNS, or listen by default
|
|
|
|
if (SoftSetBoolArg("-dnsseed", false)) |
|
|
|
LogPrintf("AppInit2 : parameter interaction: -connect set -> setting -dnsseed=0\n"); |
|
|
|
LogPrintf("%s: parameter interaction: -connect set -> setting -dnsseed=0\n", __func__); |
|
|
|
if (SoftSetBoolArg("-listen", false)) |
|
|
|
LogPrintf("AppInit2 : parameter interaction: -connect set -> setting -listen=0\n"); |
|
|
|
LogPrintf("%s: parameter interaction: -connect set -> setting -listen=0\n", __func__); |
|
|
|
} |
|
|
|
|
|
|
|
if (mapArgs.count("-proxy")) { |
|
|
|
// to protect privacy, do not listen by default if a default proxy server is specified
|
|
|
|
if (SoftSetBoolArg("-listen", false)) |
|
|
|
LogPrintf("AppInit2 : parameter interaction: -proxy set -> setting -listen=0\n"); |
|
|
|
LogPrintf("%s: parameter interaction: -proxy set -> setting -listen=0\n", __func__); |
|
|
|
// to protect privacy, do not discover addresses by default
|
|
|
|
if (SoftSetBoolArg("-discover", false)) |
|
|
|
LogPrintf("AppInit2 : parameter interaction: -proxy set -> setting -discover=0\n"); |
|
|
|
LogPrintf("%s: parameter interaction: -proxy set -> setting -discover=0\n", __func__); |
|
|
|
} |
|
|
|
|
|
|
|
if (!GetBoolArg("-listen", true)) { |
|
|
|
if (!GetBoolArg("-listen", DEFAULT_LISTEN)) { |
|
|
|
// do not map ports or try to retrieve public IP when not listening (pointless)
|
|
|
|
if (SoftSetBoolArg("-upnp", false)) |
|
|
|
LogPrintf("AppInit2 : parameter interaction: -listen=0 -> setting -upnp=0\n"); |
|
|
|
LogPrintf("%s: parameter interaction: -listen=0 -> setting -upnp=0\n", __func__); |
|
|
|
if (SoftSetBoolArg("-discover", false)) |
|
|
|
LogPrintf("AppInit2 : parameter interaction: -listen=0 -> setting -discover=0\n"); |
|
|
|
LogPrintf("%s: parameter interaction: -listen=0 -> setting -discover=0\n", __func__); |
|
|
|
} |
|
|
|
|
|
|
|
if (mapArgs.count("-externalip")) { |
|
|
|
// if an explicit public IP is specified, do not try to find others
|
|
|
|
if (SoftSetBoolArg("-discover", false)) |
|
|
|
LogPrintf("AppInit2 : parameter interaction: -externalip set -> setting -discover=0\n"); |
|
|
|
LogPrintf("%s: parameter interaction: -externalip set -> setting -discover=0\n", __func__); |
|
|
|
} |
|
|
|
|
|
|
|
if (GetBoolArg("-salvagewallet", false)) { |
|
|
|
// Rewrite just private keys: rescan to find transactions
|
|
|
|
if (SoftSetBoolArg("-rescan", true)) |
|
|
|
LogPrintf("AppInit2 : parameter interaction: -salvagewallet=1 -> setting -rescan=1\n"); |
|
|
|
LogPrintf("%s: parameter interaction: -salvagewallet=1 -> setting -rescan=1\n", __func__); |
|
|
|
} |
|
|
|
|
|
|
|
// -zapwallettx implies a rescan
|
|
|
|
if (GetBoolArg("-zapwallettxes", false)) { |
|
|
|
if (SoftSetBoolArg("-rescan", true)) |
|
|
|
LogPrintf("AppInit2 : parameter interaction: -zapwallettxes=<mode> -> setting -rescan=1\n"); |
|
|
|
LogPrintf("%s: parameter interaction: -zapwallettxes=<mode> -> setting -rescan=1\n", __func__); |
|
|
|
} |
|
|
|
|
|
|
|
// Make sure enough file descriptors are available
|
|
|
|