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"