summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rwxr-xr-xdummy/netifd-proto.sh7
-rwxr-xr-xdummy/proto/ppp.sh1
-rw-r--r--interface-ip.c2
-rw-r--r--proto-shell.c5
4 files changed, 15 insertions, 0 deletions
diff --git a/dummy/netifd-proto.sh b/dummy/netifd-proto.sh
index c50d776..ae05b9c 100755
--- a/dummy/netifd-proto.sh
+++ b/dummy/netifd-proto.sh
@@ -53,6 +53,12 @@ proto_init_update() {
[ -n "$3" ] && json_add_boolean "address-external" "$external"
}
+proto_add_dns_server() {
+ local address="$1"
+
+ jshn_append PROTO_DNS "$address"
+}
+
proto_add_ipv4_address() {
local address="$1"
local mask="$2"
@@ -125,6 +131,7 @@ proto_send_update() {
_proto_push_array "ip6addr" "$PROTO_IP6ADDR" _proto_push_ip
_proto_push_array "route" "$PROTO_ROUTE" _proto_push_route
_proto_push_array "route6" "$PROTO_ROUTE6" _proto_push_route
+ _proto_push_array "dns" "$PROTO_DNS" _proto_push_ip
_proto_notify
}
diff --git a/dummy/proto/ppp.sh b/dummy/proto/ppp.sh
index 13c4ebb..e7b9839 100755
--- a/dummy/proto/ppp.sh
+++ b/dummy/proto/ppp.sh
@@ -38,6 +38,7 @@ pppoe_setup() {
echo "pppoe_setup($1, $2), username=$username, password=$password"
proto_init_update ppp0 1
proto_add_ipv4_address "192.168.2.1" 32
+ proto_add_dns_server "192.168.2.2"
proto_send_update "$1"
proto_run_command sleep 10
}
diff --git a/interface-ip.c b/interface-ip.c
index c0a1bb9..8dae80d 100644
--- a/interface-ip.c
+++ b/interface-ip.c
@@ -97,6 +97,8 @@ interface_add_dns_server(struct interface *iface, const char *str)
return;
add:
+ D(INTERFACE, "Add IPv%c DNS server: %s\n",
+ s->af == AF_INET6 ? '6' : '4', str);
list_add_tail(&s->list, &iface->proto_dns_servers);
}
diff --git a/proto-shell.c b/proto-shell.c
index 32a3016..3ed4b8e 100644
--- a/proto-shell.c
+++ b/proto-shell.c
@@ -303,6 +303,7 @@ enum {
NOTIFY_IP6ADDR,
NOTIFY_ROUTES,
NOTIFY_ROUTES6,
+ NOTIFY_DNS,
__NOTIFY_LAST
};
@@ -316,6 +317,7 @@ static const struct blobmsg_policy notify_attr[__NOTIFY_LAST] = {
[NOTIFY_IP6ADDR] = { .name = "ip6addr", .type = BLOBMSG_TYPE_ARRAY },
[NOTIFY_ROUTES] = { .name = "routes", .type = BLOBMSG_TYPE_ARRAY },
[NOTIFY_ROUTES6] = { .name = "routes6", .type = BLOBMSG_TYPE_ARRAY },
+ [NOTIFY_DNS] = { .name = "dns", .type = BLOBMSG_TYPE_ARRAY },
};
static int
@@ -359,6 +361,9 @@ proto_shell_update_link(struct proto_shell_state *state, struct blob_attr **tb)
if ((cur = tb[NOTIFY_ROUTES6]) != NULL)
proto_shell_parse_route_list(state->proto.iface, cur, true);
+ if ((cur = tb[NOTIFY_DNS]) != NULL)
+ interface_add_dns_server_list(state->proto.iface, cur);
+
return 0;
}