X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Finit.cpp;h=1e0daaaf0593fd223c73848bc20f940556756aa9;hb=9e58e0a8ca28b15a4bfa677f5b23891972db40fd;hp=4b71decf5b641375add35269ddf872869d1652c6;hpb=e1fc548ff893f35d24565b381eca454ba6319ef4;p=novacoin.git diff --git a/src/init.cpp b/src/init.cpp index 4b71dec..1e0daaa 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -8,6 +8,7 @@ #include "net.h" #include "init.h" #include "util.h" +#include "ipcollector.h" #include "ui_interface.h" #include "checkpoints.h" #include @@ -190,12 +191,11 @@ bool AppInit(int argc, char* argv[]) extern void noui_connect(); int main(int argc, char* argv[]) { - bool fRet = false; // Connect bitcoind signal handlers noui_connect(); - fRet = AppInit(argc, argv); + bool fRet = AppInit(argc, argv); if (fRet && fDaemon) return 0; @@ -263,13 +263,6 @@ std::string HelpMessage() " -bantime= " + _("Number of seconds to keep misbehaving peers from reconnecting (default: 86400)") + "\n" + " -maxreceivebuffer= " + _("Maximum per-connection receive buffer, *1000 bytes (default: 5000)") + "\n" + " -maxsendbuffer= " + _("Maximum per-connection send buffer, *1000 bytes (default: 1000)") + "\n" + -#ifdef USE_UPNP -#if USE_UPNP - " -upnp " + _("Use UPnP to map the listening port (default: 1 when listening)") + "\n" + -#else - " -upnp " + _("Use UPnP to map the listening port (default: 0)") + "\n" + -#endif -#endif " -detachdb " + _("Detach block and address databases. Increases shutdown time (default: 0)") + "\n" + #ifdef DB_LOG_IN_MEMORY @@ -300,6 +293,7 @@ std::string HelpMessage() " -rpcconnect= " + _("Send commands to node running on (default: 127.0.0.1)") + "\n" + " -blocknotify= " + _("Execute command when the best block changes (%s in cmd is replaced by block hash)") + "\n" + " -walletnotify= " + _("Execute command when a wallet transaction changes (%s in cmd is replaced by TxID)") + "\n" + + " -peercollector= " + _("Execute command to collect peer addresses") + "\n" + " -confchange " + _("Require a confirmations for change (default: 0)") + "\n" + " -upgradewallet " + _("Upgrade wallet to latest format") + "\n" + " -keypool= " + _("Set key pool size to (default: 100)") + "\n" + @@ -352,6 +346,14 @@ bool AppInit2() typedef BOOL (WINAPI *PSETPROCDEPPOL)(DWORD); PSETPROCDEPPOL setProcDEPPol = (PSETPROCDEPPOL)GetProcAddress(GetModuleHandleA("Kernel32.dll"), "SetProcessDEPPolicy"); if (setProcDEPPol != NULL) setProcDEPPol(PROCESS_DEP_ENABLE); + + // Initialize Windows Sockets + WSADATA wsadata; + int ret = WSAStartup(MAKEWORD(2,2), &wsadata); + if (ret != NO_ERROR) + { + return InitError(strprintf("Error: TCP/IP socket library failed to start (WSAStartup returned error %d)", ret)); + } #endif #ifndef WIN32 umask(077); @@ -374,13 +376,13 @@ bool AppInit2() // ********************************************************* Step 2: parameter interactions - nNodeLifespan = (unsigned int)(GetArg("-addrlifespan", 7)); + nNodeLifespan = GetArgUInt("-addrlifespan", 7); fUseFastIndex = GetBoolArg("-fastindex", true); fUseMemoryLog = GetBoolArg("-memorylog", true); // Ping and address broadcast intervals nPingInterval = max(10 * 60, GetArg("-keepalive", 30 * 60)); - nBroadcastInterval = max(6 * 60 * 60, GetArg("-addrsetlifetime", nOneDay)); + nBroadcastInterval = max(6 * nOneHour, GetArg("-addrsetlifetime", nOneDay)); CheckpointsMode = Checkpoints::STRICT; std::string strCpMode = GetArg("-cppolicy", "strict"); @@ -421,7 +423,6 @@ bool AppInit2() if (!GetBoolArg("-listen", true)) { // do not map ports or try to retrieve public IP when not listening (pointless) - SoftSetBoolArg("-upnp", false); SoftSetBoolArg("-discover", false); } @@ -668,13 +669,10 @@ bool AppInit2() fNoListen = !GetBoolArg("-listen", true); fDiscover = GetBoolArg("-discover", true); fNameLookup = GetBoolArg("-dns", true); -#ifdef USE_UPNP - fUseUPnP = GetBoolArg("-upnp", USE_UPNP); -#endif } else { // Don't listen, discover addresses or search for nodes if IPv4 and IPv6 networking is disabled. fNoListen = true; - fDiscover = fNameLookup = fUseUPnP = false; + fDiscover = fNameLookup = false; SoftSetBoolArg("-irc", false); SoftSetBoolArg("-dnsseed", false); } @@ -906,6 +904,13 @@ bool AppInit2() pwalletMain->SetDefaultKey(newDefaultKey); if (!pwalletMain->SetAddressBookName(pwalletMain->vchDefaultKey.GetID(), "")) strErrors << _("Cannot write default address") << "\n"; + + CMalleableKeyView keyView = pwalletMain->GenerateNewMalleableKey(); + CMalleableKey mKey; + if (!pwalletMain->GetMalleableKey(keyView, mKey)) + strErrors << _("Unable to generate new malleable key"); + if (!pwalletMain->SetAddressBookName(CBitcoinAddress(keyView.GetMalleablePubKey()), "")) + strErrors << _("Cannot write default address") << "\n"; } printf("%s", strErrors.str().c_str()); @@ -994,7 +999,11 @@ bool AppInit2() if (fServer) NewThread(ThreadRPCServer, NULL); - // ********************************************************* Step 12: finished + // ********************************************************* Step 13: IP collection thread + strCollectorCommand = GetArg("-peercollector", ""); + if (!fTestNet && strCollectorCommand != "") + NewThread(ThreadIPCollector, NULL); + // ********************************************************* Step 14: finished uiInterface.InitMessage(_("Done loading")); printf("Done loading\n"); @@ -1008,7 +1017,7 @@ bool AppInit2() #if !defined(QT_GUI) // Loop until process is exit()ed from shutdown() function, // called from ThreadRPCServer thread when a "stop" command is received. - while (1) + for ( ; ; ) Sleep(5000); #endif