Metalink: updated message format
This commit is contained in:
parent
7aa95afadd
commit
3e6dfe138a
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user