[kde-solaris] kdelibs/kdecore/network
Thiago Macieira
thiago.macieira at kdemail.net
Mon Aug 30 02:49:40 CEST 2004
CVS commit by thiago:
Committing some Solaris-specific fixes, provided by Christopher Layne.
The get{host,serv}by{name,number}_r functions in Solaris are different than
those found on Linux and other systems. And we need sys/filio.h for FIONREAD.
CCMAIL:kde-solaris at kde.org
M +24 -0 kresolver.cpp 1.34
M +6 -0 ksocketdevice.cpp 1.20
--- kdelibs/kdecore/network/kresolver.cpp #1.33:1.34
@@ -629,5 +629,9 @@ QStrList KResolver::protocolName(int pro
{
buf = new char[buflen];
+# ifdef USE_SOLARIS // Solaris uses a 4 argument getprotobynumber_r which returns struct *protoent or NULL
+ if ((pe = getprotobynumber_r(protonum, &protobuf, buf, buflen)) && (errno == ERANGE))
+# else
if (getprotobynumber_r(protonum, &protobuf, buf, buflen, &pe) == ERANGE)
+# endif
{
buflen += 1024;
@@ -671,5 +675,9 @@ QStrList KResolver::protocolName(const c
{
buf = new char[buflen];
+# ifdef USE_SOLARIS // Solaris uses a 4 argument getprotobyname_r which returns struct *protoent or NULL
+ if ((pe = getprotobyname_r(protoname, &protobuf, buf, buflen)) && (errno == ERANGE))
+# else
if (getprotobyname_r(protoname, &protobuf, buf, buflen, &pe) == ERANGE)
+# endif
{
buflen += 1024;
@@ -713,5 +721,9 @@ int KResolver::protocolNumber(const char
{
buf = new char[buflen];
+# ifdef USE_SOLARIS // Solaris uses a 4 argument getprotobyname_r which returns struct *protoent or NULL
+ if ((pe = getprotobyname_r(protoname, &protobuf, buf, buflen)) && (errno == ERANGE))
+# else
if (getprotobyname_r(protoname, &protobuf, buf, buflen, &pe) == ERANGE)
+# endif
{
buflen += 1024;
@@ -751,5 +763,9 @@ int KResolver::servicePort(const char *s
{
buf = new char[buflen];
+# ifdef USE_SOLARIS // Solaris uses a 5 argument getservbyname_r which returns struct *servent or NULL
+ if ((se = getservbyname_r(servname, protoname, &servbuf, buf, buflen)) && (errno == ERANGE))
+# else
if (getservbyname_r(servname, protoname, &servbuf, buf, buflen, &se) == ERANGE)
+# endif
{
buflen += 1024;
@@ -789,5 +805,9 @@ QStrList KResolver::serviceName(const ch
{
buf = new char[buflen];
+# ifdef USE_SOLARIS // Solaris uses a 5 argument getservbyname_r which returns struct *servent or NULL
+ if ((se = getservbyname_r(servname, protoname, &servbuf, buf, buflen)) && (errno == ERANGE))
+# else
if (getservbyname_r(servname, protoname, &servbuf, buf, buflen, &se) == ERANGE)
+# endif
{
buflen += 1024;
@@ -831,5 +851,9 @@ QStrList KResolver::serviceName(int port
{
buf = new char[buflen];
+# ifdef USE_SOLARIS // Solaris uses a 5 argument getservbyport_r which returns struct *servent or NULL
+ if ((se = getservbyport_r(port, protoname, &servbuf, buf, buflen)) && (errno == ERANGE))
+# else
if (getservbyport_r(port, protoname, &servbuf, buf, buflen, &se) == ERANGE)
+# endif
{
buflen += 1024;
--- kdelibs/kdecore/network/ksocketdevice.cpp #1.19:1.20
@@ -27,4 +27,7 @@
#include <qmap.h>
+#ifdef USE_SOLARIS
+# include <sys/filio.h>
+#endif
#include <sys/types.h>
#include <sys/socket.h>
@@ -54,4 +57,5 @@
#include "ksocketbase.h"
#include "ksocketdevice.h"
+#include "ksockssocketdevice.h"
using namespace KNetwork;
@@ -813,4 +817,6 @@ namespace
return device;
+ KSocksSocketDevice::initSocks();
+
if (defaultImplFactory)
return defaultImplFactory->create(parent);
More information about the kde-solaris
mailing list