mirror of
https://github.com/Grasscutters/mitmproxy.git
synced 2024-11-23 08:11:00 +00:00
Implement and unit test not-after-connect option.
This commit is contained in:
parent
5493925ea0
commit
ed7ef84557
@ -70,15 +70,16 @@ class PathodHandler(tcp.BaseHandler):
|
||||
'\r\n'
|
||||
)
|
||||
self.wfile.flush()
|
||||
try:
|
||||
self.convert_to_ssl(
|
||||
self.server.ssloptions.certfile,
|
||||
self.server.ssloptions.keyfile,
|
||||
)
|
||||
except tcp.NetLibError, v:
|
||||
s = str(v)
|
||||
self.info(s)
|
||||
return False, dict(type = "error", msg = s)
|
||||
if not self.server.ssloptions.not_after_connect:
|
||||
try:
|
||||
self.convert_to_ssl(
|
||||
self.server.ssloptions.certfile,
|
||||
self.server.ssloptions.keyfile,
|
||||
)
|
||||
except tcp.NetLibError, v:
|
||||
s = str(v)
|
||||
self.info(s)
|
||||
return False, dict(type = "error", msg = s)
|
||||
return True, None
|
||||
elif m(http.parse_init_proxy(line)):
|
||||
method, _, _, _, path, httpversion = m.v
|
||||
|
@ -52,6 +52,14 @@ class TestNoApi(tutils.DaemonTests):
|
||||
assert not "Log" in r.content
|
||||
|
||||
|
||||
class TestNotAfterConnect(tutils.DaemonTests):
|
||||
ssl = False
|
||||
not_after_connect = True
|
||||
def test_connect(self):
|
||||
v = self.pathoc(r"get:'http://foo.com/p/202':da", connect_to=("localhost", self.d.port))
|
||||
assert v[1] == 202
|
||||
|
||||
|
||||
class TestNohang(tutils.DaemonTests):
|
||||
nohang = True
|
||||
def test_nohang(self):
|
||||
|
@ -1,6 +1,6 @@
|
||||
import tempfile, os, shutil
|
||||
from contextlib import contextmanager
|
||||
from libpathod import utils, test, pathoc
|
||||
from libpathod import utils, test, pathoc, pathod
|
||||
import requests
|
||||
|
||||
class DaemonTests:
|
||||
@ -10,12 +10,15 @@ class DaemonTests:
|
||||
ssl = False
|
||||
timeout = None
|
||||
hexdump = False
|
||||
not_after_connect = False
|
||||
@classmethod
|
||||
def setUpAll(self):
|
||||
so = pathod.SSLOptions(not_after_connect = self.not_after_connect)
|
||||
self.d = test.Daemon(
|
||||
staticdir=test_data.path("data"),
|
||||
anchors=[("/anchor/.*", "202:da")],
|
||||
ssl = self.ssl,
|
||||
ssloptions = so,
|
||||
sizelimit=1*1024*1024,
|
||||
noweb = self.noweb,
|
||||
noapi = self.noapi,
|
||||
|
Loading…
Reference in New Issue
Block a user