+
+void process_hash_option(memcached_st *memc, char *opt_hash)
+{
+ unsigned int set;
+ memcached_return rc;
+
+ if (opt_hash == NULL)
+ return;
+
+ if (!strcasecmp(opt_hash, "CRC"))
+ set= MEMCACHED_HASH_CRC;
+ else if (!strcasecmp(opt_hash, "FNV1_64"))
+ set= MEMCACHED_HASH_FNV1_64;
+ else if (!strcasecmp(opt_hash, "FNV1A_64"))
+ set= MEMCACHED_HASH_FNV1A_64;
+ else if (!strcasecmp(opt_hash, "FNV1_32"))
+ set= MEMCACHED_HASH_FNV1_32;
+ else if (!strcasecmp(opt_hash, "FNV1A_32"))
+ set= MEMCACHED_HASH_FNV1A_32;
+ else if (!strcasecmp(opt_hash, "KETAMA"))
+ set= MEMCACHED_HASH_KETAMA;
+ else
+ {
+ fprintf(stderr, "hash: type not recognized %s\n", opt_hash);
+ exit(1);
+ }
+
+ rc= memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_HASH, &set);
+ if (rc != MEMCACHED_SUCCESS)
+ {
+ fprintf(stderr, "hash: memcache error %s\n", memcached_strerror(memc, rc));
+ exit(1);
+ }
+}
+