diff roundup/cgi/MultiMapping.py @ 3808:36eb9e8faf30

Real handling of network errors. Fix for correctly ignoring net errors: It seems that (at least in my installed Debian version of python2.4) socket.error does not have an errno attribute but is simply a tuple of (errno, strerror). So we now try to get errno first and if this fails we try to use err [0]. This works for a simple test-script to which I can connect with telnet on port 4711 -- it will correctly detect errno.EPIPE if I terminate the telnet session: #!/usr/bin/python2.4 import socket import errno from SocketServer import TCPServer, BaseRequestHandler class Server (BaseRequestHandler) : def handle (self) : self.file = self.request.makefile () try : while True : print >> self.file, "Testing..." except socket.error, err : print getattr (err, 'errno', "Has no errno") print err [0] print err [0] == errno.EPIPE raise # end def handle # end class Server server_address = ('', 4711) s = TCPServer (server_address, Server) s.serve_forever () Sorry for the verbose log-message but I hope to document my debugging activities
author Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
date Tue, 16 Jan 2007 10:16:08 +0000
parents 53c600091f17
children
line wrap: on
line diff

Roundup Issue Tracker: http://roundup-tracker.org/