Hi,
Currently I don't have access to the machine I use for wine stuff, so I haven't been able to create a real patch. Anyway I'll try to assist you fixing the problem as it isn't that difficult to fix.
There are three places that break Wine on FreeBSD: - WS2_Send - WS_getsockopt - WS_setsockopt
First the code in ws2_send isn't relevant to FreeBSD as the ipx sockaddr structures are different in case of Linux and FreeBSD. Just add #ifdefs or whatever Alexandre likes the most.
Next there are the WS_getsockopt/setsockopt functions. In the getsockopt fuction we need to retrieve the ipx packet type and we do the opposite in setsockopt. The code that you need to place in both functions looks something like this:
//getsockopt code struct ipx val; getsockopt(fd, 0, SO_DEFAULT_HEADERS, &val, sizeof(struct ipx)); *opt_val = (int)val.ipx_pt;
//setsockopt code struct ipx val; (perhaps we should retrieve this one using a getsockopt call and then we set modified one) val.ipx_pt = *opt_val; setsockopt(fd, 0, SO_DEFAULT_HEADERS, &val, sizeof(struct ipx)); *opt_val = (int)val.ipx_pt;
I hope this helps.
Roderick
On Saturday 11 September 2004 19:36, Gerald Pfeifer wrote:
On Thu, 9 Sep 2004, Roderick Colenbrander wrote:
I made some more progress with the fix but I'm not fully sure how it works. I checked the freebsd source code to figure out how it works. Compared to the linux source the code was very complicated as in linux there's a special ipx setsockopt option and so on. [...] Perhaps you can try to build a fix as I don't have access to any FreeBSD box and can't test the patch. Note that in the function ws2_send we don't need to retrieve the ipx packet type as that won't be needed for freebsd as the linux/freebsd ipx sockaddr structure is different.
The problem is, I don't know anything about IPX in general nor IPX on Windows or FreeBSD :-(, else I really would have tried to fix this.
(This is why I tried to describe the FreeBSD situation as far as I could find out from an installation in my original message.)
If you could provide a prototype path, I'd be most happy to give it a try and will also try to tweak it as good as I can, if needed.
Gerald