diff options
author | Florian Bruhin <me@the-compiler.org> | 2015-12-18 18:00:24 +0100 |
---|---|---|
committer | Florian Bruhin <me@the-compiler.org> | 2015-12-18 18:00:24 +0100 |
commit | 82968e25f30c15565a4bf3993fe21d4f577eac8d (patch) | |
tree | 963d49ffae0059a806e2bccb2334257de5187af7 | |
parent | 442cdeb1e4c616dedec8c61abaf8d4e93ca154ba (diff) | |
download | cherrypy-82968e25f30c15565a4bf3993fe21d4f577eac8d.tar.gz |
wsgiserver: Ignore EPROTOTYPE on OS X.
Due to what's probably an OS X kernel bug, it can return EPROTOTYPE instead of
EPIPE in some situations:
http://erickt.github.io/blog/2014/11/19/adventures-in-debugging-a-potential-osx-kernel-bug/
Fixes #1392.
-rw-r--r-- | cherrypy/wsgiserver/wsgiserver2.py | 2 | ||||
-rw-r--r-- | cherrypy/wsgiserver/wsgiserver3.py | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/cherrypy/wsgiserver/wsgiserver2.py b/cherrypy/wsgiserver/wsgiserver2.py index 6dee082c..04a11a63 100644 --- a/cherrypy/wsgiserver/wsgiserver2.py +++ b/cherrypy/wsgiserver/wsgiserver2.py @@ -196,6 +196,8 @@ socket_errors_to_ignore = plat_specific_errors( ) socket_errors_to_ignore.append("timed out") socket_errors_to_ignore.append("The read operation timed out") +if sys.platform == 'darwin': + socket_errors_to_ignore.append(plat_specific_errors("EPROTOTYPE")) socket_errors_nonblocking = plat_specific_errors( 'EAGAIN', 'EWOULDBLOCK', 'WSAEWOULDBLOCK') diff --git a/cherrypy/wsgiserver/wsgiserver3.py b/cherrypy/wsgiserver/wsgiserver3.py index 1e1dc360..4d68847a 100644 --- a/cherrypy/wsgiserver/wsgiserver3.py +++ b/cherrypy/wsgiserver/wsgiserver3.py @@ -170,6 +170,8 @@ socket_errors_to_ignore = plat_specific_errors( ) socket_errors_to_ignore.append("timed out") socket_errors_to_ignore.append("The read operation timed out") +if sys.platform == 'darwin': + socket_errors_to_ignore.append(plat_specific_errors("EPROTOTYPE")) socket_errors_nonblocking = plat_specific_errors( 'EAGAIN', 'EWOULDBLOCK', 'WSAEWOULDBLOCK') |