From b8461e8d5661fbae86e0fb9c6dc85554704a4f0a Mon Sep 17 00:00:00 2001 From: Rob Crittenden Date: Mon, 19 Sep 2011 17:26:36 -0400 Subject: 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 --- ipapython/nsslib.py | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'ipapython/nsslib.py') 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__": -- cgit