Beispiel #1
0
def tresp(req=None):
    if not req:
        req = treq()
    headers = flow.ODictCaseless()
    headers["header_response"] = ["svalue"]
    cert = certutils.SSLCert.from_der(file(test_data.path("data/dercert"),"rb").read())
    resp = flow.Response(req, (1, 1), 200, "message", headers, "content_response", cert)
    resp.reply = controller.DummyReply()
    return resp
Beispiel #2
0
def tclient_conn():
    """
    @return: libmproxy.proxy.connection.ClientConnection
    """
    c = ClientConnection.from_state(
        dict(address=dict(address=("address", 22), use_ipv6=True),
             clientcert=None))
    c.reply = controller.DummyReply()
    return c
Beispiel #3
0
def tserver_conn():
    """
    @return: libmproxy.proxy.connection.ServerConnection
    """
    c = ServerConnection.from_state(
        dict(address=dict(address=("address", 22), use_ipv6=True),
             state=[],
             source_address=dict(address=("address", 22), use_ipv6=True),
             cert=None))
    c.reply = controller.DummyReply()
    return c
Beispiel #4
0
 def test_script(self):
     s = flow.State()
     fm = flow.FlowMaster(None, s)
     assert not fm.load_script(tutils.test_data.path("scripts/all.py"))
     req = tutils.treq()
     fm.handle_clientconnect(req.client_conn)
     assert fm.script.ns["log"][-1] == "clientconnect"
     f = fm.handle_request(req)
     assert fm.script.ns["log"][-1] == "request"
     resp = tutils.tresp(req)
     fm.handle_response(resp)
     assert fm.script.ns["log"][-1] == "response"
     dc = flow.ClientDisconnect(req.client_conn)
     dc.reply = controller.DummyReply()
     fm.handle_clientdisconnect(dc)
     assert fm.script.ns["log"][-1] == "clientdisconnect"
     err = flow.Error(f.request, "msg")
     err.reply = controller.DummyReply()
     fm.handle_error(err)
     assert fm.script.ns["log"][-1] == "error"
Beispiel #5
0
def treq(conn=None, content="content"):
    if not conn:
        conn = tclient_conn()
    server_conn = tserver_conn()
    headers = flow.ODictCaseless()
    headers["header"] = ["qvalue"]

    f = http.HTTPFlow(conn, server_conn)
    f.request = http.HTTPRequest("relative", "GET", None, None, None, "/path",
                                 (1, 1), headers, content, None, None, None)
    f.request.reply = controller.DummyReply()
    return f.request
Beispiel #6
0
def tclient_conn():
    """
    @return: libmproxy.proxy.connection.ClientConnection
    """
    c = ClientConnection.from_state(
        dict(
            address=dict(address=("address", 22), use_ipv6=True),
            clientcert=None,
            ssl_established=False,
            timestamp_start=1,
            timestamp_ssl_setup=2,
            timestamp_end=3,
        ))
    c.reply = controller.DummyReply()
    return c
Beispiel #7
0
def tresp(req=None, content="message"):
    if not req:
        req = treq()
    f = req.flow

    headers = flow.ODictCaseless()
    headers["header_response"] = ["svalue"]
    cert = certutils.SSLCert.from_der(
        file(test_data.path("data/dercert"), "rb").read())
    f.server_conn = ServerConnection._from_state(
        dict(address=dict(address=("address", 22), use_ipv6=True),
             source_address=None,
             cert=cert.to_pem()))
    f.response = http.HTTPResponse((1, 1), 200, "OK", headers, content, time(),
                                   time())
    f.response.reply = controller.DummyReply()
    return f.response
Beispiel #8
0
    def test_client_playback(self):
        s = flow.State()

        f = tutils.tflow_full()
        pb = [tutils.tflow_full(), f]
        fm = flow.FlowMaster(None, s)
        assert not fm.start_server_playback(pb, False, [], False, False)
        assert not fm.start_client_playback(pb, False)

        q = Queue.Queue()
        assert not fm.state.flow_count()
        fm.tick(q)
        assert fm.state.flow_count()

        err = flow.Error(f.request, "error")
        err.reply = controller.DummyReply()
        fm.handle_error(err)
Beispiel #9
0
def tserver_conn():
    """
    @return: libmproxy.proxy.connection.ServerConnection
    """
    c = ServerConnection.from_state(
        dict(address=dict(address=("address", 22), use_ipv6=True),
             source_address=dict(address=("address", 22), use_ipv6=True),
             cert=None,
             timestamp_start=1,
             timestamp_tcp_setup=2,
             timestamp_ssl_setup=3,
             timestamp_end=4,
             ssl_established=False,
             sni="address",
             via=None))
    c.reply = controller.DummyReply()
    return c
Beispiel #10
0
    def test_all(self):
        s = flow.State()
        fm = flow.FlowMaster(None, s)
        fm.anticache = True
        fm.anticomp = True
        f = tutils.tflow(req=None)
        fm.handle_clientconnect(f.client_conn)
        f.request = tutils.treq()
        fm.handle_request(f)
        assert s.flow_count() == 1

        f.response = tutils.tresp()
        fm.handle_response(f)
        assert not fm.handle_response(None)
        assert s.flow_count() == 1

        fm.handle_clientdisconnect(f.client_conn)

        f.error = Error("msg")
        f.error.reply = controller.DummyReply()
        fm.handle_error(f)

        fm.load_script(tutils.test_data.path("scripts/a.py"))
        fm.shutdown()
Beispiel #11
0
def tflow_err():
    r = treq()
    f = flow.Flow(r)
    f.error = flow.Error(r, "error")
    f.error.reply = controller.DummyReply()
    return f
Beispiel #12
0
def tclient_conn():
    c = ClientConnection._from_state(
        dict(address=dict(address=("address", 22), use_ipv6=True),
             clientcert=None))
    c.reply = controller.DummyReply()
    return c
Beispiel #13
0
def terr(req=None):
    if not req:
        req = treq()
    err = flow.Error(req, "error")
    err.reply = controller.DummyReply()
    return err