diff options
author | Maximilian Hils <git@maximilianhils.com> | 2014-12-13 01:56:04 +0100 |
---|---|---|
committer | Maximilian Hils <git@maximilianhils.com> | 2014-12-13 01:56:04 +0100 |
commit | 955c5c87a261ad4083e4b3f1579625a2b53eb912 (patch) | |
tree | c33ab7eb3be5865d1ea38768d3404db524f4413e /web/src/js/filt/filt.pegjs | |
parent | a09eb2bef42e241c6ff1698606f4a0decbca174a (diff) | |
download | mitmproxy-955c5c87a261ad4083e4b3f1579625a2b53eb912.tar.gz mitmproxy-955c5c87a261ad4083e4b3f1579625a2b53eb912.tar.bz2 mitmproxy-955c5c87a261ad4083e4b3f1579625a2b53eb912.zip |
web: filter/highlight ui, many fixes
Diffstat (limited to 'web/src/js/filt/filt.pegjs')
-rw-r--r-- | web/src/js/filt/filt.pegjs | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/web/src/js/filt/filt.pegjs b/web/src/js/filt/filt.pegjs index 334f5d9b..0870e4fe 100644 --- a/web/src/js/filt/filt.pegjs +++ b/web/src/js/filt/filt.pegjs @@ -4,8 +4,8 @@ function or(first, second) { // Add explicit function names to ease debugging. function orFilter() { - first.apply(this, arguments) || second.apply(this, arguments); - }; + return first.apply(this, arguments) || second.apply(this, arguments); + } orFilter.desc = first.desc + " or " + second.desc; return orFilter; } @@ -19,14 +19,14 @@ function and(first, second) { function not(expr) { function notFilter() { return !expr.apply(this, arguments); - }; + } notFilter.desc = "not " + expr.desc; return notFilter; } function binding(expr) { function bindingFilter() { return expr.apply(this, arguments); - }; + } bindingFilter.desc = "(" + expr.desc + ")"; return bindingFilter; } @@ -61,10 +61,9 @@ function assetFilter(flow) { } assetFilter.desc = "is asset"; function responseCode(code){ - code = parseInt(code); function responseCodeFilter(flow){ return flow.response && flow.response.code === code; - }; + } responseCodeFilter.desc = "resp. code is " + code; return responseCodeFilter; } @@ -72,7 +71,7 @@ function domain(regex){ regex = new RegExp(regex, "i"); function domainFilter(flow){ return flow.request && regex.test(flow.request.host); - }; + } domainFilter.desc = "domain matches " + regex; return domainFilter; } @@ -88,7 +87,7 @@ function header(regex){ || (flow.response && ResponseUtils.match_header(flow.response, regex)) ); - }; + } headerFilter.desc = "header matches " + regex; return headerFilter; } @@ -112,7 +111,7 @@ function method(regex){ regex = new RegExp(regex, "i"); function methodFilter(flow){ return flow.request && regex.test(flow.request.method); - }; + } methodFilter.desc = "method matches " + regex; return methodFilter; } @@ -133,7 +132,7 @@ function contentType(regex){ || (flow.response && regex.test(ResponseUtils.getContentType(flow.response))) ); - }; + } contentTypeFilter.desc = "content type matches " + regex; return contentTypeFilter; } @@ -141,7 +140,7 @@ function requestContentType(regex){ regex = new RegExp(regex, "i"); function requestContentTypeFilter(flow){ return flow.request && regex.test(RequestUtils.getContentType(flow.request)); - }; + } requestContentTypeFilter.desc = "req. content type matches " + regex; return requestContentTypeFilter; } @@ -149,7 +148,7 @@ function responseContentType(regex){ regex = new RegExp(regex, "i"); function responseContentTypeFilter(flow){ return flow.response && regex.test(ResponseUtils.getContentType(flow.response)); - }; + } responseContentTypeFilter.desc = "resp. content type matches " + regex; return responseContentTypeFilter; } @@ -210,7 +209,7 @@ BooleanLiteral / "false" { return falseFilter; } UnaryExpr - = "~c" ws+ s:StringLiteral { return responseCode(s); } + = "~c" ws+ s:IntegerLiteral { return responseCode(s); } / "~d" ws+ s:StringLiteral { return domain(s); } / "~h" ws+ s:StringLiteral { return header(s); } / "~hq" ws+ s:StringLiteral { return requestHeader(s); } @@ -222,6 +221,9 @@ UnaryExpr / "~u" ws+ s:StringLiteral { return url(s); } / s:StringLiteral { return url(s); } +IntegerLiteral "integer" + = ['"]? digits:[0-9]+ ['"]? { return parseInt(digits.join(""), 10); } + StringLiteral "string" = '"' chars:DoubleStringChar* '"' { return chars.join(""); } / "'" chars:SingleStringChar* "'" { return chars.join(""); } |