tcp._Connection: clean up code, fix inheritance

This commit is contained in:
Maximilian Hils 2015-08-19 16:06:33 +02:00
parent 6810fba54e
commit 9920de1e15

View File

@ -399,6 +399,22 @@ def close_socket(sock):
class _Connection(object): class _Connection(object):
rbufsize = -1
wbufsize = -1
def __init__(self, connection):
if connection:
self.connection = connection
self.rfile = Reader(self.connection.makefile('rb', self.rbufsize))
self.wfile = Writer(self.connection.makefile('wb', self.wbufsize))
else:
self.connection = None
self.rfile = None
self.wfile = None
self.ssl_established = False
self.finished = False
def get_current_cipher(self): def get_current_cipher(self):
if not self.ssl_established: if not self.ssl_established:
return None return None
@ -510,16 +526,13 @@ class _Connection(object):
class TCPClient(_Connection): class TCPClient(_Connection):
rbufsize = -1
wbufsize = -1
def __init__(self, address, source_address=None): def __init__(self, address, source_address=None):
self.connection, self.rfile, self.wfile = None, None, None super(TCPClient, self).__init__(None)
self.address = address self.address = address
self.source_address = Address.wrap( self.source_address = Address.wrap(
source_address) if source_address else None source_address) if source_address else None
self.cert = None self.cert = None
self.ssl_established = False
self.ssl_verification_error = None self.ssl_verification_error = None
self.sni = None self.sni = None
@ -627,20 +640,12 @@ class BaseHandler(_Connection):
""" """
The instantiator is expected to call the handle() and finish() methods. The instantiator is expected to call the handle() and finish() methods.
""" """
rbufsize = -1
wbufsize = -1
def __init__(self, connection, address, server): def __init__(self, connection, address, server):
self.connection = connection super(BaseHandler, self).__init__(connection)
self.address = Address.wrap(address) self.address = Address.wrap(address)
self.server = server self.server = server
self.rfile = Reader(self.connection.makefile('rb', self.rbufsize))
self.wfile = Writer(self.connection.makefile('wb', self.wbufsize))
self.finished = False
self.ssl_established = False
self.clientcert = None self.clientcert = None
def create_ssl_context(self, def create_ssl_context(self,