diff --git a/libmproxy/protocol/http.py b/libmproxy/protocol/http.py index 658c08ed9..efeed008b 100644 --- a/libmproxy/protocol/http.py +++ b/libmproxy/protocol/http.py @@ -1054,7 +1054,7 @@ class HTTPHandler(ProtocolHandler): flow.live = None return True - except (HttpAuthenticationError, http.HttpError, proxy.ProxyError, tcp.NetLibError), e: + except (HttpAuthenticationError, http.HttpError, proxy.ProxyError, tcp.NetLibError, IOError), e: self.handle_error(e, flow) return False diff --git a/test/test_server.py b/test/test_server.py index a570f10f3..3125c2f36 100644 --- a/test/test_server.py +++ b/test/test_server.py @@ -112,7 +112,10 @@ class TestHTTP(tservers.HTTPProxTest, CommonMixin, AppMixin): # Tests a difficult-to-trigger condition, where an IOError is raised # within our read loop. with mock.patch("libmproxy.protocol.http.HTTPRequest.from_stream") as m: - m.side_effect = IOError("error!") + def brk(f, *args, **kwargs): + f.o._sock.close() + raise IOError("error!") + m.side_effect = brk tutils.raises("server disconnect", self.pathod, "304") def test_get_connection_switching(self):