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

source_changes at macosforge.org source_changes at macosforge.org
Wed Mar 18 20:39:25 PDT 2009


Revision: 3890
          http://trac.macosforge.org/projects/calendarserver/changeset/3890
Author:   sagen at apple.com
Date:     2009-03-18 20:39:21 -0700 (Wed, 18 Mar 2009)
Log Message:
-----------
UIDs with whitespace were tripping up the memcache commands related to uid locking.  UIDs are now base64 encoded before being used as memcache keys.

Modified Paths:
--------------
    CalendarServer/trunk/twistedcaldav/memcachelock.py
    CalendarServer/trunk/twistedcaldav/test/test_memcachelock.py

Modified: CalendarServer/trunk/twistedcaldav/memcachelock.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/memcachelock.py	2009-03-19 00:34:06 UTC (rev 3889)
+++ CalendarServer/trunk/twistedcaldav/memcachelock.py	2009-03-19 03:39:21 UTC (rev 3890)
@@ -18,6 +18,7 @@
 from twisted.internet.defer import inlineCallbacks, Deferred, returnValue,\
     succeed
 from twisted.internet import reactor
+import base64
 import time
 
 class MemcacheLock(Memcacher):
@@ -41,7 +42,7 @@
         if isinstance(locktoken, unicode):
             locktoken = locktoken.encode("utf-8")
         assert isinstance(locktoken, str), "Lock token must be a str."
-        self._locktoken = locktoken
+        self._locktoken = base64.b64encode(locktoken)
         self._timeout = timeout
         self._retry_interval = retry_interval
         self._expire_time = expire_time

Modified: CalendarServer/trunk/twistedcaldav/test/test_memcachelock.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/test/test_memcachelock.py	2009-03-19 00:34:06 UTC (rev 3889)
+++ CalendarServer/trunk/twistedcaldav/test/test_memcachelock.py	2009-03-19 03:39:21 UTC (rev 3890)
@@ -120,7 +120,7 @@
         lock = MemCacheTestCase.FakedMemcacheLock(self.proto, "lock", "locking")
         yield self._test(
             lock.acquire(),
-            "add lock:locking 0 0 1\r\n1\r\n",
+            "add lock:bG9ja2luZw== 0 0 1\r\n1\r\n",
             "STORED\r\n",
             True
         )
@@ -136,7 +136,7 @@
         lock = MemCacheTestCase.FakedMemcacheLock(self.proto, "lock", "locking", timeout=0)
         yield self._test(
             lock.acquire(),
-            "add lock:locking 0 0 1\r\n1\r\n",
+            "add lock:bG9ja2luZw== 0 0 1\r\n1\r\n",
             "STORED\r\n",
             True
         )
@@ -153,7 +153,7 @@
         try:
             yield self._test(
                 lock.acquire(),
-                "add lock:locking 0 0 1\r\n1\r\n",
+                "add lock:bG9ja2luZw== 0 0 1\r\n1\r\n",
                 "NOT_STORED\r\n",
                 True
             )
@@ -175,14 +175,14 @@
         lock = MemCacheTestCase.FakedMemcacheLock(self.proto, "lock", "locking")
         yield self._test(
             lock.acquire(),
-            "add lock:locking 0 0 1\r\n1\r\n",
+            "add lock:bG9ja2luZw== 0 0 1\r\n1\r\n",
             "STORED\r\n",
             True
         )
         self.assertTrue(lock._hasLock)
         yield self._test(
             lock.release(),
-            "delete lock:locking\r\n",
+            "delete lock:bG9ja2luZw==\r\n",
             "DELETED\r\n",
             True
         )
@@ -198,13 +198,13 @@
         lock = MemCacheTestCase.FakedMemcacheLock(self.proto, "lock", "locking")
         yield self._test(
             lock.acquire(),
-            "add lock:locking 0 0 1\r\n1\r\n",
+            "add lock:bG9ja2luZw== 0 0 1\r\n1\r\n",
             "STORED\r\n",
             True
         )
         yield self._test(
             lock.clean(),
-            "delete lock:locking\r\n",
+            "delete lock:bG9ja2luZw==\r\n",
             "DELETED\r\n",
             True
         )
@@ -219,7 +219,7 @@
         lock = MemCacheTestCase.FakedMemcacheLock(self.proto, "lock", u"locking")
         yield self._test(
             lock.acquire(),
-            "add lock:locking 0 0 1\r\n1\r\n",
+            "add lock:bG9ja2luZw== 0 0 1\r\n1\r\n",
             "STORED\r\n",
             True
         )
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20090318/094090d6/attachment.html>


More information about the calendarserver-changes mailing list