We need to reset resolver using our isys.resetResolver in rhel6
because curl is built without support for c-ares. If/when curl
supporting c-ares is pulled into rhel6, urlgrabber.reset_curl_obj()
call will be needed for resetting, so I also add the call to some
places where it is missing.
---
iw/advanced_storage.py | 2 ++
iw/task_gui.py | 2 ++
kickstart.py | 1 +
network.py | 12 ++++++++----
4 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/iw/advanced_storage.py b/iw/advanced_storage.py
index 79af83c..38ed181 100644
--- a/iw/advanced_storage.py
+++ b/iw/advanced_storage.py
@@ -27,6 +27,7 @@ import iutil
import network
import storage.fcoe
import storage.iscsi
+import urlgrabber.grabber
def addFcoeDrive(anaconda):
(dxml, dialog) = gui.getGladeWidget("fcoe-config.glade", "fcoeDialog")
@@ -104,6 +105,7 @@ def addIscsiDrive(anaconda):
if not network.hasActiveNetDev():
if not anaconda.intf.enableNetwork():
return gtk.RESPONSE_CANCEL
+ urlgrabber.grabber.reset_curl_obj()
(dxml, dialog) = gui.getGladeWidget("iscsi-config.glade", "iscsiDialog")
gui.addFrame(dialog)
diff --git a/iw/task_gui.py b/iw/task_gui.py
index 6330b2b..5bce75c 100644
--- a/iw/task_gui.py
+++ b/iw/task_gui.py
@@ -45,6 +45,7 @@ def setupRepo(anaconda, repo):
if repo.needsNetwork() and not network.hasActiveNetDev():
if not anaconda.intf.enableNetwork():
return False
+ urlgrabber.grabber.reset_curl_obj()
try:
anaconda.backend.doRepoSetup(anaconda, thisrepo=repo.id, fatalerrors=False)
anaconda.backend.doSackSetup(anaconda, thisrepo=repo.id, fatalerrors=False)
@@ -309,6 +310,7 @@ class RepoEditor:
"networking, but there was an error enabling the "
"network on your system."))
return False
+ urlgrabber.grabber.reset_curl_obj()
import tempfile
dest = tempfile.mkdtemp("", repo.name.replace(" ", ""), "/mnt")
diff --git a/kickstart.py b/kickstart.py
index 07f4073..2041686 100644
--- a/kickstart.py
+++ b/kickstart.py
@@ -154,6 +154,7 @@ def getEscrowCertificate(anaconda, url):
custom_icon="error",
custom_buttons=[_("_Exit installer")])
sys.exit(1)
+ urlgrabber.grabber.reset_curl_obj()
log.info("escrow: downloading %s" % (url,))
diff --git a/network.py b/network.py
index f3cb5e7..57e618a 100644
--- a/network.py
+++ b/network.py
@@ -726,18 +726,22 @@ class Network:
waited_devs_props[iface] = device_props_iface
i = 0
+ reset_resolver = False
while True:
for dev, device_props_iface in waited_devs_props.items():
state = device_props_iface.Get(isys.NM_DEVICE_IFACE, "State")
if state == isys.NM_DEVICE_STATE_ACTIVATED:
waited_devs_props.pop(dev)
- if len(waited_devs_props) == 0:
- return []
- if i >= CONNECTION_TIMEOUT:
- return waited_devs_props.keys()
+ reset_resolver = True
+ if len(waited_devs_props) == 0 or i >= CONNECTION_TIMEOUT:
+ break
i += 1
time.sleep(1)
+ if reset_resolver:
+ isys.resetResolv()
+ return waited_devs_props.keys()
+
# write out current configuration state and wait for NetworkManager
# to bring the device up, watch NM state and return to the caller
# once we have a state
--
1.6.0.6