Let's not over-ride __bool__ on connection objects

If I had a thousand years and every thesaurus in the world, I still couldn't
adequately express how much I dislike this piece of interface design.
This commit is contained in:
Aldo Cortesi
2016-11-04 10:54:04 +13:00
parent 6c8c4465d9
commit 4eb2b56dec
12 changed files with 21 additions and 21 deletions

View File

@@ -145,7 +145,7 @@ def response(flow):
"params": params
}
if flow.server_conn:
if flow.server_conn.connected():
entry["serverIPAddress"] = str(flow.server_conn.ip_address.address[0])
HAR["log"]["entries"].append(entry)

View File

@@ -98,7 +98,7 @@ class Dumper:
self.echo("")
def _echo_request_line(self, flow):
if flow.client_conn is not None:
if flow.client_conn:
client = click.style(
strutils.escape_control_characters(
repr(flow.client_conn.address)

View File

@@ -47,7 +47,7 @@ class ClientConnection(tcp.BaseHandler, stateobject.StateObject):
self.cipher_name = None
self.tls_version = None
def __bool__(self):
def connected(self):
return bool(self.connection) and not self.finished
def __repr__(self):
@@ -146,7 +146,7 @@ class ServerConnection(tcp.TCPClient, stateobject.StateObject):
self.timestamp_ssl_setup = None
self.protocol = None
def __bool__(self):
def connected(self):
return bool(self.connection) and not self.finished
def __repr__(self):

View File

@@ -8,7 +8,7 @@ class HttpProxy(protocol.Layer, protocol.ServerConnectionMixin):
try:
layer()
finally:
if self.server_conn:
if self.server_conn.connected():
self.disconnect()
@@ -22,5 +22,5 @@ class HttpUpstreamProxy(protocol.Layer, protocol.ServerConnectionMixin):
try:
layer()
finally:
if self.server_conn:
if self.server_conn.connected():
self.disconnect()

View File

@@ -12,5 +12,5 @@ class ReverseProxy(protocol.Layer, protocol.ServerConnectionMixin):
try:
layer()
finally:
if self.server_conn:
if self.server_conn.connected():
self.disconnect()

View File

@@ -56,5 +56,5 @@ class Socks5Proxy(protocol.Layer, protocol.ServerConnectionMixin):
try:
layer()
finally:
if self.server_conn:
if self.server_conn.connected():
self.disconnect()

View File

@@ -19,5 +19,5 @@ class TransparentProxy(protocol.Layer, protocol.ServerConnectionMixin):
try:
layer()
finally:
if self.server_conn:
if self.server_conn.connected():
self.disconnect()

View File

@@ -101,7 +101,7 @@ class ServerConnectionMixin:
try:
# Do something.
finally:
if self.server_conn:
if self.server_conn.connected():
self.disconnect()
"""
@@ -139,7 +139,7 @@ class ServerConnectionMixin:
"""
Sets a new server address. If there is an existing connection, it will be closed.
"""
if self.server_conn:
if self.server_conn.connected():
self.disconnect()
self.log("Set new server address: " + repr(address), "debug")
self.server_conn.address = address

View File

@@ -76,8 +76,8 @@ class ConnectServerConnection:
def __getattr__(self, item):
return getattr(self.via, item)
def __bool__(self):
return bool(self.via)
def connected(self):
return self.via.connected()
class UpstreamConnectLayer(base.Layer):
@@ -101,7 +101,7 @@ class UpstreamConnectLayer(base.Layer):
raise exceptions.ProtocolException("Reconnect: Upstream server refuses CONNECT request")
def connect(self):
if not self.server_conn:
if not self.server_conn.connected():
self.ctx.connect()
self._send_connect_request()
else:
@@ -112,7 +112,7 @@ class UpstreamConnectLayer(base.Layer):
self.ctx.set_server(address)
def set_server(self, address):
if self.ctx.server_conn:
if self.ctx.server_conn.connected():
self.ctx.disconnect()
address = tcp.Address.wrap(address)
self.connect_request.host = address.host
@@ -378,10 +378,10 @@ class HttpLayer(base.Layer):
self.set_server(address)
self.set_server_tls(tls, address.host)
# Establish connection is neccessary.
if not self.server_conn:
if not self.server_conn.connected():
self.connect()
else:
if not self.server_conn:
if not self.server_conn.connected():
self.connect()
if tls:
raise exceptions.HttpProtocolException("Cannot change scheme in upstream proxy mode.")

View File

@@ -96,7 +96,7 @@ class Http2Layer(base.Layer):
self.client_conn.h2 = SafeH2Connection(self.client_conn, config=config)
def _initiate_server_conn(self):
if self.server_conn:
if self.server_conn.connected():
config = h2.config.H2Configuration(
client_side=True,
header_encoding=False,

View File

@@ -115,5 +115,5 @@ class RequestReplayThread(basethread.BaseThread):
finally:
r.first_line_format = first_line_format_backup
self.f.live = False
if server:
if server.connected():
server.finish()

View File

@@ -364,7 +364,7 @@ class TlsLayer(base.Layer):
)
)
establish_server_tls_now = (
(self.server_conn and self._server_tls) or
(self.server_conn.connected() and self._server_tls) or
client_tls_requires_server_connection
)
@@ -389,7 +389,7 @@ class TlsLayer(base.Layer):
return "TlsLayer(inactive)"
def connect(self):
if not self.server_conn:
if not self.server_conn.connected():
self.ctx.connect()
if self._server_tls and not self.server_conn.tls_established:
self._establish_tls_with_server()