LEASE_ATTR_MAC,
LEASE_ATTR_DUID,
LEASE_ATTR_HOSTID,
- LEASE_ATTR_HOSTNAME,
+ LEASE_ATTR_NAME,
LEASE_ATTR_MAX
};
[LEASE_ATTR_MAC] = { .name = "mac", .type = BLOBMSG_TYPE_STRING },
[LEASE_ATTR_DUID] = { .name = "duid", .type = BLOBMSG_TYPE_STRING },
[LEASE_ATTR_HOSTID] = { .name = "hostid", .type = BLOBMSG_TYPE_STRING },
- [LEASE_ATTR_HOSTNAME] = { .name = "hostname", .type = BLOBMSG_TYPE_STRING },
+ [LEASE_ATTR_NAME] = { .name = "name", .type = BLOBMSG_TYPE_STRING },
};
enum {
- ODHCPD_ATTR_LEGACY,
+ ODHCPD_ATTR_MAINDHCP,
ODHCPD_ATTR_LEASEFILE,
ODHCPD_ATTR_LEASETRIGGER,
ODHCPD_ATTR_MAX
static const struct blobmsg_policy odhcpd_attrs[LEASE_ATTR_MAX] = {
- [ODHCPD_ATTR_LEGACY] = { .name = "legacy", .type = BLOBMSG_TYPE_BOOL },
+ [ODHCPD_ATTR_MAINDHCP] = { .name = "maindhcp", .type = BLOBMSG_TYPE_BOOL },
[ODHCPD_ATTR_LEASEFILE] = { .name = "leasefile", .type = BLOBMSG_TYPE_STRING },
[ODHCPD_ATTR_LEASETRIGGER] = { .name = "leasetrigger", .type = BLOBMSG_TYPE_STRING },
};
uci_to_blob(&b, s, &odhcpd_attr_list);
blobmsg_parse(odhcpd_attrs, ODHCPD_ATTR_MAX, tb, blob_data(b.head), blob_len(b.head));
- if ((c = tb[ODHCPD_ATTR_LEGACY]))
+ if ((c = tb[ODHCPD_ATTR_MAINDHCP]))
config.legacy = blobmsg_get_bool(c);
if ((c = tb[ODHCPD_ATTR_LEASEFILE])) {
blobmsg_parse(lease_attrs, LEASE_ATTR_MAX, tb, blob_data(b.head), blob_len(b.head));
size_t hostlen = 1;
- if ((c = tb[LEASE_ATTR_HOSTNAME]))
+ if ((c = tb[LEASE_ATTR_NAME]))
hostlen = blobmsg_data_len(c);
struct lease *lease = calloc(1, sizeof(*lease) + hostlen);
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]))
if ((c = tb[IFACE_ATTR_NDPROXY_ROUTING]))
iface->learn_routes = blobmsg_get_bool(c);
+ else
+ iface->learn_routes = true;
if ((c = tb[IFACE_ATTR_NDPROXY_SLAVE]))
iface->external = blobmsg_get_bool(c);
}
}
- iface->ignore = (iface->ifindex = if_nametoindex(iface->ifname)) <= 0;
return 0;
err:
struct uci_element *e;
uci_foreach_element(&dhcp->sections, e) {
struct uci_section *s = uci_to_section(e);
- if (!strcmp(s->type, "lease"))
+ if (!strcmp(s->type, "host"))
set_lease(s);
else if (!strcmp(s->type, "odhcpd"))
set_config(s);