diff --git a/src/tool_cfgable.h b/src/tool_cfgable.h index 511227cb6e2214782bc274224beaa073fa5ef99b..69c2c2ee9ad41a79faac73e77f925f840f3763cc 100644 --- a/src/tool_cfgable.h +++ b/src/tool_cfgable.h @@ -28,7 +28,7 @@ #include "tool_metalink.h" struct OperationConfig { - CURL *easy; /* once we have one, we keep it here */ + CURL *easy; /* A copy of the handle from GlobalConfig */ bool remote_time; char *random_file; char *egd_file; @@ -220,6 +220,13 @@ struct OperationConfig { struct OperationConfig* next; /* Always last in the struct */ }; +struct GlobalConfig { + CURL *easy; /* Once we have one, we keep it here */ + + struct OperationConfig *first; + struct OperationConfig *last; /* Always last in the struct */ +}; + void config_init(struct OperationConfig* config); void config_free(struct OperationConfig* config); diff --git a/src/tool_main.c b/src/tool_main.c index 9542b059a8609fb763a84309c10448ed350415ee..0cc767b1ff30fd52272bb048fb48f1268c94d0a4 100644 --- a/src/tool_main.c +++ b/src/tool_main.c @@ -162,8 +162,11 @@ static void main_free(void) int main(int argc, char *argv[]) { CURLcode result = CURLE_OK; + struct GlobalConfig global; struct OperationConfig *config; + memset(&global, 0, sizeof(global)); + main_checkfds(); #if defined(HAVE_SIGNAL) && defined(SIGPIPE) @@ -173,7 +176,7 @@ int main(int argc, char *argv[]) /* Initialize memory tracking */ memory_tracking_init(); - /* Allocate the initial config */ + /* Allocate the initial operate config */ config = malloc(sizeof(struct OperationConfig)); if(config) {