@@ -19,7 +19,7 @@ def _get_interfaces(self):
19
19
interfaces = self .config .get ('interfaces' , [])
20
20
# this line ensures interfaces are not entirely
21
21
# ignored if they do not contain any address
22
- default_addresses = [{'proto' : 'none' }]
22
+ default_address = [{'proto' : 'none' }]
23
23
# results container
24
24
uci_interfaces = []
25
25
for interface in interfaces :
@@ -34,8 +34,12 @@ def _get_interfaces(self):
34
34
if interface .get ('type' ) == 'bridge' :
35
35
is_bridge = True
36
36
bridge_members = ' ' .join (interface ['bridge_members' ])
37
+ # ensure address list is not never empty, even when 'addresses' is []
38
+ address_list = interface .get ('addresses' )
39
+ if not address_list :
40
+ address_list = default_address
37
41
# address list defaults to empty list
38
- for address in interface . get ( 'addresses' , default_addresses ) :
42
+ for address in address_list :
39
43
# prepare new UCI interface directive
40
44
uci_interface = deepcopy (interface )
41
45
if network :
@@ -46,11 +50,11 @@ def _get_interfaces(self):
46
50
if uci_interface .get ('disabled' ):
47
51
uci_interface ['enabled' ] = not interface ['disabled' ]
48
52
del uci_interface ['disabled' ]
49
- if uci_interface . get ( 'addresses' ) :
53
+ if 'addresses' in uci_interface :
50
54
del uci_interface ['addresses' ]
51
- if uci_interface . get ( 'type' ) :
55
+ if 'type' in uci_interface :
52
56
del uci_interface ['type' ]
53
- if uci_interface . get ( 'wireless' ) :
57
+ if 'wireless' in uci_interface :
54
58
del uci_interface ['wireless' ]
55
59
# default values
56
60
address_key = None
0 commit comments