diff options
Diffstat (limited to 'system-linux.c')
-rw-r--r-- | system-linux.c | 32 |
1 files changed, 8 insertions, 24 deletions
diff --git a/system-linux.c b/system-linux.c index af54bfd..8f612c9 100644 --- a/system-linux.c +++ b/system-linux.c @@ -791,7 +791,7 @@ nla_put_failure: return -ENOMEM; } -int system_macvlan_del(struct device *macvlan) +static int system_link_del(struct device *dev) { struct nl_msg *msg; struct ifinfomsg iim = { @@ -805,12 +805,13 @@ int system_macvlan_del(struct device *macvlan) return -1; nlmsg_append(msg, &iim, sizeof(iim), 0); + nla_put_string(msg, IFLA_IFNAME, dev->ifname); + return system_rtnl_call(msg); +} - nla_put_string(msg, IFLA_IFNAME, macvlan->ifname); - - system_rtnl_call(msg); - - return 0; +int system_macvlan_del(struct device *macvlan) +{ + return system_link_del(macvlan); } static int system_vlan(struct device *dev, int id) @@ -896,24 +897,7 @@ nla_put_failure: int system_vlandev_del(struct device *vlandev) { - struct nl_msg *msg; - struct ifinfomsg iim = { - .ifi_family = AF_UNSPEC, - .ifi_index = 0, - }; - - msg = nlmsg_alloc_simple(RTM_DELLINK, NLM_F_REQUEST); - - if (!msg) - return -1; - - nlmsg_append(msg, &iim, sizeof(iim), 0); - - nla_put_string(msg, IFLA_IFNAME, vlandev->ifname); - - system_rtnl_call(msg); - - return 0; + return system_link_del(vlandev); } static void |