diff options
author | Rob Crittenden <rcritten@redhat.com> | 2011-09-19 17:26:36 -0400 |
---|---|---|
committer | Martin Kosek <mkosek@redhat.com> | 2011-09-23 10:49:39 +0200 |
commit | a90e50cdf759a1b436381f0e9e91caf2d4288636 (patch) | |
tree | d53abeb158d3786cf7c33f67e6ab5ce095f0704b | |
parent | 63a7a358d4474a0ff5aab21fc0cff33429ac3348 (diff) | |
download | freeipa-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.py | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/ipapython/nsslib.py b/ipapython/nsslib.py index c4d8cdcf6..467de1c42 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__": |