diff options
Diffstat (limited to 'libmproxy')
-rw-r--r-- | libmproxy/console/connview.py | 4 | ||||
-rw-r--r-- | libmproxy/flow.py | 7 |
2 files changed, 7 insertions, 4 deletions
diff --git a/libmproxy/console/connview.py b/libmproxy/console/connview.py index b722f78e..7bdf75bd 100644 --- a/libmproxy/console/connview.py +++ b/libmproxy/console/connview.py @@ -374,7 +374,7 @@ class ConnectionView(common.WWrap): conn.headers = flow.ODict(lst) def set_query(self, lst, conn): - conn.set_query(lst) + conn.set_query(flow.ODict(lst)) def set_form(self, lst, conn): conn.set_form_urlencoded(lst) @@ -396,7 +396,7 @@ class ConnectionView(common.WWrap): elif part == "h": self.master.view_kveditor("Editing headers", conn.headers.lst, self.set_headers, conn) elif part == "q": - self.master.view_kveditor("Editing query", conn.get_query(), self.set_query, conn) + self.master.view_kveditor("Editing query", conn.get_query().lst, self.set_query, conn) elif part == "u" and self.state.view_flow_mode == common.VIEW_FLOW_REQUEST: self.master.prompt_edit("URL", conn.get_url(), self.set_url) elif part == "m" and self.state.view_flow_mode == common.VIEW_FLOW_REQUEST: diff --git a/libmproxy/flow.py b/libmproxy/flow.py index f29dcf27..0ca4d262 100644 --- a/libmproxy/flow.py +++ b/libmproxy/flow.py @@ -69,6 +69,9 @@ class ODict: new.append(i) return new + def __len__(self): + return len(self.lst) + def __setitem__(self, k, values): if isinstance(values, basestring): raise ValueError("ODict values should be lists.") @@ -323,7 +326,7 @@ class Request(HTTPMsg): _, _, _, _, query, _ = urlparse.urlparse(self.get_url()) if not query: return [] - return utils.urldecode(query) + return ODict(utils.urldecode(query)) def set_query(self, q): """ @@ -331,7 +334,7 @@ class Request(HTTPMsg): string. """ scheme, netloc, path, params, _, fragment = urlparse.urlparse(self.get_url()) - query = utils.urlencode(q) + query = utils.urlencode(q.lst) self.set_url(urlparse.urlunparse([scheme, netloc, path, params, query, fragment])) def get_url(self): |