diff options
author | Helmut Schaa <helmut.schaa@googlemail.com> | 2014-03-20 16:26:23 +0100 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2014-03-21 16:05:20 +0100 |
commit | 3d317e90f15eec480b23f4dcddb841c292bef690 (patch) | |
tree | 23bd42c83bd676a029fe4536d68de414a606d7c9 /interface.c | |
parent | 559df99f259e88edaa7e45826a0ff436f2a07d1a (diff) |
netifd: Reload proto on topology change
Introduce a new device event "topology change" that gets signaled
by bridges on adding/removing members.
On "topology changes" the proto handlers are requested to "renew"
which is most useful for DHCP.
Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Diffstat (limited to 'interface.c')
-rw-r--r-- | interface.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/interface.c b/interface.c index 4a3a725..fa8e55e 100644 --- a/interface.c +++ b/interface.c @@ -328,6 +328,9 @@ interface_cb(struct device_user *dep, enum device_event ev) case DEV_EVENT_LINK_DOWN: interface_set_link_state(iface, new_state); break; + case DEV_EVENT_TOPO_CHANGE: + interface_proto_event(iface->proto, PROTO_CMD_RENEW, false); + return; default: break; } @@ -599,6 +602,8 @@ interface_proto_cb(struct interface_proto_state *state, enum interface_proto_eve mark_interface_down(iface); iface->state = IFS_SETUP; break; + default: + return; } interface_write_resolv_conf(); |