diff --git a/package/network/ipv6/odhcp6c/files/dhcpv6.sh b/package/network/ipv6/odhcp6c/files/dhcpv6.sh index 9b6275e3f9..90a83718e5 100755 --- a/package/network/ipv6/odhcp6c/files/dhcpv6.sh +++ b/package/network/ipv6/odhcp6c/files/dhcpv6.sh @@ -5,6 +5,8 @@ init_proto "$@" proto_dhcpv6_init_config() { + renew_handler=1 + proto_config_add_string 'reqaddress:or("try","force","none")' proto_config_add_string 'reqprefix:or("auto","no",range(0, 64))' proto_config_add_string clientid @@ -67,6 +69,13 @@ proto_dhcpv6_setup() { $opts $iface } +proto_dhcpv6_renew() { + local interface="$1" + # SIGUSR1 forces odhcp6c to renew its lease + local sigusr1="$(kill -l SIGUSR1)" + [ -n "$sigusr1" ] && proto_kill_command "$interface" $sigusr1 +} + proto_dhcpv6_teardown() { local interface="$1" proto_kill_command "$interface"