networkd: use new rtnl_message_read() API

This commit is contained in:
Tom Gundersen
2014-03-07 17:39:04 +01:00
parent 4e9e7f1836
commit 9842de0d93
+17 -29
View File
@@ -1328,8 +1328,6 @@ int link_configure(Link *link) {
int link_update(Link *link, sd_rtnl_message *m) {
unsigned flags;
void *data;
uint16_t type;
int r;
assert(link);
@@ -1344,34 +1342,24 @@ int link_update(Link *link, sd_rtnl_message *m) {
return r;
}
while (sd_rtnl_message_read(m, &type, &data) > 0) {
switch(type) {
case IFLA_MTU:
if (link->network->dhcp && link->network->dhcp_mtu &&
!link->original_mtu) {
link->original_mtu = *(uint16_t *) data;
log_debug_link(link, "saved original MTU: %"
PRIu16, link->original_mtu);
}
if (link->network->dhcp && link->network->dhcp_mtu &&
!link->original_mtu) {
r = sd_rtnl_message_read_u16(m, IFLA_MTU, &link->original_mtu);
if (r >= 0)
log_debug_link(link, "saved original MTU: %"
PRIu16, link->original_mtu);
}
break;
case IFLA_ADDRESS:
if (memcmp(&link->mac.ether_addr_octet, &data,
ETH_ALEN)) {
memcpy(&link->mac, data, ETH_ALEN);
log_debug_link(link, "updated MAC address: "
"%02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx",
link->mac.ether_addr_octet[0],
link->mac.ether_addr_octet[1],
link->mac.ether_addr_octet[2],
link->mac.ether_addr_octet[3],
link->mac.ether_addr_octet[4],
link->mac.ether_addr_octet[5]);
}
break;
}
r = sd_rtnl_message_read_ether_addr(m, IFLA_ADDRESS, &link->mac);
if (r >= 0) {
log_debug_link(link, "MAC address: "
"%02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx",
link->mac.ether_addr_octet[0],
link->mac.ether_addr_octet[1],
link->mac.ether_addr_octet[2],
link->mac.ether_addr_octet[3],
link->mac.ether_addr_octet[4],
link->mac.ether_addr_octet[5]);
}
return link_update_flags(link, flags);