X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=lib%2Fmemcached_hosts.c;h=bd9e29c755ba17124789a8cc40a5016a3530e9a1;hb=d283f47cade6fcd1256e738057667fbcca7b06c1;hp=c77e5583eb2d9caa7146dee6a998a6cc9f47768f;hpb=c1f907e3ade57bd12d08277f6b805c958f3cf581;p=awesomized%2Flibmemcached diff --git a/lib/memcached_hosts.c b/lib/memcached_hosts.c index c77e5583..bd9e29c7 100644 --- a/lib/memcached_hosts.c +++ b/lib/memcached_hosts.c @@ -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++;