Hi,
The problem is like this. In case of the ipx protocol you can select different ipx types of ipx packets. On linux there's an entry in the sockaddr_ipx struct in which you can change and further you can change it at the ipx socket level using that SOL_IPX stuff. I wasn't aware that this stuff doesn't exist on freebsd. Unfortunately I don't have any freebsd experience, so I don't know about the way to do it on your OS. I will try to find a solution, if none can be found I'm affraight we need some #ifdef stuff.
Thanks,
Roderick
On Thursday 09 September 2004 14:55, you wrote:
The following change
revision 1.155 date: 2004/09/07 20:47:03; author: julliard; state: Exp; lines: +113 -0 Roderick Colenbrander thunderbird2k@gmx.net
- set ipx packet type
- add support for retrieving some ipx info
breaks FreeBSD 4.10 quite a bit:
/sw/gcc-3.3.4/bin/gcc -c -I. -I. -I../../include -I../../include -D__WINESRC__ -DUSE_WS_PREFIX -D_REENTRANT -fPIC -Wall -pipe -mpreferred-stack-boundary=2 -fno-strict-aliasing -gstabs+ -Wpointer-arith -g -O2 -o socket.o socket.c socket.c: In function `WS2_send': socket.c:1120: error: `SOL_IPX' undeclared (first use in this function) socket.c:1120: error: (Each undeclared identifier is reported only once socket.c:1120: error: for each function it appears in.) socket.c:1120: error: `IPX_TYPE' undeclared (first use in this function) socket.c:1123: error: structure has no member named `sipx_type' socket.c: In function `WS_getsockopt': socket.c:1585: error: `SOL_IPX' undeclared (first use in this function) socket.c:1585: error: `IPX_TYPE' undeclared (first use in this function) socket.c: In function `WS_setsockopt': socket.c:2312: error: `SOL_IPX' undeclared (first use in this function) socket.c:2312: error: `IPX_TYPE' undeclared (first use in this function) gmake: *** [socket.o] Error 1
Concerning the error in socket.c, line 1120, SOL_IPX is not defined on FreeBSD 4.10, but there is a constant SOL_SOCKET which is supposed to be passed as the second parameter of getsockopt with the following description: "To manipulate options at the socket level, level is specified as SOL_SOCKET". Would that do the job?
Concerning the error in socket.c, line 1123, struct sockaddr_ipx looks as follows on FreeBSD 4.10:
struct sockaddr_ipx { u_char sipx_len; u_char sipx_family; struct ipx_addr sipx_addr; char sipx_zero[2]; };
Finally, I could not find anything remotely similiar to IPX_TYPE.
I hope this will allow you to fix this breakage? (To check for FreeBSD, you can use #ifdef __FreeBSD_...)
Thanks, Gerald