X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=src%2Futilities.c;h=4f5b4526d979670566f3941f37ffdd13977ae3ba;hb=57408dce015f0d55d7c0f99113567d9d5e89618d;hp=c866dd54038f00960107b789786e4cdff4dbbe3a;hpb=875200dc0c5668bba4f8a68b487f9d2f2a1eedb0;p=m6w6%2Flibmemcached diff --git a/src/utilities.c b/src/utilities.c index c866dd54..4f5b4526 100644 --- a/src/utilities.c +++ b/src/utilities.c @@ -1,3 +1,4 @@ +#include #include void parse_opt_servers(memcached_st *memc, @@ -8,28 +9,30 @@ void parse_opt_servers(memcached_st *memc, char *begin_ptr; char *end_ptr; - end_ptr= server_strings + strlen(server_strings); - 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; - begin_ptr= ++string, string= index(begin_ptr, ',')) + 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(server_strings); + size_t length= strlen(begin_ptr); memcpy(buffer, begin_ptr, length); - string= server_strings+length; + begin_ptr= end_ptr; } ptr= index(buffer, ':'); @@ -41,12 +44,11 @@ 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++; } }