summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Charriere <nicholas@pinterest.com>2016-10-28 15:00:56 -0700
committerNicholas Charriere <nicholas@pinterest.com>2016-10-28 15:00:56 -0700
commita1350c65f2ea947eb590ae13fcbe1ed6ef99788b (patch)
tree2e12d67d215715e60bbd94a138633a524fb05b60
parentf413c62085af331533c8ba2b2204958c3e8608b0 (diff)
downloadpymemcache-authorize-unicode.tar.gz
Murmur3 hash unicode keysauthorize-unicode
-rw-r--r--pymemcache/client/base.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/pymemcache/client/base.py b/pymemcache/client/base.py
index d62dd80..ce82d5c 100644
--- a/pymemcache/client/base.py
+++ b/pymemcache/client/base.py
@@ -16,6 +16,7 @@ import socket
import six
from pymemcache import pool
+from pymemcache.client.murmur3 import murmur3_32
from pymemcache.exceptions import (
MemcacheClientError,
@@ -87,7 +88,8 @@ def _check_key(key, key_prefix=b''):
try:
key = key.encode('ascii')
except (UnicodeEncodeError, UnicodeDecodeError):
- raise MemcacheIllegalInputError("Non-ASCII key: '%r'" % (key,))
+ # Use murmur hash on unicode keys
+ key = str(murmur3_32(key))
key = key_prefix + key
if b' ' in key or b'\n' in key:
raise MemcacheIllegalInputError(