[CalendarServer-changes] [328] CalendarServer/trunk/lib-patches/Twisted/twisted.web2.server.patch

source_changes at macosforge.org source_changes at macosforge.org
Fri Oct 27 16:32:27 PDT 2006


Revision: 328
          http://trac.macosforge.org/projects/calendarserver/changeset/328
Author:   wsanchez at apple.com
Date:     2006-10-27 16:32:26 -0700 (Fri, 27 Oct 2006)

Log Message:
-----------
cosmetic

Modified Paths:
--------------
    CalendarServer/trunk/lib-patches/Twisted/twisted.web2.server.patch

Modified: CalendarServer/trunk/lib-patches/Twisted/twisted.web2.server.patch
===================================================================
--- CalendarServer/trunk/lib-patches/Twisted/twisted.web2.server.patch	2006-10-27 21:14:23 UTC (rev 327)
+++ CalendarServer/trunk/lib-patches/Twisted/twisted.web2.server.patch	2006-10-27 23:32:26 UTC (rev 328)
@@ -11,35 +11,50 @@
  
  
  """This is a web-sever which integrates with the twisted.internet
-@@ -150,6 +152,9 @@
+@@ -150,17 +152,32 @@
              self._initialprepath = kw['prepathuri']
              del kw['prepathuri']
  
 +        self._resourcesByURL = {}
-+        self._resourcesFromURL = {}
++        self._urlsByResource = {}
 +
          # Copy response filters from the class
          self.responseFilters = self.responseFilters[:]
          self.files = {}
-@@ -156,7 +161,9 @@
          self.resources = []
          http.Request.__init__(self, *args, **kw)
  
 -    def addResponseFilter(self, f, atEnd=False):
-+    def addResponseFilter(self, f, atEnd=False, onlyOnce = False):
-+        if onlyOnce and f in self.responseFilters:
++    def addResponseFilter(self, filter, atEnd=False, onlyOnce=False):
++        """
++        Add a response filter to this request.
++        Response filters are applied to the response to this request in order.
++        @param filter: a callable which takes an response argument and returns
++            a response object.
++        @param atEnd: if C{True}, C{filter} is added at the end of the list of
++            response filters; if C{False}, it is added to the beginning.
++        @param onlyOnce: if C{True}, C{filter} is not added to the list of
++            response filters if it already in the list.
++        """
++        if onlyOnce and filter in self.responseFilters:
 +            return
          if atEnd:
-             self.responseFilters.append(f)
+-            self.responseFilters.append(f)
++            self.responseFilters.append(filter)
          else:
-@@ -263,8 +270,15 @@
+-            self.responseFilters.insert(0, f)
++            self.responseFilters.insert(0, filter)
+ 
+     def unparseURL(self, scheme=None, host=None, port=None,
+                    path=None, params=None, querystring=None, fragment=None):
+@@ -263,8 +280,15 @@
              failedDeferred = self._processingFailed(failure.Failure())
              return
          
 +        def _registerResource(child):
 +            url = "/" + "/".join(self.prepath)
 +            self._resourcesByURL[child] = url
-+            self._resourcesFromURL[url] = child
++            self._urlsByResource[url] = child
 +            return child
 +        
          d = defer.Deferred()
@@ -48,21 +63,20 @@
          d.addCallback(lambda res, req: res.renderHTTP(req), self)
          d.addCallback(self._cbFinishRender)
          d.addErrback(self._processingFailed)
-@@ -321,7 +335,7 @@
+@@ -320,8 +344,6 @@
+                     url = "/" + "/".join(path)
                  else:
                      url = "/"
-         
+-        
 -                self._rememberURLForResource(quote(url), res)
-+                #self._rememberURLForResource(quote(url), res)
                  return res
              #else:
              #    raise ValueError("locateChild must not return StopTraversal with a resource other than self.")
-@@ -342,12 +356,10 @@
+@@ -342,12 +364,9 @@
                  self.prepath.append(self.postpath.pop(0))
  
          child = self._getChild(None, newres, newpath, updatepaths=updatepaths)
 -        self._rememberURLForResource(quote(url), child)
-+        #self._rememberURLForResource(quote(url), child)
  
          return child
  
@@ -71,32 +85,40 @@
      def _rememberURLForResource(self, url, resource):
          """
          Remember the URL of visited resources.
-@@ -387,6 +399,11 @@
+@@ -385,8 +404,14 @@
+             The contained response will have a status code of
+             L{responsecode.BAD_REQUEST}.
          """
-         if url is None: return None
+-        if url is None: return None
++        if url is None:
++            return None
  
 +        try:
-+            return succeed(self._resourcesFromURL[url])
++            return succeed(self._urlsByResource[url])
 +        except KeyError:
 +            pass
 +
          #
          # Parse the URL
          #
-@@ -417,7 +434,52 @@
-                 raise f
+@@ -414,11 +439,56 @@
+         def notFound(f):
+             f.trap(http.HTTPError)
+             if f.response.code != responsecode.NOT_FOUND:
+-                raise f
++                return f
              return None
  
 -        return defer.maybeDeferred(self._getChild, None, self.site.resource, segments, updatepaths=False)
 +        def _registerResource(child):
 +            self._resourcesByURL[child] = path
-+            self._resourcesFromURL[path] = child
++            self._urlsByResource[path] = child
 +            return child
 +        
 +        d = defer.maybeDeferred(self._getChild, None, self.site.resource, segments, updatepaths=False)
 +        d.addCallback(_registerResource)
 +        return d
-+
+ 
 +    def locateChildResource(self, res, childpath):
 +        """
 +        Looks up the child resource with the given name given the parent resource.
@@ -114,7 +136,7 @@
 +        
 +        url = joinURL(self.urlForResource(res), childpath)
 +        try:
-+            return succeed(self._resourcesFromURL[url])
++            return succeed(self._urlsByResource[url])
 +        except KeyError:
 +            pass
 +
@@ -123,17 +145,18 @@
 +        def notFound(f):
 +            f.trap(http.HTTPError)
 +            if f.response.code != responsecode.NOT_FOUND:
-+                raise f
++                return f
 +            return None
 +
 +        def _registerResource(child):
 +            self._resourcesByURL[child] = url
-+            self._resourcesFromURL[url] = child
++            self._urlsByResource[url] = child
 +            return child
 +        
 +        d = defer.maybeDeferred(self._getChild, None, res, [segment], updatepaths=False)
 +        d.addCallback(_registerResource)
 +        return d
- 
++
      def _processingFailed(self, reason):
          if reason.check(http.HTTPError) is not None:
+             # If the exception was an HTTPError, leave it alone

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20061027/d14224a2/attachment.html


More information about the calendarserver-changes mailing list