gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r11479 - gnunet/src/transport


From: gnunet
Subject: [GNUnet-SVN] r11479 - gnunet/src/transport
Date: Fri, 21 May 2010 12:35:50 +0200

Author: grothoff
Date: 2010-05-21 12:35:50 +0200 (Fri, 21 May 2010)
New Revision: 11479

Modified:
   gnunet/src/transport/plugin_transport_tcp.c
   gnunet/src/transport/plugin_transport_udp.c
Log:
more FBSD fixes

Modified: gnunet/src/transport/plugin_transport_tcp.c
===================================================================
--- gnunet/src/transport/plugin_transport_tcp.c 2010-05-21 10:25:32 UTC (rev 
11478)
+++ gnunet/src/transport/plugin_transport_tcp.c 2010-05-21 10:35:50 UTC (rev 
11479)
@@ -856,9 +856,9 @@
 #endif
          a6.sin6_family = AF_INET6;
          a6.sin6_port = t6->t6_port;
-         memcpy (a6.sin6_addr.s6_addr,
+         memcpy (&a6.sin6_addr,
                  &t6->ipv6_addr,
-                 16);      
+                 sizeof (struct in6_addr));      
          sb = &a6;
          sbs = sizeof (a6);
        }
@@ -1085,9 +1085,9 @@
       memset (&a6, 0, sizeof (a6));
       a6.sin6_family = AF_INET6;
       a6.sin6_port = t6->t6_port;
-      memcpy (a6.sin6_addr.s6_addr,
+      memcpy (&a6.sin6_addr,
              &t6->ipv6_addr,
-             16);      
+             sizeof (struct in6_addr));      
       port = ntohs (t6->t6_port);
       sb = &a6;
       sbs = sizeof (a6);
@@ -1254,8 +1254,8 @@
              t6 = GNUNET_malloc (sizeof (struct IPv6TcpAddress));
              t6->t6_port = s6->sin6_port;
              memcpy (&t6->ipv6_addr,
-                     s6->sin6_addr.s6_addr,
-                     16);
+                     &s6->sin6_addr,
+                     sizeof (struct in6_addr));
              session->connect_addr = t6;
              session->connect_alen = sizeof (struct IPv6TcpAddress);
            }
@@ -1451,14 +1451,14 @@
     }
   else if (af == AF_INET6)
     {
-      if (IN6_IS_ADDR_LINKLOCAL (((struct sockaddr_in6 *) 
addr)->sin6_addr.s6_addr))
+      if (IN6_IS_ADDR_LINKLOCAL (&((struct sockaddr_in6 *) addr)->sin6_addr))
        {
          /* skip link local addresses */
          return GNUNET_OK;
        }
       memcpy (&t6.ipv6_addr,
-             ((struct sockaddr_in6 *) addr)->sin6_addr.s6_addr,
-             16);
+             &((struct sockaddr_in6 *) addr)->sin6_addr,
+             sizeof (struct in6_addr));
       t6.t6_port = htons (plugin->adv_port);
       arg = &t6;
       args = sizeof (t6);

Modified: gnunet/src/transport/plugin_transport_udp.c
===================================================================
--- gnunet/src/transport/plugin_transport_udp.c 2010-05-21 10:25:32 UTC (rev 
11478)
+++ gnunet/src/transport/plugin_transport_udp.c 2010-05-21 10:35:50 UTC (rev 
11479)
@@ -295,9 +295,9 @@
 #endif
       a6.sin6_family = AF_INET6;
       a6.sin6_port = t6->u6_port;
-      memcpy (a6.sin6_addr.s6_addr,
+      memcpy (&a6.sin6_addr,
              &t6->ipv6_addr,
-             16);      
+             sizeof (struct in6_addr));      
       sb = &a6;
       sbs = sizeof (a6);
     }
@@ -380,9 +380,14 @@
     }
   else if (af == AF_INET6)
     {
+      if (IN6_IS_ADDR_LINKLOCAL (&((struct sockaddr_in6 *) addr)->sin6_addr))
+       {
+         /* skip link local addresses */
+         return GNUNET_OK;
+       }
       memcpy (&t6.ipv6_addr,
-             ((struct sockaddr_in6 *) addr)->sin6_addr.s6_addr,
-             16);
+             &((struct sockaddr_in6 *) addr)->sin6_addr,
+             sizeof (struct in6_addr));
       t6.u6_port = htons (plugin->adv_port);
       arg = &t6;
       args = sizeof (t6);
@@ -541,8 +546,8 @@
        s6 = (const struct sockaddr_in6*) &addr;
        t6.u6_port = s6->sin6_port;
        memcpy (&t6.ipv6_addr,
-               s6->sin6_addr.s6_addr,
-               16);
+               &s6->sin6_addr,
+               sizeof (struct in6_addr));
        ca = &t6;
        calen = sizeof (struct IPv6UdpAddress);
       }
@@ -714,6 +719,11 @@
   else
     {
       v6 = (struct IPv6UdpAddress *) addr;
+      if (IN6_IS_ADDR_LINKLOCAL (&v6->ipv6_addr))
+       {
+         GNUNET_break_op (0);
+         return GNUNET_SYSERR;
+       }
       v6->u6_port = htons (check_port (plugin, ntohs (v6->u6_port)));
     }
   return GNUNET_OK;
@@ -782,9 +792,9 @@
       a6.sin6_family = AF_INET6;
       a6.sin6_port = t6->u6_port;
       port = ntohs (t6->u6_port);
-      memcpy (a6.sin6_addr.s6_addr,
+      memcpy (&a6.sin6_addr,
              &t6->ipv6_addr,
-             16);      
+             sizeof (struct in6_addr));      
       sb = &a6;
       sbs = sizeof (a6);
     }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]