X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Futil%2Fping.cc;h=45f94b19c17602ab68f87d1bc587212a12b773c7;hb=e4e6bde654ddb9017f090f3a36d6e9f5fd70b354;hp=52489b95fdef180a4fd97076bb2d04cb19a96be7;hpb=7abcaebdc4c3dd11b779eaef58a7371fb82ae888;p=m6w6%2Flibmemcached diff --git a/libmemcached/util/ping.cc b/libmemcached/util/ping.cc index 52489b95..45f94b19 100644 --- a/libmemcached/util/ping.cc +++ b/libmemcached/util/ping.cc @@ -43,7 +43,16 @@ bool libmemcached_util_ping(const char *hostname, in_port_t port, memcached_return_t *ret) { + memcached_return_t unused; + if (not ret) + ret= &unused; + memcached_st *memc_ptr= memcached_create(NULL); + if (not memc_ptr) + { + *ret= MEMCACHED_MEMORY_ALLOCATION_FAILURE; + return false; + } memcached_return_t rc= memcached_server_add(memc_ptr, hostname, port); if (memcached_success(rc)) @@ -56,6 +65,7 @@ bool libmemcached_util_ping(const char *hostname, in_port_t port, memcached_retu memcached_server_instance_st instance= memcached_server_instance_by_position(memc_ptr, 0); + assert_msg(instance and instance->error_messages, " "); if (instance and instance->error_messages) { rc= memcached_server_error_return(instance); @@ -63,10 +73,7 @@ bool libmemcached_util_ping(const char *hostname, in_port_t port, memcached_retu } memcached_free(memc_ptr); - if (ret) - { - *ret= rc; - } + *ret= rc; return memcached_success(rc); }