libmemcached: fix typo [ci skip]
[awesomized/libmemcached] / clients / memdump.cc
index bcd277c23ade0b6e5e4884f96562f114cce5f2d1..48c35d3edf4e0b81e2419913bf32bf02a2d41d20 100644 (file)
@@ -62,9 +62,6 @@ int main(int argc, char *argv[])
 
   options_parse(argc, argv);
 
-  memcached_st *memc= memcached_create(NULL);
-  process_hash_option(memc, opt_hash);
-
   if (opt_servers == NULL)
   {
     char *temp;
@@ -73,22 +70,32 @@ int main(int argc, char *argv[])
     {
       opt_servers= strdup(temp);
     }
-    else
+    else if (argc >= 1 and argv[--argc])
+    {
+      opt_servers= strdup(argv[argc]);
+    }
+
+    if (opt_servers == NULL)
     {
       std::cerr << "No Servers provided" << std::endl;
       exit(EXIT_FAILURE);
     }
   }
 
-  memcached_server_st *servers;
-  if (opt_servers)
+  memcached_server_st* servers= memcached_servers_parse(opt_servers);
+  if (servers == NULL or memcached_server_list_count(servers) == 0)
   {
-    servers= memcached_servers_parse(opt_servers);
+    std::cerr << "Invalid server list provided:" << opt_servers << std::endl;
+    return EXIT_FAILURE;
   }
-  else
+
+  memcached_st *memc= memcached_create(NULL);
+  if (memc == NULL)
   {
-    servers= memcached_servers_parse(argv[--argc]);
+    std::cerr << "Could not allocate a memcached_st structure.\n" << std::endl;
+    return EXIT_FAILURE;
   }
+  process_hash_option(memc, opt_hash);
 
   memcached_server_push(memc, servers);
   memcached_server_list_free(servers);