Ensure keys are capped to memcached's limits
Keys in memcached are limited to 250B. Make sure this limit is enforced to avoid error responses. Reference code in memcached:95e6469bd2/memcached.c (L2205)
95e6469bd2/memcached.h (L36)
This commit is contained in:
parent
d65c6ef7c2
commit
bdc4255ede
@ -8,6 +8,7 @@
|
||||
#define GENERATOR_H
|
||||
|
||||
#define MAX(a,b) ((a) > (b) ? (a) : (b))
|
||||
#define MIN(a,b) ((a) < (b) ? (a) : (b))
|
||||
|
||||
#include "config.h"
|
||||
|
||||
@ -197,6 +198,10 @@ public:
|
||||
double U = (double) h / ULLONG_MAX;
|
||||
double G = g->generate(U);
|
||||
int keylen = MAX(round(G), floor(log10(max)) + 1);
|
||||
// memcached limits keys to 250 bytes
|
||||
// https://github.com/memcached/memcached/blob/95e6469bd2ceef92bcaaf140e2724fc73d556185/memcached.c#L2205
|
||||
// https://github.com/memcached/memcached/blob/95e6469bd2ceef92bcaaf140e2724fc73d556185/memcached.h#L36
|
||||
keylen = MIN(keylen, 250);
|
||||
char key[256];
|
||||
snprintf(key, 256, "%0*" PRIu64, keylen, ind);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user