If one tries to use m2crypto's ThreadingSSLServer (which uses SocketServer.TCPServer with the ThreadingMixIn) and experiences an error of any kind during request processing (triggered from here): /usr/lib/python2.4/SocketServer.py:465 try: self.finish_request(request, client_address) self.close_request(request) except: self.handle_error(request, client_address) self.close_request(request) handle_error(request, client_address) will be called. That resolves to SSLServer.handle_error(), which looks like this: def handle_error(self): print '-'*40 import traceback traceback.print_exc() print '-'*40 Python complains that SSLServer.handle_error() takes only 1 argument, but was given 3 arguments.
Created attachment 115241 [details] normalize m2crypto's SSLServer.handle_error() function
Fixed in m2crypto-0.13-4. Thanks!
My previous patch was slightly incomplete. Turns out we need to set (request, client_address) to None before we enter the try: block, otherwise they may not be defined yet during an Exception. Updated patch attached.
Created attachment 115361 [details] Define request & client_address first
Built in m2crypto-0.13-5, thanks again.