Commit f80ca7a0 authored by Steve Holme's avatar Steve Holme
Browse files

tool_operate: Moved required argument getting into separate function

parent 89070d0e
Loading
Loading
Loading
Loading
+5 −19
Original line number Diff line number Diff line
@@ -234,32 +234,18 @@ static int operate_do(struct Configurable *config)
  ** from outside of nested loops further down below.
  */

  if(config->userpwd && !config->xoauth2_bearer) {
    res = checkpasswd("host", &config->userpwd);
  /* Get the required aguments */
  res = get_args(config);
  if(res)
    goto quit_curl;
  }

  if(config->proxyuserpwd) {
    res = checkpasswd("proxy", &config->proxyuserpwd);
    if(res)
      goto quit_curl;
  }

  /* Check we have a url */
  if(!config->url_list || !config->url_list->url) {
    helpf(config->errors, "no URL specified!\n");
    res = CURLE_FAILED_INIT;
    goto quit_curl;
  }

  if(!config->useragent)
    config->useragent = my_useragent();
  if(!config->useragent) {
    helpf(config->errors, "out of memory\n");
    res = CURLE_OUT_OF_MEMORY;
    goto quit_curl;
  }

  /* On WIN32 we can't set the path to curl-ca-bundle.crt
   * at compile time. So we look here for the file in two ways:
   * 1: look at the environment variable CURL_CA_BUNDLE for a path
+0 −10
Original line number Diff line number Diff line
@@ -30,19 +30,10 @@
#include "tool_cfgable.h"
#include "tool_convert.h"
#include "tool_operhlp.h"
#include "tool_version.h"
#include "tool_metalink.h"

#include "memdebug.h" /* keep this as LAST include */

/*
 * my_useragent: returns allocated string with default user agent
 */
char *my_useragent(void)
{
  return strdup( CURL_NAME "/" CURL_VERSION );
}

/*
 * Print list of OpenSSL supported engines
 */
@@ -192,4 +183,3 @@ CURLcode get_url_file_name(char **filename, const char *url)

  return CURLE_OK;
}
+0 −2
Original line number Diff line number Diff line
@@ -23,8 +23,6 @@
 ***************************************************************************/
#include "tool_setup.h"

char *my_useragent(void);

void list_engines(const struct curl_slist *engines);

void clean_getout(struct Configurable *config);
+40 −2
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@
#include "tool_homedir.h"
#include "tool_msgs.h"
#include "tool_paramhlp.h"
#include "tool_version.h"

#include "memdebug.h" /* keep this as LAST include */

@@ -365,7 +366,7 @@ ParameterError str2offset(curl_off_t *val, const char *str)
  return PARAM_BAD_NUMERIC;
}

CURLcode checkpasswd(const char *kind, /* for what purpose */
static CURLcode checkpasswd(const char *kind, /* for what purpose */
                            char **userpwd)   /* pointer to allocated string */
{
  char *psep;
@@ -464,3 +465,40 @@ long delegation(struct Configurable *config, char *str)
  return CURLGSSAPI_DELEGATION_NONE;
}

/*
 * my_useragent: returns allocated string with default user agent
 */
static char *my_useragent(void)
{
  return strdup(CURL_NAME "/" CURL_VERSION);
}

CURLcode get_args(struct Configurable *config)
{
  CURLcode result = CURLE_OK;

  /* Check we have a password for the given host user */
  if(config->userpwd && !config->xoauth2_bearer) {
    result = checkpasswd("host", &config->userpwd);
    if(result)
      return result;
  }

  /* Check we have a password for the given proxy user */
  if(config->proxyuserpwd) {
    result = checkpasswd("proxy", &config->proxyuserpwd);
    if(result)
      return result;
  }

  /* Check we have a user agent */
  if(!config->useragent) {
    config->useragent = my_useragent();
    if(!config->useragent) {
      helpf(config->errors, "out of memory\n");
      result = CURLE_OUT_OF_MEMORY;
    }
  }

  return result;
}
+1 −1
Original line number Diff line number Diff line
@@ -40,7 +40,7 @@ long proto2num(struct Configurable *config, long *val, const char *str);

ParameterError str2offset(curl_off_t *val, const char *str);

CURLcode checkpasswd(const char *kind, char **userpwd);
CURLcode get_args(struct Configurable *config);

ParameterError add2list(struct curl_slist **list, const char *ptr);