| Index: third_party/twisted_8_1/twisted/web/vhost.py
|
| diff --git a/third_party/twisted_8_1/twisted/web/vhost.py b/third_party/twisted_8_1/twisted/web/vhost.py
|
| deleted file mode 100644
|
| index 433c4b3ed1ae4b53efbce999ddc385c835d5a07f..0000000000000000000000000000000000000000
|
| --- a/third_party/twisted_8_1/twisted/web/vhost.py
|
| +++ /dev/null
|
| @@ -1,141 +0,0 @@
|
| -
|
| -# Copyright (c) 2001-2004 Twisted Matrix Laboratories.
|
| -# See LICENSE for details.
|
| -
|
| -
|
| -"""I am a virtual hosts implementation.
|
| -"""
|
| -
|
| -# System Imports
|
| -import string
|
| -
|
| -# Twisted Imports
|
| -from twisted.python import roots
|
| -
|
| -# Sibling Imports
|
| -import resource
|
| -import error
|
| -
|
| -class VirtualHostCollection(roots.Homogenous):
|
| - """Wrapper for virtual hosts collection.
|
| -
|
| - This exists for configuration purposes.
|
| - """
|
| - entityType = resource.Resource
|
| -
|
| - def __init__(self, nvh):
|
| - self.nvh = nvh
|
| -
|
| - def listStaticEntities(self):
|
| - return self.nvh.hosts.items()
|
| -
|
| - def getStaticEntity(self, name):
|
| - return self.nvh.hosts.get(self)
|
| -
|
| - def reallyPutEntity(self, name, entity):
|
| - self.nvh.addHost(name, entity)
|
| -
|
| - def delEntity(self, name):
|
| - self.nvh.removeHost(name)
|
| -
|
| -
|
| -class NameVirtualHost(resource.Resource):
|
| - """I am a resource which represents named virtual hosts.
|
| - """
|
| -
|
| - default = None
|
| -
|
| - def __init__(self):
|
| - """Initialize.
|
| - """
|
| - resource.Resource.__init__(self)
|
| - self.hosts = {}
|
| -
|
| - def listStaticEntities(self):
|
| - return resource.Resource.listStaticEntities(self) + [("Virtual Hosts", VirtualHostCollection(self))]
|
| -
|
| - def getStaticEntity(self, name):
|
| - if name == "Virtual Hosts":
|
| - return VirtualHostCollection(self)
|
| - else:
|
| - return resource.Resource.getStaticEntity(self, name)
|
| -
|
| - def addHost(self, name, resrc):
|
| - """Add a host to this virtual host.
|
| -
|
| - This will take a host named `name', and map it to a resource
|
| - `resrc'. For example, a setup for our virtual hosts would be::
|
| -
|
| - nvh.addHost('divunal.com', divunalDirectory)
|
| - nvh.addHost('www.divunal.com', divunalDirectory)
|
| - nvh.addHost('twistedmatrix.com', twistedMatrixDirectory)
|
| - nvh.addHost('www.twistedmatrix.com', twistedMatrixDirectory)
|
| - """
|
| - self.hosts[name] = resrc
|
| -
|
| - def removeHost(self, name):
|
| - """Remove a host."""
|
| - del self.hosts[name]
|
| -
|
| - def _getResourceForRequest(self, request):
|
| - """(Internal) Get the appropriate resource for the given host.
|
| - """
|
| - hostHeader = request.getHeader('host')
|
| - if hostHeader == None:
|
| - return self.default or error.NoResource()
|
| - else:
|
| - host = string.split(string.lower(hostHeader),':')[0]
|
| - return (self.hosts.get(host, self.default)
|
| - or error.NoResource("host %s not in vhost map" % repr(host)))
|
| -
|
| - def render(self, request):
|
| - """Implementation of resource.Resource's render method.
|
| - """
|
| - resrc = self._getResourceForRequest(request)
|
| - return resrc.render(request)
|
| -
|
| - def getChild(self, path, request):
|
| - """Implementation of resource.Resource's getChild method.
|
| - """
|
| - resrc = self._getResourceForRequest(request)
|
| - if resrc.isLeaf:
|
| - request.postpath.insert(0,request.prepath.pop(-1))
|
| - return resrc
|
| - else:
|
| - return resrc.getChildWithDefault(path, request)
|
| -
|
| -class _HostResource(resource.Resource):
|
| -
|
| - def getChild(self, path, request):
|
| - if ':' in path:
|
| - host, port = path.split(':', 1)
|
| - port = int(port)
|
| - else:
|
| - host, port = path, 80
|
| - request.setHost(host, port)
|
| - prefixLen = 3+request.isSecure()+4+len(path)+len(request.prepath[-3])
|
| - request.path = '/'+'/'.join(request.postpath)
|
| - request.uri = request.uri[prefixLen:]
|
| - del request.prepath[:3]
|
| - return request.site.getResourceFor(request)
|
| -
|
| -
|
| -class VHostMonsterResource(resource.Resource):
|
| -
|
| - """
|
| - Use this to be able to record the hostname and method (http vs. https)
|
| - in the URL without disturbing your web site. If you put this resource
|
| - in a URL http://foo.com/bar then requests to
|
| - http://foo.com/bar/http/baz.com/something will be equivalent to
|
| - http://foo.com/something, except that the hostname the request will
|
| - appear to be accessing will be "baz.com". So if "baz.com" is redirecting
|
| - all requests for to foo.com, while foo.com is inaccessible from the outside,
|
| - then redirect and url generation will work correctly
|
| - """
|
| - def getChild(self, path, request):
|
| - if path == 'http':
|
| - request.isSecure = lambda: 0
|
| - elif path == 'https':
|
| - request.isSecure = lambda: 1
|
| - return _HostResource()
|
| -
|
|
|