chiark / gitweb /
socket-util: introduce in_addr_union similar to sockaddr_union and make use of it...
authorLennart Poettering <lennart@poettering.net>
Wed, 18 Jun 2014 10:34:02 +0000 (12:34 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 18 Jun 2014 16:28:29 +0000 (18:28 +0200)
src/libsystemd/sd-rtnl/test-rtnl.c
src/network/networkd.h
src/shared/socket-util.h

index 78f5cca665dc848a106fdee52734236aaea3b30c..e6ba08e076b122c692d98f357f80ea0595848ddb 100644 (file)
@@ -20,6 +20,7 @@
 ***/
 
 #include <netinet/ether.h>
+#include <net/if.h>
 
 #include "util.h"
 #include "macro.h"
index 3b081d52761a1d400ee6052ea5b615f6d9dc77b0..308be832e16fe3cee7d41ebf6f3e26d0635358ba 100644 (file)
@@ -36,6 +36,7 @@
 #include "list.h"
 #include "set.h"
 #include "condition-util.h"
+#include "socket-util.h"
 
 #define CACHE_INFO_INFINITY_LIFE_TIME 0xFFFFFFFFU
 #define VXLAN_VID_MAX (1u << 24) - 1
@@ -184,10 +185,7 @@ struct Address {
         struct in_addr broadcast;
         struct ifa_cacheinfo cinfo;
 
-        union {
-                struct in_addr in;
-                struct in6_addr in6;
-        } in_addr;
+        union in_addr_union in_addr;
 
         LIST_FIELDS(Address, addresses);
 };
@@ -201,15 +199,8 @@ struct Route {
         unsigned char scope;
         uint32_t metrics;
 
-        union {
-                struct in_addr in;
-                struct in6_addr in6;
-        } in_addr;
-
-        union {
-                struct in_addr in;
-                struct in6_addr in6;
-        } dst_addr;
+        union in_addr_union in_addr;
+        union in_addr_union dst_addr;
 
         LIST_FIELDS(Route, routes);
 };
index f938f86200c55da82003c5809d08021530d8e2c9..d125fca83feea91526f85a7a68458876cbc31763 100644 (file)
@@ -24,7 +24,6 @@
 #include <sys/socket.h>
 #include <netinet/in.h>
 #include <sys/un.h>
-#include <net/if.h>
 #include <asm/types.h>
 #include <linux/netlink.h>
 #include <linux/if_packet.h>
@@ -42,6 +41,11 @@ union sockaddr_union {
         struct sockaddr_ll ll;
 };
 
+union in_addr_union {
+        struct in_addr in;
+        struct in6_addr in6;
+};
+
 typedef struct SocketAddress {
         union sockaddr_union sockaddr;