diff options
author | Nicholas Charriere <nicholas@pinterest.com> | 2016-10-28 15:00:56 -0700 |
---|---|---|
committer | Nicholas Charriere <nicholas@pinterest.com> | 2016-10-28 15:00:56 -0700 |
commit | a1350c65f2ea947eb590ae13fcbe1ed6ef99788b (patch) | |
tree | 2e12d67d215715e60bbd94a138633a524fb05b60 /pymemcache/client/base.py | |
parent | f413c62085af331533c8ba2b2204958c3e8608b0 (diff) | |
download | pymemcache-authorize-unicode.tar.gz |
Murmur3 hash unicode keysauthorize-unicode
Diffstat (limited to 'pymemcache/client/base.py')
-rw-r--r-- | pymemcache/client/base.py | 4 |
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( |