tool_operate: Moved required argument getting into separate function
authorSteve Holme <steve_holme@hotmail.com>
Fri, 14 Feb 2014 21:59:51 +0000 (21:59 +0000)
committerSteve Holme <steve_holme@hotmail.com>
Sat, 15 Feb 2014 16:31:32 +0000 (16:31 +0000)
src/tool_operate.c
src/tool_operhlp.c
src/tool_operhlp.h
src/tool_paramhlp.c
src/tool_paramhlp.h

index 0ecbcad..fc54819 100644 (file)
@@ -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);
-    if(res)
-      goto quit_curl;
-  }
-
-  if(config->proxyuserpwd) {
-    res = checkpasswd("proxy", &config->proxyuserpwd);
-    if(res)
-      goto quit_curl;
-  }
+  /* Get the required aguments */
+  res = get_args(config);
+  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
index a9dab9b..a0da01c 100644 (file)
 #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
  */
 void list_engines(const struct curl_slist *engines)
@@ -192,4 +183,3 @@ CURLcode get_url_file_name(char **filename, const char *url)
 
   return CURLE_OK;
 }
-
index 7ca1236..bfe298b 100644 (file)
@@ -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);
index 46e9269..6dcee8d 100644 (file)
@@ -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,8 +366,8 @@ ParameterError str2offset(curl_off_t *val, const char *str)
   return PARAM_BAD_NUMERIC;
 }
 
-CURLcode checkpasswd(const char *kind, /* for what purpose */
-                     char **userpwd)   /* pointer to allocated string */
+static CURLcode checkpasswd(const char *kind, /* for what purpose */
+                            char **userpwd)   /* pointer to allocated string */
 {
   char *psep;
   char *osep;
@@ -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;
+}
index 3722e93..8441374 100644 (file)
@@ -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);