From Mathias Froehlich, "This change makes the net plugin compile on hp-ux.
It tries to unify some partly ugly ifdefs in the socket classes. The change is also tested on a solaris 8, irix 6.5 and suse 9.0 machine."
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -64,10 +64,6 @@
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
|
||||
#if (defined(__APPLE__)&&(__GNUC__<4)) || (defined(WIN32)&&!defined(__CYGWIN__)) || defined (__sgi)
|
||||
typedef int socklen_t;
|
||||
#endif
|
||||
|
||||
#if defined(__CYGWIN__) || !defined(WIN32)
|
||||
extern "C" {
|
||||
# include <sys/time.h>
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user