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.
This commit is contained in:
Thomas Kriechbaumer 2015-06-11 16:36:58 +02:00
parent 0bc8fa1d0d
commit 22811c45dd
2 changed files with 9 additions and 15 deletions

View File

@ -20,7 +20,7 @@ DEFAULT_CERT_DOMAIN = "pathod.net"
CONFDIR = "~/.mitmproxy" CONFDIR = "~/.mitmproxy"
CERTSTORE_BASENAME = "mitmproxy" CERTSTORE_BASENAME = "mitmproxy"
CA_CERT_NAME = "mitmproxy-ca.pem" CA_CERT_NAME = "mitmproxy-ca.pem"
DEFAULT_ANCHOR = r"/p/?" DEFAULT_CRAFT_ANCHOR = "/p/"
logger = logging.getLogger('pathod') logger = logging.getLogger('pathod')
@ -293,8 +293,9 @@ class PathodHandler(tcp.BaseHandler):
anchor_gen = i[1] anchor_gen = i[1]
break break
else: else:
if m(self.server.craftanchor.match(path)): print(self.server.craftanchor)
spec = urllib.unquote(path)[len(m.v.group()):] if m(path.startswith(self.server.craftanchor)):
spec = urllib.unquote(path)[len(self.server.craftanchor):]
if spec: if spec:
try: try:
anchor_gen = language.parse_pathod(spec) anchor_gen = language.parse_pathod(spec)
@ -373,7 +374,7 @@ class Pathod(tcp.TCPServer):
addr, addr,
ssl=False, ssl=False,
ssloptions=None, ssloptions=None,
craftanchor=re.compile(DEFAULT_ANCHOR), craftanchor=DEFAULT_CRAFT_ANCHOR,
staticdir=None, staticdir=None,
anchors=(), anchors=(),
sizelimit=None, sizelimit=None,
@ -393,7 +394,7 @@ class Pathod(tcp.TCPServer):
addr: (address, port) tuple. If port is 0, a free port will be addr: (address, port) tuple. If port is 0, a free port will be
automatically chosen. automatically chosen.
ssloptions: an SSLOptions object. 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. response generation.
staticdir: path to a directory of static resources, or None. staticdir: path to a directory of static resources, or None.
anchors: List of (regex object, language.Request object) tuples, or anchors: List of (regex object, language.Request object) tuples, or

View File

@ -45,11 +45,11 @@ def args_pathod(argv, stdout=sys.stdout, stderr=sys.stderr):
""" """
) )
parser.add_argument( parser.add_argument(
"-c", dest='craftanchor', default=pathod.DEFAULT_ANCHOR, type=str, "-c", dest='craftanchor', default=pathod.DEFAULT_CRAFT_ANCHOR, type=str,
help=""" help="""
Regular expression specifying anchor point for URL crafting URL path specifying prefix for URL crafting
commands. (%s) commands. (%s)
"""%pathod.DEFAULT_ANCHOR """%pathod.DEFAULT_CRAFT_ANCHOR
) )
parser.add_argument( parser.add_argument(
"--confdir", "--confdir",
@ -203,13 +203,6 @@ def args_pathod(argv, stdout=sys.stdout, stderr=sys.stderr):
return parser.error(v) return parser.error(v)
args.sizelimit = sizelimit 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 = [] anchors = []
for patt, spec in args.anchors: for patt, spec in args.anchors:
if os.path.isfile(spec): if os.path.isfile(spec):