[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-bugs-dist
Subject: Bug#24996: [PATCH] Bunch'o Solaris fixes in kdenetwork/lanbrowsing/lisa
From: Rob Napier <rnapier () employees ! org>
Date: 2001-04-30 14:11:06
[Download RAW message or body]
Package: kdenetwork
Version: CVS
Whole bunch of problems in kdenetwork/lanbrowsing/lisa. Pleae look
this one over carefully. I do a lot of typecasting to make things
work. There are three basic problems:
* There is no inet_aton on Solaris. Use inet_addr.
* There is in INADDR_NONE on Solaris. I added a configure test to
define it (note the new
kdenetwork/lanbrowsing/lisa/configure.in.in that is also
attached)
* The forth parameter of setsockopt is void* on linux and int* on
Solaris. I added (void*) casting to fix this (see my other
patch earlier today).
Thanks,
Rob
? configure.in.in
Index: ipaddress.cpp
===================================================================
RCS file: /home/projects/kdecvs/cvsroot/kdenetwork/lanbrowsing/lisa/ipaddress.cpp,v
retrieving revision 1.2
diff -u -3 -p -r1.2 ipaddress.cpp
--- ipaddress.cpp 2001/02/15 00:33:33 1.2
+++ ipaddress.cpp 2001/04/25 20:11:08
@@ -70,16 +70,13 @@ MyString IPAddress::struct2String(struct
unsigned int IPAddress::string2Int(MyString ip)
{
- struct in_addr addr;
- inet_aton(ip.c_str(),&addr);
-// cout<<addr.s_addr<<endl;
- return ntohl(addr.s_addr);
+ return ntohl(inet_addr(ip.c_str()));
};
struct in_addr IPAddress::string2Struct(MyString ip)
{
struct in_addr tmp;
- inet_aton(ip.c_str(),&tmp);
+ tmp.s_addr = inet_addr(ip.c_str());
return tmp;
};
Index: main.cpp
===================================================================
RCS file: /home/projects/kdecvs/cvsroot/kdenetwork/lanbrowsing/lisa/main.cpp,v
retrieving revision 1.4
diff -u -3 -p -r1.4 main.cpp
--- main.cpp 2001/02/15 00:33:33 1.4
+++ main.cpp 2001/04/25 20:11:08
@@ -231,8 +231,10 @@ int main(int argc, char** argv)
};
int bufferSize(60*1024);
int on(1);
- setsockopt(rawSocket,SOL_SOCKET,SO_RCVBUF,&bufferSize,sizeof(bufferSize));
- int result=setsockopt(rawSocket, SOL_SOCKET, SO_BROADCAST,&on, sizeof(on));
+ setsockopt(rawSocket,SOL_SOCKET,SO_RCVBUF,(void *)&bufferSize,
+ sizeof(bufferSize));
+ int result=setsockopt(rawSocket, SOL_SOCKET, SO_BROADCAST,(void *)&on,
+ sizeof(on));
getDebug()<<"main(): setsockopt returns "<<result<<endl;
//dropping root privileges
//they will be regained once in the child process
Index: netmanager.cpp
===================================================================
RCS file: /home/projects/kdecvs/cvsroot/kdenetwork/lanbrowsing/lisa/netmanager.cpp,v
retrieving revision 1.5
diff -u -3 -p -r1.5 netmanager.cpp
--- netmanager.cpp 2001/02/15 00:33:33 1.5
+++ netmanager.cpp 2001/04/25 20:11:10
@@ -150,7 +150,8 @@ int NetManager::prepare()
serverAddress.sin_port = htons(m_basePort);
int on(1);
- result=setsockopt(m_listenFD, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));
+ result=setsockopt(m_listenFD, SOL_SOCKET, SO_REUSEADDR, (void *)&on,
+ sizeof(on));
if (result!=0)
{
cout<<"NetManager::prepare: setsockopt(SO_REUSEADDR) failed"<<endl;
@@ -770,7 +771,8 @@ void NetManager::enableServerServer(int
return;
};
int on(1);
- int result=setsockopt(m_bcFD, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));
+ int result=setsockopt(m_bcFD, SOL_SOCKET, SO_REUSEADDR, (void *)&on,
+ sizeof(on));
if (result!=0)
{
getDebug()<<"NetManager::enableServerServer: setsockopt(SO_REUSEADDR) failed"<<endl;
@@ -818,7 +820,8 @@ int NetManager::findServerServer()
int on(1);
//this is actually the only socket which will send broacasts
- int result=setsockopt(requestFD, SOL_SOCKET, SO_BROADCAST,&on, sizeof(on));
+ int result=setsockopt(requestFD, SOL_SOCKET, SO_BROADCAST, (void *)&on,
+ sizeof(on));
if (result!=0)
{
getDebug()<<"setsockopt(SO_BROADCAST) failed"<<endl;
@@ -836,7 +839,8 @@ int NetManager::findServerServer()
};
//since this socket will be bound, we have to set SO_REUSEADDR
- result=setsockopt(answerFD, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));
+ result=setsockopt(answerFD, SOL_SOCKET, SO_REUSEADDR, (void *)&on,
+ sizeof(on));
if (result!=0)
{
getDebug()<<"setsockopt(SO_REUSEADDR) failed"<<endl;
Index: netscanner.cpp
===================================================================
RCS file: /home/projects/kdecvs/cvsroot/kdenetwork/lanbrowsing/lisa/netscanner.cpp,v
retrieving revision 1.3
diff -u -3 -p -r1.3 netscanner.cpp
--- netscanner.cpp 2001/01/12 12:43:53 1.3
+++ netscanner.cpp 2001/04/25 20:11:11
@@ -426,7 +426,7 @@ void NetScanner::nmblookupScan(SimpleLis
sscanf(tmpBuf,"%s *<00>\n",tmpIP);
getDebug()<<"NetScanner::nmblookupScan: tmpIP: -"<<tmpIP<<"-"<<endl;
struct sockaddr_in addr;
- if (inet_aton(tmpIP,&addr.sin_addr))
+ if ((addr.sin_addr.s_addr = inet_addr(tmpIP)) != INADDR_NONE)
if (!hostAlreadyInList(addr.sin_addr.s_addr,newList))
{
if (validator.isValid(addr.sin_addr.s_addr))
@@ -482,7 +482,7 @@ void NetScanner::pingScan(SimpleList<Nod
FD_SET(m_rawSocketFD,&clearSet);
while(select(m_rawSocketFD,&clearSet,0,0,&tv1)>0)
{
- ::recvfrom(m_rawSocketFD,&receiveBuf,16*1024,0,0,0);
+ ::recvfrom(m_rawSocketFD,(void *)&receiveBuf,16*1024,0,0,0);
tv1.tv_sec = 0;
tv1.tv_usec = 0;
FD_ZERO(&clearSet);
@@ -552,7 +552,7 @@ void NetScanner::pingScan(SimpleList<Nod
//do
{
//getDebug()<<"** recvfrom...";
- received=recvfrom(m_rawSocketFD,&receiveBuf,16*1024,0,(sockaddr*)&fromAddr,&length);
+ received=recvfrom(m_rawSocketFD,(void *)&receiveBuf,16*1024,0,(sockaddr*)&fromAddr,&length);
//received=recvfrom(sockFD,&receiveBuf,1024,0,(sockaddr*)&fromAddr,&length);
//getDebug()<<" done ****"<<endl;
if (received!=-1)
Index: strictmain.cpp
===================================================================
RCS file: /home/projects/kdecvs/cvsroot/kdenetwork/lanbrowsing/lisa/strictmain.cpp,v
retrieving revision 1.3
diff -u -3 -p -r1.3 strictmain.cpp
--- strictmain.cpp 2001/01/12 12:43:53 1.3
+++ strictmain.cpp 2001/04/25 20:11:11
@@ -215,8 +215,10 @@ int main(int argc, char** argv)
};
int bufferSize(60*1024);
int on(1);
- setsockopt(rawSocket,SOL_SOCKET,SO_RCVBUF,&bufferSize,sizeof(bufferSize));
- int result=setsockopt(rawSocket, SOL_SOCKET, SO_BROADCAST,&on, sizeof(on));
+ setsockopt(rawSocket,SOL_SOCKET,SO_RCVBUF,(void *)&bufferSize,
+ sizeof(bufferSize));
+ int result=setsockopt(rawSocket, SOL_SOCKET, SO_BROADCAST,(void *)&on,
+ sizeof(on));
getDebug()<<"main(): setsockopt returns "<<result<<endl;
//dropping root privileges
//they will be regained once in the child process
dnl Check for INADDR_NONE
AC_CACHE_CHECK( [for INADDR_NONE],ac_cv_decl_inaddr_none,[
AC_EGREP_HEADER(INADDR_NONE, netinet/in.h,
ac_cv_decl_inaddr_none="yes",
ac_cv_decl_inaddr_none="no"
)
])
if test $ac_cv_decl_inaddr_none = "no"; then
AC_DEFINE(INADDR_NONE, (in_addr_t)-1, [inet_addr's error return])
fi
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic