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 /* Backwards compatibility hack */
49 memcached_servers_set_count(new_host_list
, count
);
51 *error
= MEMCACHED_SUCCESS
;
55 memcached_server_list_st
56 memcached_server_list_append(memcached_server_list_st ptr
,
57 const char *hostname
, in_port_t port
,
58 memcached_return_t
*error
)
60 return memcached_server_list_append_with_weight(ptr
, hostname
, port
, 0, error
);
63 uint32_t memcached_server_list_count(const memcached_server_list_st self
)
67 : self
->number_of_hosts
;
70 memcached_server_st
*memcached_server_list(const memcached_st
*self
)
75 void memcached_server_list_set(memcached_st
*self
, memcached_server_st
*list
)