Merge trunk
authorBrian Aker <brian@tangent.org>
Fri, 22 Jul 2011 06:32:13 +0000 (23:32 -0700)
committerBrian Aker <brian@tangent.org>
Fri, 22 Jul 2011 06:32:13 +0000 (23:32 -0700)
configure.ac
libmemcached/behavior.cc
libmemcached/callback.cc
libmemcached/connect.cc
libmemcached/get.cc
libmemcached/hosts.cc
libmemcached/server.cc
libmemcached/watchpoint.h
support/libmemcached.spec.in

index e0558a529ee4e4ee5da80cbd071055c8a23b702d..bb512954dd1aa967b8e1ccd5065b03c74e12cd2e 100644 (file)
@@ -18,9 +18,9 @@ AC_CHECK_PROGS([YACC], ['bison'], [:])
 AC_CHECK_PROGS([LEX], ['flex'], [:])
 
 #shared library versioning
-MEMCACHED_UTIL_LIBRARY_VERSION=2:1:1
+MEMCACHED_UTIL_LIBRARY_VERSION=2:0:0
 MEMCACHED_PROTOCAL_LIBRARY_VERSION=0:0:0
-MEMCACHED_LIBRARY_VERSION=8:1:1
+MEMCACHED_LIBRARY_VERSION=8:0:0
 #                         | | |
 #                  +------+ | +---+
 #                  |        |     |
index 0c182ec2e2f07036096cec7e350254723a28e512..a6988a225c15a1541766af723365a9c6b3711056 100644 (file)
@@ -239,7 +239,7 @@ memcached_return_t memcached_behavior_set(memcached_st *ptr,
   case MEMCACHED_BEHAVIOR_MAX:
   default:
     /* Shouldn't get here */
-    WATCHPOINT_ASSERT(0);
+    assert_msg(0, "Invalid behavior passed to memcached_behavior_set()");
     return memcached_set_error(*ptr, MEMCACHED_INVALID_ARGUMENTS, MEMCACHED_AT,
                                memcached_literal_param("Invalid behavior passed to memcached_behavior_set()"));
   }
@@ -441,7 +441,7 @@ uint64_t memcached_behavior_get(memcached_st *ptr,
 
   case MEMCACHED_BEHAVIOR_MAX:
   default:
-    WATCHPOINT_ASSERT(0); /* Programming mistake if it gets this far */
+    assert_msg(0, "Invalid behavior passed to memcached_behavior_set()");
     return 0;
   }
 
index 473978634ce820bdafe3937f54d1ebc3caa0e33f..bb13a87bc8abb52b0168ef607ae313cd8ef3fe89 100644 (file)
@@ -90,8 +90,10 @@ void *memcached_callback_get(memcached_st *ptr,
 {
   memcached_return_t local_error;
 
-  if (!error)
+  if (error == NULL)
+  {
     error = &local_error;
+  }
 
   switch (flag)
   {
@@ -152,7 +154,7 @@ void *memcached_callback_get(memcached_st *ptr,
     }
   case MEMCACHED_CALLBACK_MAX:
   default:
-    WATCHPOINT_ASSERT(0);
+    assert_msg(0, "Invalid behavior passed to memcached_behavior_set()");
     *error= MEMCACHED_FAILURE;
     return NULL;
   }
index 8efbb119b30e10c59756a13d0c006af6bb7cb681..ecff63865c5904a4213e5c53e866b61acb9d07f2 100644 (file)
@@ -78,7 +78,6 @@ static memcached_return_t connect_poll(memcached_server_st *ptr)
       }
 
     default: // A real error occurred and we need to completely bail
-      WATCHPOINT_ERRNO(get_socket_errno());
       switch (get_socket_errno())
       {
 #ifdef TARGET_OS_LINUX
@@ -107,7 +106,7 @@ static memcached_return_t connect_poll(memcached_server_st *ptr)
           memcached_set_errno(*ptr, get_socket_errno(), MEMCACHED_AT);
         }
 
-        WATCHPOINT_ASSERT(ptr->fd != INVALID_SOCKET);
+        assert_msg(ptr->fd != INVALID_SOCKET, "poll() was passed an invalid file descriptor");
         (void)closesocket(ptr->fd);
         ptr->fd= INVALID_SOCKET;
         ptr->state= MEMCACHED_SERVER_STATE_NEW;
@@ -123,7 +122,6 @@ static memcached_return_t connect_poll(memcached_server_st *ptr)
 
 static memcached_return_t set_hostinfo(memcached_server_st *server)
 {
-  WATCHPOINT_ASSERT(not server->address_info); // We cover the case where a programming mistake has been made.
   if (server->address_info)
   {
     freeaddrinfo(server->address_info);
@@ -175,8 +173,6 @@ static memcached_return_t set_hostinfo(memcached_server_st *server)
 
   default:
     {
-      WATCHPOINT_STRING(server->hostname);
-      WATCHPOINT_STRING(gai_strerror(errcode));
       return memcached_set_error(*server, MEMCACHED_HOST_LOOKUP_FAILURE, MEMCACHED_AT, memcached_string_make_from_cstr(gai_strerror(errcode)));
     }
   }
@@ -225,10 +221,12 @@ static inline void set_socket_nonblocking(memcached_server_st *ptr)
 
 static void set_socket_options(memcached_server_st *ptr)
 {
-  WATCHPOINT_ASSERT(ptr->fd != -1);
+  assert_msg(ptr->fd != -1, "invalid socket was passed to set_socket_options()");
 
   if (ptr->type == MEMCACHED_CONNECTION_UDP)
+  {
     return;
+  }
 
 #ifdef HAVE_SNDTIMEO
   if (ptr->root->snd_timeout)
@@ -407,7 +405,9 @@ static memcached_return_t network_connect(memcached_server_st *ptr)
     while (--counter)
     {
       if ((rc= set_hostinfo(ptr)) != MEMCACHED_TIMEOUT)
+      {
         break;
+      }
 
 #ifndef WIN32
       struct timespec dream, rem;
@@ -529,11 +529,6 @@ void set_last_disconnected_host(memcached_server_write_instance_st self)
   // const_cast
   memcached_st *root= (memcached_st *)self->root;
 
-#if 0
-  WATCHPOINT_STRING(self->hostname);
-  WATCHPOINT_NUMBER(self->port);
-  WATCHPOINT_ERRNO(self->cached_errno);
-#endif
   memcached_server_free(root->last_disconnected_server);
   root->last_disconnected_server= memcached_server_clone(NULL, self);
 }
index 794d3d152e8d6dd47513246ab62e637bc09335b0..8c98d4ca0991e65583a8383d18992e1eff049ff4 100644 (file)
@@ -168,8 +168,8 @@ char *memcached_get_by_key(memcached_st *ptr,
   char *dummy_value= memcached_fetch(ptr, NULL, NULL,
                                      &dummy_length, &dummy_flags,
                                      &dummy_error);
-  WATCHPOINT_ASSERT(dummy_length == 0);
-  WATCHPOINT_ASSERT(dummy_value == 0);
+  assert_msg(dummy_value == 0, "memcached_fetch() returned additional values beyond the single get it expected");
+  assert_msg(dummy_length == 0, "memcached_fetch() returned additional values beyond the single get it expected");
   assert_msg(ptr->query_id == query_id +1, "Programmer error, the query_id was not incremented.");
 
   return value;
index 89896e85c50a1071315eb9ce39749920eff25bbd..1bcaaa7aca4bc9b7e90dff04e6d4ffbe3c67fcf4 100644 (file)
@@ -80,7 +80,9 @@ static void sort_hosts(memcached_st *ptr)
 memcached_return_t run_distribution(memcached_st *ptr)
 {
   if (ptr->flags.use_sort_hosts)
+  {
     sort_hosts(ptr);
+  }
 
   switch (ptr->distribution)
   {
@@ -89,15 +91,18 @@ memcached_return_t run_distribution(memcached_st *ptr)
   case MEMCACHED_DISTRIBUTION_CONSISTENT_KETAMA_SPY:
   case MEMCACHED_DISTRIBUTION_CONSISTENT_WEIGHTED:
     return update_continuum(ptr);
+
   case MEMCACHED_DISTRIBUTION_VIRTUAL_BUCKET:
   case MEMCACHED_DISTRIBUTION_MODULA:
     break;
+
   case MEMCACHED_DISTRIBUTION_RANDOM:
     srandom((uint32_t) time(NULL));
     break;
+
   case MEMCACHED_DISTRIBUTION_CONSISTENT_MAX:
   default:
-    WATCHPOINT_ASSERT(0); /* We have added a distribution without extending the logic */
+    assert_msg(0, "Invalid distribution type passed to run_distribution()");
   }
 
   return MEMCACHED_SUCCESS;
@@ -252,9 +257,6 @@ static memcached_return_t update_continuum(memcached_st *ptr)
 #ifdef DEBUG
         printf("update_continuum: key is %s\n", sort_host);
 #endif
-
-        WATCHPOINT_ASSERT(sort_host_length);
-
         if (is_ketama_weighted)
         {
           for (uint32_t x= 0; x < pointer_per_hash; x++)
@@ -303,8 +305,6 @@ static memcached_return_t update_continuum(memcached_st *ptr)
                                      memcached_literal_param("snprintf(MEMCACHED_DEFAULT_COMMAND_SIZE)"));
         }
 
-        WATCHPOINT_ASSERT(sort_host_length);
-
         if (is_ketama_weighted)
         {
           for (uint32_t x = 0; x < pointer_per_hash; x++)
index eda7f847a9c648375c3359b93c6d2a3ca9e2f9f9..98b16eef7f88e1839e2d0abc0674f5cd3b36060d 100644 (file)
@@ -281,7 +281,9 @@ void memcached_server_error_reset(memcached_server_st *self)
 {
   WATCHPOINT_ASSERT(self);
   if (not self)
+  {
     return;
+  }
 
   memcached_error_free(*self);
 }
index 58875e09048d237cb2d2cf3c918980878f3287b9..822101e9b3334d90e07ade3dc9683713059fb2f6 100644 (file)
 
 #pragma once
 
-/* Some personal debugging functions */
-#if defined(DEBUG)
-
-#ifdef TARGET_OS_LINUX
-static inline void libmemcached_stack_dump(void)
-{
-  void *array[10];
-  int size;
-  char **strings;
-
-  size= backtrace(array, 10);
-  strings= backtrace_symbols(array, size);
-
-  fprintf(stderr, "Found %d stack frames.\n", size);
-
-  for (int x= 0; x < size; x++)
-    fprintf(stderr, "%s\n", strings[x]);
-
-  free (strings);
-
-  fflush(stderr);
-}
-
-#elif defined(__sun)
-#include <ucontext.h>
-
-static inline void libmemcached_stack_dump(void)
-{
-   fflush(stderr);
-   printstack(fileno(stderr));
-}
-
-#else
-
-static inline void libmemcached_stack_dump(void)
-{ }
-
-#endif // libmemcached_stack_dump()
-
-#include <assert.h>
-
-#define WATCHPOINT do { fprintf(stderr, "\nWATCHPOINT %s:%d (%s)\n", __FILE__, __LINE__,__func__);fflush(stdout); } while (0)
-#define WATCHPOINT_ERROR(A) do {fprintf(stderr, "\nWATCHPOINT %s:%d %s\n", __FILE__, __LINE__, memcached_strerror(NULL, A));fflush(stdout); } while (0)
-#define WATCHPOINT_IFERROR(A) do { if(A != MEMCACHED_SUCCESS)fprintf(stderr, "\nWATCHPOINT %s:%d %s\n", __FILE__, __LINE__, memcached_strerror(NULL, A));fflush(stdout); } while (0)
-#define WATCHPOINT_STRING(A) do { fprintf(stderr, "\nWATCHPOINT %s:%d (%s) %s\n", __FILE__, __LINE__,__func__,A);fflush(stdout); } while (0)
-#define WATCHPOINT_STRING_LENGTH(A,B) do { fprintf(stderr, "\nWATCHPOINT %s:%d (%s) %.*s\n", __FILE__, __LINE__,__func__,(int)B,A);fflush(stdout); } while (0)
-#define WATCHPOINT_NUMBER(A) do { fprintf(stderr, "\nWATCHPOINT %s:%d (%s) %lu\n", __FILE__, __LINE__,__func__,(unsigned long)(A));fflush(stdout); } while (0)
-#define WATCHPOINT_LABELED_NUMBER(A,B) do { fprintf(stderr, "\nWATCHPOINT %s:%d (%s) %s:%lu\n", __FILE__, __LINE__,__func__,(A),(unsigned long)(B));fflush(stdout); } while (0)
-#define WATCHPOINT_IF_LABELED_NUMBER(A,B,C) do { if(A) {fprintf(stderr, "\nWATCHPOINT %s:%d (%s) %s:%lu\n", __FILE__, __LINE__,__func__,(B),(unsigned long)(C));fflush(stdout);} } while (0)
-#define WATCHPOINT_ERRNO(A) do { fprintf(stderr, "\nWATCHPOINT %s:%d (%s) %s\n", __FILE__, __LINE__,__func__, strerror(A));fflush(stdout); } while (0)
-#define WATCHPOINT_ASSERT_PRINT(A,B,C) do { if(!(A)){fprintf(stderr, "\nWATCHPOINT ASSERT %s:%d (%s) ", __FILE__, __LINE__,__func__);fprintf(stderr, (B),(C));fprintf(stderr,"\n");fflush(stdout); libmemcached_stack_dump(); } assert((A)); } while (0)
-#define WATCHPOINT_ASSERT(A) do { if (! (A)) {libmemcached_stack_dump();} assert((A)); } while (0)
-#define WATCHPOINT_ASSERT_INITIALIZED(A) do { if (! (A)) { libmemcached_stack_dump(); } assert(memcached_is_initialized((A))); } while (0);
-#define WATCHPOINT_SET(A) do { A; } while(0);
-
-#else
-
 #define WATCHPOINT
 #define WATCHPOINT_ERROR(A)
 #define WATCHPOINT_IFERROR(__memcached_return_t) (void)(__memcached_return_t)
@@ -106,5 +49,3 @@ static inline void libmemcached_stack_dump(void)
 #define WATCHPOINT_ASSERT(A) (void)(A)
 #define WATCHPOINT_ASSERT_INITIALIZED(A)
 #define WATCHPOINT_SET(A)
-
-#endif /* DEBUG */
index ccfd9a7ee0a15e6906230dedc2864baa585f97af..1ee25d76fa93fc3d606af76cfc6936dfbd204bf5 100644 (file)
@@ -111,6 +111,8 @@ you will need to install %{name}-devel.
 %{_includedir}/libhashkit/digest.h
 %{_includedir}/libhashkit/function.h
 %{_includedir}/libhashkit/hashkit.h
+%{_includedir}/libhashkit/hashkit.hpp
+%{_includedir}/libhashkit/str_algorithm.h
 %{_includedir}/libhashkit/strerror.h
 %{_includedir}/libhashkit/types.h
 %{_includedir}/libhashkit/visibility.h
@@ -125,8 +127,6 @@ you will need to install %{name}-devel.
 %{_includedir}/libmemcached/callback.h
 %{_includedir}/libmemcached/configure.h
 %{_includedir}/libmemcached/constants.h
-%{_includedir}/libhashkit/str_algorithm.h
-%{_includedir}/libmemcached/memcached/vbucket.h
 %{_includedir}/libmemcached/delete.h
 %{_includedir}/libmemcached/dump.h
 %{_includedir}/libmemcached/error.h
@@ -139,11 +139,12 @@ you will need to install %{name}-devel.
 %{_includedir}/libmemcached/memcached.h
 %{_includedir}/libmemcached/memcached.hpp
 %{_includedir}/libmemcached/memcached/protocol_binary.h
+%{_includedir}/libmemcached/memcached/vbucket.h
 %{_includedir}/libmemcached/memcached_util.h
+%{_includedir}/libmemcached/namespace.h
 %{_includedir}/libmemcached/options.h
 %{_includedir}/libmemcached/parse.h
 %{_includedir}/libmemcached/platform.h
-%{_includedir}/libmemcached/prefix_key.h
 %{_includedir}/libmemcached/protocol/cache.h
 %{_includedir}/libmemcached/protocol/callback.h
 %{_includedir}/libmemcached/protocol_handler.h
@@ -160,6 +161,7 @@ you will need to install %{name}-devel.
 %{_includedir}/libmemcached/types.h
 %{_includedir}/libmemcached/util.h
 %{_includedir}/libmemcached/util/flush.h
+%{_includedir}/libmemcached/util/pid.h
 %{_includedir}/libmemcached/util/ping.h
 %{_includedir}/libmemcached/util/pool.h
 %{_includedir}/libmemcached/util/version.h