Update README.md
[novacoin.git] / util.cpp
index ef2e683..b63b795 100644 (file)
--- a/util.cpp
+++ b/util.cpp
@@ -11,6 +11,7 @@ bool fDebug = false;
 bool fPrintToConsole = false;
 bool fPrintToDebugger = false;
 char pszSetDataDir[MAX_PATH] = "";
+bool fRequestShutdown = false;
 bool fShutdown = false;
 bool fDaemon = false;
 bool fCommandLine = false;
@@ -126,6 +127,11 @@ uint64 GetRand(uint64 nMax)
     return (nRand % nMax);
 }
 
+int GetRandInt(int nMax)
+{
+    return GetRand(nMax);
+}
+
 
 
 
@@ -404,7 +410,7 @@ vector<unsigned char> ParseHex(const char* psz)
     return vch;
 }
 
-vector<unsigned char> ParseHex(const std::string& str)
+vector<unsigned char> ParseHex(const string& str)
 {
     return ParseHex(str.c_str());
 }
@@ -472,6 +478,34 @@ const char* wxGetTranslation(const char* pszEnglish)
 }
 
 
+bool WildcardMatch(const char* psz, const char* mask)
+{
+    loop
+    {
+        switch (*mask)
+        {
+        case '\0':
+            return (*psz == '\0');
+        case '*':
+            return WildcardMatch(psz, mask+1) || (*psz && WildcardMatch(psz+1, mask));
+        case '?':
+            if (*psz == '\0')
+                return false;
+            break;
+        default:
+            if (*psz != *mask)
+                return false;
+            break;
+        }
+        psz++;
+        mask++;
+    }
+}
+
+bool WildcardMatch(const string& str, const string& mask)
+{
+    return WildcardMatch(str.c_str(), mask.c_str());
+}
 
 
 
@@ -649,7 +683,7 @@ string GetDataDir()
 string GetConfigFile()
 {
     namespace fs = boost::filesystem;
-    fs::path pathConfig(mapArgs.count("-conf") ? mapArgs["-conf"] : string("bitcoin.conf"));
+    fs::path pathConfig(GetArg("-conf", "bitcoin.conf"));
     if (!pathConfig.is_complete())
         pathConfig = fs::path(GetDataDir()) / pathConfig;
     return pathConfig.string();
@@ -717,13 +751,10 @@ void ShrinkDebugFile()
 
 //
 // "Never go to sea with two chronometers; take one or three."
-// Our three chronometers are:
+// Our three time sources are:
 //  - System clock
-//  - Median of other server's clocks
-//  - NTP servers
-//
-// note: NTP isn't implemented yet, so until then we just use the median
-//  of other nodes clocks to correct ours.
+//  - Median of other nodes's clocks
+//  - The user (asking the user to fix the system clock if the first two disagree)
 //
 int64 GetTime()
 {
@@ -767,7 +798,7 @@ void AddTimeData(unsigned int ip, int64 nTime)
             // If nobody else has the same time as us, give a warning
             bool fMatch = false;
             foreach(int64 nOffset, vTimeOffsets)
-                if (nOffset != 0 && abs64(nOffset) < 10 * 60)
+                if (nOffset != 0 && abs64(nOffset) < 5 * 60)
                     fMatch = true;
             static bool fDone;
             if (!fMatch && !fDone)