-memcached_return memcached_server_add(memcached_st *ptr, char *hostname, unsigned int port)
-{
- memcached_server_st *new_host_list;
- char *new_hostname;
- LIBMEMCACHED_MEMCACHED_SERVER_ADD_START();
-
- if (!port)
- port= MEMCACHED_DEFAULT_PORT;
-
- if (!hostname)
- hostname= "localhost";
-
-
- new_host_list= (memcached_server_st *)realloc(ptr->hosts, sizeof(memcached_server_st) * (ptr->number_of_hosts+1));
- if (!new_host_list)
- return MEMCACHED_MEMORY_ALLOCATION_FAILURE;
- memset(&new_host_list[ptr->number_of_hosts], 0, sizeof(memcached_server_st));
-
- if (!new_host_list)
- return MEMCACHED_MEMORY_ALLOCATION_FAILURE;
-
- ptr->hosts= new_host_list;
-
- new_hostname=
- (char *)malloc(sizeof(char) * (strlen(hostname)+1));
- if (!new_hostname)
- return MEMCACHED_MEMORY_ALLOCATION_FAILURE;
-
- memset(new_hostname, 0, strlen(hostname)+1);
- memcpy(new_hostname, hostname, strlen(hostname));
- ptr->hosts[ptr->number_of_hosts].hostname= new_hostname;
- ptr->hosts[ptr->number_of_hosts].port= port;
- ptr->hosts[ptr->number_of_hosts].fd= -1;
- ptr->number_of_hosts++;
-
- LIBMEMCACHED_MEMCACHED_SERVER_ADD_END();
-
- return MEMCACHED_SUCCESS;
-}
-