char buffer[SMALL_STRING_LEN];
*error= MEMCACHED_SUCCESS;
-
- memset(buffer, 0, SMALL_STRING_LEN);
-
if (!memcmp("pid", key, strlen("pid")))
snprintf(buffer, SMALL_STRING_LEN,"%u", stat->pid);
else if (!memcmp("uptime", key, strlen("uptime")))
unsigned int server_key)
{
memcached_return rc;
- char buffer[HUGE_STRING_LEN];
- size_t send_length, sent_length;
+ char buffer[MEMCACHED_DEFAULT_COMMAND_SIZE];
+ size_t send_length;
- rc= memcached_connect(ptr);
+ rc= memcached_connect(ptr, server_key);
if (rc != MEMCACHED_SUCCESS)
return rc;
if (args)
- send_length= snprintf(buffer, HUGE_STRING_LEN,
+ send_length= snprintf(buffer, MEMCACHED_DEFAULT_COMMAND_SIZE,
"stats %s\r\n", args);
else
- send_length= snprintf(buffer, HUGE_STRING_LEN,
+ send_length= snprintf(buffer, MEMCACHED_DEFAULT_COMMAND_SIZE,
"stats\r\n");
if (send_length >= MEMCACHED_DEFAULT_COMMAND_SIZE)
return MEMCACHED_WRITE_FAILURE;
- sent_length= send(ptr->hosts[server_key].fd, buffer, send_length, 0);
-
- if (sent_length == -1 || sent_length != send_length)
- return MEMCACHED_WRITE_FAILURE;
-
- rc= memcached_response(ptr, buffer, HUGE_STRING_LEN, 0);
+ rc= memcached_do(ptr, server_key, buffer, send_length, 1);
+ if (rc != MEMCACHED_SUCCESS)
+ goto error;
- if (rc == MEMCACHED_SUCCESS)
+ while (1)
{
- char *string_ptr, *end_ptr;
- char *key, *value;
+ rc= memcached_response(ptr, buffer, MEMCACHED_DEFAULT_COMMAND_SIZE, server_key);
- string_ptr= buffer;
- while (1)
+ if (rc == MEMCACHED_STAT)
{
- if (memcmp(string_ptr, "STAT ", 5))
- break;
- string_ptr+= 5;
+ char *string_ptr, *end_ptr;
+ char *key, *value;
+
+ string_ptr= buffer;
+ string_ptr+= 5; /* Move past STAT */
for (end_ptr= string_ptr; *end_ptr != ' '; end_ptr++);
key= string_ptr;
key[(size_t)(end_ptr-string_ptr)]= 0;
string_ptr= end_ptr + 2;
set_data(stat, key, value);
}
+ else
+ break;
}
- return rc;
+error:
+ if (rc == MEMCACHED_END)
+ return MEMCACHED_SUCCESS;
+ else
+ return rc;
}
memcached_stat_st *memcached_stat(memcached_st *ptr, char *args, memcached_return *error)
memcached_return rc;
memcached_stat_st *stats;
- rc= memcached_connect(ptr);
- if (rc != MEMCACHED_SUCCESS)
- {
- *error= rc;
- return NULL;
- }
-
stats= (memcached_stat_st *)malloc(sizeof(memcached_st)*(ptr->number_of_hosts+1));
if (!stats)
{
}
memset(stats, 0, sizeof(memcached_st)*(ptr->number_of_hosts+1));
+ rc= MEMCACHED_SUCCESS;
for (x= 0; x < ptr->number_of_hosts; x++)
{
- rc= memcached_stats_fetch(ptr, stats+x, args, x);
- if (rc != MEMCACHED_SUCCESS)
+ memcached_return temp_return;
+ temp_return= memcached_stats_fetch(ptr, stats+x, args, x);
+ if (temp_return != MEMCACHED_SUCCESS)
rc= MEMCACHED_SOME_ERRORS;
}
memcached_return rc;
memcached_st memc;
- memcached_init(&memc);
+ memcached_create(&memc);
memcached_server_add(&memc, hostname, port);
- rc= memcached_connect(&memc);
-
- if (rc != MEMCACHED_SUCCESS)
- return rc;
-
rc= memcached_stats_fetch(&memc, stat, args, 0);
- memcached_deinit(&memc);
+ memcached_free(&memc);
return rc;
}
return list;
}
+
+void memcached_stat_free(memcached_st *ptr, memcached_stat_st *stat)
+{
+ free(stat);
+}