X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=src%2Futilities.c;h=ed0dbb308d917d119a5b60c76fbb58eea6457867;hb=270d30a47b3fb769336f8dfaeb04afb42d8c2e8c;hp=eeec16887fd89829a4990ffe4238462fe2cc1ab6;hpb=806525899ce3dff894b829416307a4290cd882e2;p=m6w6%2Flibmemcached diff --git a/src/utilities.c b/src/utilities.c index eeec1688..ed0dbb30 100644 --- a/src/utilities.c +++ b/src/utilities.c @@ -1,15 +1,17 @@ -#include +#include +#include +#include "utilities.h" -void parse_opt_servers(memcached_st *memc, - char *server_strings) +memcached_server_st *parse_opt_servers(char *server_strings) { char *string; unsigned int port; char *begin_ptr; char *end_ptr; + memcached_server_st *servers= NULL; + memcached_return rc; assert(server_strings); - assert(memc); end_ptr= server_strings + strlen(server_strings); @@ -29,9 +31,8 @@ void parse_opt_servers(memcached_st *memc, } 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; } @@ -46,6 +47,46 @@ void parse_opt_servers(memcached_st *memc, port= strtol(ptr, (char **)NULL, 10); } - memcached_server_add(memc, buffer, port); + servers= memcached_server_list_append(servers, buffer, port, &rc); + + if (isspace(*begin_ptr)) + begin_ptr++; } + + return servers; +} + +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; +} + +void version_command(char *command_name) +{ + printf("%s v%u.%u\n", command_name, 1, 0); + exit(0); +} + +void help_command(char *command_name, char *description, + const struct option *long_options, + memcached_programs_help_st *options) +{ + unsigned int x; + + printf("%s v%u.%u\n\n", command_name, 1, 0); + printf("\t%s\n\n", description); + printf("Current options. A '=' means the option takes a value.\n\n"); + + for (x= 0; long_options[x].name; x++) + printf("\t --%s%c\n", long_options[x].name, + long_options[x].has_arg ? '=' : ' '); + + printf("\n"); + exit(0); }