[CalendarServer-changes] [2518] CalendarServer/trunk/twistedcaldav

source_changes at macosforge.org source_changes at macosforge.org
Fri May 30 11:58:47 PDT 2008


Revision: 2518
          http://trac.macosforge.org/projects/calendarserver/changeset/2518
Author:   dreid at apple.com
Date:     2008-05-30 11:58:42 -0700 (Fri, 30 May 2008)

Log Message:
-----------
Deal with accidentally getting a non-uri URI into the cache.  This problem appears with unauthenticated requests.

Modified Paths:
--------------
    CalendarServer/trunk/twistedcaldav/cache.py
    CalendarServer/trunk/twistedcaldav/test/test_cache.py

Modified: CalendarServer/trunk/twistedcaldav/cache.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/cache.py	2008-05-30 17:52:50 UTC (rev 2517)
+++ CalendarServer/trunk/twistedcaldav/cache.py	2008-05-30 18:58:42 UTC (rev 2518)
@@ -22,7 +22,7 @@
 from zope.interface import implements
 
 from twisted.python.failure import Failure
-from twisted.internet.defer import succeed
+from twisted.internet.defer import succeed, fail
 from twisted.internet.protocol import ClientCreator
 
 from twisted.web2.iweb import IResource
@@ -133,8 +133,11 @@
             f.trap(AttributeError)
             return Failure(URINotFoundException(uri))
 
-        return request.locateResource(uri).addCallback(
-            lambda resrc: resrc.url()).addErrback(_uriNotFound)
+        try:
+            return request.locateResource(uri).addCallback(
+                lambda resrc: resrc.url()).addErrback(_uriNotFound)
+        except AssertionError:
+            return fail(Failure(URINotFoundException(uri)))
 
 
     def _getURIs(self, request):

Modified: CalendarServer/trunk/twistedcaldav/test/test_cache.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/test/test_cache.py	2008-05-30 17:52:50 UTC (rev 2517)
+++ CalendarServer/trunk/twistedcaldav/test/test_cache.py	2008-05-30 18:58:42 UTC (rev 2518)
@@ -61,6 +61,7 @@
 
 
     def locateResource(self, uri):
+        assert uri[0] == '/', "URI path didn't begin with '/': %s" % (uri,)
         return succeed(self.resources.get(uri))
 
 
@@ -273,6 +274,14 @@
         return d
 
 
+    def test_getResponseForUnauthenticatedRequest(self):
+        d = self.rc.getResponseForRequest(StubRequest(
+                'PROPFIND',
+                '/calendars/__uids__/cdaboo/',
+                '{DAV:}unauthenticated',
+                body='bazbax'))
+
+
     def test_cacheResponseForRequest(self):
         expected_response = StubResponse(200, {}, "Foobar")
 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20080530/ad239f28/attachment-0001.htm 


More information about the calendarserver-changes mailing list