X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1eef64d83657a6bccd4e22b0c5155ce2e5207306..e4e84ccdb69bff1b2580a6b685c7a51559388364:/src/unix/gsocket.cpp diff --git a/src/unix/gsocket.cpp b/src/unix/gsocket.cpp index f857c3c176..eb7b1b5678 100644 --- a/src/unix/gsocket.cpp +++ b/src/unix/gsocket.cpp @@ -101,6 +101,9 @@ int _System soclose(int); #ifdef sgi # include #endif +#ifdef _AIX +# include +#endif #include #ifndef SOCKLEN_T @@ -117,13 +120,23 @@ int _System soclose(int); # endif #endif -#else - /* undefine for OSX - its really an int */ -# ifdef __DARWIN__ +#endif /* SOCKLEN_T */ + +#ifndef SOCKOPTLEN_T +#define SOCKOPTLEN_T SOCKLEN_T +#endif + +/* + * OSX 10.2 has int args instead of SOCKLENXXX_T + */ +#if defined( __WXMAC__ ) || defined ( __WXCOCOA__ ) +# if ( MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_2 ) +# undef SOCKOPTLEN_T # undef SOCKLEN_T +# define SOCKOPTLEN_T int # define SOCKLEN_T int # endif -#endif /* SOCKLEN_T */ +#endif /* * MSW defines this, Unices don't. @@ -478,11 +491,7 @@ GSocketError GSocket::SetServer() m_error = GSOCK_IOERR; return GSOCK_IOERR; } -#if defined(__EMX__) || defined(__VISAGECPP__) - ioctl(m_fd, FIONBIO, (char*)&arg, sizeof(arg)); -#else ioctl(m_fd, FIONBIO, &arg); -#endif gs_gui_functions->Enable_Events(this); /* allow a socket to re-bind if the socket is in the TIME_WAIT @@ -586,7 +595,6 @@ GSocket *GSocket::WaitConnection() err = _GAddress_translate_from(connection->m_peer, &from, fromlen); if (err != GSOCK_NOERROR) { - GAddress_destroy(connection->m_peer); delete connection; m_error = err; return NULL; @@ -702,9 +710,9 @@ GSocketError GSocket::Connect(GSocketStream stream) else { int error; - SOCKLEN_T len = sizeof(error); + SOCKOPTLEN_T len = sizeof(error); - getsockopt(m_fd, SOL_SOCKET, SO_ERROR, (void*) &error, &len); + getsockopt(m_fd, SOL_SOCKET, SO_ERROR, (char*) &error, &len); if (!error) return GSOCK_NOERROR; @@ -987,11 +995,11 @@ GSocketEventFlags GSocket::Select(GSocketEventFlags flags) if (m_establishing && !m_server) { int error; - SOCKLEN_T len = sizeof(error); + SOCKOPTLEN_T len = sizeof(error); m_establishing = false; - getsockopt(m_fd, SOL_SOCKET, SO_ERROR, (void*)&error, &len); + getsockopt(m_fd, SOL_SOCKET, SO_ERROR, (char*)&error, &len); if (error) { @@ -1142,7 +1150,7 @@ void GSocket::UnsetCallback(GSocketEventFlags flags) GSocketError GSocket::GetSockOpt(int level, int optname, void *optval, int *optlen) { - if (getsockopt(m_fd, level, optname, optval, (SOCKLEN_T*)optlen) == 0) + if (getsockopt(m_fd, level, optname, (char*)optval, (SOCKOPTLEN_T*)optlen) == 0) { return GSOCK_NOERROR; } @@ -1152,7 +1160,7 @@ GSocketError GSocket::GetSockOpt(int level, int optname, GSocketError GSocket::SetSockOpt(int level, int optname, const void *optval, int optlen) { - if (setsockopt(m_fd, level, optname, optval, optlen) == 0) + if (setsockopt(m_fd, level, optname, (const char*)optval, optlen) == 0) { return GSOCK_NOERROR; } @@ -1409,11 +1417,11 @@ void GSocket::Detected_Write() if (m_establishing && !m_server) { int error; - SOCKLEN_T len = sizeof(error); + SOCKOPTLEN_T len = sizeof(error); m_establishing = false; - getsockopt(m_fd, SOL_SOCKET, SO_ERROR, (void*)&error, &len); + getsockopt(m_fd, SOL_SOCKET, SO_ERROR, (char*)&error, &len); if (error) { @@ -1709,7 +1717,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