Added basic print output.
[awesomized/libmemcached] / src / utilities.c
1 #include <ctype.h>
2 #include <strings.h>
3 #include <memcached.h>
4
5 void parse_opt_servers(memcached_st *memc,
6 char *server_strings)
7 {
8 char *string;
9 unsigned int port;
10 char *begin_ptr;
11 char *end_ptr;
12
13 assert(server_strings);
14 assert(memc);
15
16 end_ptr= server_strings + strlen(server_strings);
17
18 for (begin_ptr= server_strings, string= index(server_strings, ',');
19 begin_ptr != end_ptr;
20 string= index(begin_ptr, ','))
21 {
22 char buffer[HUGE_STRING_LEN];
23 char *ptr;
24 port= 0;
25
26 memset(buffer, 0, HUGE_STRING_LEN);
27 if (string)
28 {
29 memcpy(buffer, begin_ptr, string - begin_ptr);
30 begin_ptr= string+1;
31 }
32 else
33 {
34 size_t length= strlen(begin_ptr);
35 memcpy(buffer, begin_ptr, length);
36 begin_ptr= end_ptr;
37 }
38
39 ptr= index(buffer, ':');
40
41 if (ptr)
42 {
43 ptr[0]= 0;
44
45 ptr++;
46
47 port= strtol(ptr, (char **)NULL, 10);
48 }
49
50 memcached_server_add(memc, buffer, port);
51
52 if (isspace(*begin_ptr))
53 begin_ptr++;
54 }
55 }
56
57 long int timedif(struct timeval a, struct timeval b)
58 {
59 register int us, s;
60
61 us = a.tv_usec - b.tv_usec;
62 us /= 1000;
63 s = a.tv_sec - b.tv_sec;
64 s *= 1000;
65 return s + us;
66 }