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 *error
= MEMCACHED_MEMORY_ALLOCATION_FAILURE
;
44 /* TODO: Check return type */
45 memcached_server_create_with(NULL
, &new_host_list
[count
-1], hostname
, port
, weight
, MEMCACHED_CONNECTION_TCP
);
47 /* Backwards compatibility hack */
48 memcached_servers_set_count(new_host_list
, count
);
50 *error
= MEMCACHED_SUCCESS
;
54 memcached_server_list_st
55 memcached_server_list_append(memcached_server_list_st ptr
,
56 const char *hostname
, in_port_t port
,
57 memcached_return_t
*error
)
59 return memcached_server_list_append_with_weight(ptr
, hostname
, port
, 0, error
);
62 inline uint32_t memcached_server_list_count(const memcached_server_list_st self
)
66 : self
->number_of_hosts
;
69 inline memcached_server_st
*memcached_server_list(const memcached_st
*self
)
74 inline void memcached_server_list_set(memcached_st
*self
, memcached_server_st
*list
)