PATCH: files/smb.c -- portability

Gerald Pfeifer pfeifer at dbai.tuwien.ac.at
Wed Jan 22 16:07:30 CST 2003


A struct sockaddr is simply not the same as a struct sockaddr_in, even
if they _start_ the same.

Tested on SuSE Linux 8.1 and FreeBSD 4.7 (where without this patch we
get warnings).

Gerald


ChangeLog:
Properly cast struct sockaddr_in* to struct sockaddr* where needed.

Index: smb.c
===================================================================
RCS file: /home/wine/wine/files/smb.c,v
retrieving revision 1.13
diff -u -3 -p -r1.13 smb.c
--- smb.c	21 Nov 2002 03:45:03 -0000	1.13
+++ smb.c	22 Jan 2003 22:04:26 -0000
@@ -236,7 +236,7 @@ static BOOL NB_Lookup(LPCSTR host, struc
     if(len<=0)
         goto err;

-    r = sendto(fd, buffer, len, 0, &sin, sizeof sin);
+    r = sendto(fd, buffer, len, 0, (struct sockaddr*)&sin, sizeof sin);
     if(r<0)
     {
         FIXME("Error sending packet\n");
@@ -257,7 +257,7 @@ static BOOL NB_Lookup(LPCSTR host, struc
     TRACE("Got response!\n");

     fromsize = sizeof (fromaddr);
-    r = recvfrom(fd, buffer, sizeof buffer, 0, &fromaddr, &fromsize);
+    r = recvfrom(fd, buffer, sizeof buffer, 0, (struct sockaddr*)&fromaddr, &fromsize);
     if(r<0)
         goto err;

@@ -1327,7 +1327,7 @@ connect:
         unsigned char *x = (unsigned char *)&sin.sin_addr;
         TRACE("Connecting to %d.%d.%d.%d ...\n", x[0],x[1],x[2],x[3]);
     }
-    r = connect(fd, &sin, sizeof sin);
+    r = connect(fd, (struct sockaddr*)&sin, sizeof sin);

     if(!NB_SessionReq(fd, "*SMBSERVER", "WINE"))
     {



More information about the wine-patches mailing list