Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

37 lines (29 sloc) 0.99 kb
# -*- coding: utf-8 -
#
# This file is part of gunicorn released under the MIT license.
# See the NOTICE for more information.
import re
class SubDomainApp:
"""WSGI application to delegate requests based on domain name.
"""
def __init__(self, mapping):
self.mapping = mapping
def __call__(self, environ, start_response):
host = environ.get("HTTP_HOST", "")
host = host.split(":")[0] # strip port
for pattern, app in self.mapping:
if re.match("^" + pattern + "$", host):
return app(environ, start_response)
else:
start_response("404 Not Found", [])
return [""]
def hello(environ, start_response):
start_response("200 OK", [("Content-Type", "text/plain")])
return ["Hello, world\n"]
def bye(environ, start_response):
start_response("200 OK", [("Content-Type", "text/plain")])
return ["Goodbye!\n"]
app = SubDomainApp([
("localhost", hello),
(".*", bye)
])
Jump to Line
Something went wrong with that request. Please try again.