summaryrefslogtreecommitdiff
path: root/pymemcache/client/base.py
diff options
context:
space:
mode:
Diffstat (limited to 'pymemcache/client/base.py')
-rw-r--r--pymemcache/client/base.py14
1 files changed, 12 insertions, 2 deletions
diff --git a/pymemcache/client/base.py b/pymemcache/client/base.py
index 3578058..6c47ffd 100644
--- a/pymemcache/client/base.py
+++ b/pymemcache/client/base.py
@@ -705,8 +705,14 @@ class Client(object):
raise MemcacheServerError(error)
def _fetch_cmd(self, name, keys, expect_cas):
- checked_keys = dict((self.check_key(k), k) for k in keys)
- cmd = name + b' ' + b' '.join(checked_keys) + b'\r\n'
+ if name == b'stats':
+ # stats commands can have multiple arguments
+ # `stats cachedump 1 1`
+ checked_keys = [self.check_key(k) for k in keys]
+ cmd = name + b' ' + b' '.join(checked_keys) + b'\r\n'
+ else:
+ checked_keys = dict((self.check_key(k), k) for k in keys)
+ cmd = name + b' ' + b' '.join(checked_keys) + b'\r\n'
try:
if not self.sock:
@@ -744,6 +750,10 @@ class Client(object):
elif name == b'stats' and line.startswith(b'STAT'):
key_value = line.split()
result[key_value[1]] = key_value[2]
+ elif name == b'stats' and line.startswith(b'ITEM'):
+ # For 'stats cachedump' commands
+ key_value = line.split()
+ result[key_value[1]] = b' '.join(key_value[2:])
else:
raise MemcacheUnknownError(line[:32])
except Exception: