mirror of
https://github.com/Grasscutters/mitmproxy.git
synced 2025-02-01 07:49:10 +00:00
Fine-tuning for injection: docs, bugfixes.
This commit is contained in:
parent
d7841898e3
commit
8e0c01ae39
@ -421,7 +421,8 @@ class InjectAt:
|
|||||||
e = e + pp.MatchFirst(
|
e = e + pp.MatchFirst(
|
||||||
[
|
[
|
||||||
v_integer,
|
v_integer,
|
||||||
pp.Literal("r")
|
pp.Literal("r"),
|
||||||
|
pp.Literal("a")
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
e += pp.Literal(",").suppress()
|
e += pp.Literal(",").suppress()
|
||||||
@ -429,7 +430,13 @@ class InjectAt:
|
|||||||
return e.setParseAction(lambda x: klass(*x))
|
return e.setParseAction(lambda x: klass(*x))
|
||||||
|
|
||||||
def accept(self, settings, r):
|
def accept(self, settings, r):
|
||||||
r.actions.append((self.offset, "inject", self.value))
|
r.actions.append(
|
||||||
|
(
|
||||||
|
self.offset,
|
||||||
|
"inject",
|
||||||
|
self.value.get_generator(settings)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class Header:
|
class Header:
|
||||||
|
@ -157,6 +157,17 @@ various other goodies. Try it by visiting the server root:</p>
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
iOFFSET,VALUE
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
Inject the specified value at the offset. OFFSET can be an
|
||||||
|
integer, or "r" to generate a random offset or "a" for an
|
||||||
|
offset just after all data has been sent.
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
lVALUE
|
lVALUE
|
||||||
|
@ -175,6 +175,10 @@ class TestInject:
|
|||||||
assert a[0] == "r"
|
assert a[0] == "r"
|
||||||
assert a[1] == "inject"
|
assert a[1] == "inject"
|
||||||
|
|
||||||
|
a = rparse.parse_response({}, "400:ia,@100").actions[0]
|
||||||
|
assert a[0] == "a"
|
||||||
|
assert a[1] == "inject"
|
||||||
|
|
||||||
def test_at(self):
|
def test_at(self):
|
||||||
e = rparse.InjectAt.expr()
|
e = rparse.InjectAt.expr()
|
||||||
v = e.parseString("i0,'foo'")[0]
|
v = e.parseString("i0,'foo'")[0]
|
||||||
@ -185,6 +189,11 @@ class TestInject:
|
|||||||
v = e.parseString("ir,'foo'")[0]
|
v = e.parseString("ir,'foo'")[0]
|
||||||
assert v.offset == "r"
|
assert v.offset == "r"
|
||||||
|
|
||||||
|
def test_serve(self):
|
||||||
|
s = cStringIO.StringIO()
|
||||||
|
r = rparse.parse_response({}, "400:i0,'foo'")
|
||||||
|
assert r.serve(s)
|
||||||
|
|
||||||
|
|
||||||
class TestShortcuts:
|
class TestShortcuts:
|
||||||
def test_parse_response(self):
|
def test_parse_response(self):
|
||||||
|
Loading…
Reference in New Issue
Block a user