Hubert Tarasiuk
225a87d4a2
Move some Metalink-related code from http.c to metalink.c.
...
* src/http.c: Move find_key_value, has_key, find_key_values.
* src/metalink.c: To here.
* src/metalink.h: Make them non-static and add prototypes here.
2015-07-20 15:31:06 +02:00
Hubert Tarasiuk
92a889b278
Unit test for find_key_values.
...
* src/http.c: Add test_find_key_values.
* src/test.c (main): Run new test.
* src/test.h: Add test_find_key_values.
2015-07-20 15:31:06 +02:00
Hubert Tarasiuk
1113e78534
Unit test for has_key.
...
* src/http.c: Add test_has_key.
* src/test.c (main): Run new test.
* src/test.h: Add test_has_key.
2015-07-20 15:31:06 +02:00
Hubert Tarasiuk
70cbd59ed6
Unit test for find_key_value.
...
* src/http.c: Add test_find_key_value.
* src/test.c (main): Run new test.
* src/test.h: Add test_find_key_value.
2015-07-20 15:31:06 +02:00
Hubert Tarasiuk
37b58e3976
Metalink support.
...
* bootstrap.conf: Add crypto/sha256
* configure.ac: Look for libmetalink and GPGME
* doc/wget.texi: Add --input-metalink and --metalink-over-http
options description.
* po/POTFILES.in: Add metalink.c
* src/Makefile.am: Add new translation unit (metalink.c)
* src/http.c (http_stat): Add metalink field.
(free_stat): Free metalink field.
(find_key_value): Find value of given key in header string.
(has_key): Check if token exists in header string.
(find_key_values): Find all key=value pairs in header string.
(metalink_from_http): Obtain Metalink metadata from HTTP response.
(gethttp): Call metalink_from_http if requested.
(http_loop): Request Metalink metadata from HTTP response if should be.
Fall back to regular download if no Metalink metadata found.
* src/init.c: Add --input-metalink and --metalink-over-http options
* src/main.c (option_data): Handle --input-metalink and
--metalink-over-http cmd arguments.
(print_help): Print --input-metalink option description.
(main): Retrieve files from Metalink file
* src/metalink.c (retrieve_from_metalink): Download files described by
metalink.
(metalink_res_cmp): Comparator for resources priority-sorting.
* src/metalink.h: Create header for metalink.c
(RES_TYPE_SUPPORTED): Define supported resources media.
(DEFAULT_PRI): Default mirror priority for Metalink over HTTP.
(VALID_PRI_RANGE): Valid priority range.
* src/options.h (options): Add input_metalink option and metalink_over_http
options.
* src/utils.c (hex_to_string): Convert binary data to ASCII-hex.
* src/utils.h (hex_to_string): Add prototype.
* src/wget.h: Add metalink-related error enums
Add METALINK_METADATA flag for document type.
2015-07-20 15:30:39 +02:00
Hubert Tarasiuk
8a8d138dcc
Support If-Modified-Since header in timestamping mode.
...
* src/wget.h: Add IF_MODIFIED_SINCE enum for dt. Add TIMECONV_ERR
enum to uerr_t.
* src/http.c (time_to_rfc1123): Convert time_t do http time.
* src/http.c (initialize_request): Include If-Modified-Since header
if appropriate.
* src/http.c (set_file_timestamp): Separate this code from check_file_output.
* src/http.c (check_file_output): Use set_file_timestamp.
* src/http.c (gethttp): Handle properly 304 return code and 200 if server
ignores If-Modified-Since headers.
* src/http.c (http_loop): Load filename to hstat if condget was requested,
use IF_MODIFIED_SINCE if requested and current timestamp can be obtained.
2015-05-22 11:08:30 +02:00
Darshit Shah
9b1dd6dab8
Remove shadowed variable in http.c
...
* http.c (gethttp): Rename err to conn_err to prevent shadowed
variable
2015-05-04 21:45:26 +05:30
Hubert Tarasiuk
566696cb82
Single exit point and common cleanup code in gethttp
...
* src/http.c (gethttp): Common cleanup for type, message,
req, resp, head. Single exit point.
2015-04-20 10:54:34 +02:00
Miquel Llobet
d03b40e31e
Fixed #44628 honoring RFC 6266 content-disposition
...
src/http.c (parse_content_disposition): stores filename* and filename
separately and choses filename* if available.
(test_parse_content_disposition): added new tests.
2015-04-06 10:30:30 +02:00
Hubert Tarasiuk
eae8b1d565
Change semantics of resp_free and request_free in http.c
...
* src/http.c (resp_free): Change the semantics of this function.
(request_free): Change the semantics of this function.
(initialize_request): Adjust request_free call.
(establish_connection): Adjust request_free, resp_free calls.
(gethttp): Adjust request_free, resp_free calls.
2015-04-01 17:01:07 +02:00
Hubert Tarasiuk
045463b814
Do not free request in establish_connection; do it in gethttp
...
* src/http.c (establish_connection): Do not free request here (it is
* never allocated here).
* src/http.c (gethttp): Free request before returning if error in
* establish_connection encountered.
2015-04-01 17:01:07 +02:00
Hubert Tarasiuk
621c313b94
Transform read_header label and goto into a loop
...
* src/http.c (gethttp): Replace label and goto statement with a do
loop.
2015-04-01 17:00:40 +02:00
Hubert Tarasiuk
52a7d0ad85
Factor out set_content_type function from gethttp
...
* src/http.c (gethttp): Move some code in...
(set_content_type): ... a new function.
2015-03-31 17:00:07 +02:00
Giuseppe Scrivano
59e9ef00e6
Factor out some gethttp code
...
* src/http.c (gethttp): Move some code in...
(open_output_stream): ... a new function.
2015-03-18 12:09:55 +01:00
Giuseppe Scrivano
14bbc18512
Factor out some auth gethttp code
...
* src/http.c (gethttp): Move some code in...
(check_auth): ... a new function.
2015-03-18 12:09:55 +01:00
Giuseppe Scrivano
8aa63e482e
Factor out some gethttp code
...
* src/http.c (gethttp): Move some code in...
(check_file_output): ... a new function.
2015-03-18 12:09:55 +01:00
Giuseppe Scrivano
0bc2757713
Factor out some connection initialization code for gethttp
...
* src/http.c (gethttp): Move some initialization code in...
(establish_connection): ... a new function.
2015-03-18 12:09:55 +01:00
Giuseppe Scrivano
f8abb9dd00
Factor out some proxy initialization code for gethttp
...
* src/http.c (gethttp): Move some initialization code in...
(initialize_proxy_configuration): ... a new function.
2015-03-18 12:09:55 +01:00
Giuseppe Scrivano
29850e77d0
Factor out some initialization code for gethttp
...
* src/http.c (gethttp): Move some initialization code in...
(initialize_request): ... a new function.
2015-03-18 12:09:54 +01:00
Tim Ruehsen
014b1d6041
src/http.c: fix error return of digest_authentication_encode()
...
Reported-by: Coverity bug #1188036
2015-03-18 10:46:05 +01:00
Giuseppe Scrivano
16f1fb1d1f
maint: update copyright year ranges to include 2015
2015-03-09 16:32:01 +01:00
Yousong Zhou
91e9a20752
Fix --content-on-error option handling.
...
* src/http.c: Log --content-on-error downloads.
* src/retr.c (retrieve_url): Register the download of an error page
when --content-on-error is specified.
2015-03-09 11:45:01 +01:00
Tim Ruehsen
103cbf1751
src/http.c: Revert commit d81a8d5f56
...
The removal of the 'redundant' condition was a failure.
Fixes : #43876
Reported-by: Sean Jensen-Grey <seanj@xyke.com>
2014-12-27 23:27:20 +01:00
Darshit Shah
4b845615fa
Define MIN and MAx macros in a single location
...
MIN and MAx are macros that a developer will universally expect
throughout the source. Yet, they were being defined in multiple places
across the source. Instead, define them in a single location in the
common wget.h header file and use them consistently everywhere.
2014-12-04 18:36:54 +05:30
Tim Ruehsen
4850e9c873
Replaced xfree_null() by xfree() and nullify argument after freeing.
2014-12-01 16:15:37 +01:00
Tim Ruehsen
5edc97f3f8
Select most secure challenge from WWW-Authenticate
...
This patch also adds support for multiple challenges per
WWW-Authenticate header line.
The test Test-auth-both.py now succeeds and thus is taken away
from XFAIL_TESTS (expected to fail tests).
2014-11-26 16:41:56 +01:00
Tim Rühsen
0c18773308
Add size of buffer to warc_timestamp()
2014-11-24 10:41:08 +01:00
Darshit Shah
e94a542d0f
Declare extern numurls in common header
2014-11-22 17:26:06 +05:30
Darshit Shah
c6b750061a
Add extern declaration for version.c strings
2014-11-22 17:26:06 +05:30
Tim Rühsen
3c51ad7f02
Removed form feeds from sources and NEWS
2014-11-20 16:35:34 +01:00
Gisle Vanem
6a9b2d36e1
Fix C89 issue in http.c found by MSVC 16
2014-11-20 16:20:20 +01:00
Tim Rühsen
7b43510fe3
Fixes possible issues with Wget running in a turkish locale
2014-11-20 10:56:21 +01:00
Tim Rühsen
1356e90a14
Trivial fixes for C89 compliancy
2014-11-20 09:56:57 +01:00
Darshit Shah
c6ee033425
Make 504 Gateway Timeout non fatal
2014-11-19 18:03:17 +05:30
Tim Ruehsen
50ec4d9c3d
Fix warnings from clang-analyzer 3.6
2014-11-18 20:44:56 +01:00
Tim Rühsen
94b8458af1
Fix possible authentication problem with turkish locale
...
The test server now treats authentication schemes case-independent.
2014-11-18 12:49:52 +01:00
Tim Rühsen
176c2b17fc
Add 'Accept-Encoding: identity' to request header
...
Fixes bug #40819
Reported-by: Noël Köthe <noel@debian.org>
2014-11-11 20:05:21 +01:00
Darshit Shah
170a469533
Honour Keep-Alive when range not satisfiable
2014-11-09 14:33:13 +05:30
Darshit Shah
d81a8d5f56
Remove redundant condition eval
2014-11-09 14:20:22 +05:30
Matthew Atkinson
e0f149d29d
Always send Content-Length with POST, PUT, PATCH
2014-11-05 08:42:51 +01:00
Giuseppe Scrivano
ea97693b54
http: Always check for "Connection: close" presence
2014-11-01 13:22:07 +01:00
Tim Rühsen
c2bb6bc875
fix memory leak
2014-10-30 11:05:07 +01:00
Tim Rühsen
a5c6ae8f28
use CLOSE_INVALIDATE instead of fd_close
2014-10-30 11:05:07 +01:00
Tim Rühsen
42333c4a5e
always set fd invalid after close
2014-10-30 11:05:07 +01:00
Tim Rühsen
148065bc00
content for commit 6092205538
2014-10-29 16:18:01 +01:00
Darshit Shah
eab853b7e6
Plug memory leaks
2014-07-24 14:23:43 +05:30
Darshit Shah
550cd6e9d2
Fix indentation and remove excess variable
2014-07-05 16:18:38 +05:30
Darshit Shah
97ce41b2d0
Remove unused error codes
2014-07-05 16:18:31 +05:30
Giuseppe Scrivano
bb025955c3
Fix a problem with ISA server proxy
2014-06-16 16:39:04 +02:00
Giuseppe Scrivano
c03855be40
ftp: Replace main() with main in comments.
2014-06-12 18:49:16 +02:00