2 * Copyright (C) 2006-2010 Brian Aker
5 * Use and distribution licensed under the BSD license. See
6 * the COPYING file in the parent directory for full text.
15 memcached_server_list_st
16 memcached_server_list_append_with_weight(memcached_server_list_st ptr
,
17 const char *hostname
, in_port_t port
,
19 memcached_return_t
*error
)
22 memcached_server_list_st new_host_list
;
24 if (hostname
== NULL
|| error
== NULL
)
28 port
= MEMCACHED_DEFAULT_PORT
;
30 /* Increment count for hosts */
34 count
+= memcached_server_list_count(ptr
);
37 new_host_list
= (memcached_server_write_instance_st
)realloc(ptr
, sizeof(memcached_server_st
) * count
);
40 ptr
->cached_errno
= errno
;
41 *error
= MEMCACHED_MEMORY_ALLOCATION_FAILURE
;
45 /* @todo Check return type */
46 memcached_server_create_with(NULL
, &new_host_list
[count
-1], hostname
, port
, weight
, MEMCACHED_CONNECTION_TCP
);
48 // Handset allocated since
49 new_host_list
->options
.is_allocated
= true;
51 /* Backwards compatibility hack */
52 memcached_servers_set_count(new_host_list
, count
);
54 *error
= MEMCACHED_SUCCESS
;
58 memcached_server_list_st
59 memcached_server_list_append(memcached_server_list_st ptr
,
60 const char *hostname
, in_port_t port
,
61 memcached_return_t
*error
)
63 return memcached_server_list_append_with_weight(ptr
, hostname
, port
, 0, error
);
66 uint32_t memcached_server_list_count(const memcached_server_list_st self
)
70 : self
->number_of_hosts
;
73 memcached_server_st
*memcached_server_list(const memcached_st
*self
)
78 void memcached_server_list_set(memcached_st
*self
, memcached_server_st
*list
)