Below is a patch to fix a bug I ran into on Attitude Adjustment. When a DHCP interface with a metric assigned to it attempted to renew its lease, the default route was removed and not re-added. However, removing the metric from the interface would result in the default route correctly being re-added after a lease.
I found that the metric was not being passed to the netifd-proto function "proto_add_ipv4_route" that creates the string that "_proto_push_route" uses to create the JSON sent to ubus. --- netifd_original/dhcp.script 2015-03-13 12:02:59.253887867 -0400 +++ netifd/dhcp.script 2015-03-13 11:58:23.706166086 -0400 @@ -19,8 +19,11 @@ proto_add_ipv4_address "$ip" "${subnet:-255.255.255.0}" # TODO: apply $broadcast + #Fix missing metric parameter + metric="$(uci -q get network.$INTERFACE.metric)" + for i in $router; do - proto_add_ipv4_route 0.0.0.0 0 "$i" + proto_add_ipv4_route 0.0.0.0 0 "$i" "$metric" done # CIDR STATIC ROUTES (rfc3442) --- netifd_original/netifd-proto.sh 2015-03-13 12:03:14.342091592 -0400 +++ netifd/netifd-proto.sh 2015-03-13 11:47:10.585079439 -0400 @@ -134,7 +134,10 @@ local mask="$2" local gw="$3" - append PROTO_ROUTE "$target/$mask/$gw//" + #Fix missing metric parameter + local metric="$4" + + append PROTO_ROUTE "$target/$mask/$gw/$metric/" } proto_add_ipv6_route() { Thanks, Joseph Marlin Saucon Technologies _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel