From e6e8b144053f4eeda369e53cde01056daceddd03 Mon Sep 17 00:00:00 2001 From: Steve Holme Date: Sat, 22 Feb 2014 20:58:43 +0000 Subject: [PATCH] tool_cfgable: Removed list_engine flag from config structure 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 | 1 - src/tool_getparam.c | 7 ++++--- src/tool_getparam.h | 1 + src/tool_operate.c | 13 ++++++------- src/tool_parsecfg.c | 5 +++-- 5 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/tool_cfgable.h b/src/tool_cfgable.h index 2462ac7cd..9cc262526 100644 --- a/src/tool_cfgable.h +++ b/src/tool_cfgable.h @@ -120,7 +120,6 @@ struct Configurable { char *pubkey; char *hostpubmd5; char *engine; - bool list_engines; bool crlf; char *customrequest; char *krblevel; diff --git a/src/tool_getparam.c b/src/tool_getparam.c index 5e7962cfc..05dd64853 100644 --- a/src/tool_getparam.c +++ b/src/tool_getparam.c @@ -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)) diff --git a/src/tool_getparam.h b/src/tool_getparam.h index cf1496c50..1fac8daef 100644 --- a/src/tool_getparam.h +++ b/src/tool_getparam.h @@ -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, diff --git a/src/tool_operate.c b/src/tool_operate.c index 0a3c4f6ac..f6ebf5f3e 100644 --- a/src/tool_operate.c +++ b/src/tool_operate.c @@ -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 { diff --git a/src/tool_parsecfg.c b/src/tool_parsecfg.c index 71be83d71..44d7001f0 100644 --- a/src/tool_parsecfg.c +++ b/src/tool_parsecfg.c @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2013, Daniel Stenberg, , et al. + * Copyright (C) 1998 - 2014, Daniel Stenberg, , 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 *)""; } - 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);