diff options
author | Tom Gundersen <teg@jklm.no> | 2013-12-15 14:00:20 +0100 |
---|---|---|
committer | Tom Gundersen <teg@jklm.no> | 2013-12-16 17:28:18 +0100 |
commit | 0a0dc69b655cfb10cab39133f5d521e7b35ce3d5 (patch) | |
tree | 44c13edb1a91579d14e044c1b5f712ef379b8276 /src/network/networkd-route.c | |
parent | 0fc7531b40225475fed4ca8219b075bbdb54c5e0 (diff) |
rtnl: replace message_append by typesafe versions
Diffstat (limited to 'src/network/networkd-route.c')
-rw-r--r-- | src/network/networkd-route.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/network/networkd-route.c b/src/network/networkd-route.c index f8580e93c8..22604b3afb 100644 --- a/src/network/networkd-route.c +++ b/src/network/networkd-route.c @@ -92,16 +92,24 @@ int route_configure(Route *route, Link *link, return r; } - r = sd_rtnl_message_append(req, RTA_GATEWAY, &route->in_addr); + if (route->family == AF_INET) + r = sd_rtnl_message_append_in_addr(req, RTA_GATEWAY, &route->in_addr.in); + else if (route->family == AF_INET6) + r = sd_rtnl_message_append_in6_addr(req, RTA_GATEWAY, &route->in_addr.in6); if (r < 0) { log_error("Could not append RTA_GATEWAY attribute: %s", strerror(-r)); return r; } - r = sd_rtnl_message_append(req, RTA_DST, &route->dst_addr); - if (r < 0) { - log_error("Could not append RTA_DST attribute: %s", strerror(-r)); - return r; + if (route->dst_prefixlen) { + if (route->family == AF_INET) + r = sd_rtnl_message_append_in_addr(req, RTA_DST, &route->dst_addr.in); + else if (route->family == AF_INET6) + r = sd_rtnl_message_append_in6_addr(req, RTA_DST, &route->dst_addr.in6); + if (r < 0) { + log_error("Could not append RTA_DST attribute: %s", strerror(-r)); + return r; + } } r = sd_rtnl_message_route_set_dst_prefixlen(req, route->dst_prefixlen); @@ -110,7 +118,7 @@ int route_configure(Route *route, Link *link, return r; } - r = sd_rtnl_message_append(req, RTA_OIF, &link->ifindex); + r = sd_rtnl_message_append_u32(req, RTA_OIF, link->ifindex); if (r < 0) { log_error("Could not append RTA_OIF attribute: %s", strerror(-r)); return r; |