X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fnetifd.git;a=blobdiff_plain;f=system-linux.c;h=5b217cf998668fdd4113f2daae03b35fadde6317;hp=0e6ce5ac686570dc15de99b6f6b46c43225d6d4c;hb=46d52638f04c471a0e86d07ccae6a188f1a05ef5;hpb=87648299f8944a3268210e0315f6b5244d42fa4f diff --git a/system-linux.c b/system-linux.c index 0e6ce5a..5b217cf 100644 --- a/system-linux.c +++ b/system-linux.c @@ -243,10 +243,15 @@ handle_hotplug_event(struct uloop_fd *u, unsigned int events) static int system_rtnl_call(struct nl_msg *msg) { - int s = -(nl_send_auto_complete(sock_rtnl, msg) - || nl_wait_for_ack(sock_rtnl)); + int ret; + + ret = nl_send_auto_complete(sock_rtnl, msg); nlmsg_free(msg); - return s; + + if (ret < 0) + return ret; + + return nl_wait_for_ack(sock_rtnl); } int system_bridge_delbr(struct device *bridge) @@ -901,8 +906,7 @@ static int system_rt(struct device *dev, struct device_route *route, int cmd) if (have_gw) nla_put(msg, RTA_GATEWAY, alen, &route->nexthop); - if (route->flags & DEVADDR_DEVICE) - nla_put_u32(msg, RTA_OIF, ifindex); + nla_put_u32(msg, RTA_OIF, ifindex); return system_rtnl_call(msg); }