tool_cfgable: Moved easy handle cleanup to fix pingpong logout issues
authorSteve Holme <steve_holme@hotmail.com>
Mon, 10 Feb 2014 23:01:03 +0000 (23:01 +0000)
committerSteve Holme <steve_holme@hotmail.com>
Mon, 10 Feb 2014 22:23:52 +0000 (22:23 +0000)
Commmit c5f8e2f5f4 removed the easy handle clean-up from tool_operate,
letting the code that was already present in free_config_fields()
perform the task. Unfortunately, this wasn't the correct place to do
this as it broke protocols, that would perform a logout, as the main
clean-up in tool_main had already been called.

src/tool_cfgable.c
src/tool_operate.c

index 3ea73da..818d7f4 100644 (file)
@@ -47,11 +47,6 @@ static void free_config_fields(struct Configurable *config)
 {
   struct getout *urlnode;
 
-  if(config->easy) {
-    curl_easy_cleanup(config->easy);
-    config->easy = NULL;
-  }
-
   Curl_safefree(config->random_file);
   Curl_safefree(config->egd_file);
   Curl_safefree(config->useragent);
index b283210..9c61623 100644 (file)
@@ -1806,6 +1806,11 @@ static int operate_do(struct Configurable *config)
 
 static void operate_free(struct Configurable *config)
 {
+  if(config->easy) {
+    curl_easy_cleanup(config->easy);
+    config->easy = NULL;
+  }
+
   /* Release metalink related resources here */
   clean_metalink(config);
 }