diff --git a/src/tool_cfgable.h b/src/tool_cfgable.h index e88b978961202755ef39a91ad2cf029c368bd5f1..77c603752ff353c665e94e028047df78810c9d00 100644 --- a/src/tool_cfgable.h +++ b/src/tool_cfgable.h @@ -27,6 +27,8 @@ #include "tool_metalink.h" +struct GlobalConfig; + struct OperationConfig { CURL *easy; /* A copy of the handle from GlobalConfig */ bool remote_time; @@ -213,6 +215,7 @@ struct OperationConfig { bool nonpn; /* enable/disable TLS NPN extension */ bool noalpn; /* enable/disable TLS ALPN extension */ + struct GlobalConfig *global; struct OperationConfig* prev; struct OperationConfig* next; /* Always last in the struct */ }; diff --git a/src/tool_getparam.c b/src/tool_getparam.c index e4cc69dd1f5acb1729ff70530f67519582d5350d..b9c5eb7019a86c049af24583520e0725643ed2a2 100644 --- a/src/tool_getparam.c +++ b/src/tool_getparam.c @@ -1838,6 +1838,9 @@ ParameterError parse_args(struct GlobalConfig *config, int argc, /* Copy the easy handle */ operation->next->easy = config->easy; + /* Set the global config pointer */ + operation->next->global = config; + /* Update the last operation pointer */ config->last = operation->next; diff --git a/src/tool_parsecfg.c b/src/tool_parsecfg.c index 9adbe8229e50c3cd9d2211f2dbe2a9ebaa215bca..53e2660a6fdc114cd07147dd203ac3588508acde 100644 --- a/src/tool_parsecfg.c +++ b/src/tool_parsecfg.c @@ -236,6 +236,9 @@ int parseconfig(const char *filename, struct GlobalConfig *global) /* Copy the easy handle */ operation->next->easy = global->easy; + /* Set the global config pointer */ + operation->next->global = global; + /* Update the last operation pointer */ global->last = operation->next;