IFACE_ATTR_RA_OFFLINK,
IFACE_ATTR_RA_PREFERENCE,
IFACE_ATTR_RA_ADVROUTER,
+ IFACE_ATTR_RA_MAXINTERVAL,
IFACE_ATTR_PD_MANAGER,
IFACE_ATTR_PD_CER,
IFACE_ATTR_NDPROXY_ROUTING,
[IFACE_ATTR_RA_OFFLINK] = { .name = "ra_offlink", .type = BLOBMSG_TYPE_BOOL },
[IFACE_ATTR_RA_PREFERENCE] = { .name = "ra_preference", .type = BLOBMSG_TYPE_STRING },
[IFACE_ATTR_RA_ADVROUTER] = { .name = "ra_advrouter", .type = BLOBMSG_TYPE_BOOL },
+ [IFACE_ATTR_RA_MAXINTERVAL] = { .name = "ra_maxinterval", .type = BLOBMSG_TYPE_INT32 },
[IFACE_ATTR_NDPROXY_ROUTING] = { .name = "ndproxy_routing", .type = BLOBMSG_TYPE_BOOL },
[IFACE_ATTR_NDPROXY_SLAVE] = { .name = "ndproxy_slave", .type = BLOBMSG_TYPE_BOOL },
};
}
const char *ifname = NULL;
-#ifdef WITH_UBUS
- if (overwrite || !iface->ifname[0])
- ifname = ubus_get_ifname(name);
-#endif
-
if (overwrite) {
if ((c = tb[IFACE_ATTR_IFNAME]))
ifname = blobmsg_get_string(c);
ifname = blobmsg_get_string(c);
}
+#ifdef WITH_UBUS
+ if (overwrite || !iface->ifname[0])
+ ifname = ubus_get_ifname(name);
+#endif
+
if (!iface->ifname[0] && !ifname)
- return -1;
+ goto err;
if (ifname)
strncpy(iface->ifname, ifname, sizeof(iface->ifname) - 1);
if ((iface->ifindex = if_nametoindex(iface->ifname)) <= 0)
- return -1;
+ goto err;
iface->inuse = true;
if ((c = tb[IFACE_ATTR_RA_ADVROUTER]))
iface->ra_advrouter = blobmsg_get_bool(c);
+ if ((c = tb[IFACE_ATTR_RA_MAXINTERVAL]))
+ iface->ra_maxinterval = blobmsg_get_u32(c);
+
if ((c = tb[IFACE_ATTR_RA_PREFERENCE])) {
const char *prio = blobmsg_get_string(c);
static void reload_cb(struct uloop_fd *u, _unused unsigned int events)
{
char b[512];
- if (read(u->fd, b, sizeof(b) < 0)) {}
+ if (read(u->fd, b, sizeof(b)) < 0) {}
odhcpd_reload();
}