Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > 920fa0f0e28c0a57d683a2dc3f252bab > files > 6

m2crypto-0.16-9.el5.src.rpm

diff -ur m2crypto/M2Crypto/m2urllib2.py m2crypto-0.16/M2Crypto/m2urllib2.py
--- m2crypto/M2Crypto/m2urllib2.py	2009-04-07 13:40:53.000000000 +0200
+++ m2crypto-0.16/M2Crypto/m2urllib2.py	2009-04-07 13:41:02.000000000 +0200
@@ -11,12 +11,28 @@
  * Add the M2Crypto HTTPSHandler when building a default opener.
 """
 
+import socket
 from urllib2 import *
 import urlparse
 
 import SSL
 import httpslib
 
+
+class _closing_fileobject(socket._fileobject):
+    '''socket._fileobject that propagates self.close() to the socket.
+
+    Python 2.5 provides this as socket._fileobject(sock, close=True).
+    '''
+
+    def __init__(self, sock):
+        socket._fileobject.__init__(self, sock)
+
+    def close(self):
+        sock = self._sock
+        socket._fileobject.close(self)
+        sock.close()
+
 class HTTPSHandler(AbstractHTTPHandler):
     def __init__(self, ssl_context = None):
         AbstractHTTPHandler.__init__(self)
@@ -80,7 +96,7 @@
         # out of socket._fileobject() and into a base class.
 
         r.recv = r.read
-        fp = socket._fileobject(r)
+        fp = _closing_fileobject(r)
 
         resp = addinfourl(fp, r.msg, req.get_full_url())
         resp.code = r.status