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.
This commit is contained in:
Steve Holme 2014-02-22 20:58:43 +00:00
parent b914e7ed02
commit e6e8b14405
5 changed files with 14 additions and 13 deletions

View File

@ -120,7 +120,6 @@ struct Configurable {
char *pubkey;
char *hostpubmd5;
char *engine;
bool list_engines;
bool crlf;
char *customrequest;
char *krblevel;

View 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))

View 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,

View 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 {

View 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);