[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