host->fd= -1;
host->type= type;
host->read_ptr= host->read_buffer;
+ host->state.is_corked= 0;
if (memc)
host->next_retry= memc->retry_timeout;
if (type == MEMCACHED_CONNECTION_UDP)
{
uint32_t y;
- for (y= 0; y < ptr->number_of_hosts; y++)
+ for (y= 0; y < memcached_server_count(ptr); y++)
{
uint32_t x;
+ memcached_server_instance_st *instance=
+ memcached_server_instance_fetch(ptr, y);
for (x= 0; x < number_of_callbacks; x++)
{
unsigned int iferror;
- iferror= (*callback[x])(ptr, &ptr->hosts[y], context);
+ iferror= (*callback[x])(ptr, instance, context);
if (iferror)
continue;
memcached_server_st *memcached_server_by_key(memcached_st *ptr, const char *key, size_t key_length, memcached_return_t *error)
{
uint32_t server_key;
+ memcached_server_instance_st *instance;
*error= memcached_validate_key_length(key_length,
ptr->flags.binary_protocol);
unlikely (*error != MEMCACHED_SUCCESS)
return NULL;
- unlikely (ptr->number_of_hosts == 0)
+ unlikely (memcached_server_count(ptr) == 0)
{
*error= MEMCACHED_NO_SERVERS;
return NULL;
}
server_key= memcached_generate_hash(ptr, key, key_length);
+ instance= memcached_server_instance_fetch(ptr, server_key);
- return memcached_server_clone(NULL, &ptr->hosts[server_key]);
+ return memcached_server_clone(NULL, instance);
}
const char *memcached_server_error(memcached_server_st *ptr)
{
- if (ptr)
- return ptr->cached_server_error;
- else
- return NULL;
+ return ptr
+ ? ptr->cached_server_error
+ : NULL;
}
void memcached_server_error_reset(memcached_server_st *ptr)
{
return ptr->last_disconnected_server;
}
+
+uint32_t memcached_server_list_count(memcached_server_st *ptr)
+{
+ return (ptr == NULL)
+ ? 0
+ : memcached_servers_count(ptr);
+}
+
+void memcached_server_list_free(memcached_server_st *ptr)
+{
+ server_list_free(NULL, ptr);
+}