]> git.saurik.com Git - wxWidgets.git/blobdiff - src/unix/gsocket.cpp
getservbyname under INNOTEK gcc needs a (char*), not (const char*) for the protocol...
[wxWidgets.git] / src / unix / gsocket.cpp
index 9713fde61e57af85da5d29582c2f010e4aebffff..ea83e5f4f995bdfc188da3216bf218f7d048928b 100644 (file)
@@ -87,6 +87,10 @@ int _System bsdselect(int,
 int _System soclose(int);
 #  endif
 #endif
+#ifdef __EMX__
+#include <sys/select.h>
+#endif
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <stddef.h>
@@ -113,6 +117,12 @@ int _System soclose(int);
 #  endif
 #endif
 
+#else
+   /* undefine for OSX - its really an int */
+#  ifdef __DARWIN__
+#    undef SOCKLEN_T
+#    define SOCKLEN_T int
+#  endif
 #endif /* SOCKLEN_T */
 
 /*
@@ -244,6 +254,7 @@ GSocket::GSocket()
   m_stream              = true;
   m_gui_dependent       = NULL;
   m_non_blocking        = false;
+  m_reusable            = false;
   m_timeout             = 10*60*1000;
                                 /* 10 minutes * 60 sec * 1000 millisec */
   m_establishing        = false;
@@ -913,7 +924,7 @@ GSocketEventFlags GSocket::Select(GSocketEventFlags flags)
 
     /* Do not use a static struct, Linux can garble it */
     tv.tv_sec = m_timeout / 1000;
-    tv.tv_usec = (m_timeout % 1000) / 1000;
+    tv.tv_usec = (m_timeout % 1000) * 1000;
 
     FD_ZERO(&readfds);
     FD_ZERO(&writefds);
@@ -1698,7 +1709,11 @@ GSocketError GAddress_INET_SetPortName(GAddress *address, const char *port,
     return GSOCK_INVPORT;
   }
 
+#if defined(__WXPM__) && defined(__EMX__)
+  se = getservbyname(port, (char*)protocol);
+#else
   se = getservbyname(port, protocol);
+#endif
   if (!se)
   {
     /* the cast to int suppresses compiler warnings about subscript having the