X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fnamespace.cc;h=6a9ec2439d5e279e1734ed0c0bc8056ca06c9547;hb=8853fb2dda92e1c9921893c42efd48bcd72afaf9;hp=d9961e2959e64282656d6a2df66a04ebdac8ccf1;hpb=d8dedbd561c7cb57daf4192fe57ce5e205bcadd7;p=m6w6%2Flibmemcached diff --git a/libmemcached/namespace.cc b/libmemcached/namespace.cc index d9961e29..6a9ec243 100644 --- a/libmemcached/namespace.cc +++ b/libmemcached/namespace.cc @@ -36,10 +36,11 @@ */ #include +#include memcached_return_t memcached_set_namespace(memcached_st *self, const char *key, size_t key_length) { - WATCHPOINT_ASSERT(self); + assert_msg(self, "A NULL memcached_st was used"); if (key and key_length == 0) { @@ -58,7 +59,7 @@ memcached_return_t memcached_set_namespace(memcached_st *self, const char *key, if (memcached_failed(memcached_key_test(*self, (const char **)&key, &key_length, 1))) { self->flags.verify_key= orig; - return memcached_set_error(*self, MEMCACHED_BAD_KEY_PROVIDED, MEMCACHED_AT); + return memcached_last_error(self); } self->flags.verify_key= orig; @@ -67,19 +68,29 @@ memcached_return_t memcached_set_namespace(memcached_st *self, const char *key, return memcached_set_error(*self, MEMCACHED_KEY_TOO_BIG, MEMCACHED_AT); } - memcached_array_free(self->prefix_key); - self->prefix_key= memcached_strcpy(self, key, key_length); + memcached_array_free(self->_namespace); + self->_namespace= memcached_strcpy(self, key, key_length); - if (not self->prefix_key) + if (not self->_namespace) { return memcached_set_error(*self, MEMCACHED_MEMORY_ALLOCATION_FAILURE, MEMCACHED_AT); } } else { - memcached_array_free(self->prefix_key); - self->prefix_key= NULL; + memcached_array_free(self->_namespace); + self->_namespace= NULL; } return MEMCACHED_SUCCESS; } + +const char * memcached_get_namespace(memcached_st *self) +{ + if (self->_namespace == NULL) + { + return NULL; + } + + return memcached_array_string(self->_namespace); +}