From: Michael Tremer Date: Tue, 30 Jul 2019 15:12:10 +0000 (+0100) Subject: memcache: Remove any spaces from keys X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6c484ce7ff155e5aa1d14d5f2a13fb5989b0e1db;p=ipfire.org.git memcache: Remove any spaces from keys Signed-off-by: Michael Tremer --- diff --git a/src/backend/memcached.py b/src/backend/memcached.py index e8437d7c..eac8a3a8 100644 --- a/src/backend/memcached.py +++ b/src/backend/memcached.py @@ -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(" ", "-")