1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
Author: Michael Schaller <misch@google.com>
Date: Tue Mar 15 09:19:04 2022 +0100
Bug: https://github.com/seveas/python-networkmanager/issues/93
Forwarded: https://github.com/seveas/python-networkmanager/pull/94
Last-Updated: 2022-05-02
Description: Don't assume that the `dns` field is present in the `GetSettings` D-Bus reply.
This has changed for Network Manager >= 1.34 with commit https://github.com/NetworkManager/NetworkManager/commit/d652e0f53487cf3f5b1f64038d9ff4a2f5947213.
While we're at it also don't assume that any of the other fields are present.
Fixes #93.
--- a/NetworkManager.py
+++ b/NetworkManager.py
@@ -619,13 +619,19 @@
if 'bssid' in val_:
val_['bssid'] = fixups.mac_to_python(val_['bssid'])
if 'ipv4' in val:
- val['ipv4']['addresses'] = [fixups.addrconf_to_python(addr,socket.AF_INET) for addr in val['ipv4']['addresses']]
- val['ipv4']['routes'] = [fixups.route_to_python(route,socket.AF_INET) for route in val['ipv4']['routes']]
- val['ipv4']['dns'] = [fixups.addr_to_python(addr,socket.AF_INET) for addr in val['ipv4']['dns']]
+ if 'addresses' in val['ipv4']:
+ val['ipv4']['addresses'] = [fixups.addrconf_to_python(addr,socket.AF_INET) for addr in val['ipv4']['addresses']]
+ if 'routes' in val['ipv4']:
+ val['ipv4']['routes'] = [fixups.route_to_python(route,socket.AF_INET) for route in val['ipv4']['routes']]
+ if 'dns' in val['ipv4']:
+ val['ipv4']['dns'] = [fixups.addr_to_python(addr,socket.AF_INET) for addr in val['ipv4']['dns']]
if 'ipv6' in val:
- val['ipv6']['addresses'] = [fixups.addrconf_to_python(addr,socket.AF_INET6) for addr in val['ipv6']['addresses']]
- val['ipv6']['routes'] = [fixups.route_to_python(route,socket.AF_INET6) for route in val['ipv6']['routes']]
- val['ipv6']['dns'] = [fixups.addr_to_python(addr,socket.AF_INET6) for addr in val['ipv6']['dns']]
+ if 'addresses' in val['ipv6']:
+ val['ipv6']['addresses'] = [fixups.addrconf_to_python(addr,socket.AF_INET6) for addr in val['ipv6']['addresses']]
+ if 'routes' in val['ipv6']:
+ val['ipv6']['routes'] = [fixups.route_to_python(route,socket.AF_INET6) for route in val['ipv6']['routes']]
+ if 'dns' in val['ipv6']:
+ val['ipv6']['dns'] = [fixups.addr_to_python(addr,socket.AF_INET6) for addr in val['ipv6']['dns']]
return val
if method == 'PropertiesChanged':
for prop in val:
|