changeset 101:e1ee013e6f03 draft

Linux alternatives for the Windows headers and PerformanceCounter. Some typedefs and #defines for the Linux build. Fixed GetDataDir.
author sirius-m <sirius-m@1a98c847-1fd6-4fd8-948a-caf3550aa51b>
date Sat, 31 Oct 2009 09:11:43 +0000
parents 0aae4dde7526
children 5b1ace67ce26
files headers.h irc.h main.cpp net.h util.h
diffstat 5 files changed, 40 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/headers.h
+++ b/headers.h
@@ -25,20 +25,13 @@
 #include <openssl/evp.h>
 #include <openssl/rand.h>
 #include <openssl/sha.h>
-#include <openssl/ripemd.h>
-#include <windows.h>
-#include <winsock2.h>
-#include <mswsock.h>
-#include <shlobj.h>
-#include <shlwapi.h>
+#include <openssl/ripemd.h>
 #include <stdio.h>
 #include <stdlib.h>
-#include <io.h>
 #include <math.h>
 #include <limits.h>
 #include <float.h>
 #include <assert.h>
-#include <process.h>
 #include <malloc.h>
 #include <memory>
 #define BOUNDSCHECK 1
@@ -56,7 +49,23 @@
 #include <boost/tuple/tuple.hpp>
 #include <boost/tuple/tuple_comparison.hpp>
 #include <boost/tuple/tuple_io.hpp>
-#include <boost/array.hpp>
+#include <boost/array.hpp>
+
+#ifdef __WXMSW__
+#include <windows.h>
+#include <winsock2.h>
+#include <mswsock.h>
+#include <shlobj.h>
+#include <shlwapi.h>
+#include <io.h>
+#include <process.h>
+#else
+#include <sys/time.h>
+#include <sys/socket.h>
+#include <arpa/inet.h>
+#include <unistd.h>
+#endif
+
 #pragma hdrstop
 using namespace std;
 using namespace boost;
--- a/irc.h
+++ b/irc.h
@@ -1,6 +1,11 @@
 // Copyright (c) 2009 Satoshi Nakamoto
 // Distributed under the MIT/X11 software license, see the accompanying
 // file license.txt or http://www.opensource.org/licenses/mit-license.php.
+
+#ifndef __WXMSW__
+#define closesocket(s) close(s)
+typedef u_int SOCKET;
+#endif
 
 extern bool RecvLine(SOCKET hSocket, string& strLine);
 extern void ThreadIRCSeed(void* parg);
--- a/main.cpp
+++ b/main.cpp
@@ -1399,7 +1399,7 @@
 bool CheckDiskSpace(int64 nAdditionalBytes)
 {
     wxLongLong nFreeBytesAvailable = 0;
-    if (!wxGetDiskSpace(GetDataDir(), NULL, &nFreeBytesAvailable))
+    if (!wxGetDiskSpace(wxStandardPaths::Get().GetDataDir(), NULL, &nFreeBytesAvailable))
     {
         printf("ERROR: wxGetDiskSpace() failed\n");
         return true;
--- a/net.h
+++ b/net.h
@@ -1,6 +1,12 @@
 // Copyright (c) 2009 Satoshi Nakamoto
 // Distributed under the MIT/X11 software license, see the accompanying
 // file license.txt or http://www.opensource.org/licenses/mit-license.php.
+
+#ifndef __WXMSW__
+#define closesocket(s) close(s)
+#define INVALID_SOCKET (SOCKET)(~0)
+typedef u_int SOCKET;
+#endif
 
 class CMessageHeader;
 class CAddress;
--- a/util.h
+++ b/util.h
@@ -321,11 +321,19 @@
 {
     printf(pszFormat, HexStr(vch, fSpaces).c_str());
 }
+
 
 inline int64 PerformanceCounter()
 {
-    int64 nCounter = 0;
-    QueryPerformanceCounter((LARGE_INTEGER*)&nCounter);
+    int64 nCounter = 0;
+#ifdef __WXMSW__
+    QueryPerformanceCounter((LARGE_INTEGER*)&nCounter);
+#else
+	// this could be changed to reading /dev/urandom
+	timeval t;
+	gettimeofday(&t, NULL);
+	nCounter += t.tv_sec * 1000000 + t.tv_usec;
+#endif
     return nCounter;
 }