Merge Monty
authorBrian Aker <brian@gaz>
Tue, 5 Jan 2010 19:51:39 +0000 (11:51 -0800)
committerBrian Aker <brian@gaz>
Tue, 5 Jan 2010 19:51:39 +0000 (11:51 -0800)
13 files changed:
libmemcached/analyze.c
libmemcached/analyze.h
libmemcached/callback.c
libmemcached/common.h
libmemcached/connect.c
libmemcached/hosts.c
libmemcached/internal.h
libmemcached/io.h
libmemcached/key.c
libmemcached/server.c
libmemcached/server.h
libmemcached/stats.c
libmemcached/stats.h

index de628a72a75d5604dc19349d00fc9517e0258d43..d5d09751e37b4b5eb9f3b6e559426f505b2ecf87 100644 (file)
@@ -67,7 +67,7 @@ memcached_analysis_st *memcached_analyze(memcached_st *memc,
   uint64_t total_get_cmds= 0, total_get_hits= 0;
   uint32_t server_count, x;
   memcached_analysis_st *result;
+
   *error= MEMCACHED_SUCCESS;
   server_count= memcached_server_count(memc);
   result= (memcached_analysis_st*)calloc(memc->number_of_hosts,
@@ -79,7 +79,6 @@ memcached_analysis_st *memcached_analyze(memcached_st *memc,
     return NULL;
   }
 
-  result->options.allocated= true;
   result->root= memc;
 
   for (x= 0; x < server_count; x++)
@@ -104,6 +103,5 @@ memcached_analysis_st *memcached_analyze(memcached_st *memc,
 
 void memcached_analyze_free(memcached_analysis_st *ptr)
 {
-  if (ptr->options.allocated)
-    free(ptr);
+  free(ptr);
 }
index 3323e8551a8521997ce8d339070db0977a233a01..dbec8b236098c694915e1338f4b7fd817c2171ab 100644 (file)
@@ -5,7 +5,7 @@
  * Use and distribution licensed under the BSD license.  See
  * the COPYING file in the parent directory for full text.
  *
- * Summary: Change the behavior of the memcached connection.
+ * Summary: Generate a memcached_analysis_st
  *
  */
 
@@ -18,9 +18,6 @@ extern "C" {
 
 
 struct memcached_analysis_st {
-  struct {
-    bool allocated:1;
-  } options;
   memcached_st *root;
   uint32_t average_item_size;
   uint32_t longest_uptime;
index e87d775cf908b5dc86d6ca1a7261843866eceaae..252b4334e66166b2985def805da973457a5b9ed3 100644 (file)
@@ -9,17 +9,17 @@
  *
  */
 
-#include "common.h" 
+#include "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)
@@ -113,7 +113,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)
 {
index 97899ea95eb9e6b35d2b77eb7b7f877be419d92c..42bafd94cf7b8358ca332ac1d0ab23f97df64db1 100644 (file)
@@ -86,29 +86,6 @@ struct memcached_continuum_item_st
 #define SMALL_STRING_LEN 1024
 #define HUGE_STRING_LEN 8196
 
-
-typedef enum {
-  MEM_NO_BLOCK= (1 << 0),
-  MEM_TCP_NODELAY= (1 << 1),
-  MEM_REUSE_MEMORY= (1 << 2),
-  MEM_USE_MD5= (1 << 3),
-  /* 4 was once Ketama */
-  MEM_USE_CRC= (1 << 5),
-  MEM_USE_CACHE_LOOKUPS= (1 << 6),
-  MEM_SUPPORT_CAS= (1 << 7),
-  MEM_BUFFER_REQUESTS= (1 << 8),
-  MEM_USE_SORT_HOSTS= (1 << 9),
-  MEM_VERIFY_KEY= (1 << 10),
-  /* 11 used for weighted ketama */
-  MEM_KETAMA_WEIGHTED= (1 << 11),
-  MEM_BINARY_PROTOCOL= (1 << 12),
-  MEM_HASH_WITH_PREFIX_KEY= (1 << 13),
-  MEM_NOREPLY= (1 << 14),
-  MEM_USE_UDP= (1 << 15),
-  MEM_AUTO_EJECT_HOSTS= (1 << 16),
-  MEM_RANDOMIZE_REPLICA_READ= (1 << 17)
-} memcached_flags;
-
 /* Hashing algo */
 
 LIBMEMCACHED_LOCAL
@@ -149,7 +126,7 @@ LIBMEMCACHED_LOCAL
 void server_list_free(memcached_st *ptr, memcached_server_st *servers);
 
 LIBMEMCACHED_LOCAL
-memcached_return_t memcached_key_test(const char * const *keys, 
+memcached_return_t memcached_key_test(const char * const *keys,
                                       const size_t *key_length,
                                       size_t number_of_keys);
 
index e58e37fc1bcc7746dadcff00828d5d50ea92d3db..36971f60aa9c86e4a19d4bf8e42bc85a47ea1aa3 100644 (file)
@@ -210,7 +210,7 @@ static memcached_return_t network_connect(memcached_server_st *ptr)
 
     WATCHPOINT_ASSERT(ptr->cursor_active == 0);
 
-    if (!ptr->sockaddr_inited ||
+    if (! ptr->options.sockaddr_inited ||
         (!(ptr->root->flags.use_cache_lookups)))
     {
       memcached_return_t rc;
@@ -218,7 +218,7 @@ static memcached_return_t network_connect(memcached_server_st *ptr)
       rc= set_hostinfo(ptr);
       if (rc != MEMCACHED_SUCCESS)
         return rc;
-      ptr->sockaddr_inited= true;
+      ptr->options.sockaddr_inited= true;
     }
 
     use= ptr->address_info;
index e0224222176626e0d63dee54c765ca1df236cb83..5ce4b70dde58e024fbf34f5ef5024fef5c1da70a 100644 (file)
@@ -323,7 +323,7 @@ memcached_return_t memcached_server_push(memcached_st *ptr, memcached_server_st
   new_host_list= ptr->call_realloc(ptr, ptr->hosts,
                                    sizeof(memcached_server_st) * (count + ptr->number_of_hosts));
 
-  if (!new_host_list)
+  if (! new_host_list)
     return MEMCACHED_MEMORY_ALLOCATION_FAILURE;
 
   ptr->hosts= new_host_list;
index 3e4415ddea34b5d20cd12e16d57a13b2748d8b75..2a151514b21022709fca727593807f2a0e144151 100644 (file)
@@ -1,5 +1,5 @@
 /* LibMemcached
- * Copyright (C) 2006-2009 Brian Aker 
+ * Copyright (C) 2006-2009 Brian Aker
  * All rights reserved.
  *
  * Use and distribution licensed under the BSD license.  See
index 7aab7bae3d711320f5ab6a43b5008ce5f38549fb..af51506593c71ada92eb20a3675e0f52c94aca1d 100644 (file)
@@ -40,34 +40,43 @@ struct udp_datagram_header_st
   uint16_t reserved;
 };
 
+LIBMEMCACHED_LOCAL
 ssize_t memcached_io_write(memcached_server_st *ptr,
                            const void *buffer, size_t length, char with_flush);
 
+LIBMEMCACHED_LOCAL
 void memcached_io_reset(memcached_server_st *ptr);
 
+LIBMEMCACHED_LOCAL
 memcached_return_t memcached_io_read(memcached_server_st *ptr,
                                      void *buffer, size_t length, ssize_t *nread);
 
 /* Read a line (terminated by '\n') into the buffer */
+LIBMEMCACHED_LOCAL
 memcached_return_t memcached_io_readline(memcached_server_st *ptr,
                                          char *buffer_ptr,
                                          size_t size);
 
+LIBMEMCACHED_LOCAL
 memcached_return_t memcached_io_close(memcached_server_st *ptr);
 
 /* Read n bytes of data from the server and store them in dta */
+LIBMEMCACHED_LOCAL
 memcached_return_t memcached_safe_read(memcached_server_st *ptr,
                                        void *dta,
                                        size_t size);
 
 /* Read a single response from the server */
+LIBMEMCACHED_LOCAL
 memcached_return_t memcached_read_one_response(memcached_server_st *ptr,
                                                char *buffer, size_t buffer_length,
                                                memcached_result_st *result);
 
+LIBMEMCACHED_LOCAL
 memcached_return_t memcached_io_init_udp_header(memcached_server_st *ptr,
                                                 uint16_t thread_id);
 
+LIBMEMCACHED_LOCAL
 memcached_server_st *memcached_io_get_readable_server(memcached_st *memc);
 
 #endif /* BUILDING_LIBMEMCACHED */
index 3b16b2736aad38baac1cf8fb3fbaaa00c12b4ded..76a7d8edf02db19a915ca67a4a3113fb49f6998b 100644 (file)
@@ -1,7 +1,7 @@
 #include "common.h"
 
-memcached_return_t memcached_key_test(const char * const *keys, 
-                                      const size_t *key_length, 
+memcached_return_t memcached_key_test(const char * const *keys,
+                                      const size_t *key_length,
                                       size_t number_of_keys)
 {
   uint32_t x;
@@ -14,7 +14,7 @@ memcached_return_t memcached_key_test(const char * const *keys,
     rc= memcached_validate_key_length(*(key_length + x), false);
     if (rc != MEMCACHED_SUCCESS)
       return rc;
-    
     for (y= 0; y < *(key_length + x); y++)
     {
       if ((isgraph(keys[x][y])) == 0)
index 814962c76675f8d47ed8b34d301c2262a5411b66..42abda2dec11563e8254097c6d2e470cc2ab9ea0 100644 (file)
@@ -1,5 +1,5 @@
 /* LibMemcached
- * Copyright (C) 2006-2009 Brian Aker 
+ * Copyright (C) 2006-2009 Brian Aker
  * All rights reserved.
  *
  * Use and distribution licensed under the BSD license.  See
@@ -94,9 +94,9 @@ memcached_server_st *memcached_server_clone(memcached_server_st *clone, memcache
   if (ptr == NULL)
     return NULL;
 
-  rv = memcached_server_create_with(ptr->root, clone,
-                                    ptr->hostname, ptr->port, ptr->weight,
-                                    ptr->type);
+  rv= memcached_server_create_with(ptr->root, clone,
+                                   ptr->hostname, ptr->port, ptr->weight,
+                                   ptr->type);
   if (rv != NULL)
   {
     rv->cached_errno= ptr->cached_errno;
index 66a23a56f28371adae5407d4b5f934ef866447be..d8e9daa849674666ee01e496da9088e4ec9dd412 100644 (file)
@@ -1,5 +1,5 @@
 /* LibMemcached
- * Copyright (C) 2006-2009 Brian Aker 
+ * Copyright (C) 2006-2009 Brian Aker
  * All rights reserved.
  *
  * Use and distribution licensed under the BSD license.  See
@@ -19,8 +19,8 @@ extern "C" {
 struct memcached_server_st {
   struct {
     bool is_allocated:1;
+    bool sockaddr_inited:1;
   } options;
-  bool sockaddr_inited;
   uint16_t count;
   uint32_t cursor_active;
   in_port_t port;
index 6b09e604ec0d969f6bffc18759d4b74f77730273..4f3bdb0d0af548b15fa2465d16feb1c209dba674 100644 (file)
@@ -371,6 +371,8 @@ memcached_stat_st *memcached_stat(memcached_st *ptr, char *args, memcached_retur
 
   stats= ptr->call_calloc(ptr, ptr->number_of_hosts, sizeof(memcached_stat_st));
 
+  stats->root= ptr;
+
   if (!stats)
   {
     *error= MEMCACHED_MEMORY_ALLOCATION_FAILURE;
@@ -451,8 +453,16 @@ void memcached_stat_free(memcached_st *ptr, memcached_stat_st *memc_stat)
     return;
   }
 
-  if (ptr)
+  if (memc_stat->root)
+  {
+    memc_stat->root->call_free(ptr, memc_stat);
+  }
+  else if (ptr)
+  {
     ptr->call_free(ptr, memc_stat);
+  }
   else
+  {
     free(memc_stat);
+  }
 }
index 79f7e6cfbc666b2e7a307a547ee65cfc12885df9..4b7d48ca7d2763a9c28a24eb74a4e98da11a707b 100644 (file)
@@ -5,7 +5,7 @@
  * Use and distribution licensed under the BSD license.  See
  * the COPYING file in the parent directory for full text.
  *
- * Summary: Change the behavior of the memcached connection.
+ * Summary: Collect up the stats for a memcached server.
  *
  */
 
@@ -41,6 +41,7 @@ struct memcached_stat_st {
   uint64_t get_misses;
   uint64_t limit_maxbytes;
   char version[MEMCACHED_VERSION_STRING_LENGTH];
+  memcached_st *root;
 };
 
 LIBMEMCACHED_API