diff options
author | Allan Saddi <allan@saddi.com> | 2006-06-18 16:04:04 +0000 |
---|---|---|
committer | Allan Saddi <allan@saddi.com> | 2006-06-18 16:04:04 +0000 |
commit | d54e587fe69ae54a3ef83c5a7994ef2e44b2139f (patch) | |
tree | 5f27b864fee43d75ffb75e712f49c51e8c42218a /flup/server/ajp_base.py | |
parent | 1f9ebbb444efc6972d9224461ce40189c56cf876 (diff) | |
download | flup-d54e587fe69ae54a3ef83c5a7994ef2e44b2139f.tar.gz |
Stop ignoring EPIPE exceptions.
Diffstat (limited to 'flup/server/ajp_base.py')
-rw-r--r-- | flup/server/ajp_base.py | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/flup/server/ajp_base.py b/flup/server/ajp_base.py index 6ffc2e6..de5ba4e 100644 --- a/flup/server/ajp_base.py +++ b/flup/server/ajp_base.py @@ -297,9 +297,7 @@ class Packet(object): try: sent = sock.send(data) except socket.error, e: - if e[0] == errno.EPIPE: - return # Don't bother raising an exception. Just ignore. - elif e[0] == errno.EAGAIN: + if e[0] == errno.EAGAIN: select.select([], [sock], []) continue else: @@ -897,16 +895,20 @@ class BaseAJPServer(object): if not self.multithreaded: self._appLock.acquire() try: - result = self.application(environ, start_response) try: - for data in result: - if data: - write(data) - if not headers_sent: - write('') # in case body was empty - finally: - if hasattr(result, 'close'): - result.close() + result = self.application(environ, start_response) + try: + for data in result: + if data: + write(data) + if not headers_sent: + write('') # in case body was empty + finally: + if hasattr(result, 'close'): + result.close() + except socket.error, e: + if e[0] != errno.EPIPE: + raise # Don't let EPIPE propagate beyond server finally: if not self.multithreaded: self._appLock.release() |