diff options
author | Simon Schampijer <simon@schampijer.de> | 2010-09-14 15:33:53 (GMT) |
---|---|---|
committer | Simon Schampijer <simon@schampijer.de> | 2010-09-14 15:33:53 (GMT) |
commit | 84daf366a13fd6e5b45d17f7efe49773269c74e6 (patch) | |
tree | 77f4a9e0fb92bd9ca663052088ec6838ef6e471b | |
parent | 5c7b1a8064542eaa528f9fcde8de435b4e82b4f6 (diff) |
Reset resolver cache when connection has been established #1940
-rw-r--r-- | src/jarabe/model/network.py | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/jarabe/model/network.py b/src/jarabe/model/network.py index 66d86d8..79e4360 100644 --- a/src/jarabe/model/network.py +++ b/src/jarabe/model/network.py @@ -28,6 +28,7 @@ import dbus.service import gobject import ConfigParser import gconf +import ctypes from sugar import dispatch from sugar import env @@ -546,6 +547,16 @@ class NMSettingsConnection(dbus.service.Object): if self._settings.connection.type == NM_CONNECTION_TYPE_802_11_WIRELESS: self.save() + try: + # try to flush resolver cache - SL#1940 + # ctypes' syntactic sugar does not work + # so we must get the func ptr explicitly + libc = ctypes.CDLL('libc.so.6') + res_init = getattr(libc, '__res_init') + res_init(None) + except: + logging.exception('Error calling libc.__res_init') + def set_secrets(self, secrets): self._secrets = secrets if self._settings.connection.type == NM_CONNECTION_TYPE_802_11_WIRELESS: |