X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fodhcpd.git;a=blobdiff_plain;f=src%2Fconfig.c;h=d025bdf23e99f3cf46924dfdc5f9db04c3a57e5d;hp=46137a48ab3dc926047f985c358c9d877cb36aed;hb=baee1992982f92a45870ba0aaea111c00963de5d;hpb=359a2c478832b41af427f6a96c4d11d81447e65a;ds=sidebyside diff --git a/src/config.c b/src/config.c index 46137a4..d025bdf 100644 --- a/src/config.c +++ b/src/config.c @@ -302,6 +302,9 @@ int config_parse_interface(void *data, size_t len, const char *name, bool overwr if (ifname) strncpy(iface->ifname, ifname, sizeof(iface->ifname) - 1); + if ((iface->ifindex = if_nametoindex(iface->ifname)) <= 0) + return -1; + iface->inuse = true; if ((c = tb[IFACE_ATTR_DYNAMICDHCP])) @@ -494,7 +497,6 @@ int config_parse_interface(void *data, size_t len, const char *name, bool overwr } } - iface->ignore = (iface->ifindex = if_nametoindex(iface->ifname)) <= 0; return 0; err: @@ -558,7 +560,7 @@ void odhcpd_reload(void) enum odhcpd_mode hybrid_mode = RELAYD_DISABLED; #ifdef WITH_UBUS - if (ubus_has_prefix(i->name, i->ifname)) + if (!ubus_has_prefix(i->name, i->ifname)) hybrid_mode = RELAYD_RELAY; #endif