From: Fredrik Tolf Date: Sat, 11 Jan 2014 04:46:51 +0000 (+0100) Subject: Merge branch 'master' into python3 X-Git-Url: http://dolda2000.com/gitweb/?p=wrw.git;a=commitdiff_plain;h=6afbb1788a98c5707f88b2c6b027b345f3b053f8;hp=-c Merge branch 'master' into python3 --- 6afbb1788a98c5707f88b2c6b027b345f3b053f8 diff --combined wrw/dispatch.py index 2ece093,666d7a7..7f1066a --- a/wrw/dispatch.py +++ b/wrw/dispatch.py @@@ -1,5 -1,5 +1,5 @@@ import sys, traceback -import env, req, proto +from . import env, req, proto __all__ = ["restart"] @@@ -17,7 -17,7 +17,7 @@@ def mangle(result) return [str(result)] def defaulterror(req, excinfo): - import resp + from . import resp traceback.print_exception(*excinfo) sys.stderr.flush() raise resp.httperror(500) @@@ -38,9 -38,9 +38,9 @@@ def handle(req, startreq, handler) try: resp = handler(req) break - except restart, i: + except restart as i: handler = i.handle - except Exception, i: + except Exception as i: if eh is None: raise handler = wraphandler(eh, sys.exc_info()) @@@ -55,3 -55,15 +55,15 @@@ def handleenv(env, startreq, handler) return proto.simpleerror(env, startreq, 400, "Bad Request", "Request must include Host header.") r = req.origrequest(env) return handle(r, startreq, handler) + + def exterror(env, startreq): + def handler(req): + import resp + code = 404 + if "Response-Code" in req.ihead: + try: + code = int(req.ihead["Response-Code"]) + except ValueError: + pass + raise resp.httperror(code) + return handleenv(env, startreq, handler)