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

tool_operate: Moved main initialisation and cleanup code into tool_main

parent c1daf6c0
Loading
Loading
Loading
Loading
+39 −2
Original line number Diff line number Diff line
@@ -115,6 +115,32 @@ static void memory_tracking_init(void)
#  define memory_tracking_init() Curl_nop_stmt
#endif

/*
 * This is the main global constructor for the app. Call this before
 * _any_ libcurl usage. If this fails, *NO* libcurl functions may be
 * used, or havoc may be the result.
 */
static CURLcode main_init(void)
{
#if defined(__DJGPP__) || defined(__GO32__)
  /* stop stat() wasting time */
  _djstat_flags |= _STAT_INODE | _STAT_EXEC_MAGIC | _STAT_DIRSIZE;
#endif

  return curl_global_init(CURL_GLOBAL_DEFAULT);
}

/*
 * This is the main global destructor for the app. Call this after
 * _all_ libcurl usage is done.
 */
static void main_free(void)
{
  curl_global_cleanup();
  convert_cleanup();
  metalink_cleanup();
}

/*
** curl tool main function.
*/
@@ -139,9 +165,20 @@ int main(int argc, char *argv[])
    /* Initialise the config */
    init_config(config);

    /* Initialize the curl library - do not call any libcurl functions before
       this point */
    if(!main_init()) {
      /* Start our curl operation */
      res = operate(config, argc, argv);

      /* Perform the main cleanup */
      main_free();
    }
    else {
      helpf(config->errors, "error initializing curl library\n");
      res = CURLE_FAILED_INIT;
    }

#ifdef __SYMBIAN32__
    if(config->showerror)
      tool_pressanykey();
+0 −13
Original line number Diff line number Diff line
@@ -214,19 +214,9 @@ int operate(struct Configurable *config, int argc, argv_item_t argv[])
  heads.stream = stdout;
  heads.config = config;

  /*
  ** Initialize curl library - do not call any libcurl functions before
  ** this point.
  */
  if(main_init() != CURLE_OK) {
    helpf(config->errors, "error initializing curl library\n");
    return CURLE_FAILED_INIT;
  }

  /* Get libcurl info right away */
  if(get_libcurl_info() != CURLE_OK) {
    helpf(config->errors, "error retrieving curl library information\n");
    main_free();
    return CURLE_FAILED_INIT;
  }

@@ -234,7 +224,6 @@ int operate(struct Configurable *config, int argc, argv_item_t argv[])
  curl = curl_easy_init();
  if(!curl) {
    helpf(config->errors, "error initializing curl easy handle\n");
    main_free();
    return CURLE_FAILED_INIT;
  }
  config->easy = curl;
@@ -1892,7 +1881,5 @@ int operate(struct Configurable *config, int argc, argv_item_t argv[])
  /* Release metalink related resources here */
  clean_metalink(config);

  main_free(); /* cleanup */

  return res;
}
+0 −26
Original line number Diff line number Diff line
@@ -193,29 +193,3 @@ CURLcode get_url_file_name(char **filename, const char *url)
  return CURLE_OK;
}
/*
 * This is the main global constructor for the app. Call this before
 * _any_ libcurl usage. If this fails, *NO* libcurl functions may be
 * used, or havoc may be the result.
 */
CURLcode main_init(void)
{
#if defined(__DJGPP__) || defined(__GO32__)
  /* stop stat() wasting time */
  _djstat_flags |= _STAT_INODE | _STAT_EXEC_MAGIC | _STAT_DIRSIZE;
#endif

  return curl_global_init(CURL_GLOBAL_DEFAULT);
}

/*
 * This is the main global destructor for the app. Call this after
 * _all_ libcurl usage is done.
 */
void main_free(void)
{
  curl_global_cleanup();
  convert_cleanup();
  metalink_cleanup();
}
+0 −4
Original line number Diff line number Diff line
@@ -37,9 +37,5 @@ char *add_file_name_to_url(CURL *curl, char *url, const char *filename);

CURLcode get_url_file_name(char **filename, const char *url);

CURLcode main_init(void);

void main_free(void);

#endif /* HEADER_CURL_TOOL_OPERHLP_H */