X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=src%2Flibmemcached%2Fbehavior.cc;h=ce8a662faa29aa3dbff6409deaaa16673852312b;hb=5a6a6ab8eb7b4ad34b335e812fae6dbccc489f48;hp=859e56aa9255fee34f5700652aa48dff213c5089;hpb=bcc1a6ecf1eadcf69dd9efa02fee69ee63949ca0;p=awesomized%2Flibmemcached diff --git a/src/libmemcached/behavior.cc b/src/libmemcached/behavior.cc index 859e56aa..ce8a662f 100644 --- a/src/libmemcached/behavior.cc +++ b/src/libmemcached/behavior.cc @@ -96,14 +96,22 @@ memcached_return_t memcached_behavior_set(memcached_st *shell, const memcached_b break; case MEMCACHED_BEHAVIOR_BINARY_PROTOCOL: - send_quit( - ptr); // We need t shutdown all of the connections to make sure we do the correct protocol + // We need t shutdown all of the connections to make sure we do the correct protocol + send_quit(ptr); if (data) { ptr->flags.verify_key = false; } ptr->flags.binary_protocol = bool(data); break; + case MEMCACHED_BEHAVIOR_META_PROTOCOL: + if (data && ptr->flags.binary_protocol) { + send_quit(ptr); + ptr->flags.binary_protocol = false; + } + ptr->flags.meta_protocol = bool(data); + break; + case MEMCACHED_BEHAVIOR_SUPPORT_CAS: ptr->flags.support_cas = bool(data); break; @@ -623,6 +631,8 @@ const char *libmemcached_string_behavior(const memcached_behavior_t flag) { return "MEMCACHED_BEHAVIOR_KETAMA_HASH"; case MEMCACHED_BEHAVIOR_BINARY_PROTOCOL: return "MEMCACHED_BEHAVIOR_BINARY_PROTOCOL"; + case MEMCACHED_BEHAVIOR_META_PROTOCOL: + return "MEMCACHED_BEHAVIOR_META_PROTOCOL"; case MEMCACHED_BEHAVIOR_SND_TIMEOUT: return "MEMCACHED_BEHAVIOR_SND_TIMEOUT"; case MEMCACHED_BEHAVIOR_RCV_TIMEOUT: