[prev in list] [next in list] [prev in thread] [next in thread]
List: wine-devel
Subject: Re: wine-devel digest, Vol 1 #445 - 9 msgs
From: Francois Gouget <fgouget () free ! fr>
Date: 2001-08-30 16:48:33
[Download RAW message or body]
On Thu, 30 Aug 2001, Robert Lunnon wrote:
> Attempt 2 :-)
>
>
> I am trying to get winsock to work under Solaris and need a little help.
>
> When connecting, the call to connect doesn't generate a syn packet as expected, The problem
> appears to be WSOCK32_socket, where the type of socket is passed as type 1 for a tcp service,
> as it turns out the Solaris header file defines SOCK_STREAM as 2 and SOCK_DGRAM as 1 which
> makes the subsequent call to connect succeed without establishing a connection because a UDP
> endpoint was created instead of a tcp one.
>
> Now to find out where SOCK_STREAM is getting defined as 1 :-/
I believe that the problem is that SOCK_STREAM==1 SOCK_DGRAM==2 on
windows and linux. So WSOCK32_socket assumed that the type parameter
does not need any conversion, which seems to be wrong on Solaris.
Try the attached patch.
--
Francois Gouget fgouget@free.fr http://fgouget.free.fr/
Demander si un ordinateur peut penser revient à demander
si un sous-marin peut nager.
["socket.diff" (TEXT/plain)]
Index: dlls/winsock/socket.c
===================================================================
RCS file: /home/wine/wine/dlls/winsock/socket.c,v
retrieving revision 1.59
diff -u -r1.59 socket.c
--- dlls/winsock/socket.c 2001/08/24 21:33:58 1.59
+++ dlls/winsock/socket.c 2001/08/30 15:39:11
@@ -2175,9 +2156,15 @@
/* check the socket type */
switch(type)
{
- case SOCK_STREAM:
- case SOCK_DGRAM:
- case SOCK_RAW: break;
+ case WS_SOCK_STREAM:
+ type=SOCK_STREAM;
+ break;
+ case WS_SOCK_DGRAM:
+ type=SOCK_STREAM;
+ break;
+ case WS_SOCK_RAW:
+ type=SOCK_STREAM;
+ break;
default: SetLastError(WSAESOCKTNOSUPPORT);
return INVALID_SOCKET;
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic