#include "net.h"
#include "init.h"
#include "util.h"
+#include "ntp.h"
#include "ui_interface.h"
#include "checkpoints.h"
#include <boost/format.hpp>
CService addrProxy;
bool fProxy = false;
if (mapArgs.count("-proxy")) {
- addrProxy = CService(mapArgs["-proxy"], 9050);
+ addrProxy = CService(mapArgs["-proxy"], nSocksDefault);
if (!addrProxy.IsValid())
return InitError(strprintf(_("Invalid -proxy address: '%s'"), mapArgs["-proxy"].c_str()));
if (!mapArgs.count("-tor"))
addrOnion = addrProxy;
else
- addrOnion = CService(mapArgs["-tor"], 9050);
+ addrOnion = CService(mapArgs["-tor"], nSocksDefault);
if (!addrOnion.IsValid())
return InitError(strprintf(_("Invalid -tor address: '%s'"), mapArgs["-tor"].c_str()));
SetProxy(NET_TOR, addrOnion, 5);
if (fServer)
NewThread(ThreadRPCServer, NULL);
+ // ********************************************************* Step 12: NTP synchronization
+
+ // First, do a simple check whether there is a local ntp server.
+ string strLocalHost = "127.0.0.1";
+ int64_t nTime = NtpGetTime(strLocalHost);
+
+ if (nTime < 0 || nTime != GetTime()) {
+ // If not, then request current timestamp from three random NTP servers.
+ uiInterface.InitMessage(_("Synchronizing time through NTP..."));
+ printf("Synchronizing time through NTP...\n");
+
+ for(int i = 0; i < 2; i++) {
+ CNetAddr ip;
+ int64_t nTime = NtpGetTime(ip);
+
+ if (nTime > 0 && nTime != 2085978496) { // Skip the deliberately wrong timestamps
+ AddTimeData(ip, nTime);
+ printf("AddTimeData(%s, %" PRId64 ")\n", ip.ToString().c_str(), nTime);
+ }
+ }
+
+ // When done, start a periodical sampling thread
+ NewThread(ThreadNtpSamples, NULL);
+
+ uiInterface.InitMessage(_("Done"));
+ printf("Done\n");
+ }
// ********************************************************* Step 12: finished
uiInterface.InitMessage(_("Done loading"));