X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=src%2Futilities.c;h=3252df86ddf526a23a6badbf72dab0bc55b6cb82;hb=151506dd4b5da014f23438226ee286772a78dfd3;hp=5dd66f62731d871651d16eb7a5232bc39797a006;hpb=6d0bec130624e22e695dbf4038fbeed9e1c26c60;p=m6w6%2Flibmemcached diff --git a/src/utilities.c b/src/utilities.c index 5dd66f62..3252df86 100644 --- a/src/utilities.c +++ b/src/utilities.c @@ -1,29 +1,39 @@ +#include +#include #include void parse_opt_servers(memcached_st *memc, - char *opt_servers) + char *server_strings) { char *string; unsigned int port; char *begin_ptr; + char *end_ptr; - for (begin_ptr= opt_servers, string= index(opt_servers, ','); - begin_ptr[0]; - begin_ptr= ++string, string= index(begin_ptr, ',')) + assert(server_strings); + assert(memc); + + end_ptr= server_strings + strlen(server_strings); + + for (begin_ptr= server_strings, string= index(server_strings, ','); + begin_ptr != end_ptr; + string= index(begin_ptr, ',')) { char buffer[HUGE_STRING_LEN]; char *ptr; + port= 0; memset(buffer, 0, HUGE_STRING_LEN); if (string) { memcpy(buffer, begin_ptr, string - begin_ptr); + begin_ptr= string+1; } else { - size_t length= strlen(opt_servers); + size_t length= strlen(begin_ptr); memcpy(buffer, begin_ptr, length); - string= opt_servers+length; + begin_ptr= end_ptr; } ptr= index(buffer, ':'); @@ -35,13 +45,22 @@ void parse_opt_servers(memcached_st *memc, ptr++; port= strtol(ptr, (char **)NULL, 10); - - memcached_server_add(memc, buffer, port); - } - else - { - memcached_server_add(memc, buffer, 0); } + + memcached_server_add(memc, buffer, port); + + if (isspace(*begin_ptr)) + begin_ptr++; } } +long int timedif(struct timeval a, struct timeval b) +{ + register int us, s; + + us = a.tv_usec - b.tv_usec; + us /= 1000; + s = a.tv_sec - b.tv_sec; + s *= 1000; + return s + us; +}