summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRob Crittenden <rcritten@redhat.com>2011-09-19 17:26:36 -0400
committerMartin Kosek <mkosek@redhat.com>2011-09-23 10:49:39 +0200
commita90e50cdf759a1b436381f0e9e91caf2d4288636 (patch)
treed53abeb158d3786cf7c33f67e6ab5ce095f0704b
parent63a7a358d4474a0ff5aab21fc0cff33429ac3348 (diff)
downloadfreeipa-a90e50cdf759a1b436381f0e9e91caf2d4288636.tar.gz
freeipa-a90e50cdf759a1b436381f0e9e91caf2d4288636.tar.xz
freeipa-a90e50cdf759a1b436381f0e9e91caf2d4288636.zip
Shut down duplicated file handle when HTTP response code is not 200.
httplib purposely keeps the socket open as a file on failed requests. We need to close this file otherwise nss_shutdown() will fail. https://fedorahosted.org/freeipa/ticket/1807
-rw-r--r--ipapython/nsslib.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/ipapython/nsslib.py b/ipapython/nsslib.py
index c4d8cdcf..467de1c4 100644
--- a/ipapython/nsslib.py
+++ b/ipapython/nsslib.py
@@ -293,6 +293,17 @@ class NSSHTTPS(httplib.HTTP):
port = None
self._setup(self._connection_class(host, port, strict, dbdir=dbdir))
+ def getreply(self):
+ """
+ Override so we can close duplicated file connection on non-200
+ responses. This was causing nss_shutdown() to fail with a busy
+ error.
+ """
+ (status, reason, msg) = httplib.HTTP.getreply(self)
+ if status != 200:
+ self.file.close()
+ return (status, reason, msg)
+
#------------------------------------------------------------------------------
if __name__ == "__main__":