use new netlib exceptions

This commit is contained in:
Maximilian Hils 2015-09-17 02:13:42 +02:00
parent a7291a7e78
commit f61109db84
7 changed files with 27 additions and 24 deletions

View File

@ -1,4 +1,5 @@
import time
from netlib.exceptions import TcpDisconnect
import netlib.tcp
BLOCKSIZE = 1024
@ -62,5 +63,5 @@ def write_values(fp, vals, actions, sofar=0, blocksize=BLOCKSIZE):
return True
elif a[1] == "inject":
send_chunk(fp, a[2], blocksize, 0, len(a[2]))
except netlib.tcp.NetLibDisconnect: # pragma: no cover
except TcpDisconnect: # pragma: no cover
return True

View File

@ -13,7 +13,8 @@ import OpenSSL.crypto
import six
from netlib import tcp, http, certutils, websockets, socks
from netlib.exceptions import HttpException
from netlib.exceptions import HttpException, TcpDisconnect, TcpTimeout, TlsException, TcpException, \
NetlibException
from netlib.http import http1, http2
import language.http
@ -123,7 +124,7 @@ class WebsocketFrameReader(threading.Thread):
with self.logger.ctx() as log:
try:
frm = websockets.Frame.from_file(self.rfile)
except tcp.NetLibDisconnect:
except TcpDisconnect:
return
self.frames_queue.put(frm)
log("<< %s" % frm.header.human_readable())
@ -270,7 +271,7 @@ class Pathoc(tcp.TCPClient):
connect_reply.msg,
"SOCKS server error"
)
except (socks.SocksError, tcp.NetLibDisconnect) as e:
except (socks.SocksError, TcpDisconnect) as e:
raise PathocError(str(e))
def connect(self, connect_to=None, showssl=False, fp=sys.stdout):
@ -301,7 +302,7 @@ class Pathoc(tcp.TCPClient):
cipher_list=self.ciphers,
alpn_protos=alpn_protos
)
except tcp.NetLibError as v:
except TlsException as v:
raise PathocError(str(v))
self.sslinfo = SSLInfo(
@ -394,7 +395,7 @@ class Pathoc(tcp.TCPClient):
Returns Response if we have a non-ignored response.
May raise http.HTTPError, tcp.NetLibError
May raise a NetlibException
"""
logger = log.ConnectionLogger(
self.fp,
@ -414,7 +415,7 @@ class Pathoc(tcp.TCPClient):
except HttpException as v:
lg("Invalid server response: %s" % v)
raise
except tcp.NetLibTimeout:
except TcpTimeout:
if self.ignoretimeout:
lg("Timeout (ignored)")
return None
@ -438,7 +439,7 @@ class Pathoc(tcp.TCPClient):
Returns Response if we have a non-ignored response.
May raise http.HTTPError, tcp.NetLibError
May raise a NetlibException
"""
if isinstance(r, basestring):
r = language.parse_pathoc(r, self.use_http2).next()
@ -495,7 +496,7 @@ def main(args): # pragma: nocover
trycount = 0
try:
p.connect(args.connect_to, args.showssl)
except tcp.NetLibError as v:
except TcpException as v:
print >> sys.stderr, str(v)
continue
except PathocError as v:
@ -523,7 +524,7 @@ def main(args): # pragma: nocover
# We consume the queue when we can, so it doesn't build up.
for i_ in p.wait(timeout=0, finish=False):
pass
except (http.HttpError, tcp.NetLibError) as v:
except NetlibException:
break
for i_ in p.wait(timeout=0.01, finish=True):
pass

View File

@ -6,8 +6,8 @@ import threading
import urllib
from netlib import tcp, http, certutils, websockets
from netlib.exceptions import HttpException, HttpReadDisconnect
from netlib.http import ALPN_PROTO_HTTP1, ALPN_PROTO_H2
from netlib.exceptions import HttpException, HttpReadDisconnect, TcpTimeout, TcpDisconnect, \
TlsException
from . import version, app, language, utils, log, protocols
import language.http
@ -41,7 +41,7 @@ class SSLOptions(object):
ssl_options=tcp.SSL_DEFAULT_OPTIONS,
ciphers=None,
certs=None,
alpn_select=ALPN_PROTO_H2,
alpn_select=http.ALPN_PROTO_H2,
):
self.confdir = confdir
self.cn = cn
@ -247,7 +247,7 @@ class PathodHandler(tcp.BaseHandler):
options=self.server.ssloptions.ssl_options,
alpn_select=self.server.ssloptions.alpn_select,
)
except tcp.NetLibError as v:
except TlsException as v:
s = str(v)
self.server.add_log(
dict(
@ -259,7 +259,7 @@ class PathodHandler(tcp.BaseHandler):
return
alp = self.get_alpn_proto_negotiated()
if alp == ALPN_PROTO_H2:
if alp == http.ALPN_PROTO_H2:
self.protocol = protocols.http2.HTTP2Protocol(self)
self.use_http2 = True
@ -387,7 +387,7 @@ class Pathod(tcp.TCPServer):
try:
h.handle()
h.finish()
except tcp.NetLibDisconnect: # pragma: no cover
except TcpDisconnect: # pragma: no cover
log.write_raw(self.logfp, "Disconnect")
self.add_log(
dict(
@ -396,7 +396,7 @@ class Pathod(tcp.TCPServer):
)
)
return
except tcp.NetLibTimeout:
except TcpTimeout:
log.write_raw(self.logfp, "Timeout")
self.add_log(
dict(

View File

@ -1,5 +1,5 @@
from netlib import tcp, wsgi
from netlib.exceptions import HttpReadDisconnect
from netlib.exceptions import HttpReadDisconnect, TlsException
from netlib.http import http1, Request
from .. import version, language
@ -61,7 +61,7 @@ class HTTPProtocol(object):
options=self.pathod_handler.server.ssloptions.ssl_options,
alpn_select=self.pathod_handler.server.ssloptions.alpn_select,
)
except tcp.NetLibError as v:
except TlsException as v:
s = str(v)
lg(s)
return None, dict(type="error", msg=s)

View File

@ -1,5 +1,6 @@
import StringIO
from libpathod import log
from netlib.exceptions import TcpDisconnect
import netlib.tcp
@ -19,6 +20,6 @@ def test_disconnect():
try:
with l.ctx() as lg:
lg("Test")
except netlib.tcp.NetLibDisconnect:
except TcpDisconnect:
pass
assert "Test" in outf.getvalue()

View File

@ -5,7 +5,7 @@ import OpenSSL
from mock import Mock
from netlib import tcp, http, socks
from netlib.exceptions import HttpException
from netlib.exceptions import HttpException, TcpException, NetlibException
from netlib.http import http1, http2
from libpathod import pathoc, test, version, pathod, language
@ -84,7 +84,7 @@ class _TestDaemon:
r = r.freeze(language.Settings())
try:
c.request(r)
except (HttpException, tcp.NetLibError):
except NetlibException:
pass
return s.getvalue()

View File

@ -4,7 +4,7 @@ import OpenSSL
from libpathod import pathod, version
from netlib import tcp, http
from netlib.exceptions import HttpException
from netlib.exceptions import HttpException, TlsException
import tutils
@ -264,7 +264,7 @@ class TestDaemonSSL(CommonTests):
c.wbufsize = 0
c.connect()
c.wfile.write("\0\0\0\0")
tutils.raises(tcp.NetLibError, c.convert_to_ssl)
tutils.raises(TlsException, c.convert_to_ssl)
l = self.d.last_log()
assert l["type"] == "error"
assert "SSL" in l["msg"]