diff --git a/src/osgPlugins/net/sockinet.cpp b/src/osgPlugins/net/sockinet.cpp index 9b788486f..4ba986e92 100644 --- a/src/osgPlugins/net/sockinet.cpp +++ b/src/osgPlugins/net/sockinet.cpp @@ -34,9 +34,6 @@ // The constructors of isockinet, osockinet and iosockinet are changed. #include "sockinet.h" -#if defined( __APPLE__ ) && ( __GNUC__ < 4 ) -typedef int socklen_t; -#endif #if defined(__CYGWIN__) || !defined(WIN32) extern "C" { @@ -53,7 +50,6 @@ extern "C" { } #else -# define socklen_t int # define EADDRNOTAVAIL WSAEADDRNOTAVAIL # define EADDRINUSE WSAEADDRINUSE # define ENOPROTOOPT WSAENOPROTOOPT @@ -63,6 +59,12 @@ extern "C" { #define INADDR_NONE ((in_addr_t) 0xffffffff) #endif +// Do not include anything below that define. That should in no case change any forward decls in +// system headers ... +#if (defined(__APPLE__)&&(__GNUC__<4)) || (defined(WIN32)&&!defined(__CYGWIN__)) || !defined(_XOPEN_SOURCE_EXTENDED) +#define socklen_t int +#endif + void herror(const char*); sockinetaddr::sockinetaddr () @@ -162,13 +164,8 @@ sockinetbuf::sockinetbuf(sockbuf::type ty, int proto) sockinetaddr sockinetbuf::localaddr() const { sockinetaddr sin; - int len = sin.size(); -#ifdef __sgi - if (::getsockname(rep->sock, sin.addr (), (int *) // LN -#else - if (::getsockname(rep->sock, sin.addr (), (socklen_t*) // LN -#endif - &len) == -1) + socklen_t len = sin.size(); + if (::getsockname(rep->sock, sin.addr (), &len) == -1) throw sockerr (errno, "sockinetbuf::localaddr"); return sin; } @@ -190,13 +187,8 @@ const char* sockinetbuf::localhost() const sockinetaddr sockinetbuf::peeraddr() const { sockinetaddr sin; - int len = sin.size(); -#ifdef __sgi - if (::getpeername(rep->sock, sin.addr (), (int *) // LN -#else - if (::getpeername(rep->sock, sin.addr (), (socklen_t*) // LN -#endif - &len) == -1) + socklen_t len = sin.size(); + if (::getpeername(rep->sock, sin.addr (), &len) == -1) throw sockerr (errno, "sockinetbuf::peeraddr"); return sin; } diff --git a/src/osgPlugins/net/sockstream.cpp b/src/osgPlugins/net/sockstream.cpp index 0b4f782d1..0a20cfe88 100644 --- a/src/osgPlugins/net/sockstream.cpp +++ b/src/osgPlugins/net/sockstream.cpp @@ -64,10 +64,6 @@ #include #include -#if (defined(__APPLE__)&&(__GNUC__<4)) || (defined(WIN32)&&!defined(__CYGWIN__)) || defined (__sgi) -typedef int socklen_t; -#endif - #if defined(__CYGWIN__) || !defined(WIN32) extern "C" { # include @@ -140,6 +136,12 @@ extern "C" { #endif #define FD_ZERO(p) (memset ((p), 0, sizeof *(p))) +// Do not include anything below that define. That should in no case change any forward decls in +// system headers ... +#if (defined(__APPLE__)&&(__GNUC__<4)) || (defined(WIN32)&&!defined(__CYGWIN__)) || !defined(_XOPEN_SOURCE_EXTENDED) +#define socklen_t int +#endif + const char* sockerr::errstr () const { #if defined(__CYGWIN__) || !defined(WIN32) @@ -558,11 +560,10 @@ int sockbuf::recvfrom (sockAddr& sa, void* buf, int len, int msgf) throw sockoob (); int rval = 0; - int __sa_len = sa.size (); - + socklen_t __sa_len = sa.size (); + if ((rval = ::recvfrom (rep->sock, (char*) buf, len, - msgf, sa.addr (), (socklen_t*) // LN - &__sa_len)) == -1) + msgf, sa.addr (), &__sa_len)) == -1) throw sockerr (errno, "sockbuf::recvfrom", sockname.c_str()); return rval; } @@ -729,8 +730,8 @@ void sockbuf::shutdown (shuthow sh) int sockbuf::getopt (int op, void* buf, int len, int level) const { - if (::getsockopt (rep->sock, level, op, (char*) buf, (socklen_t*) // LN - &len) == -1) + socklen_t salen = len; + if (::getsockopt (rep->sock, level, op, (char*) buf, &salen) == -1) throw sockerr (errno, "sockbuf::getopt", sockname.c_str()); return len; }