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 _______________________________________________ Anaconda-devel-list mailing list Anaconda-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/anaconda-devel-list