From: Shengyu Qu Date: Thu, 15 May 2025 03:38:46 +0000 (+0800) Subject: odhcp6c: Conditionally request S46 OROs X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4bd7daced1be3975f508ee1e4e08e6619520c462;p=thirdparty%2Fopenwrt.git odhcp6c: Conditionally request S46 OROs Request Softwire46 (S46) [RFC 7598] options when the map and/or ds-lite packages are installed. This is required as the behaviour of odhcp6c has changed to not include these OROs by default. See openwrt/odhcp6c#89 Signed-off-by: Richard Patterson Signed-off-by: Shengyu Qu --- diff --git a/package/network/ipv6/odhcp6c/files/dhcpv6.sh b/package/network/ipv6/odhcp6c/files/dhcpv6.sh index 18c24febd61..e8d07ebaa79 100755 --- a/package/network/ipv6/odhcp6c/files/dhcpv6.sh +++ b/package/network/ipv6/odhcp6c/files/dhcpv6.sh @@ -96,13 +96,23 @@ proto_dhcpv6_setup() { [ "$verbose" = "1" ] && append opts "-v" + json_for_each_item proto_dhcpv6_add_sendopts sendopts opts + + # Dynamically add OROs to support loaded packages. + json_load "$(ubus call network get_proto_handlers)" + json_get_var handler_map map + json_get_var handler_dslite dslite + + [ -n "$handler_dslite" ] && append reqopts "64" + [ -n "$handler_map" ] && append reqopts "94" + [ -n "$handler_map" ] && append reqopts "95" + [ -n "$handler_map" ] && append reqopts "96" + local opt for opt in $reqopts; do append opts "-r$opt" done - json_for_each_item proto_dhcpv6_add_sendopts sendopts opts - append opts "-t${soltimeout:-120}" [ -n "$ip6prefixes" ] && proto_export "USERPREFIX=$ip6prefixes"