[systemd-commits] 2 commits - TODO src/network

Lennart Poettering lennart at kemper.freedesktop.org
Wed Feb 11 03:59:16 PST 2015


 TODO                        |    2 ++
 src/network/networkd-link.h |   12 +++++++-----
 2 files changed, 9 insertions(+), 5 deletions(-)

New commits:
commit f93b36affa5ac5710cd84bfb8ff0dafabe99fbf1
Author: Lennart Poettering <lennart at poettering.net>
Date:   Wed Feb 11 12:57:08 2015 +0100

    Update TODO

diff --git a/TODO b/TODO
index fba051d..883b994 100644
--- a/TODO
+++ b/TODO
@@ -38,6 +38,8 @@ Before 219:
 
 Features:
 
+* assign MESSAGE_ID to log messages about failed services
+
 * coredump: make the handler check /proc/$PID/rlimits for RLIMIT_CORE,
   and supress coredump if turned off. Then change RLIMIT_CORE to
   infinity by default for all services. This then allows per-service

commit 804319344bb9cab47532a9584f3e4383d53ea880
Author: Paul Martin <paul.martin at codethink.co.uk>
Date:   Wed Feb 11 11:50:28 2015 +0000

    networkd DHCPv4 logging endian fix
    
    On Tue, Feb 10, 2015 at 08:10:43PM +0100, Lennart Poettering wrote:
    
    > Hmm, I think it would be nicer to use be32toh() here instead, since it
    > ensures the macro is (to a limited degree) typesafe.
    >
    > Any chance you could rework that?
    
    From: Paul Martin <paul.martin at codethink.co.uk>
    Date: Wed, 11 Feb 2015 11:47:16 +0000
    Subject: [PATCH] networkd dhcpv4 logging endian fix
    
    On a big-endian host, systemd-networkd prints out IPv4 network
    addresses byte reversed:
    
    Feb 10 16:43:32 hostname systemd-networkd[151]: eth0 : DHCPv4 address 158.1.24.10/16 via 1.1.24.10
    
    The address obtained is 10.24.1.158/16 and the route is
    
      10.24.0.0/16 dev eth0  src 10.24.1.187
    
    The macro ADDRESS_FMT_VAL() unpacks a "struct in_addr" in a
    little-endian specific manner.
    
    This patch forces the passed address into host order, then unpacks it.
    
    On an x86 later than i486, compiled with -O2, the only extra overhead
    is a single bswap instruction.

diff --git a/src/network/networkd-link.h b/src/network/networkd-link.h
index 449dbc8..cec158e 100644
--- a/src/network/networkd-link.h
+++ b/src/network/networkd-link.h
@@ -21,6 +21,8 @@
 
 #pragma once
 
+#include <endian.h>
+
 #include "networkd.h"
 
 typedef enum LinkState {
@@ -152,8 +154,8 @@ DEFINE_TRIVIAL_CLEANUP_FUNC(Link*, link_unref);
 
 #define log_link_struct(link, level, ...) log_struct(level, "INTERFACE=%s", link->ifname, __VA_ARGS__)
 
-#define ADDRESS_FMT_VAL(address)            \
-        (address).s_addr & 0xFF,            \
-        ((address).s_addr >> 8) & 0xFF,     \
-        ((address).s_addr >> 16) & 0xFF,    \
-        (address).s_addr >> 24
+#define ADDRESS_FMT_VAL(address)                   \
+        be32toh((address).s_addr) >> 24,           \
+        (be32toh((address).s_addr) >> 16) & 0xFFu, \
+        (be32toh((address).s_addr) >> 8) & 0xFFu,  \
+        be32toh((address).s_addr) & 0xFFu



More information about the systemd-commits mailing list