Added basic print output.
[m6w6/libmemcached] / src / utilities.c
index 5dd66f62731d871651d16eb7a5232bc39797a006..3252df86ddf526a23a6badbf72dab0bc55b6cb82 100644 (file)
@@ -1,29 +1,39 @@
+#include <ctype.h>
+#include <strings.h>
 #include <memcached.h>
 
 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;
+}