예제 #1
0
 def test_serverconnect_None(self, tmpdir):
     event = multiprocessing.Event()
     w = WatchdogAddon(event, Path(tmpdir))
     with mock.patch('mitmproxy.connections.ServerConnection.settimeout'
                     ) as mock_set_timeout:
         w.serverconnect(ServerConnection("127.0.0.1"))
     assert not mock_set_timeout.called
예제 #2
0
 def __init__(self, ctx, proxy_addr, host, port):
     self.ignore = True
     self.proxy_addr = proxy_addr
     self.server_conn = ServerConnection(proxy_addr)
     self.host = host
     self.port = port
     ctx.server_conn = self.server_conn
     super().__init__(ctx)
예제 #3
0
def load_http(hf: http_pb2.HTTPFlow) -> HTTPFlow:
    parts = {}
    for p in ['request', 'response', 'client_conn', 'server_conn', 'error']:
        if hf.HasField(p):
            parts[p] = eval(f"_load_http_{p}")(getattr(hf, p))
        else:
            parts[p] = None
    _move_attrs(hf, parts, ['intercepted', 'marked', 'mode', 'id'])
    f = HTTPFlow(ClientConnection(None, tuple(), None), ServerConnection(tuple()))
    for k, v in parts.items():
        setattr(f, k, v)
    return f
예제 #4
0
def _load_http_server_conn(o: http_pb2.ServerConnection) -> ServerConnection:
    d: dict = {}
    _move_attrs(o, d, ['id', 'tls_established', 'sni', 'alpn_proto_negotiated', 'tls_version',
                       'timestamp_start', 'timestamp_tcp_setup', 'timestamp_tls_setup', 'timestamp_end'])
    for addr in ['address', 'ip_address', 'source_address']:
        if hasattr(o, addr):
            d[addr] = (getattr(o, addr).host, getattr(o, addr).port)
    if o.cert:
        c = Cert.from_pem(o.cert)
        d['cert'] = c
    if o.HasField('via'):
        d['via'] = _load_http_server_conn(o.via)
    sc = ServerConnection(tuple())
    for k, v in d.items():
        setattr(sc, k, v)
    return sc