From 22811c45dd1e6e6f1c8108e83a7be625f305c19e Mon Sep 17 00:00:00 2001 From: Thomas Kriechbaumer Date: Thu, 11 Jun 2015 16:36:58 +0200 Subject: [PATCH] fix craft anchor The go-button in the app was broken due to an invalid string representation of the regex. A plain string used as URL prefix simplifies this drastically. --- libpathod/pathod.py | 11 ++++++----- libpathod/pathod_cmdline.py | 13 +++---------- 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/libpathod/pathod.py b/libpathod/pathod.py index 505c8c22c..f14961810 100644 --- a/libpathod/pathod.py +++ b/libpathod/pathod.py @@ -20,7 +20,7 @@ DEFAULT_CERT_DOMAIN = "pathod.net" CONFDIR = "~/.mitmproxy" CERTSTORE_BASENAME = "mitmproxy" CA_CERT_NAME = "mitmproxy-ca.pem" -DEFAULT_ANCHOR = r"/p/?" +DEFAULT_CRAFT_ANCHOR = "/p/" logger = logging.getLogger('pathod') @@ -293,8 +293,9 @@ class PathodHandler(tcp.BaseHandler): anchor_gen = i[1] break else: - if m(self.server.craftanchor.match(path)): - spec = urllib.unquote(path)[len(m.v.group()):] + print(self.server.craftanchor) + if m(path.startswith(self.server.craftanchor)): + spec = urllib.unquote(path)[len(self.server.craftanchor):] if spec: try: anchor_gen = language.parse_pathod(spec) @@ -373,7 +374,7 @@ class Pathod(tcp.TCPServer): addr, ssl=False, ssloptions=None, - craftanchor=re.compile(DEFAULT_ANCHOR), + craftanchor=DEFAULT_CRAFT_ANCHOR, staticdir=None, anchors=(), sizelimit=None, @@ -393,7 +394,7 @@ class Pathod(tcp.TCPServer): addr: (address, port) tuple. If port is 0, a free port will be automatically chosen. ssloptions: an SSLOptions object. - craftanchor: string specifying the path under which to anchor + craftanchor: URL prefix specifying the path under which to anchor response generation. staticdir: path to a directory of static resources, or None. anchors: List of (regex object, language.Request object) tuples, or diff --git a/libpathod/pathod_cmdline.py b/libpathod/pathod_cmdline.py index c1f016c23..68828aca9 100644 --- a/libpathod/pathod_cmdline.py +++ b/libpathod/pathod_cmdline.py @@ -45,11 +45,11 @@ def args_pathod(argv, stdout=sys.stdout, stderr=sys.stderr): """ ) parser.add_argument( - "-c", dest='craftanchor', default=pathod.DEFAULT_ANCHOR, type=str, + "-c", dest='craftanchor', default=pathod.DEFAULT_CRAFT_ANCHOR, type=str, help=""" - Regular expression specifying anchor point for URL crafting + URL path specifying prefix for URL crafting commands. (%s) - """%pathod.DEFAULT_ANCHOR + """%pathod.DEFAULT_CRAFT_ANCHOR ) parser.add_argument( "--confdir", @@ -203,13 +203,6 @@ def args_pathod(argv, stdout=sys.stdout, stderr=sys.stderr): return parser.error(v) args.sizelimit = sizelimit - try: - args.craftanchor = re.compile(args.craftanchor) - except re.error: - return parser.error( - "Invalid regex in craft anchor: %s" % args.craftanchor - ) - anchors = [] for patt, spec in args.anchors: if os.path.isfile(spec):