@ -254,7 +254,7 @@ std::string HelpMessage(HelpMessageMode mode)
strUsage + = " -bantime=<n> " + strprintf ( _ ( " Number of seconds to keep misbehaving peers from reconnecting (default: %u) " ) , 86400 ) + " \n " ;
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 + = " -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 + = " -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 + = " -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 + = " -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 " ;
strUsage + = " -externalip=<ip> " + _ ( " Specify your own public address " ) + " \n " ;
@ -550,59 +550,64 @@ bool AppInit2(boost::thread_group& threadGroup)
# endif
# endif
// ********************************************************* Step 2: parameter interactions
// ********************************************************* Step 2: parameter interactions
// Set this early so that parameter interactions go to console
// Set this early so that parameter interactions go to console
fPrintToConsole = GetBoolArg ( " -printtoconsole " , false ) ;
fPrintToConsole = GetBoolArg ( " -printtoconsole " , false ) ;
fLogTimestamps = GetBoolArg ( " -logtimestamps " , true ) ;
fLogTimestamps = GetBoolArg ( " -logtimestamps " , true ) ;
fLogIPs = GetBoolArg ( " -logips " , false ) ;
fLogIPs = GetBoolArg ( " -logips " , false ) ;
if ( mapArgs . count ( " -bind " ) | | mapArgs . count ( " -whitebind " ) ) {
// when specifying an explicit binding address, you want to listen on it
// when specifying an explicit binding address, you want to listen on it
// even when -connect or -proxy is specified
// 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 ) )
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 ) {
if ( mapArgs . count ( " -connect " ) & & mapMultiArgs [ " -connect " ] . size ( ) > 0 ) {
// when only connecting to trusted nodes, do not seed via DNS, or listen by default
// when only connecting to trusted nodes, do not seed via DNS, or listen by default
if ( SoftSetBoolArg ( " -dnsseed " , false ) )
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 ) )
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 " ) ) {
if ( mapArgs . count ( " -proxy " ) ) {
// to protect privacy, do not listen by default if a default proxy server is specified
// to protect privacy, do not listen by default if a default proxy server is specified
if ( SoftSetBoolArg ( " -listen " , false ) )
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
// to protect privacy, do not discover addresses by default
if ( SoftSetBoolArg ( " -discover " , false ) )
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)
// do not map ports or try to retrieve public IP when not listening (pointless)
if ( SoftSetBoolArg ( " -upnp " , false ) )
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 ) )
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 ( mapArgs . count ( " -externalip " ) ) {
// if an explicit public IP is specified, do not try to find others
// if an explicit public IP is specified, do not try to find others
if ( SoftSetBoolArg ( " -discover " , false ) )
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 ) ) {
if ( GetBoolArg ( " -salvagewallet " , false ) ) {
// Rewrite just private keys: rescan to find transactions
// Rewrite just private keys: rescan to find transactions
if ( SoftSetBoolArg ( " -rescan " , true ) )
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
// -zapwallettx implies a rescan
if ( GetBoolArg ( " -zapwallettxes " , false ) ) {
if ( GetBoolArg ( " -zapwallettxes " , false ) ) {
if ( SoftSetBoolArg ( " -rescan " , true ) )
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
// Make sure enough file descriptors are available