X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fnetifd.git;a=blobdiff_plain;f=bridge.c;h=da07d9c855214dbf89e6a2c65e62df7e8d4734d5;hp=d3b28677527eeaf23ade82f6adfd5355057c3e67;hb=8520d78a52e04af6396b379dfe6aa47861ca2e13;hpb=e30469d12b735f5789d664cb3e22a2a29a6aa619 diff --git a/bridge.c b/bridge.c index d3b2867..da07d9c 100644 --- a/bridge.c +++ b/bridge.c @@ -132,11 +132,12 @@ bridge_remove_member(struct bridge_member *bm) if (!bm->present) return; - bm->present = false; - bm->bst->n_present--; if (bst->dev.active) bridge_disable_member(bm); + bm->present = false; + bm->bst->n_present--; + bst->force_active = false; if (bst->n_present == 0) device_set_present(&bst->dev, false); @@ -342,7 +343,6 @@ bridge_free(struct device *dev) { struct bridge_state *bst; - device_cleanup(dev); bst = container_of(dev, struct bridge_state, dev); vlist_flush_all(&bst->members); free(bst); @@ -392,8 +392,8 @@ bridge_apply_settings(struct bridge_state *bst, struct blob_attr **tb) struct blob_attr *cur; /* defaults */ - cfg->stp = true; - cfg->forward_delay = 1; + cfg->stp = false; + cfg->forward_delay = 2; cfg->igmp_snoop = true; if ((cur = tb[BRIDGE_ATTR_STP]))