+
+static memcached_return_t call_stat_fn(memcached_st *ptr,
+ memcached_server_write_instance_st instance,
+ void *context)
+{
+ memcached_return_t rc;
+ struct local_context *check= (struct local_context *)context;
+
+ if (ptr->flags.binary_protocol)
+ {
+ rc= binary_stats_fetch(NULL, check->args, instance, check);
+ }
+ else
+ {
+ rc= ascii_stats_fetch(NULL, check->args, instance, check);
+ }
+
+ return rc;
+}
+
+memcached_return_t memcached_stat_execute(memcached_st *memc, const char *args, memcached_stat_fn func, void *context)
+{
+ memcached_version(memc);
+
+ struct local_context check= { .func= func, .context= context, .args= args };
+
+ return memcached_server_execute(memc, call_stat_fn, (void *)&check);
+}