diff options
-rw-r--r-- | src/tool_metalink.c | 29 | ||||
-rw-r--r-- | src/tool_metalink.h | 3 | ||||
-rw-r--r-- | src/tool_operate.c | 30 |
3 files changed, 41 insertions, 21 deletions
diff --git a/src/tool_metalink.c b/src/tool_metalink.c index 89a99d3ec..806574133 100644 --- a/src/tool_metalink.c +++ b/src/tool_metalink.c @@ -330,12 +330,10 @@ static int check_hash(const char *filename, digest_context *dctx; int check_ok; int fd; - fprintf(error, - "Metalink: Validating %s checksum (This may take some time)...\n", - digest_def->hash_name); + fprintf(error, "Metalink: validating (%s)...\n", filename); fd = open(filename, O_RDONLY); if(fd == -1) { - fprintf(error, "Metalink: Could not open file %s: %s\n", filename, + fprintf(error, "Metalink: validating (%s) FAILED (%s)\n", filename, strerror(errno)); return -1; } @@ -348,7 +346,7 @@ static int check_hash(const char *filename, break; } else if(len == -1) { - fprintf(error, "Metalink: Could not read file %s: %s\n", filename, + fprintf(error, "Metalink: validating (%s) FAILED (%s)\n", filename, strerror(errno)); Curl_digest_final(dctx, result); close(fd); @@ -361,9 +359,10 @@ static int check_hash(const char *filename, digest_def->dparams->digest_resultlen) == 0; /* sha*sum style verdict output */ if(check_ok) - fprintf(error, "Metalink: %s: OK\n", filename); + fprintf(error, "Metalink: validating (%s) OK\n", filename); else - fprintf(error, "Metalink: %s: FAILED\n", filename); + fprintf(error, "Metalink: validating (%s) FAILED (digest mismatch)\n", + filename); free(result); close(fd); @@ -469,7 +468,8 @@ static metalinkfile *new_metalinkfile(metalink_file_t *fileinfo) return f; } -int parse_metalink(struct Configurable *config, struct OutStruct *outs) +int parse_metalink(struct Configurable *config, struct OutStruct *outs, + const char *metalink_url) { metalink_error_t r; metalink_t* metalink; @@ -482,8 +482,9 @@ int parse_metalink(struct Configurable *config, struct OutStruct *outs) return -1; } if(metalink->files == NULL) { - fprintf(config->errors, - "\nMetalink: Metalink XML file does not contain any file.\n"); + fprintf(config->errors, "\nMetalink: parsing (%s) WARNING " + "(missing or invalid file name)\n", + metalink_url); metalink_delete(metalink); return 0; } @@ -491,9 +492,9 @@ int parse_metalink(struct Configurable *config, struct OutStruct *outs) struct getout *url; /* Skip an entry which has no resource. */ if(!(*files)->resources) { - fprintf(config->errors, - "\nMetalink: File %s does not have any resource.\n", - (*files)->name); + fprintf(config->errors, "\nMetalink: parsing (%s) WARNING " + "(missing or invalid resource)\n", + metalink_url, (*files)->name); continue; } if(config->url_get || @@ -558,7 +559,7 @@ size_t metalink_write_cb(void *buffer, size_t sz, size_t nmemb, if(rv == 0) return sz * nmemb; else { - warnf(config, "Metalink: Failed to parse Metalink XML file\n"); + fprintf(config->errors, "Metalink: parsing FAILED\n"); return failure; } } diff --git a/src/tool_metalink.h b/src/tool_metalink.h index c2568a31e..a3d10a22c 100644 --- a/src/tool_metalink.h +++ b/src/tool_metalink.h @@ -90,7 +90,8 @@ extern const digest_params SHA256_DIGEST_PARAMS[1]; int count_next_metalink_resource(metalinkfile *mlfile); void clean_metalink(struct Configurable *config); -int parse_metalink(struct Configurable *config, struct OutStruct *outs); +int parse_metalink(struct Configurable *config, struct OutStruct *outs, + const char *metalink_url); /* * Callback function for CURLOPT_WRITEFUNCTION diff --git a/src/tool_operate.c b/src/tool_operate.c index d944a0093..0b828de4b 100644 --- a/src/tool_operate.c +++ b/src/tool_operate.c @@ -1346,7 +1346,12 @@ int operate(struct Configurable *config, int argc, argv_item_t argv[]) res = CURLE_OUT_OF_MEMORY; goto show_error; } + fprintf(config->errors, "Metalink: parsing (%s) metalink/XML...\n", + this_url); } + else if(metalink) + fprintf(config->errors, "Metalink: fetching (%s) from (%s)...\n", + mlfile->filename, this_url); #endif /* USE_METALINK */ res = curl_easy_perform(curl); @@ -1486,12 +1491,25 @@ int operate(struct Configurable *config, int argc, argv_item_t argv[]) curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response); if(response != 200 && response != 206) { metalink_next_res = 1; + fprintf(config->errors, + "Metalink: fetching (%s) from (%s) FAILED " + "(HTTP status code %d)\n", + mlfile->filename, this_url, response); } } } - else + else { metalink_next_res = 1; + fprintf(config->errors, + "Metalink: fetching (%s) from (%s) FAILED (%s)\n", + mlfile->filename, this_url, + (errorbuffer[0]) ? + errorbuffer : curl_easy_strerror((CURLcode)res)); + } } + if(metalink && !metalink_next_res) + fprintf(config->errors, "Metalink: fetching (%s) from (%s) OK\n", + mlfile->filename, this_url); /* In all ordinary cases, just break out of loop here */ break; /* curl_easy_perform loop */ @@ -1603,12 +1621,12 @@ int operate(struct Configurable *config, int argc, argv_item_t argv[]) #ifdef USE_METALINK if(!metalink && config->use_metalink && res == CURLE_OK) { - if(parse_metalink(config, &outs) == 0) - fprintf(config->errors, - "Metalink: Metalink XML file was parsed successfully\n"); + if(parse_metalink(config, &outs, this_url) == 0) + fprintf(config->errors, "Metalink: parsing (%s) OK\n", + this_url); else - fprintf(config->errors, - "Metalink: Could not parse Metalink XML file\n"); + fprintf(config->errors, "Metalink: parsing (%s) FAILED\n", + this_url); } else if(metalink && res == CURLE_OK && !metalink_next_res) { int rv = metalink_check_hash(config, mlfile, outs.filename); |