Handle missing-Host-header condition.
authorFredrik Tolf <fredrik@dolda2000.com>
Wed, 16 Jan 2013 00:16:34 +0000 (01:16 +0100)
committerFredrik Tolf <fredrik@dolda2000.com>
Wed, 16 Jan 2013 00:16:34 +0000 (01:16 +0100)
wrw/dispatch.py
wrw/util.py

index 15ea99e..fa1f669 100644 (file)
@@ -1,5 +1,5 @@
 import sys, traceback
-import env
+import env, req, proto
 
 __all__ = ["restart"]
 
@@ -73,3 +73,9 @@ def handle(req, startreq, handler):
         return resp
     finally:
         req.cleanup()
+
+def handleenv(env, startreq, handler):
+    if not "HTTP_HOST" in env:
+        return proto.simpleerror(env, startreq, 400, "Bad Request", "Request must include Host header.")
+    r = req.origrequest(env)
+    return handle(r, startreq, handler)
index 5ee002b..6368b18 100644 (file)
@@ -3,7 +3,7 @@ import req, dispatch, session, form
 
 def wsgiwrap(callable):
     def wrapper(env, startreq):
-        return dispatch.handle(req.origrequest(env), startreq, callable)
+        return dispatch.handleenv(env, startreq, callable)
     return wrapper
 
 def formparams(callable):