summaryrefslogtreecommitdiffstats
path: root/Lib/xmlrpc/client.py
diff options
context:
space:
mode:
authorR David Murray <rdmurray@bitdance.com>2015-04-05 23:26:29 (GMT)
committerR David Murray <rdmurray@bitdance.com>2015-04-05 23:26:29 (GMT)
commitcae7bdb4241b928f9da025dce48ec98f1b63d576 (patch)
tree9aff2370b4a06f84fda13e48448023cc6506af17 /Lib/xmlrpc/client.py
parent142bf565b4e095cfdf59dcb07f6480a7368f1d33 (diff)
downloadcpython-cae7bdb4241b928f9da025dce48ec98f1b63d576.zip
cpython-cae7bdb4241b928f9da025dce48ec98f1b63d576.tar.gz
cpython-cae7bdb4241b928f9da025dce48ec98f1b63d576.tar.bz2
#3566: Clean up handling of remote server disconnects.
This changeset does two things: introduces a new RemoteDisconnected exception (that subclasses ConnectionResetError and BadStatusLine) so that a remote server disconnection can be detected by client code (and provides a better error message for debugging purposes), and ensures that the client socket is closed if a ConnectionError happens, so that the automatic re-connection code can work if the application handles the error and continues on. Tests are added that confirm that a connection is re-used or not re-used as appropriate to the various combinations of protocol version and headers. Patch by Martin Panter, reviewed by Demian Brecht. (Tweaked only slightly by me.)
Diffstat (limited to 'Lib/xmlrpc/client.py')
-rw-r--r--Lib/xmlrpc/client.py2
1 files changed, 1 insertions, 1 deletions
diff --git a/Lib/xmlrpc/client.py b/Lib/xmlrpc/client.py
index 34208d1..da089a2 100644
--- a/Lib/xmlrpc/client.py
+++ b/Lib/xmlrpc/client.py
@@ -1128,7 +1128,7 @@ class Transport:
if i or e.errno not in (errno.ECONNRESET, errno.ECONNABORTED,
errno.EPIPE):
raise
- except http.client.BadStatusLine: #close after we sent request
+ except http.client.RemoteDisconnected:
if i:
raise