bug 552: build with gcc 4.4
authorMathieu Lacage <mathieu.lacage@sophia.inria.fr>
Fri, 17 Apr 2009 15:22:41 +0200
changeset 4353 596eb8034443
parent 4352 6095f91e6a64
child 4355 1f04a2c4fddb
bug 552: build with gcc 4.4
src/core/log.h
src/devices/emu/emu-encode-decode.cc
src/devices/tap-bridge/tap-creator.cc
src/devices/tap-bridge/tap-encode-decode.cc
--- a/src/core/log.h	Fri Apr 17 14:06:51 2009 +0200
+++ b/src/core/log.h	Fri Apr 17 15:22:41 2009 +0200
@@ -23,6 +23,7 @@
 
 #include <string>
 #include <iostream>
+#include <stdint.h>
 
 namespace ns3 {
 
--- a/src/devices/emu/emu-encode-decode.cc	Fri Apr 17 14:06:51 2009 +0200
+++ b/src/devices/emu/emu-encode-decode.cc	Fri Apr 17 15:22:41 2009 +0200
@@ -20,6 +20,7 @@
 #include <iostream>
 #include <iomanip>
 #include <sstream>
+#include <stdint.h>
 
 namespace ns3 {
 
--- a/src/devices/tap-bridge/tap-creator.cc	Fri Apr 17 14:06:51 2009 +0200
+++ b/src/devices/tap-bridge/tap-creator.cc	Fri Apr 17 15:22:41 2009 +0200
@@ -138,13 +138,17 @@
     }
 }
 
-static void
-SetInetAddress (sockaddr *ad, uint32_t networkOrder)
+static sockaddr
+CreateInetAddress (uint32_t networkOrder)
 {
-  struct sockaddr_in *sin = (struct sockaddr_in*)ad;
-  sin->sin_family = AF_INET;
-  sin->sin_port = 0; // unused
-  sin->sin_addr.s_addr = htonl (networkOrder);
+  union {
+    struct sockaddr any_socket;
+    struct sockaddr_in si;
+  } s;
+  s.si.sin_family = AF_INET;
+  s.si.sin_port = 0; // unused
+  s.si.sin_addr.s_addr = htonl (networkOrder);
+  return s.any_socket;
 }
 
   static void
@@ -330,7 +334,7 @@
   //
   // Set the IP address of the new interface/device.
   //
-  SetInetAddress (&ifr.ifr_addr, AsciiToIpv4 (ip));
+  ifr.ifr_addr = CreateInetAddress (AsciiToIpv4 (ip));
   status = ioctl (fd, SIOCSIFADDR, &ifr);
   ABORT_IF (status == -1, "Could not set IP address", true);
   LOG ("Set device IP address to " << ip);
@@ -338,7 +342,7 @@
   //
   // Set the net mask of the new interface/device
   //
-  SetInetAddress (&ifr.ifr_netmask, AsciiToIpv4 (netmask));
+  ifr.ifr_netmask = CreateInetAddress (AsciiToIpv4 (netmask));
   status = ioctl (fd, SIOCSIFNETMASK, &ifr);
   ABORT_IF (status == -1, "Could not set net mask", true);
   LOG ("Set device Net Mask to " << netmask);
--- a/src/devices/tap-bridge/tap-encode-decode.cc	Fri Apr 17 14:06:51 2009 +0200
+++ b/src/devices/tap-bridge/tap-encode-decode.cc	Fri Apr 17 15:22:41 2009 +0200
@@ -20,6 +20,7 @@
 #include <iostream>
 #include <iomanip>
 #include <sstream>
+#include <stdint.h>
 
 namespace ns3 {