tool_cfgable: Removed list_engine flag from config structure
authorSteve Holme <steve_holme@hotmail.com>
Sat, 22 Feb 2014 20:58:43 +0000 (20:58 +0000)
committerSteve Holme <steve_holme@hotmail.com>
Sat, 22 Feb 2014 21:00:03 +0000 (21:00 +0000)
In preparation for separating the global config options from the per
operation config options, reworked the list engines code to not use a
member variable in the Configurable structure.

src/tool_cfgable.h
src/tool_getparam.c
src/tool_getparam.h
src/tool_operate.c
src/tool_parsecfg.c

index 2462ac7..9cc2625 100644 (file)
@@ -120,7 +120,6 @@ struct Configurable {
   char *pubkey;
   char *hostpubmd5;
   char *engine;
-  bool list_engines;
   bool crlf;
   char *customrequest;
   char *krblevel;
index 5e7962c..05dd648 100644 (file)
@@ -1310,7 +1310,7 @@ ParameterError getparameter(char *flag,    /* f or -long-flag */
       case 'f': /* crypto engine */
         GetStr(&config->engine, nextarg);
         if(config->engine && curlx_raw_equal(config->engine,"list"))
-          config->list_engines = TRUE;
+          return PARAM_ENGINES_REQUESTED;
         break;
       case 'g': /* CA info PEM file */
         /* CA cert directory */
@@ -1819,7 +1819,7 @@ ParameterError parse_args(struct Configurable *config, int argc,
     orig_opt = argv[i];
 
     if(curlx_strequal(":", argv[i]) &&
-       ((config->url_list && config->url_list->url) || config->list_engines)) {
+       (config->url_list && config->url_list->url)) {
 
       /* Allocate the next config */
       config->next = malloc(sizeof(struct Configurable));
@@ -1865,7 +1865,8 @@ ParameterError parse_args(struct Configurable *config, int argc,
     }
   }
 
-  if(result && result != PARAM_HELP_REQUESTED) {
+  if(result && result != PARAM_HELP_REQUESTED &&
+     result != PARAM_ENGINES_REQUESTED) {
     const char *reason = param2text(result);
 
     if(!curlx_strequal(":", orig_opt))
index cf1496c..1fac8da 100644 (file)
@@ -30,6 +30,7 @@ typedef enum {
   PARAM_REQUIRES_PARAMETER,
   PARAM_BAD_USE,
   PARAM_HELP_REQUESTED,
+  PARAM_ENGINES_REQUESTED,
   PARAM_GOT_EXTRA_PARAMETER,
   PARAM_BAD_NUMERIC,
   PARAM_NEGATIVE_NUMERIC,
index 0a3c4f6..f6ebf5f 100644 (file)
@@ -1826,14 +1826,13 @@ CURLcode operate(struct Configurable *config, int argc, argv_item_t argv[])
     /* Parse the command line arguments */
     ParameterError res = parse_args(config, argc, argv);
     if(res) {
-      if(res != PARAM_HELP_REQUESTED)
+      result = CURLE_OK;
+
+      /* Check if we were asked to list the SSL engines */
+      if(res == PARAM_ENGINES_REQUESTED)
+        tool_list_engines(config->easy);
+      else if(res != PARAM_HELP_REQUESTED)
         result = CURLE_FAILED_INIT;
-      else
-        result = CURLE_OK;
-    }
-    /* Check if we were asked to list the SSL engines */
-    else if(config->list_engines) {
-      tool_list_engines(config->easy);
     }
     /* Perform the main operations */
     else {
index 71be83d..44d7001 100644 (file)
@@ -5,7 +5,7 @@
  *                            | (__| |_| |  _ <| |___
  *                             \___|\___/|_| \_\_____|
  *
- * Copyright (C) 1998 - 2013, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
  *
  * This software is licensed as described in the file COPYING, which
  * you should have received as part of this distribution. The terms
@@ -230,7 +230,8 @@ int parseconfig(const char *filename,
         if(!strcmp(filename, "-")) {
           filename = (char *)"<stdin>";
         }
-        if(PARAM_HELP_REQUESTED != res) {
+        if(res != PARAM_HELP_REQUESTED &&
+           res != PARAM_ENGINES_REQUESTED) {
           const char *reason = param2text(res);
           warnf(config, "%s:%d: warning: '%s' %s\n",
                 filename, lineno, option, reason);