X-Git-Url: http://sjero.net/git/?p=wget;a=blobdiff_plain;f=src%2Fhttp.c;h=9a28b377a7bb951673ff1bd294c9c606de9264a1;hp=00a35b324aae5ed9672d6a91c4e6bb6d42ecbaf6;hb=HEAD;hpb=848d7537e17a6ca6b5e91b016e1490b1703b7331 diff --git a/src/http.c b/src/http.c index 00a35b32..9a28b377 100644 --- a/src/http.c +++ b/src/http.c @@ -1016,13 +1016,13 @@ modify_param_name(param_token *name) else if(delim1 == delim2) { if ((name->e - 1) == delim1) - { - result = RFC2231_ENCODING; - } + { + result = RFC2231_ENCODING; + } else - { - result = RFC2231_NOENCODING; - } + { + result = RFC2231_NOENCODING; + } name->e = delim1; } else @@ -1043,10 +1043,10 @@ modify_param_value (param_token *value, int encoding_type ) if (encoding_type == RFC2231_ENCODING) { const char *delim = memrchr (value->b, '\'', value->e - value->b); - if ( delim != NULL ) - { - value->b = (delim+1); - } + if (delim != NULL) + { + value->b = (delim+1); + } } } @@ -1154,7 +1154,7 @@ append_value_to_filename (char **filename, param_token const * const value, int original_length = strlen(*filename); int new_length = strlen(*filename) + (value->e - value->b); *filename = xrealloc (*filename, new_length+1); - memcpy (*filename + original_length, value->b, (value->e - value->b)); + memcpy (*filename + original_length, value->b, (value->e - value->b)); (*filename)[new_length] = '\0'; if (is_url_encoded) url_unescape (*filename + original_length); @@ -1515,13 +1515,13 @@ File %s already there; not retrieving.\n\n"), quote (filename)); url, warc_timestamp_str, warc_request_uuid, warc_ip, type and statcode will be saved in the headers of the WARC record. The head parameter contains the HTTP headers of the response. - + If fp is NULL and WARC is enabled, the response body will be written only to the WARC file. If WARC is disabled and fp is a file pointer, the data will be written to the file. If fp is a file pointer and WARC is enabled, the body will be written to both destinations. - + Returns the error code. */ static int read_response_body (struct http_stat *hs, int sock, FILE *fp, wgint contlen, @@ -1586,7 +1586,7 @@ read_response_body (struct http_stat *hs, int sock, FILE *fp, wgint contlen, /* Download the response body and write it to fp. If we are working on a WARC file, we simultaneously write the response body to warc_tmp. */ - hs->res = fd_read_body (sock, fp, contlen != -1 ? contlen : 0, + hs->res = fd_read_body (hs->local_file, sock, fp, contlen != -1 ? contlen : 0, hs->restval, &hs->rd_size, &hs->len, &hs->dltime, flags, warc_tmp); if (hs->res >= 0) @@ -1610,7 +1610,7 @@ read_response_body (struct http_stat *hs, int sock, FILE *fp, wgint contlen, return RETRFINISHED; } - + if (warc_tmp != NULL) fclose (warc_tmp); @@ -2335,23 +2335,23 @@ read_header: But if we are writing a WARC file we are: we like to keep everyting. */ if (warc_enabled) { - int err; + int _err; type = resp_header_strdup (resp, "Content-Type"); - err = read_response_body (hs, sock, NULL, contlen, 0, + _err = read_response_body (hs, sock, NULL, contlen, 0, chunked_transfer_encoding, u->url, warc_timestamp_str, warc_request_uuid, warc_ip, type, statcode, head); xfree_null (type); - if (err != RETRFINISHED || hs->res < 0) + if (_err != RETRFINISHED || hs->res < 0) { CLOSE_INVALIDATE (sock); request_free (req); xfree_null (message); resp_free (resp); xfree (head); - return err; + return _err; } else CLOSE_FINISH (sock); @@ -2596,6 +2596,7 @@ read_header: tmp = parse_charset (tmp2); if (tmp) set_content_encoding (iri, tmp); + xfree_null(tmp); } } } @@ -2650,7 +2651,7 @@ read_header: _("Location: %s%s\n"), hs->newloc ? escnonprint_uri (hs->newloc) : _("unspecified"), hs->newloc ? _(" [following]") : ""); - + /* In case the caller cares to look... */ hs->len = 0; hs->res = 0; @@ -2660,18 +2661,18 @@ read_header: But if we are writing a WARC file we are: we like to keep everyting. */ if (warc_enabled) { - int err = read_response_body (hs, sock, NULL, contlen, 0, + int _err = read_response_body (hs, sock, NULL, contlen, 0, chunked_transfer_encoding, u->url, warc_timestamp_str, warc_request_uuid, warc_ip, type, statcode, head); - if (err != RETRFINISHED || hs->res < 0) + if (_err != RETRFINISHED || hs->res < 0) { CLOSE_INVALIDATE (sock); xfree_null (type); xfree (head); - return err; + return _err; } else CLOSE_FINISH (sock); @@ -2707,7 +2708,6 @@ read_header: { case HTTP_STATUS_TEMPORARY_REDIRECT: return NEWLOCATION_KEEP_POST; - break; case HTTP_STATUS_MOVED_PERMANENTLY: if (opt.method && strcasecmp (opt.method, "post") != 0) return NEWLOCATION_KEEP_POST; @@ -2718,7 +2718,6 @@ read_header: break; default: return NEWLOCATION; - break; } return NEWLOCATION; } @@ -2805,13 +2804,13 @@ read_header: logputs (LOG_VERBOSE, number_to_static_string (contlen + contrange)); if (contlen + contrange >= 1024) logprintf (LOG_VERBOSE, " (%s)", - human_readable (contlen + contrange)); + human_readable (contlen + contrange, 10, 1)); if (contrange) { if (contlen >= 1024) logprintf (LOG_VERBOSE, _(", %s (%s) remaining"), number_to_static_string (contlen), - human_readable (contlen)); + human_readable (contlen, 10, 1)); else logprintf (LOG_VERBOSE, _(", %s remaining"), number_to_static_string (contlen)); @@ -2839,18 +2838,18 @@ read_header: But if we are writing a WARC file we are: we like to keep everyting. */ if (warc_enabled) { - int err = read_response_body (hs, sock, NULL, contlen, 0, + int _err = read_response_body (hs, sock, NULL, contlen, 0, chunked_transfer_encoding, u->url, warc_timestamp_str, warc_request_uuid, warc_ip, type, statcode, head); - if (err != RETRFINISHED || hs->res < 0) + if (_err != RETRFINISHED || hs->res < 0) { CLOSE_INVALIDATE (sock); xfree (head); xfree_null (type); - return err; + return _err; } else CLOSE_FINISH (sock); @@ -2907,19 +2906,19 @@ read_header: } else if (ALLOW_CLOBBER || count > 0) { - if (opt.unlink && file_exists_p (hs->local_file)) - { - int res = unlink (hs->local_file); - if (res < 0) - { - logprintf (LOG_NOTQUIET, "%s: %s\n", hs->local_file, - strerror (errno)); - CLOSE_INVALIDATE (sock); - xfree (head); - xfree_null (type); - return UNLINKERR; - } - } + if (opt.unlink && file_exists_p (hs->local_file)) + { + int res = unlink (hs->local_file); + if (res < 0) + { + logprintf (LOG_NOTQUIET, "%s: %s\n", hs->local_file, + strerror (errno)); + CLOSE_INVALIDATE (sock); + xfree (head); + xfree_null (type); + return UNLINKERR; + } + } #ifdef __VMS int open_id; @@ -2961,11 +2960,8 @@ read_header: fp = output_stream; /* Print fetch message, if opt.verbose. */ - if (opt.verbose) - { - logprintf (LOG_NOTQUIET, _("Saving to: %s\n"), + logprintf (LOG_VERBOSE, _("Saving to: %s\n"), HYPHENP (hs->local_file) ? quote ("STDOUT") : quote (hs->local_file)); - } err = read_response_body (hs, sock, fp, contlen, contrange, @@ -4072,12 +4068,12 @@ ensure_extension (struct http_stat *hs, const char *ext, int *dt) #ifdef TESTING const char * -test_parse_content_disposition() +test_parse_content_disposition(void) { - int i; - struct { - char *hdrval; - char *filename; + unsigned i; + static const struct { + const char *hdrval; + const char *filename; bool result; } test_array[] = { { "filename=\"file.ext\"", "file.ext", true }, @@ -4088,7 +4084,7 @@ test_parse_content_disposition() { "attachement; filename*0=\"hello\"; filename*1=\"world.txt\"", "helloworld.txt", true }, }; - for (i = 0; i < sizeof(test_array)/sizeof(test_array[0]); ++i) + for (i = 0; i < countof(test_array); ++i) { char *filename; bool res;