aboutsummaryrefslogtreecommitdiffstats
path: root/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/web/vhost.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/web/vhost.py')
-rwxr-xr-xlib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/web/vhost.py135
1 files changed, 0 insertions, 135 deletions
diff --git a/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/web/vhost.py b/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/web/vhost.py
deleted file mode 100755
index 1acee218..00000000
--- a/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/web/vhost.py
+++ /dev/null
@@ -1,135 +0,0 @@
-# -*- test-case-name: twisted.web.
-# Copyright (c) Twisted Matrix Laboratories.
-# See LICENSE for details.
-
-"""
-I am a virtual hosts implementation.
-"""
-
-# Twisted Imports
-from twisted.python import roots
-from twisted.web import resource
-
-
-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 resource.NoResource()
- else:
- host = hostHeader.lower().split(':', 1)[0]
- return (self.hosts.get(host, self.default)
- or resource.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()