diff options
| author | Aldo Cortesi <aldo@nullcube.com> | 2014-10-24 17:19:55 +1300 |
|---|---|---|
| committer | Aldo Cortesi <aldo@nullcube.com> | 2014-10-24 17:19:55 +1300 |
| commit | c6c05098360c32dca82621cc4aaf91064f81e3f3 (patch) | |
| tree | f0944a51b1971a9fe02ddd98c7d72312d68e3c97 /libpathod/pathod.py | |
| parent | cd481fdd14a96afeb61ce5d2b8d899f24af1051f (diff) | |
| download | mitmproxy-c6c05098360c32dca82621cc4aaf91064f81e3f3.tar.gz mitmproxy-c6c05098360c32dca82621cc4aaf91064f81e3f3.tar.bz2 mitmproxy-c6c05098360c32dca82621cc4aaf91064f81e3f3.zip | |
Strictly separate argument parsing from main loops
Diffstat (limited to 'libpathod/pathod.py')
| -rw-r--r-- | libpathod/pathod.py | 41 |
1 files changed, 11 insertions, 30 deletions
diff --git a/libpathod/pathod.py b/libpathod/pathod.py index 25f072fa..37b07bb6 100644 --- a/libpathod/pathod.py +++ b/libpathod/pathod.py @@ -3,6 +3,7 @@ import threading import re import logging import os +import sys from netlib import tcp, http, wsgi, certutils import netlib.utils @@ -371,33 +372,16 @@ class Pathod(tcp.TCPServer): return self.log -def main(parser, args): - certs = [] - for i in args.ssl_certs: - parts = i.split("=", 1) - if len(parts) == 1: - parts = ["*", parts[0]] - parts[1] = os.path.expanduser(parts[1]) - if not os.path.exists(parts[1]): - parser.error("Certificate file does not exist: %s"%parts[1]) - certs.append(parts) - +def main(args): ssloptions = SSLOptions( cn = args.cn, confdir = args.confdir, not_after_connect = args.ssl_not_after_connect, ciphers = args.ciphers, sslversion = utils.SSLVERSIONS[args.sslversion], - certs = certs + certs = args.ssl_certs ) - alst = [] - for i in args.anchors: - parts = utils.parse_anchor_spec(i) - if not parts: - parser.error("Invalid anchor specification: %s"%i) - alst.append(parts) - root = logging.getLogger() if root.handlers: for handler in root.handlers: @@ -418,13 +402,6 @@ def main(parser, args): sh.setFormatter(fmt) log.addHandler(sh) - sizelimit = None - if args.sizelimit: - try: - sizelimit = utils.parse_size(args.sizelimit) - except ValueError, v: - parser.error(v) - try: pd = Pathod( (args.address, args.port), @@ -432,8 +409,8 @@ def main(parser, args): ssl = args.ssl, ssloptions = ssloptions, staticdir = args.staticdir, - anchors = alst, - sizelimit = sizelimit, + anchors = args.anchors, + sizelimit = args.sizelimit, noweb = args.noweb, nocraft = args.nocraft, noapi = args.noapi, @@ -445,9 +422,13 @@ def main(parser, args): explain = args.explain, ) except PathodError, v: - parser.error(str(v)) + print >> sys.stderr, "Error: %s"%v + sys.exit(1) except language.FileAccessDenied, v: - parser.error("%s You probably want to a -d argument."%str(v)) + print >> sys.stderr, "Error: %s"%v + + if args.daemonize: + utils.daemonize() try: print "%s listening on %s:%s"%( |
