From 9f9f9ed1b2fecf1ead8bd2c7d00e4dee9cfb223b Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Sat, 28 Apr 2012 22:53:34 +0900 Subject: [PATCH] metalink: minor metalinkfile fix Don't update config->metalinkfile_last in operate(). Use local variable to point to the current metalinkfile. --- src/tool_operate.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/tool_operate.c b/src/tool_operate.c index c9dda40..669d2dd 100644 --- a/src/tool_operate.c +++ b/src/tool_operate.c @@ -129,6 +129,10 @@ int operate(struct Configurable *config, int argc, argv_item_t argv[]) struct OutStruct heads; +#ifdef HAVE_LIBMETALINK + struct metalinkfile *mlfile_last; +#endif /* HAVE_LIBMETALINK */ + CURL *curl = NULL; char *httpgetfields = NULL; @@ -389,8 +393,7 @@ int operate(struct Configurable *config, int argc, argv_item_t argv[]) } #ifdef HAVE_LIBMETALINK - config->metalinkfile_last = config->metalinkfile_list; - config->metalink_last = config->metalink_list; + mlfile_last = config->metalinkfile_list; #endif /* HAVE_LIBMETALINK */ /* @@ -416,9 +419,9 @@ int operate(struct Configurable *config, int argc, argv_item_t argv[]) if(urlnode->flags & GETOUT_METALINK) { metalink = 1; - mlfile = config->metalinkfile_last; + mlfile = mlfile_last; + mlfile_last = mlfile_last->next; mlres = mlfile->file->resources; - config->metalinkfile_last = config->metalinkfile_last->next; } else { metalink = 0; @@ -1556,6 +1559,17 @@ int operate(struct Configurable *config, int argc, argv_item_t argv[]) } } #endif + +#ifdef HAVE_LIBMETALINK + if(!metalink && res == CURLE_OK && outs.filename) { + char *content_type; + curl_easy_getinfo(curl, CURLINFO_CONTENT_TYPE, &content_type); + if(content_type != NULL) { + printf("file=%s, content-type=%s\n", outs.filename, content_type); + } + } +#endif /* HAVE_LIBMETALINK */ + /* No more business with this output struct */ if(outs.alloc_filename) Curl_safefree(outs.filename); -- 2.7.4