summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--source/cSocket.cpp20
-rw-r--r--source/cSocket.h2
2 files changed, 15 insertions, 7 deletions
diff --git a/source/cSocket.cpp b/source/cSocket.cpp
index f53724216..42cc298a7 100644
--- a/source/cSocket.cpp
+++ b/source/cSocket.cpp
@@ -16,12 +16,6 @@
- unsigned long cSocket::INTERNET_ADDRESS_LOCALHOST = 127; // TODO: Linux won't accept this: htonl((127 << 24) | 1);
-
-
-
-
-
cSocket::cSocket(xSocket a_Socket)
: m_Socket(a_Socket)
{
@@ -195,6 +189,20 @@ cSocket cSocket::CreateSocket()
+unsigned long cSocket::INTERNET_ADDRESS_LOCALHOST(void)
+{
+ static unsigned long LocalHost = 0;
+ if (LocalHost == 0)
+ {
+ LocalHost = inet_addr("127.0.0.1"); // GCC won't accept this as a global var assignment
+ }
+ return LocalHost;
+}
+
+
+
+
+
int cSocket::Bind(SockAddr_In& a_Address)
{
sockaddr_in local;
diff --git a/source/cSocket.h b/source/cSocket.h
index 7075adab5..b98741c4b 100644
--- a/source/cSocket.h
+++ b/source/cSocket.h
@@ -61,7 +61,7 @@ public:
static const short ADDRESS_FAMILY_INTERNET = 2;
static const unsigned long INTERNET_ADDRESS_ANY = 0;
- static unsigned long INTERNET_ADDRESS_LOCALHOST; // 127.0.0.1 represented in network byteorder
+ static unsigned long INTERNET_ADDRESS_LOCALHOST(void); // 127.0.0.1 represented in network byteorder; must be a function due to GCC :(
int Bind( SockAddr_In& a_Address );
int Listen( int a_Backlog );