1. has been reported before, but no fix yet (See the proposal
made by David Faure).
2. Should be fixed by tomorrow
3. Do not know.
>To get kdenetwork compiling I had to change those things:
>1.
>kdenetwork/keystone/qsocketdevice_unix.cpp
> #define SOCKLEN_T socklen_t
> ->
> #define SOCKLEN_T int
>Here there is the ifdef
>#if defined(_XOPEN_UNIX)
>but my system (solaris 2.6) defines _XOPEN_UNIX and
>has NOT got a socklen_t definition...
>2.
>kdenetwork/knode/knprotocolclient.cpp
> if (inet_aton(account.server(),&address)) {
> ->
> if (true) {
>Not every machine has inet_aton
>would be nice if there was a configure-test
>3.
> if (getsockopt(tcpSocket,SOL_SOCKET,SO_ERROR,&err,&len)!=0) {
> ->
> if (getsockopt(tcpSocket,SOL_SOCKET,SO_ERROR,(char *)&err,&len)!=0) {
>On my machine the 4. parameter is char * and the compiler
>(gcc 2.95.2) complains here...
>hope that can be fixed
>see ya,
> Manuel
>socklen_t should be removed, all those ifdefs should be removed, and
>ksize_t should be used instead. The configure check defines it to whatever
>it should be defined to.
> > Hi,
> > I have a compilation error for the module keystone in the package
> > kdenetwork.
> > It's after today's cvs update, but I don't know when the problem
>appeared.
> > I compile on an sun solaris 2.6.
> > g++ -DHAVE_CONFIG_H -I. -I. -I.. -I/home/rbos/mydt/kde/cvs/include
> > -I/home/rbos/mydt/kde/cvs/qt-copy/include -I/usr/openwin/include
> > -I/home/rbos/mydt/include -I/home/rbos/mydt/include
>-L/home/rbos/mydt/lib
> > -O2 -fno-exceptions -fno-rtti -fno-check-new -Wall -pedantic -W
> > -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -Wno-long-long
> > -fno-builtin -c qsocketdevice_unix.cpp
> > qsocketdevice_unix.cpp: In method `int
> > QSocketDevice::option(QSocketDevice::Option) const':
> > qsocketdevice_unix.cpp:336: `socklen_t' undeclared (first use this
>function)
> > qsocketdevice_unix.cpp:336: (Each undeclared identifier is reported only
> > once
> > qsocketdevice_unix.cpp:336: for each function it appears in.)
> > qsocketdevice_unix.cpp:336: parse error before `='
> > qsocketdevice_unix.cpp:337: `len' undeclared (first use this function)
> > qsocketdevice_unix.cpp: In method `int QSocketDevice::accept()':
> > qsocketdevice_unix.cpp:674: `socklen_t' undeclared (first use this
>function)
> > qsocketdevice_unix.cpp:674: parse error before `='
> > qsocketdevice_unix.cpp:675: `l' undeclared (first use this function)
> > qsocketdevice_unix.cpp: In method `int QSocketDevice::readBlock(char *,
> > unsigned int)':
> > qsocketdevice_unix.cpp:815: `socklen_t' undeclared (first use this
>function)
> > qsocketdevice_unix.cpp:815: parse error before `;'
> > qsocketdevice_unix.cpp:816: `sz' undeclared (first use this function)
> > qsocketdevice_unix.cpp: In method `void
> > QSocketDevice::fetchConnectionParameters()':
> > qsocketdevice_unix.cpp:1040: parse error before `;'
> > qsocketdevice_unix.cpp: At top level:
> > qsocketdevice_unix.cpp:110: warning: `void cleanupWinSock()' defined but
>not
> > used
> > make: *** [qsocketdevice_unix.o] Error 1
> > This doesn't look promising as the comment says;
> > 80 #if defined(SOCKLEN_T)
> > 81 #undef SOCKLEN_T
> > 82 #endif
> > 83
> > 84 #if defined(_XOPEN_UNIX)
> > 85
> > 86 // new linux, at least
> > 87 #define SOCKLEN_T socklen_t
> > 88
> > 89 #else
> > 90
> > 91 // caldera 1.3, for example... probably all linux-libc5 systems
> > 92 #define SOCKLEN_T int
> > 93
> > 94 #endif
> > <snip>some piece of comment misses, but that said something
> > like; this will become a real mess, as it is not clear what
> > the value of SOCKLEN must be</snip>
> > One of the lines that report the error is;
> > 335 if ( n != -1 ) {
> > 336 SOCKLEN_T len = sizeof(v);
> > 337 int r = ::getsockopt( fd, SOL_SOCKET, n, (char*)&v, &len
>);
> > Configure says the following about "sock"
> > configure:4235: checking for the third argument of getsockname
> > configure:4553: checking for connect in -lsocket
> > configure:6724: checking for socket
> To get kdenetwork compiling I had to change those things:
> 1.
> kdenetwork/keystone/qsocketdevice_unix.cpp
> #define SOCKLEN_T socklen_t
> ->
> #define SOCKLEN_T int
> Here there is the ifdef
> #if defined(_XOPEN_UNIX)
> but my system (solaris 2.6) defines _XOPEN_UNIX and
> has NOT got a socklen_t definition...
> 2.
> kdenetwork/knode/knprotocolclient.cpp
> if (inet_aton(account.server(),&address)) {
> ->
> if (true) {
> Not every machine has inet_aton
> would be nice if there was a configure-test
> 3.
> if (getsockopt(tcpSocket,SOL_SOCKET,SO_ERROR,&err,&len)!=0) {
> ->
> if (getsockopt(tcpSocket,SOL_SOCKET,SO_ERROR,(char *)&err,&len)!=0) {
> On my machine the 4. parameter is char * and the compiler
> (gcc 2.95.2) complains here...
> hope that can be fixed
> see ya,
> Manuel