chiark / gitweb /
networkd: print the received DHCPv4 address and gateway
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 9 Jan 2014 03:04:26 +0000 (22:04 -0500)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 9 Jan 2014 03:15:27 +0000 (22:15 -0500)
It seems that networkd stores in_addr.s_addr contents in reverse
order (little-endian, not network order). This is a bit confusing,
but sd_rtnl evidently likes this order.

src/network/networkd-link.c
src/network/networkd.h

index 2ed5e6b..3c683a0 100644 (file)
@@ -379,7 +379,19 @@ static void dhcp_handler(sd_dhcp_client *client, int event, void *userdata) {
                 _cleanup_address_free_ Address *addr = NULL;
                 _cleanup_route_free_ Route *rt = NULL;
 
-                log_link_info(link, "received config over DHCPv4");
+                log_struct_link(LOG_INFO, link,
+                                "MESSAGE=%s: DHCPv4 address %u.%u.%u.%u/%u via %u.%u.%u.%u",
+                                link->ifname,
+                                ADDRESS_FMT_VAL(address),
+                                prefixlen,
+                                ADDRESS_FMT_VAL(gateway),
+                                "ADDRESS=%u.%u.%u.%u",
+                                ADDRESS_FMT_VAL(address),
+                                "PREFIXLEN=%u",
+                                prefixlen,
+                                "GATEWAY=%u.%u.%u.%u",
+                                ADDRESS_FMT_VAL(gateway),
+                                NULL);
 
                 r = address_new_dynamic(&addr);
                 if (r < 0) {
index 9be9330..2da852f 100644 (file)
@@ -316,3 +316,8 @@ DEFINE_TRIVIAL_CLEANUP_FUNC(Link*, link_free);
 #define log_struct_bridge(level, bridge, ...) log_struct(level, "INTERFACE=%s", bridge->name, __VA_ARGS__)
 
 #define BRIDGE(bridge) "INTERFACE=%s", bridge->name
+#define ADDRESS_FMT_VAL(address)            \
+        (address).s_addr & 0xFF,            \
+        ((address).s_addr >> 8) & 0xFF,     \
+        ((address).s_addr >> 16) & 0xFF,    \
+        (address).s_addr >> 24