tool_main: Moved initial OperateConfig creation into main_init()

This commit is contained in:
Steve Holme 2014-02-23 13:34:29 +00:00
parent 2249f7fe70
commit d6b9f054e9
1 changed files with 35 additions and 35 deletions

View File

@ -121,7 +121,7 @@ static void memory_tracking_init(void)
* _any_ libcurl usage. If this fails, *NO* libcurl functions may be
* used, or havoc may be the result.
*/
static CURLcode main_init(struct OperationConfig *config)
static CURLcode main_init(struct GlobalConfig *config)
{
CURLcode result = CURLE_OK;
@ -130,17 +130,29 @@ static CURLcode main_init(struct OperationConfig *config)
_djstat_flags |= _STAT_INODE | _STAT_EXEC_MAGIC | _STAT_DIRSIZE;
#endif
/* Perform the libcurl initialization */
result = curl_global_init(CURL_GLOBAL_DEFAULT);
if(!result) {
/* Get information about libcurl */
result = get_libcurl_info();
/* Allocate the initial operate config */
config->first = malloc(sizeof(struct OperationConfig));
if(config->first) {
/* Perform the libcurl initialization */
result = curl_global_init(CURL_GLOBAL_DEFAULT);
if(!result) {
/* Get information about libcurl */
result = get_libcurl_info();
if(result)
helpf(config->errors, "error retrieving curl library information\n");
if(!result) {
/* Initialise the config */
config_init(config->first);
}
else
helpf(stderr, "error retrieving curl library information\n");
}
else
helpf(stderr, "error initializing curl library\n");
}
else {
helpf(stderr, "error initializing curl\n");
result = CURLE_FAILED_INIT;
}
else
helpf(config->errors, "error initializing curl library\n");
return result;
}
@ -163,8 +175,6 @@ int main(int argc, char *argv[])
{
CURLcode result = CURLE_OK;
struct GlobalConfig global;
struct OperationConfig *config;
memset(&global, 0, sizeof(global));
main_checkfds();
@ -176,36 +186,26 @@ int main(int argc, char *argv[])
/* Initialize memory tracking */
memory_tracking_init();
/* Allocate the initial operate config */
config = malloc(sizeof(struct OperationConfig));
/* Initialize the curl library - do not call any libcurl functions before
this point */
result = main_init(&global);
if(!result) {
/* Start our curl operation */
result = operate(global.first, argc, argv);
if(config) {
/* Initialise the config */
config_init(config);
/* Initialize the curl library - do not call any libcurl functions before
this point */
result = main_init(config);
if(!result) {
/* Start our curl operation */
result = operate(config, argc, argv);
/* Perform the main cleanup */
main_free();
}
/* Perform the main cleanup */
main_free();
}
if(global.first) {
#ifdef __SYMBIAN32__
if(config->showerror)
if(global->first->showerror)
tool_pressanykey();
#endif
/* Free the config structures */
config_free(config);
config = NULL;
}
else {
helpf(stderr, "error initializing curl\n");
result = CURLE_FAILED_INIT;
config_free(global.first);
global.first = NULL;
}
#ifdef __NOVELL_LIBC__