]> git.ipfire.org Git - ipfire.org.git/commitdiff
memcache: Remove any spaces from keys
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 30 Jul 2019 15:12:10 +0000 (16:12 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 30 Jul 2019 15:12:10 +0000 (16:12 +0100)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/backend/memcached.py

index e8437d7cba3024576466bc5c64581e409c04444d..eac8a3a8fc84725800a687a3d38a3f87c9e43f9d 100644 (file)
@@ -10,6 +10,8 @@ class Memcached(Object):
                self._connection = memcache.Client(["localhost"], debug=1)
 
        def get(self, key, *args, **kwargs):
+               key = self._sanitize_key(key)
+
                logging.debug("Retrieving %s from cache..." % key)
 
                ret = self._connection.get(key, *args, **kwargs)
@@ -22,6 +24,8 @@ class Memcached(Object):
                return ret
 
        def get_multi(self, keys, *args, **kwargs):
+               keys = (self._sanitize_key(key) for key in keys)
+
                logging.debug("Retrieving keys from cache: %s" % keys)
 
                ret = self._connection.get_multi(keys, *args, **kwargs)
@@ -34,6 +38,8 @@ class Memcached(Object):
                return ret
 
        def add(self, key, data, *args, **kwargs):
+               key = self._sanitize_key(key)
+
                if data is None:
                        logging.debug("Putting nothing into cache for %s" % key)
                else:
@@ -42,6 +48,8 @@ class Memcached(Object):
                return self._connection.add(key, data, *args, **kwargs)
 
        def set(self, key, data, *args, **kwargs):
+               key = self._sanitize_key(key)
+
                if data is None:
                        logging.debug("Putting nothing into cache for %s" % key)
                else:
@@ -50,9 +58,18 @@ class Memcached(Object):
                return self._connection.set(key, data, *args, **kwargs)
 
        def delete(self, key, *args, **kwargs):
+               key = self._sanitize_key(key)
+
                return self._connection.delete(key, *args, **kwargs)
 
        def incr(self, key):
+               key = self._sanitize_key(key)
+
                logging.debug("Incrementing key %s" % key)
 
                return self._connection.incr(key)
+
+       @staticmethod
+       def _sanitize_key(key):
+               # Memcache does not seem to like any spaces
+               return key.replace(" ", "-")