Rework of the server connect so that "hostname" lookup does not occur for
[awesomized/libmemcached] / lib / memcached_hosts.c
index ad0cad2e438d9d20d9cfd675c1dbc94e9300a0ae..f16052b345d627a67d2bba9b7f0245c065a7beac 100644 (file)
@@ -9,12 +9,12 @@ 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->read_ptr= host->read_buffer;
 }
 
 memcached_return memcached_server_push(memcached_st *ptr, memcached_server_st *list)
@@ -61,7 +61,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;