CVS: winex/dlls/winsock socket.c,1.48,1.49

[email protected] 31 Jul 2007 19:51:00 -0000
Newsgroups gmane.comp.emulators.winex.cvs
Message-ID <[email protected]>
Subject: winex/dlls/winsock socket.c,1.48,1.49Update of /var/lib/cvsd/cvsroot/winex/dlls/winsock
In directory agravaine:/tmp/cvs-serv1171/dlls/winsock

Modified Files:
	socket.c 
Log Message:

- ensure "unused" parts of sockaddr_in are zero'd out
- couple of warning fixes



Index: socket.c
===================================================================
RCS file: /var/lib/cvsd/cvsroot/winex/dlls/winsock/socket.c,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -d -r1.48 -r1.49
--- socket.c	31 Jul 2007 18:02:29 -0000	1.48
+++ socket.c	31 Jul 2007 19:50:58 -0000	1.49
@@ -958,6 +958,28 @@
         }
 #endif
 
+       case WS_AF_INET: {
+          struct sockaddr_in *sin;
+          const struct WS_sockaddr_in *wsin =
+             (const struct WS_sockaddr_in *)wsaddr;
+
+          if (wsaddrlen < sizeof (struct WS_sockaddr_in))
+             return NULL;
+
+          *uaddrlen = sizeof (struct sockaddr_in);
+          sin = HeapAlloc (GetProcessHeap (), HEAP_ZERO_MEMORY, *uaddrlen);
+          if (!sin)
+             return NULL;
+
+          sin->sin_family = AF_INET;
+          sin->sin_port = wsin->sin_port;
+          memcpy (&sin->sin_addr, &wsin->sin_addr, 4);
+#ifdef HAVE_STRUCT_SOCKADDR_SA_LEN
+          sin->sin_len = *uaddrlen;
+#endif
+          return (struct sockaddr *)sin;
+       }
+
     default:
         if (wsaddrlen<sizeof(struct WS_sockaddr))
             return NULL;
@@ -1232,7 +1254,8 @@
         dump_sockaddr (lpFrom);
 
         hdr.msg_namelen = *lpFromlen;
-        hdr.msg_name = ws_sockaddr_alloc ( lpFrom, lpFromlen, &hdr.msg_namelen );
+        hdr.msg_name = ws_sockaddr_alloc ( lpFrom, lpFromlen,
+                                           (int *)&hdr.msg_namelen );
         if ( !hdr.msg_name )
         {
             WSASetLastError ( WSAEFAULT );
@@ -1343,7 +1366,8 @@
     {
         dump_sockaddr (to);
 
-        hdr.msg_name = (struct sockaddr*) ws_sockaddr_ws2u ( to, tolen, &hdr.msg_namelen );
+        hdr.msg_name = (struct sockaddr*) ws_sockaddr_ws2u ( to, tolen,
+                                                             (int *)&hdr.msg_namelen );
         if ( !hdr.msg_name )
         {
             WSASetLastError ( WSAEFAULT );
@@ -1779,9 +1803,9 @@
     if (fd != -1)
     {
         struct sockaddr* uaddr;
-        int uaddrlen;
+        socklen_t uaddrlen;
 
-        uaddr=ws_sockaddr_alloc(name,namelen,&uaddrlen);
+        uaddr=ws_sockaddr_alloc(name,namelen,(int *)&uaddrlen);
         if (getpeername(fd, uaddr, &uaddrlen) != 0)
         {
             SetLastError(wsaErrno());
@@ -1842,9 +1866,9 @@
 
     if (fd != -1)
     {        struct sockaddr* uaddr;
-        int uaddrlen;
+        socklen_t uaddrlen;
 
-        uaddr=ws_sockaddr_alloc(name,namelen,&uaddrlen);
+        uaddr=ws_sockaddr_alloc(name,namelen,(int *)&uaddrlen);
         if (getsockname(fd, uaddr, &uaddrlen) != 0)
         {
             SetLastError(wsaErrno());
@@ -1918,7 +1942,8 @@
 	if (!convert_sockopt(&level, &optname)) {
 	    SetLastError(WSAENOPROTOOPT);	/* Unknown option */
         } else {
-	    if (getsockopt(fd, (int) level, optname, optval, optlen) == 0 )
+           if (getsockopt(fd, (int) level, optname, optval,
+                          (socklen_t *)optlen) == 0 )
 	    {
 		close(fd);
 		return 0;