Skip to content

Commit 67389d6

Browse files
committed
Allow to set manual DNS in TUI for autoconf
Signed-off-by: BenjiReis <benjamin.reis@vates.fr>
1 parent 7add5d1 commit 67389d6

2 files changed

Lines changed: 26 additions & 7 deletions

File tree

netinterface.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -396,5 +396,11 @@ def __init__(self, mode, hwaddr, ipaddr=None, netmask=None, gateway=None, dns=No
396396
dns = [ dns ]
397397
self.dns = dns
398398
self.domain = domain
399+
elif mode == self.Autoconf:
400+
if dns == '':
401+
dns = None
402+
elif isinstance(dns, str):
403+
dns = [ dns ]
404+
self.dns = dns
399405

400406
self.addIPv6(mode, ipv6addr=ipv6addr, ipv6gw=gateway)

tui/network.py

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,10 @@ def dhcp_change():
6464
for x in [ ip_field, gateway_field, subnet_field, dns_field ]:
6565
x.setFlags(FLAG_DISABLED, static_rb.selected())
6666

67+
# Allow manual DNS for autoconf
68+
if autoconf_rb.selected():
69+
dns_field.setFlags(FLAG_DISABLED, True)
70+
6771
ipv6 = iface_class == NetInterfaceV6
6872

6973
gf = GridFormHelp(tui.screen, 'Networking', 'ifconfig', 1, 10)
@@ -123,16 +127,19 @@ def dhcp_change():
123127
dns_text = Textbox(15, 1, "Nameserver:")
124128
vlan_text = Textbox(15, 1, "VLAN (1-4094):")
125129

126-
entry_grid = Grid(2, include_dns and 4 or 3)
130+
entry_grid = Grid(2, 3)
127131
entry_grid.setField(ip_text, 0, 0)
128132
entry_grid.setField(ip_field, 1, 0)
129133
entry_grid.setField(subnet_text, 0, 1)
130134
entry_grid.setField(subnet_field, 1, 1)
131135
entry_grid.setField(gateway_text, 0, 2)
132136
entry_grid.setField(gateway_field, 1, 2)
137+
138+
dns_grid = None
133139
if include_dns:
134-
entry_grid.setField(dns_text, 0, 3)
135-
entry_grid.setField(dns_field, 1, 3)
140+
dns_grid = Grid(2, 1)
141+
dns_grid.setField(dns_text, 0, 0)
142+
dns_grid.setField(dns_field, 1, 0)
136143

137144
vlan_grid = Grid(2, 1)
138145
vlan_grid.setField(vlan_text, 0, 0)
@@ -144,9 +151,11 @@ def dhcp_change():
144151
gf.add(entry_grid, 0, 4, padding=(0, 0, 0, 1))
145152
if ipv6:
146153
gf.add(autoconf_rb, 0, 5, anchorLeft=True)
147-
gf.add(vlan_cb, 0, 6, anchorLeft=True)
148-
gf.add(vlan_grid, 0, 7, padding=(0, 0, 0, 1))
149-
gf.add(buttons, 0, 8, growx=1)
154+
if include_dns:
155+
gf.add(dns_grid, 0, 6, anchorLeft=True)
156+
gf.add(vlan_cb, 0, 7, anchorLeft=True)
157+
gf.add(vlan_grid, 0, 8, padding=(0, 0, 0, 1))
158+
gf.add(buttons, 0, 9, growx=1)
150159

151160
loop = True
152161
ip_family = socket.AF_INET6 if ipv6 else socket.AF_INET
@@ -166,6 +175,9 @@ def dhcp_change():
166175
msg = 'Gateway'
167176
elif dns_field.value() != '' and not netutil.valid_ip_address_family(dns_field.value(), ip_family):
168177
msg = 'Nameserver'
178+
elif autoconf_rb.selected():
179+
if dns_field.value() != '' and not netutil.valid_ip_address_family(dns_field.value(), ip_family):
180+
msg = 'Nameserver'
169181
if vlan_cb.selected():
170182
if not netutil.valid_vlan(vlan_field.value()):
171183
msg = 'VLAN'
@@ -184,7 +196,8 @@ def dhcp_change():
184196
if dhcp_rb.selected():
185197
answers = iface_class(NetInterface.DHCP, nic.hwaddr, vlan=vlan_value)
186198
elif ipv6 and autoconf_rb.selected():
187-
answers = iface_class(NetInterface.Autoconf, nic.hwaddr, vlan=vlan_value)
199+
answers = iface_class(NetInterface.Autoconf, nic.hwaddr,
200+
dns=dns_field.value(), vlan=vlan_value)
188201
else:
189202
answers = iface_class(NetInterface.Static, nic.hwaddr, ip_field.value(),
190203
subnet_field.value(), gateway_field.value(),

0 commit comments

Comments
 (0)