Merge in more updates for docs (we are just going to check them all in so that users...
[awesomized/libmemcached] / libmemcached / callback.c
index aadde22caad7fab48db5b568f01395e2fcd99520..dcb3ddeb17d0f87a3235f6b7042e8d26fa65c1bd 100644 (file)
@@ -9,52 +9,22 @@
  *
  */
 
-#include "common.h" 
+#include "libmemcached/common.h"
 #include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/tcp.h>
 
-/* 
+/*
   These functions provide data and function callback support
 */
 
-memcached_return_t memcached_callback_set(memcached_st *ptr, 
-                                          const memcached_callback_t flag, 
+memcached_return_t memcached_callback_set(memcached_st *ptr,
+                                          const memcached_callback_t flag,
                                           void *data)
 {
   switch (flag)
   {
   case MEMCACHED_CALLBACK_PREFIX_KEY:
     {
-      char *key= (char *)data;
-
-      if (key)
-      {
-        size_t key_length= strlen(key);
-
-        if (memcached_key_test((const char **)&key, &key_length, 1) == MEMCACHED_BAD_KEY_PROVIDED)
-        {
-          return MEMCACHED_BAD_KEY_PROVIDED;
-        }
-
-        if ((key_length > MEMCACHED_PREFIX_KEY_MAX_SIZE -1)
-            || (strcpy(ptr->prefix_key, key) == NULL))
-        {
-          ptr->prefix_key_length= 0;
-          return MEMCACHED_BAD_KEY_PROVIDED;
-        }
-        else
-        {
-          ptr->prefix_key_length= key_length;
-        }
-      }
-      else
-      {
-        memset(ptr->prefix_key, 0, MEMCACHED_PREFIX_KEY_MAX_SIZE);
-        ptr->prefix_key_length= 0;
-      }
-
-      break;
+      return memcached_set_prefix_key(ptr, (char*)data, data ? strlen((char*)data) : 0);
     }
   case MEMCACHED_CALLBACK_USER_DATA:
     {
@@ -105,6 +75,7 @@ memcached_return_t memcached_callback_set(memcached_st *ptr,
       ptr->delete_trigger= func;
       break;
     }
+  case MEMCACHED_CALLBACK_MAX:
   default:
     return MEMCACHED_FAILURE;
   }
@@ -112,7 +83,7 @@ memcached_return_t memcached_callback_set(memcached_st *ptr,
   return MEMCACHED_SUCCESS;
 }
 
-void *memcached_callback_get(memcached_st *ptr, 
+void *memcached_callback_get(memcached_st *ptr,
                              const memcached_callback_t flag,
                              memcached_return_t *error)
 {
@@ -125,15 +96,15 @@ void *memcached_callback_get(memcached_st *ptr,
   {
   case MEMCACHED_CALLBACK_PREFIX_KEY:
     {
-      if (ptr->prefix_key[0] == 0)
+      if (ptr->prefix_key)
       {
-        *error= MEMCACHED_FAILURE;
-        return NULL;
+        *error= MEMCACHED_SUCCESS;
+        return (void *)memcached_array_string(ptr->prefix_key);
       }
       else
       {
-        *error= MEMCACHED_SUCCESS;
-        return (void *)ptr->prefix_key;
+        *error= MEMCACHED_FAILURE;
+        return NULL;
       }
     }
   case MEMCACHED_CALLBACK_USER_DATA:
@@ -178,6 +149,7 @@ void *memcached_callback_get(memcached_st *ptr,
       *error= ptr->delete_trigger ? MEMCACHED_SUCCESS : MEMCACHED_FAILURE;
       return *(void **)&ptr->delete_trigger;
     }
+  case MEMCACHED_CALLBACK_MAX:
   default:
     WATCHPOINT_ASSERT(0);
     *error= MEMCACHED_FAILURE;