[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [PATCH rhel6-branch] Reset resolver after network device activation (#614001)



Ack.

On Thu, 15 Jul 2010, Radek Vykydal wrote:

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


--
David Cantrell <dcantrell redhat com>
Red Hat / Honolulu, HI


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]