From a1350c65f2ea947eb590ae13fcbe1ed6ef99788b Mon Sep 17 00:00:00 2001 From: Nicholas Charriere Date: Fri, 28 Oct 2016 15:00:56 -0700 Subject: Murmur3 hash unicode keys --- pymemcache/client/base.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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( -- cgit v1.2.1