Merge in trunk
[m6w6/libmemcached] / clients / memcat.cc
index fdbcb67ea5180edee241bfe378aa2235dbf3ca0c..ab482e5d6ad57549b17f06d0352b3b132562f1b4 100644 (file)
@@ -9,14 +9,13 @@
  *
  */
 
-#include "config.h"
+#include <config.h>
 
+#include <cstdio>
+#include <cstring>
+#include <getopt.h>
 #include <iostream>
-#include <stdio.h>
-#include <inttypes.h>
-#include <string.h>
 #include <unistd.h>
-#include <getopt.h>
 #include <libmemcached/memcached.h>
 
 #include "utilities.h"
@@ -81,10 +80,15 @@ int main(int argc, char *argv[])
     return EXIT_FAILURE;
   }
 
-  if (opt_username and initialize_sasl(memc, opt_username, opt_passwd) == false)
+  if (opt_username)
   {
-    memcached_free(memc);
-    return EXIT_FAILURE;
+    memcached_return_t ret;
+    if (memcached_failed(ret= memcached_set_sasl_auth_data(memc, opt_username, opt_passwd)))
+    {
+      std::cerr << memcached_last_error_message(memc) << std::endl;
+      memcached_free(memc);
+      return EXIT_FAILURE;
+    }
   }
 
   while (optind < argc)
@@ -170,8 +174,6 @@ int main(int argc, char *argv[])
   if (opt_hash)
     free(opt_hash);
 
-  shutdown_sasl();
-
   return return_code;
 }
 
@@ -190,6 +192,7 @@ void options_parse(int argc, char *argv[])
     {
       {(OPTIONSTRING)"version", no_argument, NULL, OPT_VERSION},
       {(OPTIONSTRING)"help", no_argument, NULL, OPT_HELP},
+      {(OPTIONSTRING)"quiet", no_argument, NULL, OPT_QUIET},
       {(OPTIONSTRING)"verbose", no_argument, &opt_verbose, OPT_VERBOSE},
       {(OPTIONSTRING)"debug", no_argument, &opt_verbose, OPT_DEBUG},
       {(OPTIONSTRING)"servers", required_argument, NULL, OPT_SERVERS},
@@ -240,6 +243,11 @@ void options_parse(int argc, char *argv[])
     case OPT_FILE:
       opt_file= optarg;
       break;
+
+    case OPT_QUIET:
+      close_stdio();
+      break;
+
     case '?':
       /* getopt_long already printed an error message. */
       exit(1);