X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=interface-ip.c;h=a5efad510210f46dd82e6a2684dd0911c5781a05;hb=8e1b0ca9e75668a9663196520af4422b837aa4a6;hp=28c608ab661d0c0a18d09eb00bf753a8e192744b;hpb=05c1f3b0c2058a579ca1a6e2b06329b8c814e5bd;p=project%2Fnetifd.git diff --git a/interface-ip.c b/interface-ip.c index 28c608a..a5efad5 100644 --- a/interface-ip.c +++ b/interface-ip.c @@ -119,6 +119,38 @@ interface_add_dns_server_list(struct interface *iface, struct blob_attr *list) } } +void +interface_add_dns_search_domain(struct interface *iface, const char *str) +{ + struct dns_search_domain *s; + int len = strlen(str); + + s = calloc(1, sizeof(*s) + len + 1); + if (!s) + return; + + D(INTERFACE, "Add DNS search domain: %s\n", str); + memcpy(s->name, str, len); + list_add_tail(&s->list, &iface->proto_dns_search); +} + +void +interface_add_dns_search_list(struct interface *iface, struct blob_attr *list) +{ + struct blob_attr *cur; + int rem; + + blobmsg_for_each_attr(cur, list, rem) { + if (blobmsg_type(cur) != BLOBMSG_TYPE_STRING) + continue; + + if (!blobmsg_check_attr(cur, NULL)) + continue; + + interface_add_dns_server(iface, blobmsg_data(cur)); + } +} + static void interface_clear_dns_servers(struct interface *iface) {