aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/console
diff options
context:
space:
mode:
Diffstat (limited to 'libmproxy/console')
-rw-r--r--libmproxy/console/__init__.py19
-rw-r--r--libmproxy/console/grideditor.py11
2 files changed, 24 insertions, 6 deletions
diff --git a/libmproxy/console/__init__.py b/libmproxy/console/__init__.py
index 9bac5773..e835340e 100644
--- a/libmproxy/console/__init__.py
+++ b/libmproxy/console/__init__.py
@@ -124,6 +124,10 @@ class StatusBar(common.WWrap):
def get_status(self):
r = []
+ if self.master.setheaders.count():
+ r.append("[")
+ r.append(("heading_key", "H"))
+ r.append("eaders]")
if self.master.replacehooks.count():
r.append("[")
r.append(("heading_key", "R"))
@@ -762,11 +766,6 @@ class ConsoleMaster(flow.FlowMaster):
else:
self.view_flowlist()
- def set_replace(self, r):
- self.replacehooks.clear()
- for i in r:
- self.replacehooks.add(*i)
-
def loop(self):
changed = True
try:
@@ -815,6 +814,14 @@ class ConsoleMaster(flow.FlowMaster):
),
self.stop_client_playback_prompt,
)
+ elif k == "H":
+ self.view_grideditor(
+ grideditor.SetHeadersEditor(
+ self,
+ self.setheaders.get_specs(),
+ self.setheaders.set
+ )
+ )
elif k == "i":
self.prompt(
"Intercept filter: ",
@@ -853,7 +860,7 @@ class ConsoleMaster(flow.FlowMaster):
grideditor.ReplaceEditor(
self,
self.replacehooks.get_specs(),
- self.set_replace
+ self.replacehooks.set
)
)
elif k == "s":
diff --git a/libmproxy/console/grideditor.py b/libmproxy/console/grideditor.py
index 51002e77..d62cb206 100644
--- a/libmproxy/console/grideditor.py
+++ b/libmproxy/console/grideditor.py
@@ -373,3 +373,14 @@ class ReplaceEditor(GridEditor):
return True
return False
+
+class SetHeadersEditor(GridEditor):
+ title = "Editing header set patterns"
+ columns = 3
+ headings = ("Filter", "Header", "Value")
+ def is_error(self, col, val):
+ if col == 0:
+ if not filt.parse(val):
+ return True
+ return False
+