Hi,
Here are some patches which improve winsock's ipx support. Using these patches games C&C Tiberian Sun, Red Alert (v3.x) and Red Alert II work over a lan.
First patches 1 and 3 add a new ipx related header. Patch 1 is the new header I made and patch 3 contains some extra structs submitted by vincent beron.
Patch 2 adds various missing pieces to the winsock code. For one of the new pieces of code a new wineserver call was required. In short the problem is that the way in which you can set the ipx packet type is different. On linux you can change the ipx packet type by setting an attribute of the linux ipx sockaddr structure. On windows it is changed using (WS_)setsockopt. The attribute that exists in the linux sockaddr structure doesn't exist on windows.
In our winsock dll all winsock structures are in the end converted to their linux equivalent. When we receive a request to change the ipx packet type we only have access to the winsock structure and because of this we can't change the packet type. (since it misses the attribute) To be able to get and set the packet type it needs to be stored in the wineserver. (Mike McCormack advised me this)
ChangeLog: - implement getsockopt/setsockopt's IPX_PTYPE, IPX_ADDRESS and IPX_MAD_ADAPATER_NUM
Roderick Colenbrander