X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fmemcached_stats.c;h=791c00d9891ef75950cca606c1958ae43a74704e;hb=ef0dfae9de06beccc4ba1b7008c62bbbd0e30d47;hp=96f0eb1cfb7ebe28261b1d785c0fdf8f90c973bf;hpb=a9b22f8a1c9f98eef8becdbef11d8e20d43dd23c;p=awesomized%2Flibmemcached diff --git a/libmemcached/memcached_stats.c b/libmemcached/memcached_stats.c index 96f0eb1c..791c00d9 100644 --- a/libmemcached/memcached_stats.c +++ b/libmemcached/memcached_stats.c @@ -136,14 +136,25 @@ static void set_data(memcached_stat_st *stat, char *key, char *value) { stat->threads= strtol(value, (char **)NULL, 10); } - else + else if (!(strcmp("delete_misses", key) == 0 ||/* New stats in the 1.3 beta */ + strcmp("delete_hits", key) == 0 ||/* Just swallow them for now.. */ + strcmp("incr_misses", key) == 0 || + strcmp("incr_hits", key) == 0 || + strcmp("decr_misses", key) == 0 || + strcmp("decr_hits", key) == 0 || + strcmp("cas_misses", key) == 0 || + strcmp("cas_hits", key) == 0 || + strcmp("cas_badval", key) == 0 || + strcmp("cmd_flush", key) == 0 || + strcmp("accepting_conns", key) == 0 || + strcmp("listen_disabled_num", key) == 0)) { fprintf(stderr, "Unknown key %s\n", key); } } char *memcached_stat_get_value(memcached_st *ptr, memcached_stat_st *stat, - char *key, memcached_return *error) + const char *key, memcached_return *error) { char buffer[SMALL_STRING_LEN]; size_t length; @@ -227,6 +238,11 @@ static memcached_return binary_stats_fetch(memcached_st *ptr, if (args != NULL) { int len= strlen(args); + + rc= memcached_validate_key_length(len, true); + unlikely (rc != MEMCACHED_SUCCESS) + return rc; + request.message.header.request.keylen= htons((uint16_t)len); request.message.header.request.bodylen= htonl(len); @@ -335,6 +351,12 @@ memcached_stat_st *memcached_stat(memcached_st *ptr, char *args, memcached_retur memcached_return rc; memcached_stat_st *stats; + if (ptr->flags & MEM_USE_UDP) + { + *error= MEMCACHED_NOT_SUPPORTED; + return NULL; + } + if (ptr->call_malloc) stats= (memcached_stat_st *)ptr->call_malloc(ptr, sizeof(memcached_stat_st)*(ptr->number_of_hosts)); else @@ -343,11 +365,6 @@ memcached_stat_st *memcached_stat(memcached_st *ptr, char *args, memcached_retur if (!stats) { *error= MEMCACHED_MEMORY_ALLOCATION_FAILURE; - if (ptr->call_free) - ptr->call_free(ptr, stats); - else - free(stats); - return NULL; } memset(stats, 0, sizeof(memcached_stat_st)*(ptr->number_of_hosts));