Bugfix for memcached_connect() so that it will not always start up servers.
[awesomized/libmemcached] / lib / memcached_hosts.c
index c77e5583eb2d9caa7146dee6a998a6cc9f47768f..bd9e29c755ba17124789a8cc40a5016a3530e9a1 100644 (file)
@@ -9,15 +9,14 @@ static memcached_return server_add(memcached_st *ptr, char *hostname,
 static void host_reset(memcached_server_st *host, char *new_hostname, unsigned int port,
                        memcached_connection type)
 {
-  host->stack_responses= 0;
-  host->cursor_active= 0;
+  memset(host,  0, sizeof(memcached_server_st));
   host->hostname= new_hostname;
   host->port= port;
   host->fd= -1;
   host->type= type;
-  host->write_buffer_offset= 0;
-  host->read_buffer_length= 0;
   host->read_ptr= host->read_buffer;
+  host->write_ptr= host->write_buffer;
+  host->sockaddr_inited= MEMCACHED_NOT_ALLOCATED;
 }
 
 memcached_return memcached_server_push(memcached_st *ptr, memcached_server_st *list)
@@ -64,7 +63,22 @@ memcached_return memcached_server_add_unix_socket(memcached_st *ptr, char *filen
   return server_add(ptr, filename, 0, MEMCACHED_CONNECTION_UNIX_SOCKET);
 }
 
-memcached_return memcached_server_add(memcached_st *ptr, char *hostname, unsigned int port)
+memcached_return memcached_server_add_udp(memcached_st *ptr, 
+                                          char *hostname,
+                                          unsigned int port)
+{
+  if (!port)
+    port= MEMCACHED_DEFAULT_PORT; 
+
+  if (!hostname)
+    hostname= "localhost"; 
+
+  return server_add(ptr, hostname, port, MEMCACHED_CONNECTION_UDP);
+}
+
+memcached_return memcached_server_add(memcached_st *ptr, 
+                                      char *hostname, 
+                                      unsigned int port)
 {
   if (!port)
     port= MEMCACHED_DEFAULT_PORT; 
@@ -111,8 +125,8 @@ static memcached_return server_add(memcached_st *ptr, char *hostname,
   if (!new_hostname)
     return MEMCACHED_MEMORY_ALLOCATION_FAILURE;
 
-  memset(new_hostname, 0, strlen(hostname)+1);
   memcpy(new_hostname, hostname, strlen(hostname));
+  new_hostname[strlen(hostname)]= 0;
   host_reset(&ptr->hosts[ptr->number_of_hosts], new_hostname, port, type);
   ptr->number_of_hosts++;