summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrandon Stepler <brandon@stepler.net>2021-01-27 15:00:00 -0500
committerChristian Poessinger <christian@poessinger.com>2021-01-28 07:36:54 +0100
commit5f521fb3b47b6264796cbd8437152b848149cd76 (patch)
treeb9c070750b11702e85fc3edff393cb71bb90afc4
parent788f741a0beb9a2dbf52f8c7b9d0b0903ec6a87c (diff)
downloadvyos-1x-5f521fb3b47b6264796cbd8437152b848149cd76.tar.gz
vyos-1x-5f521fb3b47b6264796cbd8437152b848149cd76.zip
dhcpv6: T3262: don't run DHCPv6 client when only dhcpv6-options is configured
If dhcpv6-options is configured without requesting a DHCPv6 address or PD, the dhcpv6pd variable is assigned an empty dict. (cherry picked from commit d7d916f74e7d3b3b1fc85336f24f91af66b1e2a8)
-rw-r--r--python/vyos/ifconfig/interface.py7
1 files changed, 4 insertions, 3 deletions
diff --git a/python/vyos/ifconfig/interface.py b/python/vyos/ifconfig/interface.py
index 1561d340e..981e899e1 100644
--- a/python/vyos/ifconfig/interface.py
+++ b/python/vyos/ifconfig/interface.py
@@ -1109,9 +1109,10 @@ class Interface(Control):
self.del_addr('dhcp')
# always ensure DHCPv6 client is stopped (when not configured as client
- # for IPv6 address or prefix delegation
+ # for IPv6 address or prefix delegation)
dhcpv6pd = dict_search('dhcpv6_options.pd', config)
- if 'dhcpv6' not in new_addr or dhcpv6pd == None:
+ dhcpv6pd = dhcpv6pd != None and len(dhcpv6pd) != 0
+ if 'dhcpv6' not in new_addr and not dhcpv6pd:
self.del_addr('dhcpv6')
# determine IP addresses which are assigned to the interface and build a
@@ -1131,7 +1132,7 @@ class Interface(Control):
self.add_addr(addr)
# start DHCPv6 client when only PD was configured
- if dhcpv6pd != None:
+ if dhcpv6pd:
self.set_dhcpv6(True)
# There are some items in the configuration which can only be applied