12021-08-29 Tim Rühsen <tim.ruehsen@gmx.de> 2 3 NEWS: Prepare for release v2.0.0 4 52021-08-29 Tim Rühsen <tim.ruehsen@gmx.de> 6 7 * docs/announce_2.0.0.txt: New file 8 92021-09-12 Tim Rühsen <tim.ruehsen@gmx.de> 10 11 * configure.ac: Update versions 12 132021-08-07 Jeffrey Marius <getjff@gmail.com> 14 15 Fix issue #467 Adding wiki as submodule to repo 16 17 * bootstrap.conf: Add clone_wiki() and call it from 18 bootstrap_post_import_hook(). 19 20 Signed-off-by: Jeffrey Marius <getjff@gmail.com> 21 222021-08-08 Tim Rühsen <tim.ruehsen@gmx.de> 23 24 * tests/test--page-requisites.c: Add tests for new rel parsing 25 262021-08-07 Tim Rühsen <tim.ruehsen@gmx.de> 27 28 Fix the rel attribute handling for link tags 29 302021-07-07 Michael Roosz <michael.roosz@check24.de> 31 32 * libwget/http.c (wget_http_response_cb): Fix chunked transfer 33 342020-11-22 Sergei Litvin <litvindev@gmail.com> 35 36 Fix parsing comments in <style> content 37 38 * libwget/xml.c: Add new function getStyleContent(), 39 (parseXML): Use getStyleContent() instead of getContent(), 40 update link in comment. 41 422021-05-30 Tim Rühsen <tim.ruehsen@gmx.de> 43 44 * fuzz/libwget_html_url_fuzzer.dict: Add 'data:' to dictionary 45 462021-05-30 Michael Roosz <michael.roosz@check24.de> 47 48 * libwget/html_url.c (html_get_url): Support data: URL in srcset attribute 49 502021-05-30 Tim Rühsen <tim.ruehsen@gmx.de> 51 52 * docs/wget2.md: Mention that -P creates the prefix directory 53 542021-05-16 Tim Rühsen <tim.ruehsen@gmx.de> 55 56 * unit-tests/test.c: Free memory in test_parse_header_line() 57 582021-05-16 Tim Rühsen <tim.ruehsen@gmx.de> 59 60 Fix request path escaping 61 62 * include/wget/wget.h: Remove function wget_iri_isunreserved_path(). 63 * libwget/iri.c: Remove function wget_iri_isunreserved_path(). 64 (iri_ctype): Extend array with unreserved characters. 65 (wget_iri_isunreserved): Simplify code. 66 (wget_iri_escape): Use macro iri_isunreserved instead of wget_iri_isunreserved(). 67 (wget_iri_escape_path): Add RFC links to function comment, 68 Fix check whether char needs percent-encoding or not, 69 Use macro iri_isunreserved instead of wget_iri_isunreserved(). 70 712021-03-27 Tim Rühsen <tim.ruehsen@gmx.de> 72 73 * libwget/http_parse.c: Remove old comment from RFC 2183. 74 752021-03-27 Tim Rühsen <tim.ruehsen@gmx.de> 76 77 Add test case for Content-Disposition 78 79 * libwget/http_parse.c: Update comment with BNF of RFC 6266. 80 * unit-tests/test.c: Add test for a filename containing space. 81 822021-02-13 Tim Rühsen <tim.ruehsen@gmx.de> 83 84 * .gitlab-ci.yml: Drop manywarnings and SSL support on FreeBSD CI 85 862021-02-08 Tim Rühsen <tim.ruehsen@gmx.de> 87 88 * libwget/ssl_openssl.c: Include openssl/asn1.h for ASN1* functions. 89 902021-02-07 Michael Roosz <michael.roosz@check24.de> 91 92 * src/wget.c (prepare_file): Skip file name filter if config.filter_urls is active 93 942021-02-07 Tim Rühsen <tim.ruehsen@gmx.de> 95 96 Fix building without TLS library 97 98 This changes configure semantics to fail if no TLS library 99 is found and no --with-ssl=none was explicitly requested. 100 It protects users from accidentally building without TLS. 101 102 * .gitlab-ci.yml: Tarball build using --with-ssl=none. 103 * configure.ac: Stop with error if no TLS was found and --with-ssl 104 was not used. 105 * tests/libtest.c: Fix issues with conditionally declared variables. 106 1072021-02-06 Tim Rühsen <tim.ruehsen@gmx.de> 108 109 * .gitlab-ci.yml: Allow failure for FreeBSD runner 110 1112021-02-06 Tim Rühsen <tim.ruehsen@gmx.de> 112 113 * libwget/ssl_openssl.c: Fix for openssl/clang 114 1152021-02-06 Tim Rühsen <tim.ruehsen@gmx.de> 116 117 * tests/test-ocsp-server.c: Skip cert revocation check for WolfSSL 118 1192021-02-06 Tim Rühsen <tim.ruehsen@gmx.de> 120 121 * tests/test-post-handshake-auth.c (main.c): Fix warning when building with non-gnutls libraries 122 1232021-02-06 Tim Rühsen <tim.ruehsen@gmx.de> 124 125 Separate GnuTLS in wget2 and in test suite 126 127 * configure.ac: Separate GnuTLS in wget2 and in test suite. 128 * tests/libtest.c: Use WITH_GNUTLS_OCSP insteadof WITH_OCSP. 129 1302021-02-06 Tim Rühsen <tim.ruehsen@gmx.de> 131 132 * configure.ac: Improve searching for SSL/TLS libraries 133 1342021-02-06 Tim Rühsen <tim.ruehsen@gmx.de> 135 136 * gnulib: Update 137 1382021-02-06 Tim Rühsen <tim.ruehsen@gmx.de> 139 140 * libwget/ssl_openssl.c (get_tls_version): Fix error in case construct for LibreSSL 141 1422021-01-31 Tim Rühsen <tim.ruehsen@gmx.de> 143 144 * tests/test-chunked.c: Extend test with hand-crafted chunked pattern 145 1462021-01-31 Tim Rühsen <tim.ruehsen@gmx.de> 147 148 * libwget/http.c (wget_http_get_response_cb): Remove superfluous space in debug msg 149 1502021-01-24 Tim Rühsen <tim.ruehsen@gmx.de> 151 152 * libwget/hsts.c (hsts_db_add_entry): Fix possible NULL access 153 1542021-01-24 Michael Roosz <michael.roosz@check24.de> 155 156 * libwget/http.c (wget_http_get_response_cb): Fix NULL ptr access 157 1582021-01-24 Michael Roosz <michael.roosz@check24.de> 159 160 * libwget/http.c (wget_http_response): Fix buffer overflow 161 1622021-01-24 Tim Rühsen <tim.ruehsen@gmx.de> 163 164 * configure.ac: Detect unresolved AX_ macros 165 1662021-01-24 Tim Rühsen <tim.ruehsen@gmx.de> 167 168 * configure.ac: Use noyywrap for AC_PROG_LEX 169 1702020-12-29 Michael Roosz <michael.roosz@check24.de> 171 172 Fixed error log for non-fatal inflate() return code Z_BUF_ERROR 173 174 * libwget/decompressor.c (gzip_decompress): Return 0 for Z_BUF_ERROR. 175 1762021-01-10 Tim Rühsen <tim.ruehsen@gmx.de> 177 178 * configure.ac: Fix for autoconf 2.70 179 1802021-01-10 Tim Rühsen <tim.ruehsen@gmx.de> 181 182 * bootstrap: Update from gnulib 183 1842021-01-10 Tim Rühsen <tim.ruehsen@gmx.de> 185 186 * gnulib: Update 187 1882021-01-22 Darshit Shah <darnir@gnu.org> 189 190 Update copyright year 191 1922021-01-03 Darshit Shah <git@darnir.net> 193 194 Update POTFILES.in 195 1962021-01-09 Tim Rühsen <tim.ruehsen@gmx.de> 197 198 * AUTHORS: Add Michael Heerklotz [skip ci] 199 2002021-01-06 Tim Rühsen <tim.ruehsen@gmx.de> 201 202 * AUTHORS: Add Michael Roosz [skip ci] 203 2042021-01-01 Tim Rühsen <tim.ruehsen@gmx.de> 205 206 * .travis.yml: Remove unneeded packages for Linux 207 2082021-01-01 Tim Rühsen <tim.ruehsen@gmx.de> 209 210 * configure.ac: Small cleanups 211 2122021-01-01 Tim Rühsen <tim.ruehsen@gmx.de> 213 214 * configure.ac: Remove superfluous 'x' ahead of variables 215 2162020-12-27 Tim Rühsen <tim.ruehsen@gmx.de> 217 218 Fix combination of redirections with --retry-on-http-error 219 220 * src/wget.c: Move some code logic around. 221 * tests/test-interrupt-response.c: Correct expected wget2 exit status. 222 * tests/test-redirection.c: Add tests for --retry-on-http-error. 223 224 Reported-by: Sergei Litvin 225 2262020-12-27 Tim Rühsen <tim.ruehsen@gmx.de> 227 228 * src/options.c (print_version): Print https and ssl properly for OpenSSL and WolfSSL 229 2302020-12-27 Tim Rühsen <tim.ruehsen@gmx.de> 231 232 Reduce duplicated code in check_status_code_list(). 233 234 * src/wget.c (check_status_code_list): Call check_statuscode_list(). 235 2362020-12-27 Tim Rühsen <tim.ruehsen@gmx.de> 237 238 * src/wget.c (downloader_thread): Add check_statuscode_list() for readability 239 2402020-12-27 Tim Rühsen <tim.ruehsen@gmx.de> 241 242 Rename config.http_retry_on_error to config.retry_on_http_error 243 244 * src/options.c (options,deinit): Rename. 245 * src/wget.c (downloader_thread): Rename. 246 * src/wget_options.h (struct config): Rename. 247 2482020-12-27 Tim Rühsen <tim.ruehsen@gmx.de> 249 250 * tests/libtest.c (wget_test): Add --tries=1 to wget2 command line 251 2522020-12-25 Tim Rühsen <tim.ruehsen@gmx.de> 253 254 * AUTHORS: Add Sergei Litvin 255 2562020-12-25 Tim Rühsen <tim.ruehsen@gmx.de> 257 258 * tests/libtest.c (wget_test_start_server): Fix warning 'break will never be executed' 259 2602020-12-25 Tim Rühsen <tim.ruehsen@gmx.de> 261 262 * tests/libtest.c (wget_test_start_server): Fix unused variable warning 263 2642020-12-25 Tim Rühsen <tim.ruehsen@gmx.de> 265 266 * configure.ac: Use AC_CONFIG_MACRO_DIR only once 267 268 This fixes #547 (autotools 2.70 is more restrictive). 269 Reported by: Gabriele Balducci 270 2712020-12-20 Tim Rühsen <tim.ruehsen@gmx.de> 272 273 Fix clang 11 warnings in WolfSSL code. 274 275 * libwget/hashfile.c (wget_hash_fast): Cast size_t to unsigned int. 276 (wget_hash): Likewise. 277 * libwget/ssl_wolfssl.c (ShowX509): Use XFREE without trailing semicolon. 278 (wget_ssl_open): Use 64bit to 32bit casts to pacify clang 11. 279 2802020-12-20 Tim Rühsen <tim.ruehsen@gmx.de> 281 282 Fix findings from scan-build 11 283 284 * libwget/dns.c (wget_dns_resolve): 'rc' was set but not used. 285 * libwget/http.c (wget_http_get_response_cb): 'rc' was set but not used. 286 * libwget/net.c (wget_tcp_connect): 'rc' was set but not used. 287 * libwget/ssl_gnutls.c (send_ocsp_request): 'rc' was set but not used. 288 2892020-12-20 Tim Rühsen <tim.ruehsen@gmx.de> 290 291 Fix findings from scan-build 11 292 293 * examples/batch_loader.c (_normalize_location): 'rc' was set but not used. 294 * examples/check_url_types.c (_normalize_location): 'rc' was set but not used. 295 2962020-12-20 Tim Rühsen <tim.ruehsen@gmx.de> 297 298 Fix findings from scan-build 11 299 300 * src/job.c (job_validate_file): 'rc' was set but not used. 301 * src/options.c (parse_proxy): Fix return value. 302 * src/wget.c (input_thread): 'rc' was set but not used. 303 3042020-12-20 Tim Rühsen <tim.ruehsen@gmx.de> 305 306 Fix findings from scan-build 11 307 308 * tests/libtest.c (_parse_hostname): Fix += into +. 309 (_answer_to_connection): Limit scope of body_len. 310 3112020-12-13 Tim Rühsen <tim.ruehsen@gmx.de> 312 313 * libwget/http_parse.c (wget_http_parse_response_header): Fix (harmless !?) UB 314 3152020-12-13 Tim Rühsen <tim.ruehsen@gmx.de> 316 317 * configure.ac: Add -Wno-implicit-int-float-conversion for clang >= 11 318 3192020-12-06 Tim Rühsen <tim.ruehsen@gmx.de> 320 321 Fix type warnings on 32bit systems 322 323 * libwget/http.c (wget_http_get_response_cb): Fix printf format from %lX to %zX. 324 * libwget/ssl_openssl.c (wget_ssl_deinit): Fix sesslen to size_t. 325 * src/stats_site.c (print_csv_entry): Use %lld and cast to long long. 326 3272020-10-31 Tim Rühsen <tim.ruehsen@gmx.de> 328 329 Test for bashisms in Debian Testing 330 3312020-10-29 Tim Rühsen <tim.ruehsen@gmx.de> 332 333 * configure.ac: Fix configure.ac bashisms 334 335 Reported-by: Brian Inglis 336 3372020-10-26 Tim Rühsen <tim.ruehsen@gmx.de> 338 339 * bootstrap.conf: Remove python as dependency 340 341 /usr/bin/python don't exist here any more. 'python2' and 'python3' do 342 exist. 343 3442020-10-26 Tim Rühsen <tim.ruehsen@gmx.de> 345 346 * gnulib: Update 347 3482020-10-25 Tim Rühsen <tim.ruehsen@gmx.de> 349 350 Fix contrib/mingw 351 3522020-10-11 Tim Rühsen <tim.ruehsen@gmx.de> 353 354 * .travis.yml: libunistring0 -> libunistring 355 3562020-10-11 Tim Rühsen <tim.ruehsen@gmx.de> 357 358 Use brew upgrade for Travis CI OSX 359 3602020-10-11 Tim Rühsen <tim.ruehsen@gmx.de> 361 362 Update Travis CI to bionic 363 3642020-10-11 Tim Rühsen <tim.ruehsen@gmx.de> 365 366 * .travis.sh: Output tail -1000 of test logs 367 3682020-10-10 Tim Rühsen <tim.ruehsen@gmx.de> 369 370 * libwget/hashmap.c (wget_hashmap_iterator_next): Fix segfault 371 3722020-08-02 Tim Rühsen <tim.ruehsen@gmx.de> 373 374 Implement --download-attr=[strippath|usepath] 375 376 * docs/wget2.md: Amend docs. 377 * src/options.c: Add parse_download_attr(), 378 amend option --download-attr. 379 * src/wget.c (queue_url_from_remote): Strip path if 380 DOWNLOAD_ATTR_STRIPPATH is set. 381 * src/wget_options.h: Add enum download_attr_mode. 382 * tests/test-download-attr.c: Test strippath and usepath. 383 3842020-08-02 Tim Rühsen <tim.ruehsen@gmx.de> 385 386 * libwget/ssl_openssl.c: Fix indentation, remove leading _ from variable 387 3882020-06-06 Ander Juaristi <a@juaristi.eus> 389 390 Update OCSP responses and certs 391 392 tests/certs/ocsp/*: Fix the cert stack for the testing HTTPS+OCSP server. 393 3942020-06-06 Ander Juaristi <a@juaristi.eus> 395 396 libtest: send normal cert chain in OCSP stapling HTTPS server 397 398 * tests/libtest.c (_ocsp_stap_cert_callback): rename variable 399 'pcert' -> 'certs'. 400 (_http_server_start): send normal cert chain in responses. 401 4022020-05-23 Ander Juaristi <a@juaristi.eus> 403 404 OpenSSL: Enable test-ocsp-stap 405 406 This commit enables the test `test-ocsp-stap` 407 408 It was previously skipped for OpenSSL since OCSP stapling was not 409 yet implemented in OpenSSL. 410 411 This commit also modifies these tests to pass the --no-ocsp-date flag to 412 wget2. 413 414 * tests/test-ocsp-stap.c (main): remove ifdef clause; pass 415 --no-ocsp-date flag. 416 4172020-05-09 Ander Juaristi <a@juaristi.eus> 418 419 OpenSSL: Implement OCSP stapling 420 421 * libwget/ssl_openssl.c (ocsp_resp_cb): new function: stapled OCSP 422 response callback. 423 (check_ocsp_response): do not check OCSP nonce here. 424 (verify_ocsp): check OCSP nonce here. 425 (openssl_init): set stapled OCSP callback function, ocsp_resp_cb. 426 (openssl_open): send status_request extension in handshake. 427 * tests/libtest.c (_http_server_start): Fix callback macro 428 4292020-08-02 Tim Rühsen <tim.ruehsen@gmx.de> 430 431 * .gitlab-ci.yml: Create /usr/bin/python before bootstrap 432 4332020-08-02 Tim Rühsen <tim.ruehsen@gmx.de> 434 435 * gnulib: Update 436 4372020-07-25 Tim Rühsen <tim.ruehsen@gmx.de> 438 439 * tests/libtest.c: Fix MHD 0.97.1 ABI/API breakage 440 4412020-07-25 Tim Rühsen <tim.ruehsen@gmx.de> 442 443 * src/options.c (init): Fix spelling 444 4452020-06-23 Tim Rühsen <tim.ruehsen@gmx.de> 446 447 * src/options.c: Fix crash introduced in fa3c71c85 448 4492020-05-25 Tim Rühsen <tim.ruehsen@gmx.de> 450 451 * libwget/decompressor.c (zstd_decompress): Avoid calls to sink with 0 length 452 453 Calls to sink() with length == 0 made -S output the header several times when 454 Content-Encoding was zstd. 455 4562020-05-24 Tim Rühsen <tim.ruehsen@gmx.de> 457 458 * libwget/ssl_gnutls.c (wget_ssl_init): Add debug msgs regarding system cert store 459 4602020-04-26 huangzsh7 <huangzsh7@gmail.com> 461 462 Delete obsolete code comment 463 464 * src/wget.c (test_modify_hsts): Delete obsolete code comment 465 4662020-04-22 Tim Rühsen <tim.ruehsen@gmx.de> 467 468 Remove CR and LF from URLs 469 470 * libwget/iri.c (iri_unescape_inline): Remove CR/LF from URL. 471 * tests/test-base.c: Add CR+LF into URL. 472 473 References 474 https://gitlab.com/gnuwget/wget2/-/issues/522 475 4762020-04-19 huangzsh7 <huangzsh7@gmail.com> 477 478 Create test cases 479 480 * tests/test-wget-1.c (main): Create test cases for --chunk-size with --progress 481 4822020-04-19 huangzsh7 <huangzsh7@gmail.com> 483 484 Add name in AUTHORS for CommitCheck 485 4862020-04-19 huangzsh7 <huangzsh7@gmail.com> 487 488 Fix segmentation faults when chunk-size and progress=bar are present 489 490 * src/wget.c (http_send_request): Keep the received response header when use chunk-size and progress=bar 491 4922020-04-12 Tim Rühsen <tim.ruehsen@gmx.de> 493 494 Fix warning when converting void * to function pointer 495 496 * unit-tests/test-dl.c (test_fn_check): Add #pragma to suppress 497 -pedantic when converting void * to function pointer. 498 499 POSIX requires a conversion from 'void *' into a function pointer to work. 500 But -pedantic throws 'ISO C forbids conversion of object pointer to function 501 pointer type'. 502 5032020-04-11 Andreas Schwab <schwab@suse.de> 504 505 Fix strict aliasing violation 506 507 * unit-tests/test-dl.c (test_fn_check): Avoid strict aliasing 508 violation. 509 5102020-04-11 Andreas Schwab <schwab@suse.de> 511 512 Fix undefined behaviour in test_buffer_printf 513 514 * unit-tests/test.c (test_buffer_printf): Cast argument to printf 515 function to correct type. 516 5172020-03-25 Ander Juaristi <a@juaristi.eus> 518 519 test-ocsp-stap: Skip 520 521 OCSP stapling is not yet supported in OpenSSL. 522 523 * tests/test-ocsp-stap.c (main): skip this test in OpenSSL 524 5252020-01-12 Ander Juaristi <a@juaristi.eus> 526 527 OpenSSL: Update stats 528 529 * libwget/ssl_openssl.c (openssl_revocation_check_fn): update stats 530 (wget_ssl_open): update stats 531 5322019-09-16 Ander Juaristi <a@juaristi.eus> 533 534 OpenSSL: Add OCSP support 535 536 * libwget/ssl_gnutls.c: replace _config with config 537 * libwget/ssl_openssl.c (wget_ssl_set_config_int): new options 538 WGET_SSL_OCSP_NONCE and WGET_SSL_OCSP_DATE. 539 (openssl_revocation_check_fn): implement OCSP in the OpenSSL backend, 540 and update stats 541 (ssl_set_alpn_selected_protocol): update stats 542 (verify_hpkp): update stats 543 (wget_ssl_open): update stats 544 5452019-10-19 Ander Juaristi <a@juaristi.eus> 546 547 Include serverAuth extension in OCSP certificates 548 549 Since the OCSP tests use the same certificate chain for both the OCSP server and 550 the HTTPS server, the 'serverAuth' flags needs to be added, in addition to the OCSP flags. 551 552 OpenSSL will refuse to run a TLS handshake for HTTPS if that flag is not present. 553 554 * tests/certs/ocsp/demoCA/*, tests/certs/ocsp/*.pem: change testing certificates 555 * tests/certs/ocsp/ocsp_resp_revoked.der, 556 tests/certs/ocsp/ocsp_stapled_resp.der 557 tests/certs/ocsp/ocsp_resp_ok.der: update OCSP responses to contain 558 the new certificates 559 * tests/certs/ocsp/interm.cnf: add the serverAuth extension 560 * tests/certs/ocsp/root-template.txt: likewise 561 5622019-09-16 Ander Juaristi <a@juaristi.eus> 563 564 Adapt configure.ac to support multiple SSL/TLS backends 565 566 This patch modifies `configure.ac` to support GnuTLS, OpenSSL and wolfSSL as the SSL/TLS backends. 567 568 Either of these can be enabled at compile time the `configure` switch `--with-ssl`. Example: 569 570 ./configure --with-ssl=openssl 571 572 If `--with-ssl` is omitted, the default behavior will be to build with GnuTLS if available, and without 573 TLS if not. TLS can be explicitly disabled with `--without-ssl`. 574 575 Regardless of which specific backend has been selected, the TLS and OCSP tests will always be built with GnuTLS, 576 as that is the only backend currently supported in the test suite. 577 578 It renames the constant `HAVE_GNUTLS_OCSP_H` to a more generic `WITH_OCSP`, that captures 579 the notion that OCSP has been enabled at compile-time, hiding the specific backend. 580 581 Changed files 582 583 * configure.ac: honor --with-ssl option, but keep on testing for GnuTLS 584 for the test suite. 585 * libwget/ssl_gnutls.c: replace HAVE_GNUTLS_OCSP_H with WITH_OCSP 586 * libwget/ssl_openssl.c: likewise 587 * tests/libtest.c: replace HAVE_GNUTLS_OCSP_H with WITH_OCSP. 588 Check for WITH_GNUTLS_IN_TESTSUITE. 589 5902020-03-28 Tim Rühsen <tim.ruehsen@gmx.de> 591 592 * src/wget.c: Remove undefining FILE_SYSTEM_PREFIX_LEN 593 5942020-03-28 Tim Rühsen <tim.ruehsen@gmx.de> 595 596 * gnulib: Update 597 5982020-03-17 Tim Rühsen <tim.ruehsen@gmx.de> 599 600 * libwget/dns_cache.c (wget_dns_cache_add): Fix bitwise to logical OR (cppcheck) 601 6022020-03-17 Tim Rühsen <tim.ruehsen@gmx.de> 603 604 * include/wget/wget.h (wget_hsts_host_match_fn): Fix argument names (cppcheck) 605 6062020-03-17 Tim Rühsen <tim.ruehsen@gmx.de> 607 608 * src/wget.c: Work around redundant define in gnulib 609 6102020-03-17 Tim Rühsen <tim.ruehsen@gmx.de> 611 612 * libwget/net.c (struct _stats_data_t): Remove unused struct 613 6142020-03-17 Tim Rühsen <tim.ruehsen@gmx.de> 615 616 * libwget/metalink.c (add_mirror): Code cleanup 617 6182020-03-17 Tim Rühsen <tim.ruehsen@gmx.de> 619 620 * libwget/metalink.c (metalink_parse): Check return value of wget_strmemcpy_a 621 6222020-03-17 Tim Rühsen <tim.ruehsen@gmx.de> 623 624 * libwget/html_url.c (html_get_url): Check return value of wget_strmemcpy_a 625 6262020-03-17 Tim Rühsen <tim.ruehsen@gmx.de> 627 628 * libwget/net.c (wget_tcp_set_bind_address): Simplify code 629 6302020-03-07 Tim Rühsen <tim.ruehsen@gmx.de> 631 632 * src/options.c (options): Fix indentation and alignment 633 6342020-03-07 Tim Rühsen <tim.ruehsen@gmx.de> 635 636 Fix indentation for some tests 637 638 * tests/test-parse-css.c: Fix indentation. 639 * tests/test-parse-html-css.c: Likewise. 640 * tests/test-parse-rss.c: Likewise. 641 6422020-03-07 Tim Rühsen <tim.ruehsen@gmx.de> 643 644 Add tests for --download-attr 645 646 * tests/Makefile.am: Add tests/test-download-attr.c. 647 * tests/test-download-attr.c: New file. 648 6492020-03-07 Tim Rühsen <tim.ruehsen@gmx.de> 650 651 Add new option --download-attr 652 653 * src/options.c (options): Add new option --download-attr. 654 * src/wget.c (html_parse): Check for config.download_attr. 655 * src/wget_options.h (struct config): Add new member download_attr. 656 6572020-03-07 Tim Rühsen <tim.ruehsen@gmx.de> 658 659 Implement HTML download attribute 660 661 * bootstrap.conf: Add gnulib module 'filename'. 662 * src/blacklist.c (get_local_filename_real): Remove const from return type. 663 (get_local_filename): Likewise. 664 * src/wget.c: Include "filename.h". 665 (queue_url_from_remote): Add param 'download_name'. 666 (queue_url_from_remote): Change local filename to that given by 'download' tag. 667 (html_parse): Create C string from 'download' value. 668 * src/wget_blacklist.h (blacklist_entry): Remove const from local_filename. 669 6702020-02-23 Tim Rühsen <tim.ruehsen@gmx.de> 671 672 Parse HTML download attribute 673 674 * examples/print_html_urls.c: Print download attribute. 675 * include/wget/wget.h (wget_html_parsed_url): Add download member. 676 * libwget/html_url.c (html_get_url): Parse download attribute. 677 6782020-03-15 Tim Rühsen <tim.ruehsen@gmx.de> 679 680 * libwget/http.c (wget_http_send_request): Fix unused variable without WITH_LIBNGHTTP2 681 6822020-02-26 Tim Rühsen <tim.ruehsen@gmx.de> 683 684 * libwget/http.c: Implement data upload for HTTP/2 685 6862020-02-25 Tim Rühsen <tim.ruehsen@gmx.de> 687 688 * libwget/printf.c (wget_vsnprintf): Fix size in call to wget_buffer_init 689 6902020-02-25 Tim Rühsen <tim.ruehsen@gmx.de> 691 692 * libwget/xml.c (parseXML): Remove use of VLA 693 6942020-02-25 Tim Rühsen <tim.ruehsen@gmx.de> 695 696 * libwget/ssl_wolfssl.c (wget_ssl_open): Safer code with wget_strmemcpy_a 697 6982020-02-25 Tim Rühsen <tim.ruehsen@gmx.de> 699 700 * libwget/printf.c (wget_printf): Optimize code 701 7022020-02-25 Tim Rühsen <tim.ruehsen@gmx.de> 703 704 * libwget/net.c (wget_tcp_set_bind_address): Safer code with wget_strmemcpy_a 705 7062020-02-25 Tim Rühsen <tim.ruehsen@gmx.de> 707 708 * libwget/metalink.c (add_mirror): Safer code with wget_strmemcpy_a 709 7102020-02-25 Tim Rühsen <tim.ruehsen@gmx.de> 711 712 * libwget/http.c (parse_proxies): Safer code with wget_strmemcpy 713 7142020-02-25 Tim Rühsen <tim.ruehsen@gmx.de> 715 716 * libwget/html_url.c (html_get_url): Simplify code with wget_strmemcpy_a 717 7182020-02-23 Tim Rühsen <tim.ruehsen@gmx.de> 719 720 * tests/valgrind-suppressions: Add GnuTLS suppression 721 7222020-02-24 Tim Rühsen <tim.ruehsen@gmx.de> 723 724 * src/wget.c (sitemap_parse_text): Simplify code by using wget_strmemcpy_a 725 7262020-02-24 Tim Rühsen <tim.ruehsen@gmx.de> 727 728 * src/options.c (struct optionw): Use fixed length for long_name 729 730 This reduces reallocations in the executable, reducing size by ~4k (stripped). 731 7322020-02-24 Tim Rühsen <tim.ruehsen@gmx.de> 733 734 Add new function wget_strmemcpy_a 735 736 * include/wget/wget.h: Add prototype of wget_strmemcpy_a. 737 * src/mem.c: Implement wget_strmemcpy_a. 738 * libwget/http_parse.c (wget_http_parse_header_line): Use wget_strmemcpy_a. 739 * src/utils.c (mkdir_path): Likewise. 740 7412020-02-24 Tim Rühsen <tim.ruehsen@gmx.de> 742 743 Let wget_strmemcpy return the number of copied bytes 744 745 * include/wget/wget.h: Set return type of wget_strmemcpy to size_t. 746 * libwget/mem.c (wget_strmemcpy): Return length of destination string. 747 * unit-tests/test.c: Amend tests of wget_strmemcpy. 748 7492020-02-24 Tim Rühsen <tim.ruehsen@gmx.de> 750 751 * .gitlab-ci.yml (Scan-Build/Debian): Do not use security checker 752 753 The security checker complains about not using the C11 _s functions. 754 We don't want to use them, see also 755 http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1969.htm 756 7572019-12-09 Suhas K S <suhasks123@gmail.com> 758 759 Add option --bind-interface 760 761 * libwget/net.h (wget_tcp_st): New variable 762 const char *bind_interface. 763 * libwget/net.c: Add function wget_tcp_bind_interface(). 764 (set_socket_options): Add parameter wget_tcp *tcp and 765 implement binding of tcp to bind_interface. 766 * libwget/init.c (wget_global_init): Call wget_tcp_bind_interface(). 767 * include/wget/wget.h: Add wget_tcp_bind_interface() and 768 WGET_BIND_INTERFACE. 769 * src/options.c: Add --bind-interface handling. 770 (init): Call wget_tcp_bind_interface(). 771 * src/wget2_options.h (config): Add const char *bind_interface. 772 * docs/wget2.md: Add documentation for --bind-interface. 773 774 This finishes task #430 775 7762020-02-21 Tim Rühsen <tim.ruehsen@gmx.de> 777 778 tests/valgrind-suppressions: Add GnuTLS suppression 779 7802020-02-21 Tim Rühsen <tim.ruehsen@gmx.de> 781 782 Amend docs regarding -q -O- [skip ci] 783 7842020-02-16 Tim Rühsen <tim.ruehsen@gmx.de> 785 786 New configure switch --disable-manylibs 787 788 * NEWS: Add --disable-manylibs 789 * configure.ac: Implement --disable-manylibs 790 * libwget/Makefile.am: Likewise 791 792 This switches off building small libraries from libwget functionality groups. 793 7942019-08-22 Tim Rühsen <tim.ruehsen@gmx.de> 795 796 Generate library libwget_decompress 797 798 * libwget/Makefile.am: Add libwget_decompress.la 799 * libwget/test_linking_compress.c: New file 800 8012019-08-15 Tim Rühsen <tim.ruehsen@gmx.de> 802 803 Generate library libwget_netrc 804 805 * libwget/Makefile.am: Add libwget_netrc.la 806 * libwget/test_linking_netrc.c: New file 807 8082019-08-14 Tim Rühsen <tim.ruehsen@gmx.de> 809 810 Generate library libwget_metalink 811 812 * libwget/Makefile.am: Add libwget_metalink.la 813 * libwget/test_linking_metalink.c: New file 814 8152019-08-14 Tim Rühsen <tim.ruehsen@gmx.de> 816 817 Generate library libwget_xml 818 819 * libwget/Makefile.am: Add libwget_xml.la 820 * libwget/test_linking_xml.c: New file 821 8222019-08-13 Tim Rühsen <tim.ruehsen@gmx.de> 823 824 Generate library libwget_http_parse 825 826 * libwget/Makefile.am: Add libwget_http_parse.la 827 * libwget/test_linking_htp_parse.c: New file 828 8292019-08-13 Tim Rühsen <tim.ruehsen@gmx.de> 830 831 Generate library libwget_tls_session 832 833 * libwget/Makefile.am: Add libwget_tls_session.la 834 * libwget/test_linking_tls_session.c: New file 835 8362019-08-13 Tim Rühsen <tim.ruehsen@gmx.de> 837 838 Generate library libwget_ocsp 839 840 * libwget/Makefile.am: Add libwget_ocsp.la 841 * libwget/test_linking_ocsp.c: New file 842 8432019-08-13 Tim Rühsen <tim.ruehsen@gmx.de> 844 845 Generate library libwget_hsts 846 847 * libwget/Makefile.am: Add libwget_hsts.la 848 * libwget/test_linking_hsts.c: New file 849 8502019-06-14 Tim Rühsen <tim.ruehsen@gmx.de> 851 852 Generate library libwget_robots 853 854 * libwget/Makefile.am: Add libwget_robots.la 855 8562019-06-28 Tim Rühsen <tim.ruehsen@gmx.de> 857 858 Generate library libwget_dns 859 860 * libwget/Makefile.am: Add libwget_dns.la 861 * libwget/test_linking_dns.c: New file 862 8632019-06-28 Tim Rühsen <tim.ruehsen@gmx.de> 864 865 Generate library libwget_dnscache 866 867 * libwget/Makefile.am: Add libwget_dnscache.la 868 * libwget/test_linking_dnscache.c: New file 869 8702019-06-28 Tim Rühsen <tim.ruehsen@gmx.de> 871 872 Generate library libwget_logger 873 874 * libwget/Makefile.am: Add libwget_logger.la 875 * libwget/test_linking_logger.c: New file 876 8772019-06-28 Tim Rühsen <tim.ruehsen@gmx.de> 878 879 Generate library libwget_hpkp_db 880 881 * libwget/Makefile.am: Add libwget_hpkp_db.la 882 * libwget/test_linking_hpkp_db.c: New file 883 8842019-06-28 Tim Rühsen <tim.ruehsen@gmx.de> 885 886 Generate library libwget_hashfile 887 888 * libwget/Makefile.am: Add libwget_hashfile.la 889 * libwget/test_linking_hashfile.c: New file 890 8912019-06-28 Tim Rühsen <tim.ruehsen@gmx.de> 892 893 Generate library libwget_io 894 895 * libwget/Makefile.am: Add libwget_io.la 896 * libwget/test_linking_io.c: New file 897 8982019-06-28 Tim Rühsen <tim.ruehsen@gmx.de> 899 900 Generate library libwget_progress 901 902 * libwget/Makefile.am: Add libwget_progress.la 903 * libwget/test_linking_progress.c: New file 904 9052019-06-28 Tim Rühsen <tim.ruehsen@gmx.de> 906 907 Generate library libwget_thread 908 909 * libwget/Makefile.am: Add libwget_thread.la 910 * libwget/test_linking_thread.c: New file 911 9122019-06-27 Tim Rühsen <tim.ruehsen@gmx.de> 913 914 Generate library libwget_css 915 916 * libwget/Makefile.am: Add libwget_css.la 917 * libwget/test_linking_css.c: New file 918 9192019-06-28 Tim Rühsen <tim.ruehsen@gmx.de> 920 921 Generate library libwget_iri 922 923 * libwget/Makefile.am: Add libwget_iri.la 924 * libwget/test_linking_iri.c: New file 925 9262019-06-28 Tim Rühsen <tim.ruehsen@gmx.de> 927 928 Generate library libwget_encoding 929 930 * libwget/Makefile.am: Add libwget_encoding.la 931 * libwget/test_linking_encoding.c: New file 932 9332019-06-27 Tim Rühsen <tim.ruehsen@gmx.de> 934 935 Generate library libwget_common 936 937 * libwget/Makefile.am: Add libwget_common.la 938 * libwget/test_linking_common.c: New file 939 9402019-06-28 Tim Rühsen <tim.ruehsen@gmx.de> 941 942 Generate library libwget_ip 943 944 * libwget/Makefile.am: Add libwget_ip.la 945 9462019-06-28 Tim Rühsen <tim.ruehsen@gmx.de> 947 948 Generate library libwget_alloc 949 950 * libwget/Makefile.am: Add libwget_alloc.la 951 9522019-05-16 Tim Rühsen <tim.ruehsen@gmx.de> 953 954 Patch libtool to add -no-whole-archive 955 956 * cfg.mk: Exclude contrib/libtool.patch from 'make syntax-check' 957 * configure.ac: Patch libtool 958 * contrib/libtool.patch: New file 959 * lib/Makefile.am: Unset $LIBS 960 * libwget/Makefile.am: Use -no-whole-archive 961 962 This patch keeps the libwget libraries short by not adding 963 *everything* from lib/libgnu.a. 964 9652020-02-12 Rohan Fletcher <rohfle@gmail.com> 966 967 Skip HTTP/2 testing for test-interrupt-response 968 969 * tests/test-interrupt-response.c: Set WGET_TEST_SKIP_H2 970 9712020-02-11 Tim Rühsen <tim.ruehsen@gmx.de> 972 973 * README.md: Fix badge for Build Status [skip ci] 974 9752020-02-11 Tim Rühsen <tim.ruehsen@gmx.de> 976 977 Build own badges for coverage and fuzz-coverage 978 979 * contrib/make-coverage-badge: Add script to create badges 980 * .gitlab-ci.yml: Create coverage and fuzz-covrage badges 981 * README.md: Display badges 982 9832020-02-11 Tim Rühsen <tim.ruehsen@gmx.de> 984 985 * fuzz/*_fuzer.in/*: Update OSS-Fuzz corpora from upstream 986 9872020-02-11 Tim Rühsen <tim.ruehsen@gmx.de> 988 989 * fuzz/Makefile.am: Remove -all-static from AM_LDFLAGS 990 9912020-02-11 Tim Rühsen <tim.ruehsen@gmx.de> 992 993 * fuzz/README.md: Update docs 994 9952020-02-09 Tim Rühsen <tim.ruehsen@gmx.de> 996 997 * .gitlab-ci.yml: Add 'linux' to 'tags:' 998 9992020-02-10 Tim Rühsen <tim.ruehsen@gmx.de> 1000 1001 * include/wget/wget.h: Make more use of 'restrict' keyword 1002 10032020-02-04 Tim Rühsen <tim.ruehsen@gmx.de> 1004 1005 * libwget/ssl_gnutls.c (safe_ctime): Suppress -Wformat-y2k around strftime %c 1006 10072020-01-31 Tim Rühsen <tim.ruehsen@gmx.de> 1008 1009 * src/wget.c (http_receive_response): Set mtime to last_modified-1 on partial download 1010 10112020-01-31 Tim Rühsen <tim.ruehsen@gmx.de> 1012 1013 * tests/test-interrupt-response.c: Fix for wget2, add one more test 1014 10152020-01-29 Rohan Fletcher <rohfle@gmail.com> 1016 1017 Added test simulations of aborts while sending response body 1018 1019 * tests/Makefile.am: add tests/test-interrupt-response test 1020 * tests/libtest.c (_callback_interruptable, _answer_to_connection): 1021 add interruptable response callback, enable in wget_test_url_t 1022 settings 1023 * tests/libtest.h: added interrupt_response_mode and 1024 interrupt_response_after_nbytes to wget_test_url_t 1025 * tests/test-interrupt-response.c: add test for interruptable 1026 responses and interrupt of responses while timestamping active 1027 10282020-01-31 Tim Rühsen <tim.ruehsen@gmx.de> 1029 1030 * tests/gpg/pubring.kbx: Update 1031 10322020-01-31 Tim Rühsen <tim.ruehsen@gmx.de> 1033 1034 * tests/libtest.c (wget_test): Reduce timeout from 10s to 3s 1035 10362020-01-31 Tim Rühsen <tim.ruehsen@gmx.de> 1037 1038 * tests/libtest.c (wget_test): Amend error output to be more informative / prominent 1039 10402020-01-31 Tim Rühsen <tim.ruehsen@gmx.de> 1041 1042 Amend retry strategy for job failures 1043 1044 This introduces retries and and pauses for JOBs. 1045 Formerly, we only had a host failure strategy. 1046 1047 * src/wget_job.h (struct JOB): Add retry_ts and failures 1048 * src/host.c (_search_queue_for_free_job): Check for pause after failure 1049 * src/wget.c (downloader_thread): Rearrange code for job retry strategy 1050 10512020-01-29 Tim Rühsen <tim.ruehsen@gmx.de> 1052 1053 * AUTHORS: Add Rohan Fletcher [skip ci] 1054 10552020-01-27 Suhas K S <suhasks123@gmail.com> 1056 1057 Add --background support for Windows 1058 1059 * src/wget.c: Add function make_section_name(), 1060 fake_fork_child(), fake_fork(), fork_to_background(). 1061 Add struct fake_fork_info. 1062 * docs/wget2.md: Remove [Not Supported on Windows yet] 1063 from --background. 1064 1065 Closes issue #457 1066 1067 Copyright-paperwork-exempt: Yes 1068 10692020-01-25 Tim Rühsen <tim.ruehsen@gmx.de> 1070 1071 * .gitlab-ci.yml: Use tag 'linux' instead 'docker' 1072 10732020-01-20 Tim Rühsen <tim.ruehsen@gmx.de> 1074 1075 Update gnulib to fix FreeBSD CI runner 1076 1077 * gnulib: Update 1078 * .gitlab-ci.yml: Remove --enable-threads=isoc from ./configure 1079 10802020-01-18 Tim Rühsen <tim.ruehsen@gmx.de> 1081 1082 * gnulib: Update to fix use-after-free in glob() 1083 1084 This fixes OSS-Fuzz issue 20176. 1085 10862020-01-10 Darshit Shah <darnir@gnu.org> 1087 1088 * Update copyright year to 2020 1089 10902020-01-08 Tim Rühsen <tim.ruehsen@gmx.de> 1091 1092 * .gitlab-ci.-yml: Add --enable-threads=isoc to FreeBSD configure run 1093 10942020-01-07 Tim Rühsen <tim.ruehsen@gmx.de> 1095 1096 * .gitlab-ci.yml: Do not use -Werror for ./configure run 1097 10982020-01-07 Tim Rühsen <tim.ruehsen@gmx.de> 1099 1100 Update Makefile.am for latest gnulib 1101 1102 * examples/Makefile.am: Amend LDADD assignment 1103 * fuzz/Makefile.am: Likewise 1104 * libwget/Makefile.am: Likewise 1105 * src/Makefile.am: Likewise 1106 * tests/Makefile.am: Likewise 1107 * unit-tests/Makefile.am: Likwise 1108 11092020-01-07 Tim Rühsen <tim.ruehsen@gmx.de> 1110 1111 Fix clang warning '-Wunreachable-code' in tests/ 1112 1113 * tests/test--https-enforce-hard3.c: Ignore warning via #pragma 1114 * tests/test--https-enforce-soft2.c: Likewise 1115 11162020-01-07 Tim Rühsen <tim.ruehsen@gmx.de> 1117 1118 * src/wget.c: Suppress clang warning '-Watomic-implicit-seq-cst' 1119 11202020-01-07 Tim Rühsen <tim.ruehsen@gmx.de> 1121 1122 * libwget/css_tokenizer.lex: Suppress clang warning '-Wextra-semi-stmt' 1123 11242020-01-07 Tim Rühsen <tim.ruehsen@gmx.de> 1125 1126 * .gitlab-ci.yml: CFLAGS_DEFAULT: -O1 -g -ggdb3 1127 1128 The sanitizer does not work with -O0, changed to -O1. 1129 11302020-01-07 Tim Rühsen <tim.ruehsen@gmx.de> 1131 1132 * .gitlab-ci.yml: Remove manual copying of gnulib directory 1133 11342020-01-07 Tim Rühsen <tim.ruehsen@gmx.de> 1135 1136 * gnulib: Update 1137 11382020-01-07 Tim Rühsen <tim.ruehsen@gmx.de> 1139 1140 Move sanitizer CI runner to Debian unstable 1141 11422020-01-06 Tim Rühsen <tim.ruehsen@gmx.de> 1143 1144 * configure.ac: Enable more sanitizer options for UBSAN and ASAN 1145 11462020-01-06 Tim Rühsen <tim.ruehsen@gmx.de> 1147 1148 * libwget/bitmap.c: Fix clang sanitizer's false positive (buffer overflow) 1149 11502020-01-06 Tim Rühsen <tim.ruehsen@gmx.de> 1151 1152 * src/gpgme.c: Fix implicit conversion 1153 11542020-01-06 Tim Rühsen <tim.ruehsen@gmx.de> 1155 1156 * tests/libtest.c: Fix implicit conversion 1157 11582020-01-06 Tim Rühsen <tim.ruehsen@gmx.de> 1159 1160 * src/wget.c: Fix implicit conversion -1 to size_t 1161 11622020-01-06 Tim Rühsen <tim.ruehsen@gmx.de> 1163 1164 * unit-tests/test.c: Fix implicit conversions -1 to size_t 1165 11662020-01-06 Tim Rühsen <tim.ruehsen@gmx.de> 1167 1168 * libwget/buffer_printf: Fix implicit conversionsi (use unsigned flag values) 1169 11702020-01-06 Tim Rühsen <tim.ruehsen@gmx.de> 1171 1172 * libwget/buffer_printf: Fix implicit conversions 1173 11742020-01-06 Tim Rühsen <tim.ruehsen@gmx.de> 1175 1176 * libwget/http.c (wget_http_get_response_cb): Fix implicit conversion -1 to size_t 1177 11782020-01-06 Tim Rühsen <tim.ruehsen@gmx.de> 1179 1180 * src/options.c (parse_numbytes): Fix 8.35133e+19 outside long long range 1181 11822020-01-06 Tim Rühsen <tim.ruehsen@gmx.de> 1183 1184 * libwget/base64.c (wget_base64_decode): Fix implicit conversion 218 to char 1185 11862020-01-06 Tim Rühsen <tim.ruehsen@gmx.de> 1187 1188 * libwget/iri.c (wget_iri_parse_base): Fix implicit conversion -1 to size_t 1189 11902019-12-19 Tim Rühsen <tim.ruehsen@gmx.de> 1191 1192 * src/options.c (parse_numbytes): Fix implicit conversion to double 1193 11942019-12-19 Tim Rühsen <tim.ruehsen@gmx.de> 1195 1196 * unit-tests/test.c (test_mem): Fix buffer overflow in test 1197 11982019-12-10 Tim Rühsen <tim.ruehsen@gmx.de> 1199 1200 * contrib/commit-check: Don't say 'not found' if found [skip ci] 1201 12022019-12-08 Tim Rühsen <tim.ruehsen@gmx.de> 1203 1204 * include/wget/wget.h: Fix old types in comments [skip ci] 1205 12062019-12-07 Tim Rühsen <tim.ruehsen@gmx.de> 1207 1208 * tests/test-cut-get-vars.c: Add three more test variations 1209 12102019-12-07 Tim Rühsen <tim.ruehsen@gmx.de> 1211 1212 Fix --cut-file-get-vars creating dirs on single file download 1213 1214 * tests/test-cut-get-vars.c: Amend to reproduce issue #490. 1215 * src/blacklist.c (get_local_filename_real): Generate basename 1216 instead of filename, without query. 1217 * include/wget/wget.h: Add flag WGET_IRI_WITH_QUERY. 1218 Add param 'flags' to wget_iri_get_basename. 1219 * libwget/iri.c: Add param 'flags' to wget_iri_get_basename. 1220 Implement flag WGET_IRI_WITH_QUERY. 1221 * fuzz/libwget_iri_fuzzer.c (test): Use WGET_IRI_WITH_QUERY. 1222 1223 Closes #490 1224 12252019-12-07 Tim Rühsen <tim.ruehsen@gmx.de> 1226 1227 * tests/Makefile.am: Add test-cut-get-vars 1228 12292019-12-07 Tim Rühsen <tim.ruehsen@gmx.de> 1230 1231 Rename wget_iri_get_filename -> wget_iri_get_basename 1232 1233 * fuzz/libwget_iri_fuzzer.c: Likewise. 1234 * include/wget/wget.h: Likewise. 1235 * libwget/iri.c: Likewise. 1236 * src/blacklist.c: Likewise. 1237 12382019-12-06 Tim Rühsen <tim.ruehsen@gmx.de> 1239 1240 Fix OpenSSL for Win32 1241 1242 * libwget/ssl_openssl.c (wget_ssl_open): Use FD_TO_SOCKET to 1243 convert POSIX fd to WIN32 socket. 1244 (ssl_transfer): Use SOCKET_TO_FD to convert WIN32 socket to POSIX fd. 1245 1246 Reported-by: Gisle Vanem 1247 12482019-12-03 Tim Rühsen <tim.ruehsen@gmx.de> 1249 1250 Code cleanup 1251 1252 * src/plugin.c (plugin_db_forward_downloaded_file): 1253 Change size from uint64_t to int64_t. 1254 * src/wget_plugin.h (plugin_db_forward_downloaded_file): 1255 Likewise. 1256 * src/wget.c (process_response): Likewise. 1257 Remove n_recurse_iris. 1258 12592019-12-03 Tim Rühsen <tim.ruehsen@gmx.de> 1260 1261 Add two new tests for -c 1262 1263 * tests/test-wget-1.c: Test -c with existing empty file. 1264 Test -c with existing complete file. 1265 12662019-12-03 TheAlakazam <piyushjaipuriyar@gmail.com> 1267 1268 Fix -c with existing zero-length file 1269 1270 * src/wget.c (prepare_file): Replace `> 0` by `>= 0`. 1271 (wget_http_request): Likewise. 1272 1273 Copyright-paperwork-exempt: Yes 1274 12752019-12-01 Tim Rühsen <tim.ruehsen@gmx.de> 1276 1277 Remove usage of strerror_r due to diverting GNU/POSIX behavior 1278 1279 * libwget/http_highlevel.c: Likewise 1280 * libwget/net.c: Likewise 1281 * src/wget.c: Likewise 1282 12832019-11-30 Tim Rühsen <tim.ruehsen@gmx.de> 1284 1285 * gnulib: Update 1286 1287 Fixes #492 (library -lnsl-lintl: not found) 1288 12892019-11-21 Tim Rühsen <tim.ruehsen@gmx.de> 1290 1291 Replace strerror() by strerror_r() in multi-threaded code 1292 1293 * libwget/http_highlevel.c: Likewise 1294 * libwget/net.c: Likewise 1295 * src/wget.c: Likewise 1296 12972019-11-15 Tim Rühsen <tim.ruehsen@gmx.de> 1298 1299 * configure.ac: Fix for 'Error on unknown value for --with-ssl' 1300 13012019-11-15 Tim Rühsen <tim.ruehsen@gmx.de> 1302 1303 Fix for LibreSSL 1304 1305 * libwget/ssl_openssl.c: Some small fixes for LibreSSL 1306 1307 For LibreSSL you need to './configure --with-ssl=openssl'. 1308 13092019-11-15 Tim Rühsen <tim.ruehsen@gmx.de> 1310 1311 * configure.ac: Error on unknown value for --with-ssl 1312 13132019-11-13 Tim Rühsen <tim.ruehsen@gmx.de> 1314 1315 * NEWS: Update 1316 13172019-11-05 Darshit Shah <darnir@gnu.org> 1318 1319 Support terminal hyperlinks in output 1320 1321 Some terminal emulators now allow printing hyperlinks through escape 1322 sequences. See 1323 https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda for 1324 more information. 1325 1326 Hyperlink support cannot be gauged accurately. And while most terminals 1327 just ignore the extra escape sequences, older versions of vte actually 1328 print the URI along with some garbage. So, in this patch, the hyperlink 1329 support is disabled by default and used only if the user explicitly 1330 requests it. Once there is a way to query for feature support in 1331 terminals, this can be intelligently enabled automatically. 1332 1333 * bootstrap.conf: Add new module xgethostname 1334 * src/wget_options.h: Add a new option hyperlink and a global variable 1335 hostname 1336 * src/options.c: Add a new command line option --hyperlink. This is the 1337 same option name as `ls` from coreutils for consistency across 1338 programs 1339 (init): If the user requests hyperlink support, get the hostname and 1340 store it. This is to prevent having to get the hostname for each 1341 downloaded file 1342 * src/wget.c (prepare_file): Print the filename with a hyperlink if the 1343 user requests it. 1344 * docs/wget2.md: Add documentation entry for hyperlinks 1345 13462019-10-28 Archit Pandey <archpndy@gmail.com> 1347 1348 Added --convert-file-only handling 1349 1350 * src/options.c: Add --convert-file-only handling 1351 * src/wget_options.h (config): Add bool convert_file_only 1352 * src/wget.c (html_parse): conversions initialized when 1353 convert_file_only is set 1354 (main): Call convert_links when config.convert_file_only 1355 (convert_links): move conversion logic to convert_link_whole and 1356 convert_link_file_only 1357 New function convert_link_whole: convert whole URL 1358 New function convert_link_file_only: convert filename part of URLs 1359 * tests/test-convert-file-only.c: testcase for --convert-file-only 1360 with -E 1361 * tests/Makefile.am: add test-convert-file-only object 1362 * docs/wget2.md: Removed [unimplemented-option] from 1363 --convert-file-only 1364 13652019-11-06 Tim Rühsen <tim.ruehsen@gmx.de> 1366 1367 * configure.ac: Fix 1368 13692019-11-06 Tim Rühsen <tim.ruehsen@gmx.de> 1370 1371 * tests/libtest.c (wget_test): Fix output, make use of wget_read_file() 1372 13732019-11-02 Archit Pandey <archpndy@gmail.com> 1374 1375 Add --ignore-length handling 1376 1377 * include/wget/wget.h (wget_http_request): Add bool 1378 response_ignorelength 1379 (wget_http_response): Add bool length_inconsistent 1380 * src/options.c: Add --ignore-length handling 1381 * src/wget_options.h (config): Add bool ignore_length 1382 (exit_status_e): Add WGET_EXIT_INCONSISTENT_LENGTH 1383 * libwget/http.c (wget_http_response_cb): Set length_inconsistent 1384 when mismatch with Content-Length 1385 * src/wget.c (wget_send_request): Set ignore-length in request 1386 * tests/test-ignore-length.c: test --ignore-length 1387 * tests/Makefile.am: add test-ignore-length 1388 * docs/wget2.md: Removed [unimplemented-option] from 1389 --ignore-length 1390 13912019-10-20 Darshit Shah <darnir@gnu.org> 1392 1393 src/libwget.doxy.in: Update doxygen file 1394 13952019-10-20 Darshit Shah <darnir@gnu.org> 1396 1397 Explicitly set the FILE_PATTERNS for doxygen 1398 1399 * docs/libwget.doxy.in: Set FILE_PATTERNS to workaround bug in doxygen 1400 1.8.16 1401 1402 Fix-by: Tim Ruehsen <rockdaboot@gmail.com> 1403 14042019-10-03 Darshit Shah <darnir@gnu.org> 1405 1406 Add license text to files 1407 14082019-09-13 Darshit Shah <darnir@gnu.org> 1409 1410 Fix license of all tests 1411 1412 All the tests in tests/ are part of Wget2 the binary, not libwget. Fix 1413 the license and copyright information accordingly. 1414 1415 * tests/libtest.c: libwget -> Wget. LGPLv3+ -> GPLv3+ 1416 * tests/test--accept.c: Same 1417 * tests/test--filter-mime-type.c: Same 1418 * tests/test--follow-tags.c: Same 1419 * tests/test--https-enforce-hard1.c: Same 1420 * tests/test--https-enforce-hard2.c: Same 1421 * tests/test--https-enforce-hard3.c: Same 1422 * tests/test--https-enforce-soft1.c: Same 1423 * tests/test--https-enforce-soft2.c: Same 1424 * tests/test--https-enforce-soft3.c: Same 1425 * tests/test--page-requisites.c: Same 1426 * tests/test--post-file.c: Same 1427 * tests/test--save-content-on.c: Same 1428 * tests/test--spider-r.c: Same 1429 * tests/test-E-k.c: Same 1430 * tests/test-auth-basic.c: Same 1431 * tests/test-auth-digest.c: Same 1432 * tests/test-bad-chunk.c: Same 1433 * tests/test-base.c: Same 1434 * tests/test-c-r.c: Same 1435 * tests/test-chunked.c: Same 1436 * tests/test-compression.c: Same 1437 * tests/test-cut-dirs.c: Same 1438 * tests/test-cut-get-vars.c: Same 1439 * tests/test-directory-clash.c: Same 1440 * tests/test-ftp.c: Same 1441 * tests/test-ftps.c: Same 1442 * tests/test-gpg-bad.c: Same 1443 * tests/test-gpg-invalid.c: Same 1444 * tests/test-gpg-missing.c: Same 1445 * tests/test-gpg-save-failed.c: Same 1446 * tests/test-gpg-styles.c: Same 1447 * tests/test-gpg-valid.c: Same 1448 * tests/test-gpg-verify-no-file.c: Same 1449 * tests/test-gzip.c: Same 1450 * tests/test-i-http.c: Same 1451 * tests/test-i-https.c: Same 1452 * tests/test-idn-cmd.c: Same 1453 * tests/test-idn-meta.c: Same 1454 * tests/test-idn-robots.c: Same 1455 * tests/test-include-and-exclude-directories.c: Same 1456 * tests/test-iri-disabled.c: Same 1457 * tests/test-iri-forced-remote.c: Same 1458 * tests/test-iri-list.c: Same 1459 * tests/test-iri-percent.c: Same 1460 * tests/test-iri-subdir.c: Same 1461 * tests/test-iri.c: Same 1462 * tests/test-k.c: Same 1463 * tests/test-limit-rate-http2.c: Same 1464 * tests/test-limit-rate.c: Same 1465 * tests/test-meta-robots.c: Same 1466 * tests/test-metalink.c: Same 1467 * tests/test-np.c: Same 1468 * tests/test-ocsp-server.c: Same 1469 * tests/test-ocsp-stap.c: Same 1470 * tests/test-p-nc.c: Same 1471 * tests/test-parse-css.c: Same 1472 * tests/test-parse-html-css.c: Same 1473 * tests/test-parse-rss.c: Same 1474 * tests/test-plugin-dummy.c: Same 1475 * tests/test-plugin-failure.c: Same 1476 * tests/test-plugin-interception.c: Same 1477 * tests/test-plugin-nonexistance.c: Same 1478 * tests/test-plugin.c: Same 1479 * tests/test-post-handhshake-auth.c: Same 1480 * tests/test-redirection.c: Same 1481 * tests/test-restrict-ascii.c: Same 1482 * tests/test-robots.c: Same 1483 * tests/test-stats-dns.c: Same 1484 * tests/test-stats-ocsp.c: Same 1485 * tests/test-stats-server.c: Same 1486 * tests/test-stats-site.c: Same 1487 * tests/test-stats-tls.c: Same 1488 * tests/test-timestamping.c: Same 1489 * tests/test-unlink.c: Same 1490 * tests/test-wget-1.c: Same 1491 14922019-09-13 Darshit Shah <darnir@gnu.org> 1493 1494 * README: Symlink to README.md 1495 14962019-09-13 Darshit Shah <darnir@gnu.org> 1497 1498 * README.md: Add license information 1499 15002019-10-29 Tim Rühsen <tim.ruehsen@gmx.de> 1501 1502 * include/wget/wget.h (wget_bar_slot_begin): Set 'filename' not NONNULL 1503 15042019-10-29 Tim Rühsen <tim.ruehsen@gmx.de> 1505 1506 * tests/libtest.c (_answer_to_connection): Switch off Content-Length sanity checks in MHD 1507 15082019-10-29 Tim Rühsen <tim.ruehsen@gmx.de> 1509 1510 * tests/libtest.c (wget_test_start_server): Print MHD info 1511 15122019-10-29 Tim Rühsen <tim.ruehsen@gmx.de> 1513 1514 * tests/libtest.c (_http_server_start): Fix checks for MHD options 1515 15162019-10-28 Tim Rühsen <tim.ruehsen@gmx.de> 1517 1518 * libwget/http.c (wget_http_send_request): Fix hard-coded GET for HTTP/2 1519 15202019-10-28 Tim Rühsen <tim.ruehsen@gmx.de> 1521 1522 * tests/libtest.c: Fix CI failure 1523 15242019-10-28 Tim Rühsen <tim.ruehsen@gmx.de> 1525 1526 * tests/libtest.c (_http_server_start): Make use of MHD_OPTION_SERVER_INSANITY 1527 15282019-10-27 Tim Rühsen <tim.ruehsen@gmx.de> 1529 1530 Add wget_test_set_executable() to test suite 1531 1532 * tests/libtest.h: Add declaration of wget_test_set_executable() 1533 * tests/libtest.c: Add definition of wget_test_set_executable(), 1534 add global variable 'global_executable', 1535 (wget_test): Use 'global_executable' to initialize 'executable', 1536 (wget_test): Use 'executable' if set 1537 15382019-10-27 Archit Pandey <archpndy@gmail.com> 1539 1540 Added options --method, --body-data, --body-file 1541 1542 * src/wget_options.h (config): Added method, body_data, body_file 1543 * src/options.c (options): Added --method, --body-data, --body-file 1544 handling 1545 * src/wget_job.h (JOB): New variable bool redirect_get 1546 * src/wget.c (http_create_request): Added support for user 1547 provided HTTP method and request body 1548 (process_response_header): Set redirect_get to TRUE for 30x 1549 response codes 1550 * tests/test-redirection.c: Added test for redirection with 1551 --method=POST 1552 * docs/wget2.md: Removed [unimplemented-option] for --method, 1553 --body-data, --body-file 1554 15552019-10-27 Tim Rühsen <tim.ruehsen@gmx.de> 1556 1557 Add method check for test suite 1558 1559 * tests/libtest.h: Add expected_method to wget_test_url_t 1560 * tests/libtest.c (_answer_to_connection): Check method against expected_method 1561 15622019-10-27 Tim Rühsen <tim.ruehsen@gmx.de> 1563 1564 * tests/libtest.c (_answer_to_connection): Free query.params 1565 15662019-10-27 Tim Rühsen <tim.ruehsen@gmx.de> 1567 1568 Fix typo: test-post-handhshake-auth -> test-post-handshake-auth 1569 1570 * tests/Makefile.am: Fix typo in handhshake -> handshake 1571 * tests/test-post-handhshake-auth.c: Rename to tests/test-post-handshake-auth.c 1572 15732019-10-27 Tim Rühsen <tim.ruehsen@gmx.de> 1574 1575 * tests/libtest.c (_answer_to_connection): More code cleanup 1576 15772019-10-27 Tim Rühsen <tim.ruehsen@gmx.de> 1578 1579 * tests/libtest.c (_answer_to_connection): Simplify URL expansion 1580 15812019-10-27 Tim Rühsen <tim.ruehsen@gmx.de> 1582 1583 * tests/libtest.c (_answer_to_connection): Code cleanup 1584 15852019-10-27 Tim Rühsen <tim.ruehsen@gmx.de> 1586 1587 * tests/test-unlink.c (main): Remove double entry from urls 1588 15892019-10-27 Tim Rühsen <tim.ruehsen@gmx.de> 1590 1591 * tests/libtest.c (_answer_to_connection): Set given status code for response 1592 15932019-10-27 Tim Rühsen <tim.ruehsen@gmx.de> 1594 1595 * tests/test-metalink.c: Fix test for HTTP/2 1596 15972019-10-27 Tim Rühsen <tim.ruehsen@gmx.de> 1598 1599 * tests/test-E-k.c: Fix for HTTP/2 test 1600 16012019-10-26 Tim Rühsen <tim.ruehsen@gmx.de> 1602 1603 SKIP tests failing with MHD 0.9.67 1604 1605 * tests/test--https-enforce-hard3.c: Likewise 1606 * tests/test--https-enforce-soft2.c: Likewise 1607 16082019-10-23 Tim Rühsen <tim.ruehsen@gmx.de> 1609 1610 * libwget/ssl_gnutls.c: Fix loading CA certs when 'system' is not supported 1611 16122019-10-23 Tim Rühsen <tim.ruehsen@gmx.de> 1613 1614 Fix cookie file header to be recognized by 'file' 1615 1616 * libwget/cookie.c: Use uppercase 'Cookie' and 'File' 1617 * tests/test-cookies.c: Likewise 1618 16192019-10-26 Tim Rühsen <tim.ruehsen@gmx.de> 1620 1621 Add new test file test-E-k.c 1622 1623 * tests/Makefile.am: Add test-E-k.c to tests 1624 * tests/test-E-k.c: New file 1625 16262019-10-26 Tim Rühsen <tim.ruehsen@gmx.de> 1627 1628 Fix conversion (-k) in combination with -E 1629 1630 * src/wget.c (prepare_file): Adjust filename in blacklist if changed, 1631 (conversions): Change type to wget_stringmap, 1632 (convert_links): Use stringmap instead of vector, 1633 (hash_conversion): New function to hash conversion key, 1634 (compare_conversion): New function to compare conversion entries, 1635 (remember_for_conversion): Use stringmap instead of vector 1636 16372019-10-26 Tim Rühsen <tim.ruehsen@gmx.de> 1638 1639 Add new function blacklist_set_filename() 1640 1641 * src/blacklist.c: Implement blacklist_set_filename() 1642 * src/wget_blacklist.h: Add declaration of blacklist_set_filename() 1643 16442019-10-25 Tim Rühsen <tim.ruehsen@gmx.de> 1645 1646 Fix type of 2nd param of wget_stringmap_iterator_next() to void ** 1647 1648 * include/wget/wget.h: Likewise 1649 * unit-tests/test.c: Likewise 1650 16512019-10-19 Tim Rühsen <tim.ruehsen@gmx.de> 1652 1653 Make metalink->iri 'const' 1654 1655 * include/wget/wget.h: Make metalink->iri 'const' 1656 * libwget/metalink.c (add_mirror): Code cleanup 1657 * src/wget.c (establish_connection): Skip HTTP mirrors if HTTPS requested, 1658 (queue_url_from_local): Lock mutex a bit later 1659 16602019-10-19 Tim Rühsen <tim.ruehsen@gmx.de> 1661 1662 Move applying HSTS to queue_url*() functions 1663 1664 * src/wget.c: Add new function test_modify_hsts(), 1665 (queue_url_from_local): Call test_modify_hsts(), 1666 (queue_url_from_remote): Call test_modify_hsts(), 1667 (try_connection): Remove code for applying HSTS 1668 16692019-10-18 Tim Rühsen <tim.ruehsen@gmx.de> 1670 1671 Use const wget_iri instances 1672 1673 * src/wget_host.h (host_add, host_get): Add 'const' to param 1674 * src/host.c: Likewise 1675 * src/stats_site.c: Add 'const' to wget_iri types 1676 * src/wget.c: Likewise 1677 * src/wget_job.h (struct JOB): Add 'const' to 'iri' 1678 16792019-10-18 Tim Rühsen <tim.ruehsen@gmx.de> 1680 1681 Amend job_init() to take blacklist_entry instead of wget_iri 1682 1683 * src/wget_job.h: Amend job_init() to take blacklist_entry instead of wget_iri 1684 * src/job.c: Likewise 1685 * src/host.c (host_add_robotstxt_job): Amend call to job_init() 1686 * src/wget.c (queue_url_from_local): Likewise, 1687 (queue_url_from_remote): Likewise 1688 16892019-10-18 Tim Rühsen <tim.ruehsen@gmx.de> 1690 1691 Deduplicate code for creating robots.txt jobs 1692 1693 * src/wget.c (queue_url_from_local): Remove duplicated code, 1694 (queue_url_from_remote): Likewise, 1695 (set_file_metadata): Amend calling wget_iri_get_connection_part() 1696 * include/wget/wget.h (wget_iri_parse_base): Add 'const' to 'base' param, 1697 (wget_iri_get_connection_part): Add 'const' to 'iri' param, 1698 add second param 'buf' 1699 * fuzz/libwget_iri_fuzzer.c (test): Amend calling wget_iri_get_connection_part() 1700 * libwget/iri.c (wget_iri_get_connection_part): Add param 'buf', 1701 add 'const' to 'iri' param, amend docs, 1702 (wget_iri_relative_to_abs): Add 'const' to 'base' param, 1703 amend calling wget_iri_get_connection_part(), 1704 (wget_iri_parse_base): Add 'const' to 'iri' param 1705 * src/host.c (host_add_robotstxt_job): Add code removed in wget.c 1706 * src/wget_host.h: Don't include wget_blacklist.h, 1707 amend signature of host_add_robotstxt_job() 1708 * src/wget_job.h (struct JOB): Add 'const' to 'blacklist_entry' 1709 17102019-10-16 Tim Rühsen <tim.ruehsen@gmx.de> 1711 1712 Blacklist changes 1713 1714 * src/wget_main.h: Remove decalration of get_local_filename() 1715 * src/wget_job.h (struct JOB): Remove local_filename, add blacklist_entry 1716 * src/wget_host.h: Amend declaration of host_add_robotstxt_job() 1717 * src/wget_blacklist.h (struct blacklist_entry): Add const to iri, 1718 add const to param of blacklist_add(), 1719 add declaration of blacklist_get() 1720 * src/job.c (job_free): Do not free job->local_filename 1721 * src/host.c (host_add_robotstxt_job): Param blacklist_entry instead of wget_iri 1722 * src/gpgme.c (determine_base_file): Fix calls to determine_base_file() 1723 * src/blacklist.c: Add new function blacklist_get(), 1724 (blacklist_add): Add const to param, call get_local_filename(), 1725 (blacklist_init): Amend destructors, 1726 Remove free_key(), 1727 Add free_value(), 1728 Add function get_local_filename(), 1729 Add function get_local_filename_real() 1730 * src/wget.c: Remove function get_local_filename(), 1731 Remove function get_local_filename_real(), 1732 Use blacklist_entry instead of local_filename 1733 17342019-10-15 Tim Rühsen <tim.ruehsen@gmx.de> 1735 1736 * src/wget.c: Rename add_url() -> queue_url_from_remote() 1737 17382019-10-15 Tim Rühsen <tim.ruehsen@gmx.de> 1739 1740 * src/wget.c: Rename add_url_to_queue() -> queue_url_from_local() 1741 17422019-10-15 Tim Rühsen <tim.ruehsen@gmx.de> 1743 1744 Cleanup blacklist code 1745 1746 * src/wget_blacklist.h: Add new structure 'blacklist_entry', 1747 change return type of blacklist_add() to 'blacklist_entry *' 1748 * src/blacklist.c: Store 'blacklist_entry' instead of 'wget_iri', 1749 remove mutexes 1750 * src/wget.c: Amend code in add_url_to_queue() and add_url() 1751 17522019-10-14 Tim Rühsen <tim.ruehsen@gmx.de> 1753 1754 * src/wget_blacklist.h: Remove unused declaration of in_blacklist() 1755 17562019-10-23 Tim Rühsen <tim.ruehsen@gmx.de> 1757 1758 * configure.ac: Add pkg-config support for GPGME 1759 17602019-10-22 Archit Pandey <archpndy@gmail.com> 1761 1762 Using --robots=off downloads robots.txt 1763 1764 * src/wget.c (add_url_to_queue): remove config.robots check, 1765 (add_url): add config.robots check when disallowing URLs 1766 * tests/test-robots-off.c: New file to test --robots=off behavior 1767 * tests/Makefile.am: Added test-robots-off 1768 * tests/test-iri-percent.c: Add check for robots.txt 1769 * docs/wget2.md: Describe --robots=off behaviour 1770 17712019-10-21 Archit Pandey <archpndy@gmail.com> 1772 1773 Moved WGET_E_GPG_* definitions out of libwget 1774 1775 * libwget/error.c (wget_strerror): Remove WGET_E_GPG_* symbols 1776 * include/wget/wget.h (wget_error): Remove WGET_E_GPG_* symbol definitions 1777 * src/wget_gpgme.h: New enum wget_gpg_error to hold WGET_E_GPG_* symbol definitions 1778 * AUHOTRS: Add archpndy [at] gmail.com 1779 1780 Copyright-paperwork-exempt: Yes 1781 17822019-10-18 Tim Rühsen <tim.ruehsen@gmx.de> 1783 1784 * src/wget.c (prepare_file): Fix regression from commit 3c6f61a8 1785 17862019-10-18 Tim Rühsen <tim.ruehsen@gmx.de> 1787 1788 * src/wget.c (prepare_file): Check '.htm' for -E/--adjust-extension 1789 17902019-10-18 Tim Rühsen <tim.ruehsen@gmx.de> 1791 1792 * src/wget.c (prepare_file): Simplify code to append extension (-E) 1793 17942019-10-10 Tim Rühsen <tim.ruehsen@gmx.de> 1795 1796 * .gitlab-ci.yml: Add automated coverity scan 1797 1798 This only works on a branch called 'coverity-scan' 1799 18002019-10-10 Tim Rühsen <tim.ruehsen@gmx.de> 1801 1802 * tests/libtest.c (wget_test_check_file_system): Use memcmp() instead of strcmp() 1803 18042019-10-10 Tim Rühsen <tim.ruehsen@gmx.de> 1805 1806 * include/wget/wget.h: Add WGET_GCC_UNUSED_RESULT to wget_hashmap_get and wget_stringmap_get 1807 18082019-10-10 Tim Rühsen <tim.ruehsen@gmx.de> 1809 1810 * src/stats_site.c (stats_site_add): Check return value of wget_stringmap_get() 1811 18122019-10-10 Tim Rühsen <tim.ruehsen@gmx.de> 1813 1814 * src/wget.c (in_directory_pattern_list): Return false if fname is NULL 1815 18162019-10-09 Tim Rühsen <tim.ruehsen@gmx.de> 1817 1818 Fix NULL dereference in html_parse() 1819 1820 * src/wget.c (html_parse): Add 'filename' to list of params 1821 1822 Under certain conditions (--convert-links) existing files are 1823 scanned for URLs with 'job' being NULL. We still need a filename 1824 without getting it from job->local_filename, which would cause a 1825 NULL pointer dereference. 1826 18272019-10-09 Tim Rühsen <tim.ruehsen@gmx.de> 1828 1829 * libwget/hsts.c (new_hsts): Check memory allocation 1830 18312019-10-08 Tim Rühsen <tim.ruehsen@gmx.de> 1832 1833 libwget/http.c (wget_http_get_response_cb): Don't ignore response body on header callback failure 1834 18352019-10-08 Tim Rühsen <tim.ruehsen@gmx.de> 1836 1837 Fix directory clash with --no-clobber 1838 1839 * src/wget.c: New functions is_file() and is_directory(), 1840 (prepare_file): Tune clash checks 1841 * tests/test-directory-clash.c: Add two more tests 1842 18432019-10-07 Tim Rühsen <tim.ruehsen@gmx.de> 1844 1845 * libwget/http_parse.c (wget_http_parse_connection): Allow list of tokens 1846 1847 This change detects the keep-alive flag in headers like 1848 Connection: Upgrade, Keep-Alive 1849 18502019-10-07 Tim Rühsen <tim.ruehsen@gmx.de> 1851 1852 * src/wget.c (html_parse): Limit to page requisites only for leaf pages 1853 18542019-10-04 Tim Rühsen <tim.ruehsen@gmx.de> 1855 1856 Rename --retry-on-http-status to --retry-on-http-error 1857 1858 * docs/wget2.md: Likewise 1859 * libwget/http.c: Likewise 1860 * src/options.c: Likewise 1861 * src/wget.c: Likewise 1862 * src/wget_options.h: Likewise 1863 1864 Needed for backward compatibility with Wget 1.x. 1865 18662019-09-29 Tim Rühsen <tim.ruehsen@gmx.de> 1867 1868 * tests/test-compression.c: Replace malloc() by fixed size array 1869 18702019-10-03 Darshit Shah <darnir@gnu.org> 1871 1872 * configure.ac: Update minimum required version 1873 18742019-10-03 Darshit Shah <darnir@gnu.org> 1875 1876 Update Gnulib 1877 1878 * gnulib: Update submodule 1879 * bootstrap.conf: Add module access 1880 18812019-09-25 Tim Rühsen <tim.ruehsen@gmx.de> 1882 1883 Fix bug in wget_dns_cache_add() 1884 1885 * libwget/dns_cache.c (wget_dns_cache_add): 1886 wget_hashmap_get() gets a cache_entry, not a addrinfo 1887 18882019-09-24 Tim Rühsen <tim.ruehsen@gmx.de> 1889 1890 Remove leading WG_ from exit_status_e enums 1891 1892 * src/wget_options.h: Likewise 1893 * src/wget.c: Likewise 1894 * src/options.c: Likewise 1895 18962019-09-24 Tim Rühsen <tim.ruehsen@gmx.de> 1897 1898 Introduce enum type gpg_verify_mode 1899 1900 * src/wget_options.h: Add enum type gpg_verify_mode, 1901 remove leading WGET_ from GPG_VERIFY enums 1902 * src/options.c: Use new enum type 1903 * src/wget.c: Likewise 1904 19052019-09-24 Tim Rühsen <tim.ruehsen@gmx.de> 1906 1907 * src/wget_options.h (struct config): Move members from char to bool 1908 19092019-09-24 Tim Rühsen <tim.ruehsen@gmx.de> 1910 1911 * src/wget_options.h: Use bool for ocsp_date and ocsp_nonce 1912 19132019-09-24 Tim Rühsen <tim.ruehsen@gmx.de> 1914 1915 Introduce enum type https_enforce_mode 1916 1917 * src/options.h: Add enum type https_enforce_mode, 1918 remove leading WGET_ from HTTPS_ENFORCE enums 1919 * src/options.c: Use new enum type 1920 * src/wget.c: Likewise 1921 19222019-09-24 Tim Rühsen <tim.ruehsen@gmx.de> 1923 1924 * src/wget_stats.h: Remove unused macros 1925 19262019-09-24 Tim Rühsen <tim.ruehsen@gmx.de> 1927 1928 * src/wget.c: Improve C99 compliancy 1929 19302019-09-24 Tim Rühsen <tim.ruehsen@gmx.de> 1931 1932 * src/stats_site.c: Improve C99 compliancy 1933 19342019-09-24 Tim Rühsen <tim.ruehsen@gmx.de> 1935 1936 * src/plugin.c: Improve C99 compliancy 1937 19382019-09-24 Tim Rühsen <tim.ruehsen@gmx.de> 1939 1940 * src/options.c: Improve C99 compliancy 1941 19422019-09-24 Tim Rühsen <tim.ruehsen@gmx.de> 1943 1944 * src/log.c: Improve C99 compliancy 1945 19462019-09-24 Tim Rühsen <tim.ruehsen@gmx.de> 1947 1948 * src/job.c: Improve C99 compliancy 1949 19502019-09-24 Tim Rühsen <tim.ruehsen@gmx.de> 1951 1952 * src/gpgme.c: Improve C99 compliancy 1953 19542019-09-24 Tim Rühsen <tim.ruehsen@gmx.de> 1955 1956 * src/bar.c: Improve C99 compliancy 1957 19582019-09-24 Tim Rühsen <tim.ruehsen@gmx.de> 1959 1960 * libwget/xml.c: Improve C99 compliancy 1961 19622019-09-24 Tim Rühsen <tim.ruehsen@gmx.de> 1963 1964 * libwget/utils.c: Improve C99 compliancy 1965 19662019-09-24 Tim Rühsen <tim.ruehsen@gmx.de> 1967 1968 * libwget/ssl_wolfssl.c: Improve C99 compliancy 1969 19702019-09-24 Tim Rühsen <tim.ruehsen@gmx.de> 1971 1972 * libwget/ssl_openssl.c: Improve C99 compliancy 1973 19742019-09-23 Tim Rühsen <tim.ruehsen@gmx.de> 1975 1976 * libwget/io.c: Rely on gnulib poll module 1977 19782019-09-23 Tim Rühsen <tim.ruehsen@gmx.de> 1979 1980 * libwget/ssl_gnutls.c: Improve C99 compliancy 1981 19822019-09-23 Tim Rühsen <tim.ruehsen@gmx.de> 1983 1984 * libwget/sitemap_url.c: Improve C99 compliancy 1985 19862019-09-23 Tim Rühsen <tim.ruehsen@gmx.de> 1987 1988 * libwget/rss_url.c: Improve C99 compliancy 1989 19902019-09-23 Tim Rühsen <tim.ruehsen@gmx.de> 1991 1992 * libwget/random.c: Improve C99 compliancy 1993 19942019-09-23 Tim Rühsen <tim.ruehsen@gmx.de> 1995 1996 * libwget/net.c: Improve C99 compliancy 1997 19982019-09-23 Tim Rühsen <tim.ruehsen@gmx.de> 1999 2000 * libwget/logger.c: Improve C99 compliancy 2001 20022019-09-23 Tim Rühsen <tim.ruehsen@gmx.de> 2003 2004 * libwget/log.c: Improve C99 compliancy 2005 20062019-09-23 Tim Rühsen <tim.ruehsen@gmx.de> 2007 2008 * libwget/iri.c: Improve C99 compliancy 2009 20102019-09-23 Tim Rühsen <tim.ruehsen@gmx.de> 2011 2012 * libwget/io.c: Improve C99 compliancy 2013 20142019-09-23 Tim Rühsen <tim.ruehsen@gmx.de> 2015 2016 * libwget/init.c: Improve C99 compliancy 2017 20182019-09-23 Tim Rühsen <tim.ruehsen@gmx.de> 2019 2020 * libwget/http_highlevel.c: Improve C99 compliancy 2021 20222019-09-23 Tim Rühsen <tim.ruehsen@gmx.de> 2023 2024 Use int64_t for time_t to fix 32bit time_t limitations 2025 2026 * include/wget/wget.h: Use int64_t instead of time_t 2027 * libwget/hpkp.c: Likewise 2028 * libwget/hsts.c: Likewise 2029 * libwget/http_parse.c: Likewise 2030 * libwget/ocsp.c: Likewise 2031 * libwget/ssl_gnutls.c: Likewise 2032 * libwget/tls_session.c: Likewise 2033 * src/options.c: Likewise 2034 * src/stats_site.c: Likewise 2035 * src/wget.c: Likewise 2036 * tests/libtest.c: Likewise 2037 * tests/libtest.h: Likewise 2038 * tests/test-plugin-dummy.c: Likewise 2039 * unit-tests/test.c: Likewise 2040 20412019-09-23 Tim Rühsen <tim.ruehsen@gmx.de> 2042 2043 * libwget/decompressor.c (lzip_decompress): Fix warning 2044 20452019-09-23 Tim Rühsen <tim.ruehsen@gmx.de> 2046 2047 Fix http date functions to use int64_t instead of time_t 2048 2049 * include/wget/wget.h: Change time_t -> int64_t for wget_http_print_date() 2050 and for wget_http_parse_full_date() 2051 * libwget/http_parse.c: Likewise 2052 20532019-09-23 Tim Rühsen <tim.ruehsen@gmx.de> 2054 2055 * tests/libtest.c (wget_test): Print expected+real content of diverting files 2056 20572019-09-23 Tim Rühsen <tim.ruehsen@gmx.de> 2058 2059 Fix time_t to int64_t in cookie code 2060 2061 * libwget/cookie.c: Likewise 2062 * libwget/cookie.h: Likewise 2063 20642019-09-22 Tim Rühsen <tim.ruehsen@gmx.de> 2065 2066 * unit-tests/test-dl.c: Add missing len param to plugin function call 2067 20682019-09-22 Tim Rühsen <tim.ruehsen@gmx.de> 2069 2070 * .gitlab-ci.yml: Add Valgrind/i386 runner 2071 20722019-09-21 Tim Rühsen <tim.ruehsen@gmx.de> 2073 2074 Add unit test test-decompress.c 2075 2076 * unit-tests/Makefile.am: Add test-decompress.c 2077 * unit-tests/test-decompress.c: New file 2078 20792019-09-21 Tim Rühsen <tim.ruehsen@gmx.de> 2080 2081 * libwget/decompressor.c (wget_decompress_open): Fix xz decompression 2082 20832019-09-21 Tim Rühsen <tim.ruehsen@gmx.de> 2084 2085 Modify wget_decompress() 2nd arg to const 2086 2087 * include/wget/wget.h: Likewise 2088 * libwget/decompressor.c: Likewise 2089 20902019-09-20 Tim Rühsen <tim.ruehsen@gmx.de> 2091 2092 * libwget/decompressor.c: Make use LZ_decompress_finish() 2093 20942019-09-19 Tim Rühsen <tim.ruehsen@gmx.de> 2095 2096 * README.md: Add OSS-Fuzz badge [skip ci] 2097 20982019-09-19 Tim Rühsen <tim.ruehsen@gmx.de> 2099 2100 Implement Accept-Encoding: lzip including decompressor 2101 2102 * README.md: Mention lzip 2103 * configure.ac: Detect lzip 2104 * docs/wget2.md: Document 'lzip' 2105 * include/wget/wget.h: Add wget_content_encoding_lzip 2106 * libwget/decompressor.c: Implement lzip decompression 2107 * libwget/http_parse.c (wget_http_parse_content_encoding): Add "lzip" 2108 * src/options.c: Add code to support lzip 2109 * src/wget.c (http_create_request): Add lzip to Accept-Encoding: if available 2110 * tests/test-compression.c: Add test vector for lzip decompression 2111 21122019-09-19 Tim Rühsen <tim.ruehsen@gmx.de> 2113 2114 * contrib/mk_authors: Simplify getting the latest git tag [skip ci] 2115 21162019-09-19 Tim Rühsen <tim.ruehsen@gmx.de> 2117 2118 * contrib/mk_authors: Fix getting the latest git tag [skip ci] 2119 21202019-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 2121 2122 * libwget/http.c: Improve C99 compliancy 2123 21242019-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 2125 2126 * libwget/html_url.c: Improve C99 compliancy 2127 21282019-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 2129 2130 * libwget/hashmap.c: Improve C99 compliancy 2131 21322019-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 2133 2134 * libwget/hashfile.c: Improve C99 compliancy 2135 21362019-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 2137 2138 * libwget/dns_cache.c: Improve C99 compliancy 2139 21402019-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 2141 2142 * libwget/dns.c: Improve C99 compliancy 2143 21442019-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 2145 2146 * libwget/css_url.c: Improve C99 compliancy 2147 21482019-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 2149 2150 * libwget/console.c: Improve C99 compliancy 2151 21522019-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 2153 2154 * libwget/buffer_printf.c: Improve C99 compliancy 2155 21562019-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 2157 2158 * libwget/buffer.c: Improve C99 compliancy 2159 21602019-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 2161 2162 * libwget/base64.c: Improve C99 compliancy 2163 21642019-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 2165 2166 Remove use of !! in src/ 2167 2168 * src/host.c: Change return type of _search_host_for_free_job() to bool 2169 * src/options.c (selftest_options): Make use of bool 2170 * src/stats_site.c (stats_site_add): Use '!= 0' instead of !! 2171 * src/wget.c: (_get_local_filename): Change type of directories to bool 2172 * src/wget_options.h (struct config): Change type of recursive to bool 2173 21742019-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 2175 2176 * libwget/bar.c: Improve C99 compliancy 2177 21782019-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 2179 2180 * libwget/atom_url.c: Improve C99 compliancy 2181 21822019-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 2183 2184 Change type to bool for wget_tcp_set_ssl/wget_tcp_get_ssl 2185 2186 * include/wget/wget.h: Likewise 2187 * libwget/net.c: Likewise 2188 21892019-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 2190 2191 Use '!= 0' instead of 'git commit --amend' in libwget/ssl_gnutls.c 2192 2193 * include/wget/wget.h (wget_tls_stats_data): Change type of tfo and false_start to bool 2194 * libwget/ssl_gnutls.c: Use bool in _session_context, 2195 remove use of !! 2196 21972019-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 2198 2199 Change return type of wget_tcp_get_tls_false_start() to bool 2200 2201 * include/wget/wget.h: Likewise 2202 * libwget/net.c: Likewise 2203 22042019-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 2205 2206 Change second param type of wget_tcp_set_tls_false_start() to bool 2207 2208 * include/wget/wget.h: Likewise 2209 * libwget/net.c: Likewise 2210 * src/wget_options.h (struct config): Change type of tls_false_start to bool 2211 22122019-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 2213 2214 Change return type of wget_tcp_get_tcp_fastopen() to bool 2215 2216 * include/wget/wget.h: Likewise 2217 * libwget/net.c: Likewise 2218 22192019-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 2220 2221 Change second param type of wget_tcp_set_tcp_fastopen() to bool 2222 2223 * include/wget/wget.h: Likewise 2224 * libwget/net.c: Likewise 2225 * libwget/init.c (wget_global_init): Fix param type to wget_tcp_set_tcp_fastopen() 2226 * src/wget_options.h (struct config): Change type of tcp_fastopen to bool 2227 22282019-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 2229 2230 * libwget/logger.c: Use '!= 0' instead of !! 2231 22322019-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 2233 2234 * libwget/init.c: Use '!= 0' instead of !! 2235 22362019-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 2237 2238 * libwget/http.c: Use '!= 0' instead of !! 2239 22402019-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 2241 2242 Use bool instead of char in HSTS code 2243 2244 * include/wget/wget.h: Change param to bool in wget_hsts_db_add_fn(), 2245 (struct wget_http_response_st): Use bool for hsts_include_subdomains and keep_alive, 2246 change param to bool in wget_http_parse_strict_transport_security(), 2247 change param to bool in wget_http_parse_connection() 2248 * libwget/hsts.c: change param to bool in new_hsts(), 2249 change param to bool in wget_hsts_db_add() 2250 * libwget/http_parse.c: change param to bool in wget_http_parse_strict_transport_security(), 2251 change param to bool in wget_http_parse_connection() 2252 * tests/test-plugin-dummy.c: change param to bool in test_hsts_db_add() 2253 * unit-tests/test.c (test_hsts): Change type of include_subdomains to bool 2254 22552019-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 2256 2257 Change return type of wget_str_needs_encoding() to bool 2258 2259 * include/wget/wget.h: Likewise 2260 * libwget/encoding.c: Likewise 2261 22622019-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 2263 2264 * libwget/cookie_parse.c (cookie_normalize_cookie): Use '!= 0' instead of !! 2265 22662019-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 2267 2268 Use bool param for wget_cookie_set_keep_session_cookies() 2269 2270 * include/wget/wget.h: Change second param of wget_cookie_set_keep_session_cookies() to bool 2271 * libwget/cookie.c: Likewise 2272 * libwget/init.c (struct _CONFIG): Use bool for cookies_enabled, keep_session_cookies 2273 22742019-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 2275 2276 * libwget/base64.c (_isbase64): Use '!= 0' instead of !! 2277 22782019-09-14 Tim Rühsen <tim.ruehsen@gmx.de> 2279 2280 Add new cookie test 2281 2282 * tests/Makefile.am: Add test-cookies 2283 * tests/test-cookies.c: New file 2284 22852019-09-14 Tim Rühsen <tim.ruehsen@gmx.de> 2286 2287 Add new wget_test() option WGET_TEST_CLEAN_DIRECTORY 2288 2289 * tests/libtest.c: Implement WGET_TEST_CLEAN_DIRECTORY 2290 * tests/libtest.h: Add WGET_TEST_CLEAN_DIRECTORY 2291 22922019-09-16 Tim Rühsen <tim.ruehsen@gmx.de> 2293 2294 Fix for reproducible builds 2295 2296 * .gitignore: Remove src/version-text.h 2297 * cfg.mk: Add rule to update copyright in src/options.c 2298 * configure.ac: Remove YEAR 2299 * src/Makefile.am: Remove version-text.h.in 2300 * src/options.c: Add version text 2301 * src/version-text.h.in: Deleted 2302 2303 Reported-by: Bernhard M. Wiedemann 2304 23052019-09-14 Darshit Shah <darnir@gnu.org> 2306 2307 * libwget/cookie_parse.c: Fix spelling issue 2308 23092019-09-13 Darshit Shah <darnir@gnu.org> 2310 2311 Don't call libwget as Wget / Wget2. 2312 2313 Functions in Libwget may be called from other client applications as 2314 well. They should not report that the job was done by Wget / Wget2, but 2315 instead they should state that it was doen by libwget. 2316 2317 * libwget/bar.c(_bar_update): Remove reference to Wget 2318 * libwget/list.c: Same 2319 * libwget/cookie.c(cookie_db_save): Wget -> libwget 2320 * libwget/error.c(wget_strerror): Same 2321 * libwget/hpkp_db.c(hpkp_db_save): Same 2322 * libwget/hsts.c(hsts_db_save): Same 2323 * libwget/ocsp.c(ocsp_db_save_hosts): Same 2324 * libwget/printf.c: Same 2325 * libwget/ssl_gnutls.c(wget_ssl_open: Same 2326 * libwget/tls_session.c(tls_session_db_save): Same 2327 23282019-09-12 Ander Juaristi <a@juaristi.eus> 2329 2330 OpenSSL: Release cert chain (more memleaks) 2331 2332 * libwget/ssl_openssl.c (_openssl_revocation_check_fn): free 2333 cert chain in all error paths 2334 23352019-09-04 Ander Juaristi <a@juaristi.eus> 2336 2337 OpenSSL: fix memory leaks 2338 23392019-09-11 Darshit Shah <darnir@gnu.org> 2340 2341 Remove gettext support in tests/ 2342 2343 * tests/libtest.h: Remove gettext support entirely 2344 * tests/test-iri-subdir.c: Needs the string.h header 2345 * tests/test-limit-rate-http2.c: Same 2346 * tests/test-limit-rate.c: Same 2347 * tests/test-metalink.c: Same 2348 * tests/gpg-test-util.h: Same 2349 * tests/test-gpg-save-failed.c: Same 2350 * tests/test-include-and-exclude-directories.c: Same 2351 23522019-09-10 Darshit Shah <darnir@gnu.org> 2353 2354 Use gnulib's update-copyright module 2355 2356 * bootstrap.conf: Add update-copyright module 2357 * cfg.mk: Setup environment for update-copyright 2358 * contrib/update_copyright: Remove script no longer used 2359 * libwget/ssl_openssl: Fix copyright year 2360 * tests/test-post-handshare-auth.c: Fix copyright years 2361 * contrib/commit-check: Add copyright and license 2362 * contrib/mail.sh: Same 2363 * src/version-text.h.in: Same 2364 23652019-09-08 Darshit Shah <darnir@gnu.org> 2366 2367 Update Copyright statements to be compatible with update-copyright module 2368 23692019-09-10 Darshit Shah <darnir@gnu.org> 2370 2371 Update cfg.mk. Add comments for future 2372 2373 * cfg.mk: Multiple changes. 2374 (sc_GPL_version): Don't exclude all files when only one has a parsing 2375 issue 2376 (sc_po_check): Tests should always output English. Their output is for 2377 developers, not users 2378 (sc_prohibit_magic_number_exit): tests/test-plugin.c has a parsing 2379 issue that has been reported to gnulib. Others should be checked. 2380 (sc_trailing_blank): Fixed the relevant files instead of ignoring them 2381 (sc_two_space_separator_in_usage): Doesn't seem to trigger on removal 2382 (sc_prohibit_empty_lines_at_EOF): Same 2383 (sc_prohibit_sprintf): Same 2384 (sc_prohibit_printf): Re-arrange within file 2385 (sc_prohibit_free): Same 2386 (sc_prohibit_alloc): Same 2387 (sc_gettext_printf): Same 2388 * docs/DoxygenLayout.xml: Remove trailing whitespaces 2389 * docs/libwget.doxy.in: Same 2390 * tests/libtest.c: Don't internationalize test suite strings 2391 * tests/test-*.c: Use EXIT_FAILURE and EXIT_SUCCESS instead of 1 and 0 2392 23932019-09-10 Darshit Shah <darnir@gnu.org> 2394 2395 * cfg.mk: We don't cast arguments to free anywhere 2396 23972019-09-10 Tim Rühsen <tim.ruehsen@gmx.de> 2398 2399 Revert "* cfg.mk: We don't need to exclude gnulib from syntax-check" [ci skip] 2400 2401 This reverts commit 074983606b3536d0cf2677beb0ed523dd43145e3. 2402 2403 Also added a comment in cfg.mk to explain why 2404 24052019-08-22 Ander Juaristi <a@juaristi.eus> 2406 2407 * libwget/ssl_openssl.c: Implement ALPN 2408 24092019-09-07 Darshit Shah <darnir@gnu.org> 2410 2411 * cfg.mk: We don't need to exclude gnulib from syntax-check 2412 24132019-09-06 Tim Rühsen <tim.ruehsen@gmx.de> 2414 2415 * libwget/init.c (wget_global_get_ptr): Fix return type for WGET_COOKIE_DB 2416 24172019-09-06 Tim Rühsen <tim.ruehsen@gmx.de> 2418 2419 * libwget/dns.c: Add constructor & destructor for global mutex 2420 24212019-09-06 Tim Rühsen <tim.ruehsen@gmx.de> 2422 2423 * examples/http_get.c: Use https:// instead of http:// 2424 24252019-09-02 Tim Rühsen <tim.ruehsen@gmx.de> 2426 2427 Rename wget_html_parsed_url.dir -> wget_html_parsed_url.tag 2428 2429 * include/wget/wget.h: Rename wget_html_parsed_url.dir -> wget_html_parsed_url.tag 2430 * examples/print_html_urls.c: Likewise 2431 * libwget/html_url.c: Likewise 2432 * src/wget.c: Likewise 2433 24342019-09-01 Ander Juaristi <a@juaristi.eus> 2435 2436 OpenSSL: Fix CRL checking 2437 2438 Check CRLs properly on the OpenSSL backend. CRLs were previously bypassed 2439 because OpenSSL's internal certificate verification function was being overridden. 2440 2441 We need to provide our own verification callback for HPKP and OCSP, but this callback is now 2442 introduced later in the verification chain, so that it does no longer override OpenSSL's checks. 2443 2444 This commit also re-enables a CRL test on OpenSSL, which would previously only run on the GnuTLS backend. 2445 2446 * libwget/ssl_openssl.c (openssl_init): Register verification callback, rather than revocation one. 2447 (_openssl_revocation_check_fn): Adhere to verification callback interface. 2448 * tests/test-i-https.c: Enable CRL test for OpenSSL (but keep it disabled for wolfSSL) 2449 2450 Signed-off-by: Ander Juaristi <a@juaristi.eus> 2451 24522019-08-30 Tim Rühsen <tim.ruehsen@gmx.de> 2453 2454 Add script to generate list of authors by # of commits 2455 2456 * .mailmap: Map authors when using different names/email addresses 2457 * contrib/mk_authors: Create list of authors sorted by # of commits 2458 * contrib/release: Mention contrib/mk_authors 2459 24602019-08-30 Tim Rühsen <tim.ruehsen@gmx.de> 2461 2462 Release 1.99.2 (beta) 2463 24642019-08-30 Tim Rühsen <tim.ruehsen@gmx.de> 2465 2466 Only use clang's Nullability feature with enabled manywarnings 2467 24682019-08-21 Darshit Shah <darnir@gnu.org> 2469 2470 * bootstrap.conf: Add gnulib modules for non-portable function calls 2471 24722019-08-21 Darshit Shah <darnir@gnu.org> 2473 2474 Remove portability warnings from configure 2475 2476 * configure.ac: Don't warn when we use GNU Make extensions. 2477 We have already dug into this by disabling the relevant syntax-check 2478 rule as well. The recent commit adding support for gcov based code 2479 coverage adds more GNU make specific rules. 2480 24812019-08-29 Tim Rühsen <tim.ruehsen@gmx.de> 2482 2483 Fix hashing with Gcrypt backend 2484 24852019-08-29 Tim Rühsen <tim.ruehsen@gmx.de> 2486 2487 Fix hashing with Nettle backend 2488 24892019-08-29 Tim Rühsen <tim.ruehsen@gmx.de> 2490 2491 Fix hashing with OpenSSL backend 2492 24932019-08-29 Tim Rühsen <tim.ruehsen@gmx.de> 2494 2495 Fix hashing with GnuTLS backend 2496 2497 * libwget/hashfile.c: Fix the GnuTLS functions 2498 24992019-08-29 Tim Rühsen <tim.ruehsen@gmx.de> 2500 2501 * libwget/hashfile.c (wget_hash_file_fd): Do not close fd on error 2502 25032019-08-29 Tim Rühsen <tim.ruehsen@gmx.de> 2504 2505 Fix hashing with WolfTLS backend 2506 2507 * include/wget/wget.h: Change param for wget_hash_init(), 2508 change param and return type for wget_hash_deinit() 2509 * libwget/hashfile.c: Rewrite hashing functions for WITH_LIBWOLFCRYPT 2510 * unit-tests/test.c: Add tests for incremental hashing 2511 25122019-08-28 Tim Rühsen <tim.ruehsen@gmx.de> 2513 2514 * configure.ac: Fix TLS/hashing detection 2515 25162019-08-28 Tim Rühsen <tim.ruehsen@gmx.de> 2517 2518 * tests/test-i-https.c: CRL test only for GnuTLS 2519 25202019-08-25 Tim Rühsen <tim.ruehsen@gmx.de> 2521 2522 Update test suite certs and build script 2523 2524 * tests/certs/revoked-template.txt: New file 2525 * tests/certs/ca-template.txt: Update 2526 * tests/certs/generate_certs.sh: Use revoked-template.txt 2527 * tests/certs/server-template.txt: Update 2528 * tests/certs/*.pem: Update, generated by generate_certs.sh 2529 25302019-08-23 Tim Rühsen <tim.ruehsen@gmx.de> 2531 2532 * libwget/ssl_openssl.c: Fix some assignment warnings 2533 25342019-08-23 Tim Rühsen <tim.ruehsen@gmx.de> 2535 2536 * libwget/ssl_openssl.c: Apply fixes due to rebasing 2537 25382019-08-23 Tim Rühsen <tim.ruehsen@gmx.de> 2539 2540 * libwget/hashfile.c: Make use of WGET_E_UNSUPPORTED 2541 25422019-08-23 Tim Rühsen <tim.ruehsen@gmx.de> 2543 2544 * libwget/error.c (wget_strerror): Add WGET_E_UNSUPPORTED 2545 25462019-08-22 Ander Juaristi <ajuaristi@gmx.es> 2547 2548 Add more hash backends 2549 25502019-07-08 Tim Rühsen <tim.ruehsen@gmx.de> 2551 2552 * libwget/ssl_openssl.c: Do not translate debug messages 2553 25542019-07-08 Tim Rühsen <tim.ruehsen@gmx.de> 2555 2556 * libwget/ssl_openssl.c (verify_hpkp): Add switch default 2557 25582019-07-08 Tim Rühsen <tim.ruehsen@gmx.de> 2559 2560 * libwget/ssl_openssl.c: Fix indentation 2561 25622019-07-08 Tim Rühsen <tim.ruehsen@gmx.de> 2563 2564 * libwget/ssl_openssl.c (openssl_load_trust_files_from_directory): Cleanup 2565 25662019-07-08 Tim Rühsen <tim.ruehsen@gmx.de> 2567 2568 * .gitlab-ci.yml: Add OpenSSL runner 2569 25702019-07-08 Tim Rühsen <tim.ruehsen@gmx.de> 2571 2572 * .gitlab-ci.yml: Fix WolfSSL CI build 2573 25742019-07-08 Tim Rühsen <tim.ruehsen@gmx.de> 2575 2576 * libwget/ssl_openssl.c (openssl_load_trust_file): Use buffer printf instead of VLA 2577 25782019-07-07 Tim Rühsen <tim.ruehsen@gmx.de> 2579 2580 * libwget/ssl_openssl.c: Rebase for new stats API 2581 25822019-06-17 Ander Juaristi <a@juaristi.eus> 2583 2584 Rebase wolfssl branch 2585 2586 * configure.ac: Pretty print 'SSL/TLS support' 2587 * libwget/Makefile.am: Cleanup logic 2588 25892019-06-15 Ander Juaristi <a@juaristi.eus> 2590 2591 * configure.ac: Add SSL/TLS option wolfssl 2592 25932018-09-16 Ander Juaristi <a@juaristi.eus> 2594 2595 SSL/TLS: Add OpenSSL support 2596 2597 * configure.ac: Add --with-ssl=[no,openssl,gnutls], remove --without-gnutls 2598 * libwget/Makefile.am: Add ssl_openssl.c 2599 * libwget/ssl_openssl.c: New file 2600 * po/POTFILES.in: Add libwget/ssl_openssl.c 2601 26022019-08-28 Tim Rühsen <tim.ruehsen@gmx.de> 2603 2604 * configure.ac: Add -Wno-used-but-marked-unused to GNULIB_WARN_FLAGS 2605 26062019-08-27 DalmeGNU <dalmemail@gmail.com> 2607 2608 * benchmarks/sources/curl.bench.sh: Build curl with GnuTLS, in order to have SSL support 2609 26102019-08-26 Tim Rühsen <tim.ruehsen@gmx.de> 2611 2612 * src/options.c (_preload_dns_cache): Don't wait for stdin while testing 2613 26142019-08-25 Tim Rühsen <tim.ruehsen@gmx.de> 2615 2616 * contrib/spell-checker: Do not check tests/certs/README.md 2617 26182019-08-25 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 2619 2620 * tests/certs/README.md: Added README for certificate generation 2621 26222019-08-24 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 2623 2624 Regenerating certificates for openssl compatibility 2625 2626 * tests/certs/generate_certs.sh: Script for certificate generation 2627 * tests/certs/x509-ca-cert.pem: CA certificate 2628 * tests/certs/x509-ca-key.pem: CA key 2629 * tests/certs/x509-server-cert.pem: Server certificate 2630 * tests/certs/x509-server-key.pem: Server key 2631 * tests/certs/x509-server-crl.pem: CRL for the server certificate 2632 * tests/certs/ca-template.txt: Template for CA Certificate 2633 * tests/certs/server-template.txt: Template for Server Certificate 2634 26352019-08-23 DalmeGNU <dalmemail@gmail.com> 2636 2637 Recursive mode now works with -N --no-if-modified-since 2638 2639 * src/wget.c: Likewise 2640 * tests/test-timestamping.c: Added tests for -N -r (with If-Modified-Since) and amended the ones without If-Modified-Since 2641 * tests/test-include-and-exclude-directories.c: Amended tests that use -N --no-if-modified-since -r 2642 * tests/test--filter-mime-type.c: Amended tests that use -N --no-if-modified-since -r 2643 26442019-08-23 Tim Rühsen <tim.ruehsen@gmx.de> 2645 2646 Update NEWS 2647 26482019-08-23 Tim Rühsen <tim.ruehsen@gmx.de> 2649 2650 * include/wget/wget.h: Fix typos 2651 26522019-08-23 Tim Rühsen <tim.ruehsen@gmx.de> 2653 2654 * contrib/spell-checker: Abort on error (set -e) 2655 26562019-08-22 DalmeGNU <dalmemail@gmail.com> 2657 2658 Consider files as 'application/octet-stream' if MIME is not present 2659 2660 * src/wget.c: Likewise, following RFC 7231 2661 * tests/test--filter-mime-type.c: Added tests to ensure this behavior is present 2662 * docs/wget2.md: Added this new behavior to the docs 2663 26642019-08-23 Tim Rühsen <tim.ruehsen@gmx.de> 2665 2666 * libwget/net.h: Include netdb.h for struct addrinfo [skip ci] 2667 26682019-08-18 DalmeGNU <dalmemail@gmail.com> 2669 2670 Implement --no-if-modified-since 2671 2672 * src/options.c: Added new option --if-modified-since, and prevented certain combination of flags 2673 * src/wget.c: Added -N --no-if-modified-since implementation itself 2674 * src/wget_job.h: Added bool 'recursive_send_head' to JOB structure 2675 * src/wget_options.h: Added char 'if_modified_since' to config structure 2676 * tests/test--accept.c: Added tests that make use of -N --no-if-modified-since 2677 * tests/test--filter-mime-type.c: Added tests that make use of -N --no-if-modified-since 2678 * tests/test-include-and-exclude-directories.c: Added tests that make use of -N --no-if-modified-since 2679 * tests/test-timestamping.c: Added tests for -N --no-if-modified-since 2680 * docs/wget2.md: Unmarked --no-if-modified-since as "Not Implemented Yet" 2681 26822019-08-17 DalmeGNU <dalmemail@gmail.com> 2683 2684 * src/options.c: Prevent certain combination of flags with -N (as in wget1.x) 2685 26862019-08-15 DalmeGNU <dalmemail@gmail.com> 2687 2688 Move -N mode tests into a separate file 2689 2690 * tests/test-wget-1.c: Removed -N (timestamping) tests 2691 * tests/test-timestamping.c: Added -N tests from tests/test-wget-1.c 2692 * tests/Makefile.am: Added tests/test-timestamping.c to Makefile 2693 26942019-08-22 Tim Rühsen <tim.ruehsen@gmx.de> 2695 2696 * .gitlab-ci.yml: Use --disable-threads on FreeBSD instead MinGW CI runner 2697 26982019-08-20 DalmeGNU <dalmemail@gmail.com> 2699 2700 * tests/libtest.c: Create directories if needed when creating WGET_TEST_EXISTING_FILES 2701 27022019-08-22 Tim Rühsen <tim.ruehsen@gmx.de> 2703 2704 * src/utils.c (mkdir_path): Do not write 'fname' param 2705 27062019-08-22 Tim Rühsen <tim.ruehsen@gmx.de> 2707 2708 * src/Makefile.am: Add -DMALLOC_RETURNS_NONNULL to AM_CFLAGS 2709 27102019-08-22 Tim Rühsen <tim.ruehsen@gmx.de> 2711 2712 * configure.ac: AC_SUBST BZ2_LIBS 2713 27142019-08-22 Tim Rühsen <tim.ruehsen@gmx.de> 2715 2716 * libwget/decompressor.c: Improve C99 compliance, check memory allocation 2717 27182019-08-21 Tim Rühsen <tim.ruehsen@gmx.de> 2719 2720 * tests/libtest.c (_insert_ports): Fix for reject_https_connection 2721 27222019-08-21 Tim Rühsen <tim.ruehsen@gmx.de> 2723 2724 Fix --https-enforce tests 2725 2726 * tests/test--https-enforce-hard3.c: Add --default-http-port={{port}} 2727 * tests/test--https-enforce-soft1.c: Use WGET_TEST_HTTPS_REJECT_CONNECTIONS 2728 * tests/test--https-enforce-soft2.c: Use WGET_TEST_HTTP_REJECT_CONNECTIONS 2729 * tests/test--https-enforce-soft3.c: Remove space (cleanup only) 2730 27312019-08-21 Tim Rühsen <tim.ruehsen@gmx.de> 2732 2733 * tests/test--https-enforce-hard2.c: Allow error code 4 and 5 2734 27352019-08-21 Tim Rühsen <tim.ruehsen@gmx.de> 2736 2737 * tests/libtest.c: Add WGET_TEST_EXPECTED_ERROR_CODE2 2738 27392019-08-21 Tim Rühsen <tim.ruehsen@gmx.de> 2740 2741 * tests/test--https-enforce-hard3.c: Make test behave stable 2742 27432019-08-21 Tim Rühsen <tim.ruehsen@gmx.de> 2744 2745 * tests/test--https-enforce-hard2.c: Make test behave stable 2746 27472019-08-21 Tim Rühsen <tim.ruehsen@gmx.de> 2748 2749 Add WGET_TEST_HTTP_REJECT_CONNECTIONS to test suite 2750 2751 * tests/libtest.h: Add WGET_TEST_HTTP_REJECT_CONNECTIONS 2752 * tests/libtest.c: Implement WGET_TEST_HTTP_REJECT_CONNECTIONS 2753 27542019-08-21 Tim Rühsen <tim.ruehsen@gmx.de> 2755 2756 * libwget/iri.c (wget_iri_set_scheme): Fix amending https port 2757 27582019-08-21 Tim Rühsen <tim.ruehsen@gmx.de> 2759 2760 * libwget/Makefile.am: Fix 'make code-coverage-capture' for gcc 9 2761 27622019-08-20 Tim Rühsen <tim.ruehsen@gmx.de> 2763 2764 * libwget/buffer.c (wget_buffer_deinit): Fix NONNULL issue 2765 27662019-08-20 Tim Rühsen <tim.ruehsen@gmx.de> 2767 2768 * src/wget.c (sitemap_parse_xml_gz): Use stack memory for wget_buffer 2769 27702019-08-20 Tim Rühsen <tim.ruehsen@gmx.de> 2771 2772 * libwget/xml.c (wget_xml_parse_file): Use stack memory for wget_buffer 2773 27742019-08-20 Tim Rühsen <tim.ruehsen@gmx.de> 2775 2776 * libwget/css.c (wget_css_parse_file): Use stack memory for wget_buffer 2777 27782019-08-20 Tim Rühsen <tim.ruehsen@gmx.de> 2779 2780 * libwget/buffer.c: Add examples to documentation 2781 27822019-08-19 Tim Rühsen <tim.ruehsen@gmx.de> 2783 2784 Cleanup + amend return vales of buffer functions 2785 2786 * include/wget/wget.h: Add wget_buffer.error 2787 * libwget/buffer.c: Amend docs, 2788 change return type of wget_buffer_init(), 2789 amend wget_buffer_alloc(), 2790 set buf.error in _buffer_realloc() 2791 * libwget/printf.c: Check buf.error, return (size_t)-1 2792 * unit-tests/test.c: Amend tests appropriately 2793 27942019-08-19 Tim Rühsen <tim.ruehsen@gmx.de> 2795 2796 * libwget/buffer.c (_buffer_realloc): Make use of realloc() if possible 2797 27982019-08-17 Tim Rühsen <tim.ruehsen@gmx.de> 2799 2800 Fix more docs [skip ci] 2801 28022019-08-17 Tim Rühsen <tim.ruehsen@gmx.de> 2803 2804 Fix docs for wget_bitmap_init() [skip ci] 2805 28062019-08-14 DalmeGNU <dalmemail@gmail.com> 2807 2808 Improvements on the progress bar 2809 2810 * docs/wget2.md: There is no default progress value 2811 * src/options.c: If no progress type specifier is given return an error 2812 * src/wget.c: Set global file size and already downloaded amount when continuing a download 2813 28142019-08-17 Tim Rühsen <tim.ruehsen@gmx.de> 2815 2816 Fix checking return value of wget_vector_find() 2817 2818 * src/options.c: Likewise 2819 * src/wget.c: Likewise 2820 28212019-08-17 Tim Rühsen <tim.ruehsen@gmx.de> 2822 2823 * .gitlab-ci.yml: Fix clang build on FreeBSD 2824 28252019-08-17 Tim Rühsen <tim.ruehsen@gmx.de> 2826 2827 * libwget/bitmap.c: Small cleanup 2828 28292019-08-17 Tim Rühsen <tim.ruehsen@gmx.de> 2830 2831 * examples/Makefile.am: Add -DMALLOC_RETURNS_NONNULL to AM_CFLAGS and AM_CPPFLAGS 2832 28332019-08-17 Tim Rühsen <tim.ruehsen@gmx.de> 2834 2835 Introduce WGET_E_IO 2836 2837 * include/wget/wget.h: Introduce WGET_E_IO 2838 * libwget/error.c: Add WGET_E_IO to wget_strerror() 2839 * libwget/hashfile.c: Make use of WGET_E_IO 2840 * libwget/io.c: Likewise 2841 28422019-08-17 Tim Rühsen <tim.ruehsen@gmx.de> 2843 2844 * libwget/http.c (wget_http_match_no_proxy): Check value from wget_vector_get() 2845 28462019-08-17 Tim Rühsen <tim.ruehsen@gmx.de> 2847 2848 Rename WGET_E_OPEN_FILE -> WGET_E_OPEN 2849 2850 * include/wget/wget.h: Rename WGET_E_OPEN_FILE -> WGET_E_OPEN 2851 * libwget/io.c: Likewise 2852 * libwget/netrc.c: Likewise 2853 28542019-08-17 Tim Rühsen <tim.ruehsen@gmx.de> 2855 2856 Cleanup vector functions and docs 2857 28582019-08-17 Tim Rühsen <tim.ruehsen@gmx.de> 2859 2860 * libwget/test_linking.c: Don't give NULL to wget_plugin_get_name() 2861 28622019-08-17 Tim Rühsen <tim.ruehsen@gmx.de> 2863 2864 * libwget/http_parse.c (wget_http_parse_response_header): Check memory allocation 2865 28662019-08-17 Tim Rühsen <tim.ruehsen@gmx.de> 2867 2868 * libwget/http_highlevel.c (wget_http_get): Check vector creation 2869 28702019-08-17 Tim Rühsen <tim.ruehsen@gmx.de> 2871 2872 * libwget/http.c (wget_http_create_request): Check memory allocation 2873 28742019-08-17 Tim Rühsen <tim.ruehsen@gmx.de> 2875 2876 * libwget/hpkp_db.c (hpkp_db_load): Check memory allocations 2877 28782019-08-17 Tim Rühsen <tim.ruehsen@gmx.de> 2879 2880 * libwget/vector.c: Check memory allocation 2881 28822019-08-17 Tim Rühsen <tim.ruehsen@gmx.de> 2883 2884 * include/wget/wget.h: Add NULLABLE to more functions 2885 28862019-08-17 Tim Rühsen <tim.ruehsen@gmx.de> 2887 2888 * libwget/io.c: Fix return values, add memory check 2889 28902019-08-17 Tim Rühsen <tim.ruehsen@gmx.de> 2891 2892 * src/job.c (job_validate_file): Fix check for wget_truncate() return 2893 28942019-08-17 Tim Rühsen <tim.ruehsen@gmx.de> 2895 2896 * gnulib: Update 2897 28982019-08-17 Tim Rühsen <tim.ruehsen@gmx.de> 2899 2900 * libwget/iri.c (wget_iri_parse): Avoid casts to suppress warning 2901 29022019-08-17 Tim Rühsen <tim.ruehsen@gmx.de> 2903 2904 * libwget/iri.c (wget_iri_parse): Return NULL on unknown scheme 2905 29062019-08-17 Tim Rühsen <tim.ruehsen@gmx.de> 2907 2908 * libwget/iri.c (wget_iri_parse): Set scheme to -1 if unknown 2909 29102019-08-16 Tim Rühsen <tim.ruehsen@gmx.de> 2911 2912 * libwget/netrc.c (wget_netrc_db_load): Check memory allocation 2913 29142019-08-16 Tim Rühsen <tim.ruehsen@gmx.de> 2915 2916 * libwget/http_parse.c (wget_http_parse_header_line): Check memory allocation 2917 29182019-08-16 Tim Rühsen <tim.ruehsen@gmx.de> 2919 2920 * libwget/http.c (_parse_no_proxies): Check memory allocation 2921 29222019-08-16 Tim Rühsen <tim.ruehsen@gmx.de> 2923 2924 * libwget/cookie_parse.c (cookie_normalize_cookie): Check memory allocation 2925 29262019-08-16 Tim Rühsen <tim.ruehsen@gmx.de> 2927 2928 * examples/batch_loader.c: Check return value of wget_strmemdup() 2929 29302019-08-16 Tim Rühsen <tim.ruehsen@gmx.de> 2931 2932 * examples/check_url_types.c: Check return value of wget_strmemdup() 2933 29342019-08-16 Tim Rühsen <tim.ruehsen@gmx.de> 2935 2936 * include/wget/wget.h: Nullable wget_memdup, wget_strdup, wget_strmemdup 2937 29382019-08-16 Tim Rühsen <tim.ruehsen@gmx.de> 2939 2940 * .gitlab-ci.yml (Debian/HTTP2): Allow failure set to true 2941 29422019-08-16 Tim Rühsen <tim.ruehsen@gmx.de> 2943 2944 * unit-tests/Makefile.am: Add -DMALLOC_RETURNS_NONNULL to AM_CFLAGS and AM_CPPFLAGS 2945 29462019-08-16 Tim Rühsen <tim.ruehsen@gmx.de> 2947 2948 * unit-tests/test-dl.c (string_vector_check): Fix va_list leak 2949 29502019-08-16 Tim Rühsen <tim.ruehsen@gmx.de> 2951 2952 * libwget/tls_session.c: Check memory allocations 2953 29542019-08-16 Tim Rühsen <tim.ruehsen@gmx.de> 2955 2956 * libwget/http_parse.c: Check memory allocations 2957 29582019-08-16 Tim Rühsen <tim.ruehsen@gmx.de> 2959 2960 * libwget/netrc.c: Check memory allocations 2961 29622019-08-16 Tim Rühsen <tim.ruehsen@gmx.de> 2963 2964 * libwget/ocsp.c: Check memory allocations 2965 29662019-08-16 Tim Rühsen <tim.ruehsen@gmx.de> 2967 2968 * libwget/hsts.c: Check memory allocations 2969 29702019-08-16 Tim Rühsen <tim.ruehsen@gmx.de> 2971 2972 * libwget/bar.c: Check memory allocations 2973 29742019-08-16 Tim Rühsen <tim.ruehsen@gmx.de> 2975 2976 * libwget/io.c: Check memory allocations 2977 29782019-08-16 Tim Rühsen <tim.ruehsen@gmx.de> 2979 2980 * libwget/encoding.c (wget_memiconv): Check memory allocations, return WGET_E_* codes 2981 29822019-08-15 Tim Rühsen <tim.ruehsen@gmx.de> 2983 2984 * libwget/net.c (wget_tcp_init): Check malloc return value 2985 29862019-08-15 Tim Rühsen <tim.ruehsen@gmx.de> 2987 2988 Introduce nullability support for clang's static analyzer 2989 2990 * configure.ac: Add -Wno-nullability-extension -Wno-nullability-completeness to WARN_CFLAGS 2991 * include/wget/wget.h: Add CLANG_VERSION_AT_LEAST, 2992 fix attribute defines for clang, 2993 make use of attributes by using static inline functions for wget allocation, 2994 define NULLABLE for clang 2995 * libwget/xalloc.c: Rename wget allocation function pointers 2996 * src/options.c: Likewise 2997 * unit-tests/test.c: Likewise 2998 29992019-08-15 Tim Rühsen <tim.ruehsen@gmx.de> 3000 3001 * libwget/http_highlevel.c (wget_http_get): Fix va_list leakage 3002 30032019-08-15 Tim Rühsen <tim.ruehsen@gmx.de> 3004 3005 * .gitlab-ci.yml: Use clang and enable valist checker with scan-build 3006 30072019-08-15 Tim Rühsen <tim.ruehsen@gmx.de> 3008 3009 * libwget/test_linking.c: Fix clang warning (needless semicolon) 3010 30112019-08-15 Tim Rühsen <tim.ruehsen@gmx.de> 3012 3013 * libwget/test_linking.c: Make use of return value of wget_strdup() 3014 30152019-08-15 Tim Rühsen <tim.ruehsen@gmx.de> 3016 3017 * libwget/Makefile.am: Add -DBUILDING_LIBWGET to AM_CFLAGS 3018 30192019-08-15 Tim Rühsen <tim.ruehsen@gmx.de> 3020 3021 * include/wget/wget.h: Define WGET_GCC_RETURNS_NONNULL for clang as well 3022 30232019-08-15 Tim Rühsen <tim.ruehsen@gmx.de> 3024 3025 * libwget/ssl_gnutls.c (wget_ssl_open): Avoid 0 size VLA 3026 30272019-08-15 Tim Rühsen <tim.ruehsen@gmx.de> 3028 3029 * src/wget.c (http_send_request): Fix possible NULL ptr issue 3030 30312019-08-15 Tim Rühsen <tim.ruehsen@gmx.de> 3032 3033 * tests/libtest.c (_parse_hostname): Silence clang's scan-build 3034 30352019-08-15 Tim Rühsen <tim.ruehsen@gmx.de> 3036 3037 * .gitlab-ci.yml (FreeBSD.x86_64): Do not retry after failure 3038 30392019-05-18 Tim Rühsen <tim.ruehsen@gmx.de> 3040 3041 Add convenience library for src/utils.c 3042 3043 * src/Makefile.am: Add libtest-utils.la 3044 * tests/Makefile.am: Add libtest-utils.la to libtest_la_LIBADD 3045 30462019-08-15 Tim Rühsen <tim.ruehsen@gmx.de> 3047 3048 * src/wget.c (_add_authorize_header): Print error if wget_netrc_db_load() fails 3049 30502019-08-15 Tim Rühsen <tim.ruehsen@gmx.de> 3051 3052 * libwget/netrc.c: Code cleanup 3053 30542019-08-15 Tim Rühsen <tim.ruehsen@gmx.de> 3055 3056 Add new error code WGET_E_OPEN_FILE 3057 30582019-08-14 Tim Rühsen <tim.ruehsen@gmx.de> 3059 3060 * libwget/metalink.c: Make code more C99 compliant 3061 30622019-08-14 Tim Rühsen <tim.ruehsen@gmx.de> 3063 3064 Split hpkp.c into hpkp_db.c, hpkp.c and hpkp.h 3065 3066 * libwget/Makefile.am: Add hpkp.h and hpkp_db.c 3067 * libwget/hpkp.c: Move HPKP database code to hpkp_db.c 3068 * libwget/hpkp.h: New file 3069 * libwget/hpkp_db.c: New file 3070 30712019-08-14 Tim Rühsen <tim.ruehsen@gmx.de> 3072 3073 Split cookie.c into cookie_parse.c, cookie.c and cookie.h 3074 3075 * libwget/Makefile.am: Add cookie.h and cookie_parse.c 3076 * libwget/cookie.c: Move cookie parsing code to cookie_parse.c 3077 * libwget/cookie.h: New file 3078 * libwget/cookie_parse.c: New file 3079 30802019-08-14 DalmeGNU <dalmemail@gmail.com> 3081 3082 * src/options.c: Don't accept negative numbers as a valid byte amount 3083 30842019-08-13 DalmeGNU <dalmemail@gmail.com> 3085 3086 Implement --start-pos option 3087 3088 * src/wget.c: Added --start-pos implementation 3089 * src/options.c: Added --start-pos option and resolved flag combination with --continue 3090 * src/wget_options.h: Added start_pos to the config structure 3091 * docs/wget2.md: Removed "Not Implemented Yet" label from --start-pos documentation 3092 30932019-08-14 Tim Rühsen <tim.ruehsen@gmx.de> 3094 3095 * libwget/iri.c: Cast enums to avoid warnings with clang 3096 30972019-08-13 Tim Rühsen <tim.ruehsen@gmx.de> 3098 3099 Change return type of wget_hpkp_get_n_pins() to int 3100 3101 * include/wget/wget.h: Change return type of wget_hpkp_get_n_pins() to int 3102 * libwget/hpkp.c: Likewise 3103 * unit-tests/test.c: Adjust code, cleanup 3104 31052019-08-13 Tim Rühsen <tim.ruehsen@gmx.de> 3106 3107 Remove global wget_iri_schemes[], add wget_iri_scheme enum 3108 3109 * include/wget/wget.h: Remove global wget_iri_schemes[], 3110 add wget_iri_scheme enum 3111 * libwget/iri.c: Add struct iri_scheme, 3112 remove wget_iri_schemes and iri_ports, 3113 new function wget_iri_scheme_get_name(), 3114 fix code 3115 * examples/check_url_types.c: Use comparison instead of wget_strcasecmp 3116 * fuzz/libwget_iri_fuzzer.c: Use WGET_IRI_SCHEME_HTTPS instead of string 3117 * libwget/http.c: Use wget_iri_scheme_get_name() 3118 * libwget/http.h: Change scheme from string to wget_iri_scheme 3119 * libwget/http_parse.c: Fix wget_http_get_scheme() 3120 * src/blacklist.c: Fix hash_iri() 3121 * src/host.c: Fix _host_hash() 3122 * src/options.c: Use WGET_IRI_SCHEME_* instead of string 3123 * src/stats_server.c: Use wget_iri_scheme for scheme member 3124 * src/wget.c: Fix code 3125 * src/wget_host.h: Use wget_iri_scheme fro scheme member 3126 * unit-tests/test.c: Fix tests 3127 31282019-08-13 Tim Rühsen <tim.ruehsen@gmx.de> 3129 3130 Use more bool in HPKP code 3131 3132 * include/wget/wget.h: Use bool for HPKP functions where possible 3133 * libwget/hpkp.c: Use bool where possible 3134 * libwget/http_parse.c: Use bool for HPKP functions 3135 31362019-08-13 Tim Rühsen <tim.ruehsen@gmx.de> 3137 3138 libwget/tls_session.c: Improve C99 compliance and cleanup 3139 31402019-08-13 Tim Rühsen <tim.ruehsen@gmx.de> 3141 3142 Use more bool in OCSP code 3143 3144 * include/wget/wget.h (wget_ocsp_db_add_fingerprint_fn): bool for last param 3145 * libwget/ocsp.c: Use bool where possible 3146 * libwget/ssl_gnutls.c: Use bool for OCSP functions 3147 31482019-08-13 Tim Rühsen <tim.ruehsen@gmx.de> 3149 3150 libwget/ocsp.c: Improve C99 compliance and cleanup 3151 31522019-08-13 Tim Rühsen <tim.ruehsen@gmx.de> 3153 3154 libwget/hsts.c: Improve C99 compliance and cleanup 3155 31562019-08-13 Tim Rühsen <tim.ruehsen@gmx.de> 3157 3158 libwget/hpkp.c: Improve C99 compliance and cleanup 3159 31602019-08-12 Tim Rühsen <tim.ruehsen@gmx.de> 3161 3162 * .gitlab-ci.yml: Add FreeBSD runner 3163 31642019-08-12 Tim Rühsen <tim.ruehsen@gmx.de> 3165 3166 Remove variadic macro for wget_printf() 3167 3168 * include/wget/wget.h: Remove variadic macro for wget_printf(), 3169 add prototype for wget_printf() 3170 * libwget/printf.c Implement wget_printf(), 3171 fix some wrongly documented return types 3172 31732019-08-12 Tim Rühsen <tim.ruehsen@gmx.de> 3174 3175 * tests/libtest.c: Make post_handshake_auth static 3176 31772019-08-12 Tim Rühsen <tim.ruehsen@gmx.de> 3178 3179 Move server stats code from library into wget2 tool 3180 3181 * fuzz/Makefile.am: Add src/stats_server.c 3182 * src/Makefile.am: Likewise 3183 * unit-tests/Makefile.am: Likewise 3184 * include/wget/wget.h: Move `wget_server_stats_data` to src/stats_server.c, 3185 change wget_server_stats_callback, 3186 change wget_server_set_stats_callback(), 3187 add wget_tcp_get_ip(), 3188 remove host_ips_free() 3189 * libwget/http.c: Move stats code to src/stats_server.c 3190 * libwget/net.c: Add wget_tcp_get_ip() 3191 * src/options.c: Move _hpkp_string() and stats_callback_server() to src/stats_server.c 3192 * src/wget.c (main): Remove call to host_ips_free() 3193 * src/wget_stats.h: Add prototypes of stats_server_add, server_stats_init, server_stats_exit 3194 31952019-08-12 Tim Rühsen <tim.ruehsen@gmx.de> 3196 3197 Fix variables to wget_stats_format 3198 3199 * src/options.c (parse_stats): Use wget_stats_format instead of char 3200 * src/wget_options.h (stats_args): Likewise 3201 32022019-08-12 Tim Rühsen <tim.ruehsen@gmx.de> 3203 3204 Fix variable types of wget_report_speed 3205 3206 * src/options.c (parse_report_speed_type): Fix pointer type 3207 * src/wget_options.h (struct config): Amend type of report_speed 3208 32092019-08-12 Tim Rühsen <tim.ruehsen@gmx.de> 3210 3211 Add typedef 'wget_transfer_encoding' 3212 3213 * include/wget/wget.h: Add typedef 'wget_transfer_encoding' 3214 * libwget/http_parse.c: Make use of wget_transfer_encoding 3215 32162019-08-12 Tim Rühsen <tim.ruehsen@gmx.de> 3217 3218 Rename HTTP parse callback types 3219 3220 * include/wget/wget.h: Rename HTTP parse callback types 3221 * examples/getstream.c: Likewise 3222 * libwget/http.c: Likewise 3223 * libwget/http_highlevel.c: Likewise 3224 32252019-08-12 Tim Rühsen <tim.ruehsen@gmx.de> 3226 3227 Rename wget_xml_callback_t -> wget_xml_callback 3228 3229 * include/wget/wget.h: Rename wget_xml_callback_t -> wget_xml_callback 3230 * libwget/xml.c: Likewise 3231 32322019-08-12 Tim Rühsen <tim.ruehsen@gmx.de> 3233 3234 Rename CSS parse callback types 3235 3236 * include/wget/wget.h: Rename CSS parse callback types 3237 * libwget/css.c: Likewise 3238 32392019-08-12 Tim Rühsen <tim.ruehsen@gmx.de> 3240 3241 Rename wget_decompressor types 3242 3243 * include/wget/wget.h: Rename wget_decompressor types 3244 * libwget/decompressor.c: Likewise 3245 * libwget/http.c: Likewise 3246 * src/options.c: Likewise 3247 * src/wget_options.h: Likewise 3248 32492019-08-12 Tim Rühsen <tim.ruehsen@gmx.de> 3250 3251 Rename wget_stringmap types 3252 3253 * include/wget/wget.h: Rename wget_stringmap types 3254 * unit-tests/stringmap_perf.c: Likewise 3255 * unit-tests/test.c: Likewise 3256 32572019-08-12 Tim Rühsen <tim.ruehsen@gmx.de> 3258 3259 Rename wget_hashmap types 3260 3261 * include/wget/wget.h: Rename wget_hashmap types 3262 * libwget/dns_cache.c: Likewise 3263 * libwget/hashmap.c: Likewise 3264 * libwget/hpkp.c: Likewise 3265 * libwget/hsts.c: Likewise 3266 * libwget/http.c: Likewise 3267 * libwget/netrc.c: Likewise 3268 * libwget/ocsp.c: Likewise 3269 * libwget/stringmap.c: Likewise 3270 * libwget/tls_session.c: Likewise 3271 * src/blacklist.c: Likewise 3272 * src/host.c: Likewise 3273 * src/wget.c: Likewise 3274 32752019-08-12 Tim Rühsen <tim.ruehsen@gmx.de> 3276 3277 Rename wget_vector_destructor_t -> wget_vector_destructor 3278 3279 * include/wget/wget.h: Rename wget_vector_destructor_t -> wget_vector_destructor 3280 * libwget/http.c: Likewise 3281 * libwget/http_parse.c: Likewise 3282 * libwget/vector.c: Likewise 3283 * src/options.c: Likewise 3284 * src/plugin.c: Likewise 3285 * unit-tests/test.c: Likewise 3286 32872019-08-12 Tim Rühsen <tim.ruehsen@gmx.de> 3288 3289 Rename wget_vector_browse_t -> wget_vector_browse_fn 3290 3291 * include/wget/wget.h: Rename wget_vector_browse_t -> wget_vector_browse_fn 3292 * libwget/hpkp.c: Likewise 3293 * libwget/vector.c: Likewise 3294 * src/stats_site.c: Likewise 3295 32962019-08-12 Tim Rühsen <tim.ruehsen@gmx.de> 3297 3298 Rename wget_vector_find_t -> wget_vector_find_fn 3299 3300 * include/wget/wget.h: Rename wget_vector_find_t -> wget_vector_find_fn 3301 * libwget/vector.c: Likewise 3302 33032019-08-12 Tim Rühsen <tim.ruehsen@gmx.de> 3304 3305 Rename wget_vector_compare_t -> wget_vector_compare_fn 3306 3307 * include/wget/wget.h: Rename wget_vector_compare_t -> wget_vector_compare_fn 3308 * libwget/cookie.c: Likewise 3309 * libwget/hpkp.c: Likewise 3310 * libwget/http_parse.c: Likewise 3311 * libwget/metalink.c: Likewise 3312 * libwget/vector.c: Likewise 3313 * src/options.c: Likewise 3314 * tests/test-plugin-dummy.c: Likewise 3315 * unit-tests/test-dl.c: Likewise 3316 * unit-tests/test.c: Likewise 3317 33182019-08-12 Tim Rühsen <tim.ruehsen@gmx.de> 3319 3320 Rename wget_logger_func_t -> wget_logger_func 3321 3322 * include/wget/wget.h: Rename wget_logger_func_t -> wget_logger_func 3323 * libwget/init.c: Likewise 3324 * libwget/logger.c: Likewise 3325 33262019-08-12 Tim Rühsen <tim.ruehsen@gmx.de> 3327 3328 * include/wget/wget.h (wget_buffer): Fix typo 3329 33302019-08-12 Tim Rühsen <tim.ruehsen@gmx.de> 3331 3332 Rename wget_list_browse_t -> wget_list_browse_fn 3333 3334 * include/wget/wget.h: Rename wget_list_browse_t -> wget_list_browse_fn 3335 * libwget/list.c: Likewise 3336 * src/host.c: Likewise 3337 33382019-08-12 Tim Rühsen <tim.ruehsen@gmx.de> 3339 3340 Rename wget_update_(load|save)_t -> wget_update_(load|save)_fn 3341 3342 * include/wget/wget.h: Rename wget_update_(load|save)_t -> wget_update_(load|save)_fn 3343 * libwget/cookie.c: Likewise 3344 * libwget/hpkp.c: Likewise 3345 * libwget/hsts.c: Likewise 3346 * libwget/io.c: Likewise 3347 * libwget/tls_session.c: Likewise 3348 33492019-08-12 Tim Rühsen <tim.ruehsen@gmx.de> 3350 3351 Rename wget_global_get_func_t -> wget_global_func 3352 3353 * include/wget/wget.h: Rename wget_global_get_func_t -> wget_global_func 3354 * libwget/init.c: Likewise 3355 33562019-08-12 Tim Rühsen <tim.ruehsen@gmx.de> 3357 3358 examples/http_get2.c: Cleanup 3359 33602019-08-09 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3361 3362 * tests/test-ocsp-server: Modified to test without OCSP responder's URL 3363 33642019-08-10 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3365 3366 * tests/libtest.c: Freed read response in-case no request is received by the responder 3367 33682019-08-09 Tim Rühsen <tim.ruehsen@gmx.de> 3369 3370 Name unnamed enum to wget_report_speed 3371 3372 * include/wget/wget.h: Name unnamed enum to wget_report_speed, 3373 use wget_report_speed for param of wget_bar_set_speed_type() 3374 * libwget/bar.c: use wget_report_speed for param of wget_bar_set_speed_type() 3375 33762019-08-09 Tim Rühsen <tim.ruehsen@gmx.de> 3377 3378 * libwget/error.c (wget_strerror): Add missing WGET_E_MEMORY handling 3379 33802019-08-09 Tim Rühsen <tim.ruehsen@gmx.de> 3381 3382 wget_strerror(int) -> wget_strerror(wget_error) 3383 3384 * include/wget/wget.h: wget_strerror(int) -> wget_strerror(wget_error) 3385 * libwget/error.c: Likewise 3386 33872019-08-09 Tim Rühsen <tim.ruehsen@gmx.de> 3388 3389 * include/wget/wget.h: Rename wget_error_t -> wget_error 3390 33912019-08-09 Tim Rühsen <tim.ruehsen@gmx.de> 3392 3393 * include/wget/wget.h: Remove unused commented code 3394 33952019-08-09 Tim Rühsen <tim.ruehsen@gmx.de> 3396 3397 * include/wget/wget.h: Remove unused WGET_PREFIX 3398 33992019-08-09 Tim Rühsen <tim.ruehsen@gmx.de> 3400 3401 * libwget/ssl_gnutls.c (wget_ssl_init): Print priorities correctly on error 3402 34032019-08-08 Tim Rühsen <tim.ruehsen@gmx.de> 3404 3405 Changed G_GNUC_WGET prefix to WGET_GCC 3406 3407 * include/wget/wget.h: Changed G_GNUC_WGET prefix to WGET_GCC 3408 * */*.[ch]: Likewise 3409 34102019-08-08 Tim Rühsen <tim.ruehsen@gmx.de> 3411 3412 Add examples/relative_to_absolute_url.c 3413 34142019-08-08 Tim Rühsen <tim.ruehsen@gmx.de> 3415 3416 Allow -1 as len parameter to wget_iri_relative_to_abs() 3417 3418 * libwget/http_highlevel.c (wget_http_get): Use -1 as len 3419 * libwget/iri.c (wget_iri_parse_base): Likewise 3420 * src/wget.c (process_response_header): Likewise 3421 * unit-tests/test.c (test_iri_relative_to_absolute): Likewise 3422 34232019-08-07 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3424 3425 * tests/test-ocsp-stap.c: Removed redundant comment 3426 34272019-08-07 Tim Rühsen <tim.ruehsen@gmx.de> 3428 3429 * .gitlab-ci.yml: Save coverage for HTTP/2 runner as artifact 3430 34312019-08-07 Tim Rühsen <tim.ruehsen@gmx.de> 3432 3433 * unit-tests/Makefile.am: Add CODE_COVERAGE flags 3434 34352019-08-07 Tim Rühsen <tim.ruehsen@gmx.de> 3436 3437 Rename stats types (remove trailing _t) 3438 3439 * include/wget/wget.h: Rename stats types (remove trailing _t) 3440 * libwget/dns.c: Likewise 3441 * libwget/http.c: Likewise 3442 * libwget/net.h: Likewise 3443 * libwget/ssl_gnutls.c: Likewise 3444 * libwget/ssl_none.c: Likewise 3445 * libwget/ssl_wolfssl.c: Likewise 3446 * src/options.c: Likewise 3447 34482019-08-07 Tim Rühsen <tim.ruehsen@gmx.de> 3449 3450 * include/wget/wget.h: Fix type in two comments 3451 34522019-08-07 Tim Rühsen <tim.ruehsen@gmx.de> 3453 3454 Rename wget_hsts_db_t -> wget_hsts_db 3455 3456 * include/wget/wget.h: Rename wget_hsts_db_t -> wget_hsts_db, 3457 * fuzz/libwget_hsts_fuzzer.c: Likewise 3458 * libwget/hsts.c: Likewise 3459 * src/wget_options.h: Likewise 3460 * tests/test-plugin-dummy.c: Likewise 3461 * unit-tests/test.c: Likewise 3462 34632019-08-07 Tim Rühsen <tim.ruehsen@gmx.de> 3464 3465 * include/wget/wget.h: Replace outdated docs for plugins 3466 34672019-08-07 Tim Rühsen <tim.ruehsen@gmx.de> 3468 3469 Rename wget_hpkp_db_t -> wget_hpkp_db and wget_hpkp_t -> wget_hpkp 3470 3471 * include/wget/wget.h: Rename wget_hpkp_db_t -> wget_hpkp_db, 3472 rename wget_hpkp_t -> wget_hpkp 3473 * fuzz/libwget_hpkp_fuzzer.c: Likewise 3474 * libwget/hpkp.c: Likewise 3475 * libwget/http_parse.c: Likewise 3476 * libwget/ssl_gnutls.c: Likewise 3477 * libwget/ssl_wolfssl.c: Likewise 3478 * src/wget_options.h: Likewise 3479 * tests/test-plugin-dummy.c: Likewise 3480 * unit-tests/test.c: Likewise 3481 34822019-08-07 Tim Rühsen <tim.ruehsen@gmx.de> 3483 3484 Rework HPKP DB plugin code 3485 3486 * include/wget/wget.h: Add typedefs for HPKP DB functions, 3487 remove wget_hpkp_db_st, 3488 rewrite wget_hpkp_db_vtable, 3489 add wget_hpkp_set_plugin() 3490 * libwget/hpkp.c: Add one function table for all exposed functions, 3491 implement wget_hpkp_set_plugin(), 3492 call plugin functions if set 3493 * libwget/plugin.c: Remove wget_plugin_add_hpkp_db() 3494 * src/plugin.c: Remove impl_add_hpkp_db() 3495 * tests/test-plugin-dummy.c: Implement dummy hsts db API, 3496 initialize test_hpkp_db_vtable, 3497 call wget_hpkp_set_plugin() in plugin initializer 3498 34992019-08-07 Tim Rühsen <tim.ruehsen@gmx.de> 3500 3501 Rework OCSP DB plugin code 3502 3503 * include/wget/wget.h: Add typedefs for OCSP DB functions, 3504 remove wget_ocsp_db_st, 3505 rewrite wget_ocsp_db_vtable, 3506 add wget_ocsp_set_plugin() 3507 * libwget/ocsp.c: Add one function table for all exposed functions, 3508 implement wget_ocsp_set_plugin(), 3509 call plugin functions if set 3510 * libwget/plugin.c: Remove wget_plugin_add_ocsp_db() 3511 * src/plugin.c: Remove impl_add_ocsp_db() 3512 * tests/test-plugin-dummy.c: Implement dummy hsts db API, 3513 initialize test_ocsp_db_vtable, 3514 call wget_ocsp_set_plugin() in plugin initializer 3515 35162019-08-06 Tim Rühsen <tim.ruehsen@gmx.de> 3517 3518 Rework HSTS DB plugin code 3519 3520 * include/wget/wget.h: Ad typedefs for HSTS DB functions, 3521 remove wget_hsts_db_st, 3522 rewrite wget_hsts_db_vtable, 3523 add wget_hsts_set_plugin() 3524 * libwget/hsts.c: Add one function table for all exposed functions, 3525 implement wget_hsts_set_plugin(), 3526 call plugin functions if set 3527 * libwget/plugin.c: Remove wget_plugin_add_hsts_db() 3528 * src/plugin.c: Remove impl_add_hsts_db() 3529 * tests/test-plugin-dummy.c: Implement dummy hsts db API, 3530 initialize test_hsts_db_vtable, 3531 call wget_hsts_set_plugin() in plugin initializer 3532 35332019-08-05 Tim Rühsen <tim.ruehsen@gmx.de> 3534 3535 Rename plugin types 3536 3537 * include/wget/wget.h: Rename plugin types 3538 * libwget/plugin.c: Likewise 3539 * src/plugin.c: Likeiwse 3540 * src/wget_plugin.h: Likewise 3541 * tests/test-plugin-dummy.c: Likewise 3542 35432019-08-05 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3544 3545 Added support for ax_code_coverage version 32 3546 3547 * Makefile.am: Add code coverage rules as documented in ax_code_coverage.m4 3548 * cfg.mk: Exclude m4 files from sc_GPL_version 3549 * configure.ac: Add AX_CODE_COVERAGE 3550 * fuzz/Makefile.am: Add coverage flags 3551 * libwget/Makefile.am: Likewise 3552 * src/Makefile.am: Likewise 3553 * tests/Makefile.am: Likewise 3554 * m4/ax_ac_append_to_file.m4: New file 3555 * m4/ax_ac_print_to_file.m4: New file 3556 * m4/ax_add_am_macro_static.m4: New file 3557 * m4/ax_am_macros_static.m4: New file 3558 * m4/ax_check_gnu_make.m4: New file 3559 * m4/ax_code_coverage.m4: New file 3560 * m4/ax_file_escapes.m4: New file 3561 35622019-08-04 DalmeGNU <dalmemail@gmail.com> 3563 3564 Background support for fork() compatible OS 3565 3566 * src/wget.c: Added fork_to_background(), in order to implement --background 3567 * src/options.c: Added "--background" to the options list 3568 * src/wget_options.h: Added background member to structure config 3569 * docs/wget2.md: Background option marked as "Not supported on Windows" 3570 35712019-08-04 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3572 3573 Changed validity time for OCSP Stapled Response 3574 3575 * tests/certs/ocsp/generate_stap.sh: Modified to generate longer validity response 3576 * tests/certs/ocsp/ocsp_stapled_resp.der: Regenerated for longer validity 3577 35782019-07-27 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3579 3580 * tests/libtest.c: Resolved tests failure due to OCSP 3581 35822019-06-22 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3583 3584 Add test-limit-rate-http2 3585 3586 * tests/Makefile.am: Added test-limit-rate-http2 3587 * tests/test-limit-rate-http2.c: Cloned 'test-limit-rate' to test for h2 only 3588 35892019-06-22 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3590 3591 * .gitlab-ci.yml: Add Gitlab CI runner for HTTP/2 3592 35932019-06-21 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3594 3595 Making failing tests work on Second Pass 3596 3597 * tests/test--https-enforce-soft3.c: 3598 * tests/test-bad-chunk.c: 3599 * tests/test-chunked.c: 3600 * tests/test-limit-rate.c: 3601 * tests/test-post-handshake-auth.c: Skipped for Second Pass 3602 3603 * tests/test-i-https.c: Added '--no-ca-certificate' in options for expected failure for h2 3604 3605 * tests/test-idn-cmd.c: 3606 * tests/test-idn-meta.c: 3607 * tests/test-idn-robots.c: Dynamic port replacement for http/https proxies 3608 3609 * tests/test-iri.c: 3610 * tests/test-parse-css.c: 3611 * tests/test-parse-html-css.c: Dynamic port replacement for hostname 3612 36132019-06-21 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3614 3615 Adding support for running both http/1.1 and h2 tests 3616 3617 * configure.ac: Modified to have check for availability of MHD-http2 3618 * tests/libtest.c: Modified to run both protocols on existing tests 3619 * tests/libtest.h: Added macros for h2 and modified wget_test_url_t data structure 3620 36212019-06-20 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3622 3623 * tests/libtest.c: Modified Range Header key check to be case-insensitive 3624 36252019-06-20 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3626 3627 * tests/libtest.c: Modified to have compatibility with MHD-http2 3628 36292019-07-25 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3630 3631 * tests/test-ocsp-server.c: Added Revoked OCSP test with --no-check-certificate 3632 36332019-07-25 Tim Rühsen <tim.ruehsen@gmx.de> 3634 3635 * examples/getstream.c: Fix call to wget_http_get() 3636 36372019-07-25 Tim Rühsen <tim.ruehsen@gmx.de> 3638 3639 Fix parsing Location header with trailign digits 3640 3641 * libwget/http_parse.c (wget_http_parse_location): Replace 3642 c_isdigits() by c_isblank() 3643 36442019-07-24 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3645 3646 * tests/certs/ocsp/README.md: Added README for generating generating certificates and response 3647 36482019-07-24 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3649 3650 Splitting certs/resp generator script 3651 3652 * tests/certs/ocsp/generate_certs.sh: Added to generate certificates 3653 * tests/certs/ocsp/generate_resp.sh: Added to generate stapled response 3654 36552019-07-24 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3656 3657 * tests/libtest.c: Removed redundant priority from MHD daemon initialization 3658 36592019-07-24 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3660 3661 * tests/libtest.c: Added file loading checks for OCSP Stapling PEM/DER files 3662 36632019-07-24 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3664 3665 * tests/libtest.c: Moved PEM/DER loading out of _ocsp_stap_cert_callback() 3666 36672019-07-24 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3668 3669 * tests/libtest.c: Dynamically allocating 'privkey_stap' 3670 36712019-07-24 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3672 3673 * tests/libtest.c: Enforced gnutls_certificate_retrieve_function3 type for _ocsp_stap_cert_callback() 3674 36752019-07-24 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3676 3677 * tests/libtest.c: Removed ampersand from MHD_OPTION_HTTPS_CERT_CALLBACK2 value 3678 36792019-07-24 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3680 3681 Added templates, records, and script for OCSP stapling PEM/DER files 3682 3683 * tests/certs/ocsp/demoCA/*: Openssl certificate signing records for root and intermediate 3684 * tests/certs/ocsp/generate_stap.sh: Added script for generating required certificates and response 3685 * tests/certs/ocsp/interm-template.txt: Added template for intermediate certificate 3686 * tests/certs/ocsp/interm.cnf: Added openssl config for intermediate certificate signing 3687 * tests/certs/ocsp/root-template.txt: Added template for root certificate 3688 * tests/certs/ocsp/server-template.txt: Added template for server certificate 3689 36902019-07-24 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3691 3692 * tests/libtest.c: Moved break into preprocessor else block 3693 36942019-07-24 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3695 3696 Added required certificates and response 3697 3698 * tests/certs/ocsp/ocsp_stapled_resp.der: Added OCSP stapled response 3699 * tests/certs/ocsp/x509-interm-cert.pem: Added intermediate certificate 3700 * tests/certs/ocsp/x509-interm-key.pem: Added intermediate private key 3701 * tests/certs/ocsp/x509-root-cert.pem: Added root CA certificate 3702 * tests/certs/ocsp/x509-root-key.pem: Added root CA private key 3703 * tests/certs/ocsp/x509-server-cert.pem: Added server certificate 3704 * tests/certs/ocsp/x509-server-key.pem: Added server private key 3705 37062019-07-24 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3707 3708 Added skeleton OCSP Stapling 3709 3710 * tests/Makefile.am: Added test-ocsp-stap 3711 * tests/libtest.c: Added an MHD daemon to send OCSP stapled response 3712 * tests/libtest.h: Added macro WGET_TEST_FEATURE_OCSP_STAPLING 3713 * tests/test-ocsp-stap.c: Added test for OCSP stapling 3714 37152019-07-23 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3716 3717 * tests/certs/ocsp/README.md: Added README for generating generating certificates and responses 3718 37192019-07-23 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3720 3721 Splitting certs/resps generator script 3722 3723 * tests/certs/ocsp/generate_certs.sh: Added to generate certificates 3724 * tests/certs/ocsp/generate_resp.sh: Added to generate responses 3725 37262019-07-21 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3727 3728 Making OCSP Response Global 3729 3730 * tests/libtest.c: Added 'struct ocsp_resp_t' and moved OCSP response to global scope 3731 37322019-07-21 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3733 3734 Added templates, records, and script for OCSP Responder PEM/DER files 3735 3736 * tests/certs/ocsp/demoCA/*: Openssl certificate signing records for root and intermediate 3737 * tests/certs/ocsp/generate_resp.sh: Added script for generating required certificates and responses 3738 * tests/certs/ocsp/interm-template.txt: Added template for intermediate certificate 3739 * tests/certs/ocsp/interm.cnf: Added openssl config for intermediate certificate signing 3740 * tests/certs/ocsp/root-template.txt: Added template for root certificate 3741 * tests/certs/ocsp/server-template.txt: Added template for server certificate 3742 37432019-07-21 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3744 3745 Added required certificates and response 3746 3747 * tests/certs/ocsp/ocsp_resp_ok.der: Added OCSP verified response 3748 * tests/certs/ocsp/ocsp_resp_revoked.der: Added OCSP revoked response 3749 * tests/certs/ocsp/x509-interm-cert.pem: Added intermediate certificate 3750 * tests/certs/ocsp/x509-interm-key.pem: Added intermediate private key 3751 * tests/certs/ocsp/x509-root-cert.pem: Added root CA certificate 3752 * tests/certs/ocsp/x509-root-key.pem: Added root CA private key 3753 * tests/certs/ocsp/x509-server-cert.pem: Added server certificate 3754 * tests/certs/ocsp/x509-server-key.pem: Added server private key 3755 37562019-07-21 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3757 3758 Added test-ocsp-server 3759 3760 * tests/Makefile.am: Modified to run the test 3761 * tests/test-ocsp-server: Added for testing OCSP verified/revoked responses 3762 37632019-07-20 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3764 3765 Added OCSP Responder to the test library 3766 3767 * tests/libtest.c: Added the skeleton responder 3768 * tests/libtest.h: Added required macros and function prototype 3769 37702019-07-20 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3771 3772 Added option --ocsp-date 3773 3774 * docs/wget2.md: Added documentation for --ocsp-date 3775 * include/wget/wget.h: Added macro WGET_SSL_OCSP_DATE 3776 * libwget/ssl_gnutls.c: Modified to use option 3777 * src/options.c: Added option handler 3778 * src/wget_options.h: Declared bool for option 3779 37802019-07-20 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3781 3782 Added option --ocsp-nonce 3783 3784 * docs/wget2.md: Added documentation for --ocsp-nonce 3785 * include/wget/wget.h: Added macro WGET_SSL_OCSP_NONCE 3786 * libwget/ssl_gnutls.c: Modified to use option 3787 * src/options.c: Added option handler 3788 * src/wget_options.h: Declared bool for option 3789 37902019-07-20 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 3791 3792 Added option --ocsp-server 3793 3794 * docs/wget2.md: Added documentation for --ocsp-server 3795 * libwget/ssl_gnutls.c: Modified to use value from option parameter 3796 * src/options.c: Added option handler 3797 * src/wget_options.h: Declared storage for option parameter 3798 37992019-07-23 Tim Rühsen <tim.ruehsen@gmx.de> 3800 3801 * libwget/ssl_gnutls.c (safe_ctime): Fix buffer size 3802 38032019-07-19 Tim Rühsen <tim.ruehsen@gmx.de> 3804 3805 Rename wget_console_color_t -> wget_console_color 3806 3807 * include/wget/wget.h: Rename wget_console_color_t -> wget_console_color 3808 * libwget/console.c: Likewise 3809 * src/log.c: Likewise 3810 38112019-07-19 Tim Rühsen <tim.ruehsen@gmx.de> 3812 3813 Rename wget_bar_t -> wget_bar 3814 3815 * include/wget/wget.h: Rename wget_bar_t -> wget_bar 3816 * fuzz/libwget_bar_fuzzer.c: Likewise 3817 * libwget/bar.c: Likewise 3818 * src/bar.c: Likewise 3819 * src/wget_bar.h: Likewise 3820 * unit-tests/test.c: Likewise 3821 38222019-07-19 Tim Rühsen <tim.ruehsen@gmx.de> 3823 3824 Rename wget_robots_t -> wget_robots 3825 3826 * include/wget/wget.h: Rename wget_robots_t -> wget_robots 3827 * fuzz/libwget_robots_parse_fuzzer.c: Likewise 3828 * libwget/robots.c: Likewise 3829 * libwget/test_linking_robots.c: Likewise 3830 * src/wget_host.h: Likewise 3831 * unit-tests/test.c: Likewise 3832 38332019-07-19 Tim Rühsen <tim.ruehsen@gmx.de> 3834 3835 Rename wget_metalink_*_t -> wget_metalink_* 3836 3837 * include/wget/wget.h: Rename wget_metalink_*_t -> wget_metalink_* 3838 * libwget/metalink.c: Likewise 3839 * src/job.c: Likewise 3840 * src/wget.c: Likewise 3841 * src/wget_job.h: Likewise 3842 38432019-07-19 Tim Rühsen <tim.ruehsen@gmx.de> 3844 3845 Rename wget_digest_algorithm_t -> wget_digest_algorithm 3846 3847 * include/wget/wget.h: Rename wget_digest_algorithm_t -> wget_digest_algorithm 3848 * libwget/hash_printf.c: Likewise 3849 * libwget/hashfile.c: Likewise 3850 38512019-07-19 Tim Rühsen <tim.ruehsen@gmx.de> 3852 3853 Rename wget_hash_hd_t -> wget_hash_hd 3854 3855 * include/wget/wget.h: Rename wget_hash_hd_t -> wget_hash_hd 3856 * libwget/hashfile.c: Likewise 3857 38582019-07-19 Tim Rühsen <tim.ruehsen@gmx.de> 3859 3860 Rename wget_http_connection_t -> wget_http_connection 3861 3862 * include/wget/wget.h: Rename wget_http_connection_t -> wget_http_connection 3863 * examples/check_url_types.c: Likewise 3864 * examples/http_get.c: Likewise 3865 * examples/http_get2.c: Likewise 3866 * examples/http_multi_get.c: Likewise 3867 * examples/websequencediagram.c: Likewise 3868 * examples/websequencediagram_high.c: Likewise 3869 * fuzz/libwget_http_client_fuzzer.c: Likewise 3870 * libwget/http.c: Likewise 3871 * libwget/http_highlevel.c: Likewise 3872 * libwget/http_parse.c: Likewise 3873 * libwget/ssl_gnutls.c: Likewise 3874 * src/wget.c: Likewise 3875 * src/wget_job.h: Likewise 3876 38772019-07-19 Tim Rühsen <tim.ruehsen@gmx.de> 3878 3879 Rename wget_http_request_t -> wget_http_request 3880 3881 * include/wget/wget.h: Rename wget_http_request_t -> wget_http_request 3882 * examples/http_get2.c: Likewise 3883 * examples/http_multi_get.c: Likewise 3884 * examples/websequencediagram.c: Likewise 3885 * fuzz/libwget_http_client_fuzzer.c: Likewise 3886 * libwget/http.c: Likewise 3887 * libwget/http_highlevel.c: Likewise 3888 * libwget/http_parse.c: Likewise 3889 * libwget/ssl_gnutls.c: Likewise 3890 * src/wget.c: Likewise 3891 * unit-tests/test.c: Likewise 3892 38932019-07-19 Tim Rühsen <tim.ruehsen@gmx.de> 3894 3895 Rename wget_http_response_t -> wget_http_response 3896 3897 * include/wget/wget.h: Rename wget_http_response_t -> wget_http_response 3898 * examples/batch_loader.c: Likewise 3899 * examples/check_url_types.c: Likewise 3900 * examples/getstream.c: Likewise 3901 * examples/http_get.c: Likewise 3902 * examples/http_get2.c: Likewise 3903 * examples/http_multi_get.c: Likewise 3904 * examples/websequencediagram.c: Likewise 3905 * examples/websequencediagram_high.c: Likewise 3906 * fuzz/libwget_http_client_fuzzer.c: Likewise 3907 * fuzz/libwget_http_parse_fuzzer.c: Likewise 3908 * libwget/http.c: Likewise 3909 * libwget/http_highlevel.c: Likewise 3910 * libwget/http_parse.c: Likewise 3911 * libwget/ssl_gnutls.c: Likewise 3912 * src/gpgme.c: Likewise 3913 * src/stats_site.c: Likewise 3914 * src/wget.c: Likewise 3915 * src/wget_gpgme.h: Likewise 3916 * src/wget_stats.h: Likewise 3917 * tests/test-cookies-http_state.c: Likewise 3918 * unit-tests/test-cookies-http_state.c: Likewise 3919 * unit-tests/test.c: Likewise 3920 39212019-07-19 Tim Rühsen <tim.ruehsen@gmx.de> 3922 3923 Rename transfer_encoding_* -> wget_transfer_encoding_* 3924 3925 * include/wget/wget.h: Rename transfer_encoding_* -> wget_transfer_encoding_* 3926 * libwget/http.c: Likewise 3927 * libwget/http_parse.c: Likewise 3928 39292019-07-19 Tim Rühsen <tim.ruehsen@gmx.de> 3930 3931 Rename wget_http_challenge_t -> wget_http_challenge 3932 3933 * include/wget/wget.h: Rename wget_http_challenge_t -> wget_http_challenge 3934 * libwget/http.c: Likewise 3935 * libwget/http_parse.c: Likewise 3936 * src/options.c: Likewise 3937 * src/wget.c: Likewise 3938 * unit-tests/test.c: Likewise 3939 39402019-07-19 Tim Rühsen <tim.ruehsen@gmx.de> 3941 3942 Rename wget_http_digest_t -> wget_http_digest 3943 3944 * include/wget/wget.h: Rename wget_http_digest_t -> wget_http_digest 3945 * libwget/http_parse.c: Likewise 3946 39472019-07-19 Tim Rühsen <tim.ruehsen@gmx.de> 3948 3949 Rename wget_http_link_t -> wget_http_link 3950 3951 * include/wget/wget.h: Rename wget_http_link_t -> wget_http_link 3952 * libwget/http_parse.c: Likewise 3953 * src/wget.c: Likewise 3954 39552019-07-19 Tim Rühsen <tim.ruehsen@gmx.de> 3956 3957 Rename wget_http_header_param_t -> wget_http_header_param 3958 3959 * include/wget/wget.h: Rename wget_http_header_param_t -> wget_http_header_param 3960 * libwget/http.c: Likewise 3961 * libwget/http_highlevel.c: Likewise 3962 * libwget/http_parse.c: Likewise 3963 * src/options.c: Likewise 3964 * src/wget.c: Likewise 3965 39662019-07-19 Tim Rühsen <tim.ruehsen@gmx.de> 3967 3968 Rename wget_tcp_t -> wget_tcp 3969 3970 * include/wget/wget.h: Rename wget_tcp_t -> wget_tcp 3971 * libwget/http.h: Likewise 3972 * libwget/net.c: Likewise 3973 * libwget/ssl_gnutls.c: Likewise 3974 * libwget/ssl_none.c: Likewise 3975 * libwget/ssl_wolfssl.c: Likewise 3976 39772019-07-19 Tim Rühsen <tim.ruehsen@gmx.de> 3978 3979 Rename wget_dns_t -> wget_dns 3980 3981 * include/wget/wget.h: Rename wget_dns_t -> wget_dns 3982 * libwget/dns.c: Likewise 3983 * libwget/net.c: Likewise 3984 * libwget/net.h: Likewise 3985 * src/options.c: Likewise 3986 39872019-07-19 Tim Rühsen <tim.ruehsen@gmx.de> 3988 3989 Rename wget_dns_cache_t -> wget_dns_cache 3990 3991 * include/wget/wget.h: Rename wget_dns_cache_t -> wget_dns_cache 3992 * libwget/dns.c: Likewise 3993 * libwget/dns_cache.c: Likewise 3994 * libwget/init.c: Likewise 3995 * src/options.c: Likewise 3996 39972019-07-19 Tim Rühsen <tim.ruehsen@gmx.de> 3998 3999 Rename wget_html_tag_t -> wget_html_tag 4000 4001 * include/wget/wget.h: Rename wget_html_tag_t -> wget_html_tag 4002 * libwget/html_url.c: Likewise 4003 * src/options.c: Likewise 4004 40052019-07-19 Tim Rühsen <tim.ruehsen@gmx.de> 4006 4007 Rename wget_html_parsed_result_t -> wget_html_parsed_result 4008 4009 * include/wget/wget.h: Rename wget_html_parsed_result_t -> wget_html_parsed_result 4010 * examples/check_url_types.c: Likewise 4011 * examples/print_html_urls.c: Likewise 4012 * fuzz/libwget_html_url_fuzzer.c: Likewise 4013 * libwget/html_url.c: Likewise 4014 * src/wget.c: Likewise 4015 40162019-07-19 Tim Rühsen <tim.ruehsen@gmx.de> 4017 4018 Rename wget_html_parsed_url_t -> wget_html_parsed_url 4019 4020 * include/wget/wget.h: Rename wget_html_parsed_url_t -> wget_html_parsed_url 4021 * examples/check_url_types.c: Likewise 4022 * examples/print_html_urls.c: Likewise 4023 * libwget/html_url.c: Likewise 4024 * src/wget.c: Likewise 4025 40262019-07-19 Tim Rühsen <tim.ruehsen@gmx.de> 4027 4028 Rename wget_string_t -> wget_string 4029 4030 * include/wget/wget.h: Rename wget_string_t -> wget_string 4031 * examples/batch_loader.c: Likewise 4032 * examples/check_url_types.c: Likewise 4033 * examples/print_html_urls.c: Likewise 4034 * libwget/atom_url.c: Likewise 4035 * libwget/robots.c: Likewise 4036 * libwget/rss_url.c: Likewise 4037 * libwget/sitemap_url.c: Likewise 4038 * src/host.c: Likewise 4039 * src/wget.c: Likewise 4040 * unit-tests/test.c: Likewise 4041 40422019-07-19 Tim Rühsen <tim.ruehsen@gmx.de> 4043 4044 Rename wget_css_parsed_url_t -> wget_css_parsed_url 4045 4046 * include/wget/wget.h: Rename wget_css_parsed_url_t -> wget_css_parsed_url 4047 * examples/print_css_urls3.c: Likewise 4048 * libwget/css_url.c: Likewise 4049 40502019-07-19 Tim Rühsen <tim.ruehsen@gmx.de> 4051 4052 Rename wget_netrc_t -> wget_netrc 4053 4054 * include/wget/wget.h: Rename wget_netrc_t -> wget_netrc 4055 * libwget/netrc.c: Likewise 4056 * src/wget.c: Likewise 4057 * unit-tests/test.c: Likewise 4058 40592019-07-19 Tim Rühsen <tim.ruehsen@gmx.de> 4060 4061 Rename wget_netrc_db_t -> wget_netrc_db 4062 4063 * include/wget/wget.h: Rename wget_netrc_db_t -> wget_netrc_db 4064 * fuzz/libwget_netrc_fuzzer.c: Likewise 4065 * libwget/netrc.c: Likewise 4066 * src/wget_options.h: Likewise 4067 * unit-tests/test.c: Likewise 4068 40692019-07-19 Tim Rühsen <tim.ruehsen@gmx.de> 4070 4071 Rename wget_ocsp_db_t -> wget_ocsp_db 4072 4073 * include/wget/wget.h: Rename wget_ocsp_db_t -> wget_ocsp_db 4074 * examples/http_multi_get.c: Likewise 4075 * fuzz/libwget_ocsp_fuzzer.c: Likewise 4076 * libwget/ocsp.c: Likewise 4077 * libwget/plugin.c: Likewise 4078 * libwget/ssl_gnutls.c: Likewise 4079 * libwget/ssl_wolfssl.c: Likewise 4080 * src/plugin.c: Likewise 4081 * src/wget_options.h: Likewise 4082 * src/wget_plugin.h: Likewise 4083 * tests/test-plugin-dummy.c: Likewise 4084 40852019-07-18 Tim Rühsen <tim.ruehsen@gmx.de> 4086 4087 Rename wget_tls_session_db_t -> wget_tls_session_db 4088 4089 * include/wget/wget.h: Rename wget_tls_session_db_t -> wget_tls_session_db 4090 * fuzz/libwget_tlssess_fuzzer.c: Likewise 4091 * libwget/ssl_gnutls.c: Likewise 4092 * libwget/ssl_wolfssl.c: Likewise 4093 * libwget/tls_session.c: Likewise 4094 * src/wget_options.h: Likewise 4095 40962019-07-18 Tim Rühsen <tim.ruehsen@gmx.de> 4097 4098 Rename wget_tls_session_t -> wget_tls_session 4099 4100 * include/wget/wget.h: Rename wget_tls_session_t -> wget_tls_session 4101 * libwget/tls_session.c: Likewise 4102 41032019-07-18 Tim Rühsen <tim.ruehsen@gmx.de> 4104 4105 Rename wget_cookie_t -> wget_cookie 4106 4107 * include/wget/wget.h: Rename wget_cookie_t -> wget_cookie 4108 * fuzz/libwget_cookie_fuzzer.c: Likewise 4109 * libwget/cookie.c: Likewise 4110 * libwget/http_parse.c: Likewise 4111 * unit-tests/test.c: Likewise 4112 41132019-07-18 Tim Rühsen <tim.ruehsen@gmx.de> 4114 4115 Rename wget_cookie_db_t -> wget_cookie_db 4116 4117 * include/wget/wget.h: Rename wget_cookie_db_t -> wget_cookie_db 4118 * examples/http_get2.c: Likewise 4119 * fuzz/libwget_cookie_fuzzer.c: Likewise 4120 * libwget/cookie.c: Likewise 4121 * libwget/http_highlevel.c: Likewise 4122 * libwget/init.c: Likewise 4123 * src/wget_options.h: Likewise 4124 * tests/test-cookies-http_state.c: Likewise 4125 * unit-tests/test-cookies-http_state.c: Likewise 4126 * unit-tests/test.c: Likewise 4127 41282019-07-18 Tim Rühsen <tim.ruehsen@gmx.de> 4129 4130 Rename wget_iri_t -> wget_iri 4131 4132 * include/wget/wget.h: Rename wget_iri_t -> wget_iri 4133 * examples/*.c: Likewise 4134 * fuzz/*.c: Likewise 4135 * libwget/*.c: Likewise 4136 * src/*.c: Likewise 4137 * tests/*.c: Likewise 4138 * unit-tests/*.c: Likewise 4139 41402019-07-18 Tim Rühsen <tim.ruehsen@gmx.de> 4141 4142 Rename wget_decompressor_t -> wget_decompressor 4143 4144 * include/wget/wget.h: Rename wget_decompressor_t -> wget_decompressor 4145 * libwget/decompressor.c: Likewise 4146 * libwget/http.c: Likewise 4147 * src/wget.c: Likewise 4148 41492019-07-18 Tim Rühsen <tim.ruehsen@gmx.de> 4150 4151 Rename wget_thread_cond_t -> wget_thread_cond 4152 4153 * include/wget/wget.h: Rename wget_thread_cond_t -> wget_thread_cond 4154 * libwget/thread.c: Likewise 4155 * src/wget.c: Likewise 4156 * src/wget_job.h: Likewise 4157 * unit-tests/test-cond.c: Likewise 4158 41592019-07-18 Tim Rühsen <tim.ruehsen@gmx.de> 4160 4161 Rename wget_thread_mutex_t -> wget_thread_mutex 4162 4163 * include/wget/wget.h: Rename wget_thread_mutex_t -> wget_thread_mutex 4164 * libwget/*.c: Likewise 4165 * src/*.c: Likewise 4166 * unit-tests/test-cond.c: Likewise 4167 41682019-07-18 Tim Rühsen <tim.ruehsen@gmx.de> 4169 4170 Rename wget_thread_id_t -> wget_thread_id 4171 4172 * include/wget/wget.h: Rename wget_thread_id_t -> wget_thread_id 4173 * libwget/thread.c: Likewise 4174 * src/host.c: Likewise 4175 * src/wget_job.h: Likewise 4176 41772019-07-18 Tim Rühsen <tim.ruehsen@gmx.de> 4178 4179 Rename wget_thread_t -> wget_thread 4180 4181 * include/wget/wget.h: Rename wget_thread_t -> wget_thread 4182 * examples/batch_loader.c: Likewise 4183 * libwget/thread.c: Likewise 4184 * src/*.c: Likewise 4185 * unit-tests/test-cond.c: Likewise 4186 41872019-07-18 Tim Rühsen <tim.ruehsen@gmx.de> 4188 4189 Rename wget_stringmap_iterator_t -> wget_stringmap_iterator 4190 4191 * include/wget/wget.h: Likewise 4192 * unit-tests/test.c: Likewise 4193 41942019-07-18 Tim Rühsen <tim.ruehsen@gmx.de> 4195 4196 Rename wget_stringmap_t -> wget_stringmap 4197 4198 * include/wget/wget.h: Rename wget_stringmap_t -> wget_stringmap 4199 * libwget/stringmap.c: Likewise 4200 * src/options.c: Likewise 4201 * src/plugin.c: Likewise 4202 * src/wget.c: Likewise 4203 * unit-tests/stringmap_perf.c: Likewise 4204 * unit-tests/test.c: Likewise 4205 42062019-07-18 Tim Rühsen <tim.ruehsen@gmx.de> 4207 4208 Rename wget_hashmap_iterator_t -> wget_hashmap_iterator 4209 4210 * include/wget/wget.h: Rename wget_hashmap_iterator_t -> wget_hashmap_iterator 4211 * libwget/hashmap.c: Likewise 4212 42132019-07-18 Tim Rühsen <tim.ruehsen@gmx.de> 4214 4215 Rename wget_hashmap_t -> wget_hashmap 4216 4217 * include/wget/wget.h: Rename wget_hashmap_t -> wget_hashmap 4218 * libwget/*.c: Likewise 4219 * src/*.c: Likewise 4220 42212019-07-18 Tim Rühsen <tim.ruehsen@gmx.de> 4222 4223 Rename wget_vector_t -> wget_vector 4224 4225 * include/wget/wget.h: Rename wget_vector_t -> wget_vector 4226 * examples/print_css_urls3.c: Likewise 4227 * fuzz/*.c: Likewise 4228 * libwget/*.c: Likewise 4229 * src/*.c: Likewise 4230 * tests/*.c: Likewise 4231 * unit-tests/*.c: Likewise 4232 42332019-07-18 Tim Rühsen <tim.ruehsen@gmx.de> 4234 4235 Rename wget_logger_t -> wget_logger 4236 4237 * include/wget/wget.h: Rename wget_logger_t -> wget_logger 4238 * libwget/log.c: Likewise 4239 * libwget/logger.c: Likewise 4240 * libwget/logger.h: Likewise 4241 42422019-07-18 Tim Rühsen <tim.ruehsen@gmx.de> 4243 4244 Rename wget_buffer_t -> wget_buffer 4245 4246 * include/wget/wget.h: Rename wget_buffer_t -> wget_buffer 4247 * examples/*.c: Likewise 4248 * fuzz/libwget_iri_fuzzer.c: Likewise 4249 * libwget/*.c: Likewise 4250 * src/*.c: Likewise 4251 * tests/*.c: Likewise 4252 * unit-tests/*.c: Likewise 4253 42542019-07-18 Tim Rühsen <tim.ruehsen@gmx.de> 4255 4256 Rename wget_bitmap_t -> wget_bitmap 4257 4258 * include/wget/wget.h: Likewise 4259 * libwget/bitmap.c: Likewise 4260 * unit-tests/test.c: Likewise 4261 42622019-07-18 Tim Rühsen <tim.ruehsen@gmx.de> 4263 4264 Rename wget_list_t -> wget_list 4265 4266 * include/wget/wget.h: Likewise 4267 * libwget/list.c: Likewise 4268 * libwget/test_linking.c: Likewise 4269 * src/wget_host.h: Likewise 4270 * src/wget_job.h: Likewise 4271 42722019-07-17 Tim Rühsen <tim.ruehsen@gmx.de> 4273 4274 * libwget/http.c: Add prototype for _get_body 4275 42762019-07-17 Tim Rühsen <tim.ruehsen@gmx.de> 4277 4278 Remove wget_tcp_set_stats_site() function 4279 4280 * include/wget/wget.h: Remove wget_stats_callback_t and 4281 wget_tcp_set_stats_site() 4282 * libwget/http.c: Remove wget_tcp_set_stats_site() 4283 42842019-07-17 Tim Rühsen <tim.ruehsen@gmx.de> 4285 4286 Typedef wget_server_stats_callback_t not as pointer 4287 4288 * include/wget/wget.h: Remove '*' signature from function typedef 4289 * libwget/http.c: Amend casts and variable types 4290 42912019-07-17 Tim Rühsen <tim.ruehsen@gmx.de> 4292 4293 Typedef wget_tls_stats_callback_t not as pointer 4294 4295 * include/wget/wget.h: Remove '*' signature from function typedef 4296 * libwget/ssl_gnutls.c: Amend casts and variable types 4297 * libwget/ssl_wolfssl.c: Likewise 4298 42992019-07-17 Tim Rühsen <tim.ruehsen@gmx.de> 4300 4301 Typedef wget_ocsp_stats_callback_t not as pointer 4302 4303 * include/wget/wget.h: Remove '*' signature from function typedef 4304 * libwget/ssl_gnutls.c: Amend casts and variable types 4305 * libwget/ssl_wolfssl.c: Likewise 4306 43072019-07-17 Tim Rühsen <tim.ruehsen@gmx.de> 4308 4309 Typedef wget_dns_stats_callback_t not as pointer 4310 4311 * include/wget/wget.h: Remove '*' signature from function typedef 4312 * libwget/dns.c: Amend casts and variable types 4313 43142019-07-17 Tim Rühsen <tim.ruehsen@gmx.de> 4315 4316 Typedef plugin functions not as pointer 4317 4318 * include/wget/wget.h: Remove '*' signature from function typedefs 4319 * libwget/plugin.c: Amend casts and variable types 4320 * src/plugin.c: Likewise 4321 43222019-07-17 Tim Rühsen <tim.ruehsen@gmx.de> 4323 4324 Typedef http callback functions not as pointer 4325 4326 * include/wget/wget.h: Remove '*' signature from function typedefs 4327 * libwget/http.c: Amend casts and variable types 4328 * libwget/http_highlevel.c: Likewise 4329 43302019-07-17 Tim Rühsen <tim.ruehsen@gmx.de> 4331 4332 Typedef XML parse functions not as pointer 4333 4334 * include/wget/wget.h: Remove '*' signature from function typedef 4335 * libwget/xml.c: Amend casts and variable types 4336 43372019-07-17 Tim Rühsen <tim.ruehsen@gmx.de> 4338 4339 Typedef CSS parse functions not as pointer 4340 4341 * include/wget/wget.h: Remove '*' signature from function typedefs 4342 * libwget/css.c: Amend casts and variable types 4343 43442019-07-17 Tim Rühsen <tim.ruehsen@gmx.de> 4345 4346 Typedef decompressor functions not as pointer 4347 4348 * include/wget/wget.h: Remove '*' signature from function typedefs 4349 * libwget/decompressor.c: Likewise, Amend casts 4350 43512019-07-17 Tim Rühsen <tim.ruehsen@gmx.de> 4352 4353 * .gitlab-ci.yml: Add CI runner for Debian unstable 4354 43552019-07-17 Tim Rühsen <tim.ruehsen@gmx.de> 4356 4357 Typedef vector functions not as pointer 4358 4359 * include/wget/wget.h: Remove '*' signature from function typedefs 4360 * libwget/*.c: Amend casts 4361 * src/*.c: Likewise 4362 * tests/*.c: Likewise 4363 * unit-tests/*.c: Likewise 4364 43652019-07-17 Tim Rühsen <tim.ruehsen@gmx.de> 4366 4367 Typedef wget_logger_func_t not as pointer 4368 4369 * include/wget/wget.h: Remove '*' signature from function typedef 4370 * libwget/init.c: Amend va_arg params 4371 * libwget/logger.c: Amend function params 4372 43732019-07-17 Tim Rühsen <tim.ruehsen@gmx.de> 4374 4375 Typedef wget_* alloc functions not as pointer 4376 4377 * include/wget/wget.h: Remove '*' signature from function typedefs 4378 * libwget/xalloc.c: Amend declarations 4379 43802019-07-17 Tim Rühsen <tim.ruehsen@gmx.de> 4381 4382 Typedef wget_list_browse_t not as pointer 4383 4384 * include/wget/wget.h: Remove '*' signature from function typedef 4385 * libwget/list.c: Amend wget_list_browse() argument 4386 * src/host.c: Amend cast 4387 43882019-07-17 Tim Rühsen <tim.ruehsen@gmx.de> 4389 4390 Typedef wget_update_[load|save]_t not as pointer 4391 4392 * include/wget/wget.h: Remove '*' signature from function typedefs 4393 * libwget/*.c: Amend casts 4394 43952019-07-17 Tim Rühsen <tim.ruehsen@gmx.de> 4396 4397 Typedef wget_global_get_func_t not as pointer 4398 4399 * include/wget/wget.h: Remove '*' signature from function typedef 4400 * libwget/init.c: Amend function definition 4401 44022019-07-17 Tim Rühsen <tim.ruehsen@gmx.de> 4403 4404 Typedef hashmap functions not as pointer 4405 4406 * include/wget/wget.h: Remove '*' signature from function typedefs 4407 * libwget/*.c: Amend casts 4408 * src/*.c: Likewise 4409 * unit-tests/stringmap_perf.c: Likewise 4410 44112019-07-15 Tim Rühsen <tim.ruehsen@gmx.de> 4412 4413 * libwget/bar.c (_bar_update_speed_stats): Fix division by 0 4414 44152019-07-12 Tim Rühsen <tim.ruehsen@gmx.de> 4416 4417 * src/stats_site.c (site_stats_init): Always free resources 4418 44192019-07-12 Tim Rühsen <tim.ruehsen@gmx.de> 4420 4421 * src/options.c (parse_stats): Fix stats options 4422 4423 Stats options wrote to stdout when a filename was given without format. 4424 44252019-07-12 Tim Rühsen <tim.ruehsen@gmx.de> 4426 4427 * fuzz/*.in: Update fuzz corpora from OSS-Fuzz 4428 44292019-07-12 Tim Rühsen <tim.ruehsen@gmx.de> 4430 4431 * fuzz/README.md: clang-6.0 -> clang 4432 44332019-07-12 Tim Rühsen <tim.ruehsen@gmx.de> 4434 4435 * src/options.c (init): Do not write stats to files when fuzzing 4436 44372019-07-11 Tim Rühsen <tim.ruehsen@gmx.de> 4438 4439 * docs/Makefile.am: Add README.md to DISTCLEANFILES unconditionally 4440 44412019-07-11 Tim Rühsen <tim.ruehsen@gmx.de> 4442 4443 * .travis_setup.sh: Add GNU grep and gawk for OSX 4444 44452019-07-11 Tim Rühsen <tim.ruehsen@gmx.de> 4446 4447 * .travis.sh: Fix sed -i for OSX on TravisCI 4448 44492019-07-10 Tim Rühsen <tim.ruehsen@gmx.de> 4450 4451 * unit-tests/test.c (test_mem): Fix buffer overflow detected by ASAN 4452 44532019-07-09 Tim Rühsen <tim.ruehsen@gmx.de> 4454 4455 * libwget/ssl_wolfssl.c (wget_ssl_init): Exit gracefully on error 4456 44572019-07-09 Tim Rühsen <tim.ruehsen@gmx.de> 4458 4459 * cfg.mk: Add new syntax-check rule 'sc_gettext_printf' 4460 44612019-07-09 Tim Rühsen <tim.ruehsen@gmx.de> 4462 4463 Fix missing gettext/translation for string literals 4464 4465 * libwget/robots.c: Likewise 4466 * libwget/ssl_gnutls.c: Likewise 4467 * libwget/ssl_wolfssl.c: Likewise 4468 * src/gpgme.c: Likewise 4469 * src/host.c: Likewise 4470 * src/options.c: Likewise 4471 * src/wget.c: Likewise 4472 44732019-07-08 Tim Rühsen <tim.ruehsen@gmx.de> 4474 4475 * cfg.mk: Add new syntax-check rule 'sc_prohibit_gettext_debug' 4476 44772019-06-25 Tim Rühsen <tim.ruehsen@gmx.de> 4478 4479 * docs/Makefile.am: Replace $< from explicit rule 4480 44812019-06-25 Tim Rühsen <tim.ruehsen@gmx.de> 4482 4483 * libwget/Makefile.am: Replace $< from explicit rule 4484 44852019-06-28 Tim Rühsen <tim.ruehsen@gmx.de> 4486 4487 * src/options.c (_add_tag): Fix OSS-Fuzz issue 15526 4488 44892019-06-28 Tim Rühsen <tim.ruehsen@gmx.de> 4490 4491 * configure.ac: Add pkg-config check for libnettle 4492 44932019-06-27 Tim Rühsen <tim.ruehsen@gmx.de> 4494 4495 * libwget/utils.c (wget_strnglob): Return NULL if malloc fails 4496 44972019-06-27 Tim Rühsen <tim.ruehsen@gmx.de> 4498 4499 * include/wget/wget.h: Indentation cleanups 4500 45012019-06-27 Tim Rühsen <tim.ruehsen@gmx.de> 4502 4503 Rename _wget_bar_st -> wget_bar_st 4504 4505 * include/wget/wget.h: Likewise 4506 * libwget/bar.c: Likewise 4507 45082019-06-27 Tim Rühsen <tim.ruehsen@gmx.de> 4509 4510 Rename _wget_hash_hd_st -> wget_hash_hd_st 4511 4512 * include/wget/wget.h: Likewise 4513 * libwget/hashfile.c: Likewise 4514 45152019-06-27 Tim Rühsen <tim.ruehsen@gmx.de> 4516 4517 Rename _wget_http_connection_st -> wget_http_connection_st 4518 4519 * include/wget/wget.h: Likewise 4520 * libwget/http.c: Likewise 4521 45222019-06-27 Tim Rühsen <tim.ruehsen@gmx.de> 4523 4524 Rename _wget_netrc_db_st -> wget_netrc_db_st 4525 4526 * include/wget/wget.h: Likewise 4527 * libwget/netrc.c: Likewise 4528 45292019-06-27 Tim Rühsen <tim.ruehsen@gmx.de> 4530 4531 Rename _wget_tls_session_db_st -> wget_tls_sessione_db_st 4532 4533 * include/wget/wget.h: Likewise 4534 * libwget/tls_session.c: Likewise 4535 45362019-06-27 Tim Rühsen <tim.ruehsen@gmx.de> 4537 4538 Rename _wget_tls_session_st -> wget_tls_sessione_st 4539 4540 * include/wget/wget.h: Likewise 4541 * libwget/tls_session.c: Likewise 4542 45432019-06-27 Tim Rühsen <tim.ruehsen@gmx.de> 4544 4545 * include/wget/wget.h: Remove comment line 4546 45472019-06-27 Tim Rühsen <tim.ruehsen@gmx.de> 4548 4549 Rename _wget_hpkp_st -> wget_hpkp_st 4550 4551 * include/wget/wget.h: Likewise 4552 * libwget/hpkp.c: Likewise 4553 45542019-06-27 Tim Rühsen <tim.ruehsen@gmx.de> 4555 4556 Rename _wget_cookie_st -> wget_cookie_st 4557 4558 * include/wget/wget.h: Likewise 4559 * libwget/cookie.c: Likewise 4560 45612019-06-27 Tim Rühsen <tim.ruehsen@gmx.de> 4562 4563 * src/wget_options.h (struct config): wget_cookie_db_st -> wget_cookie_db_t 4564 45652019-06-27 Tim Rühsen <tim.ruehsen@gmx.de> 4566 4567 Rename _wget_cookie_db_st -> wget_cookie_db_st 4568 4569 * include/wget/wget.h: Likewise 4570 * libwget/cookie.c: Likewise 4571 * src/wget_options.h: Likewise 4572 45732019-06-27 Tim Rühsen <tim.ruehsen@gmx.de> 4574 4575 Rename _wget_decompressor_st -> wget_decompressor_st 4576 4577 * include/wget/wget.h: Likewise 4578 * libwget/decompressor.c: Likewise 4579 45802019-06-27 Tim Rühsen <tim.ruehsen@gmx.de> 4581 4582 Rename _wget_thread_cond_st -> wget_thread_cond_st 4583 4584 * include/wget/wget.h: Likewise 4585 * libwget/thread.c: Likewise 4586 45872019-06-27 Tim Rühsen <tim.ruehsen@gmx.de> 4588 4589 Rename _wget_thread_mutex_st -> wget_thread_mutex_st 4590 4591 * include/wget/wget.h: Likewise 4592 * libwget/thread.c: Likewise 4593 45942019-06-27 Tim Rühsen <tim.ruehsen@gmx.de> 4595 4596 Rename _wget_thread_st -> wget_thread_st 4597 4598 * include/wget/wget.h: Likewise 4599 * libwget/thread.c: Likewise 4600 46012019-06-27 Tim Rühsen <tim.ruehsen@gmx.de> 4602 4603 Rename _wget_hashmap_iterator_st -> wget_hashmap_iterator_st 4604 4605 * include/wget/wget.h: Likewise 4606 * libwget/hashmap.c: Likewise 4607 46082019-06-27 Tim Rühsen <tim.ruehsen@gmx.de> 4609 4610 Rename _wget_hashmap_st -> wget_hashmap_st 4611 4612 * include/wget/wget.h: Likewise 4613 * libwget/hashmap.c: Likewise 4614 46152019-06-27 Tim Rühsen <tim.ruehsen@gmx.de> 4616 4617 Rename _wget_logger_st -> wget_logger_st 4618 4619 * include/wget/wget.h: Likewise 4620 * libwget/logger.c: Likewise 4621 46222019-06-27 Tim Rühsen <tim.ruehsen@gmx.de> 4623 4624 Rename _wget_list_st -> wget_list_st 4625 4626 * include/wget/wget.h: Likewise 4627 * libwget/list.c: Likewise 4628 46292019-06-27 Tim Rühsen <tim.ruehsen@gmx.de> 4630 4631 * include/wget/wget.h: Rename _WGET_PREFIX -> WGET_PREFIX 4632 46332019-06-27 Tim Rühsen <tim.ruehsen@gmx.de> 4634 4635 * include/wget/wget.h: Add G_GNUC_WGET_MALLOC to wget_read_file() 4636 46372019-06-27 Tim Rühsen <tim.ruehsen@gmx.de> 4638 4639 * libwget/robots.c (wget_robots_parse): Fix corner-case memleak 4640 46412019-06-27 Tim Rühsen <tim.ruehsen@gmx.de> 4642 4643 Check OOM in wget_http_add_header*() 4644 4645 * include/wget/wget.h: Return int for wget_http_add_header(), 4646 return int for wget_http_add_header_param() 4647 * libwget/http.c; New static function http_add_header(), 4648 (wget_http_add_header_vprintf): Use http_add_header(), 4649 (wget_http_add_header): Return int, use http_add_header(), 4650 (wget_http_add_header_param): Return int, use http_add_header() 4651 46522019-06-27 Tim Rühsen <tim.ruehsen@gmx.de> 4653 4654 * libwget/http_highlevel.c (wget_http_get): Check return value of wget_vector_add_memdup() 4655 46562019-06-27 Tim Rühsen <tim.ruehsen@gmx.de> 4657 4658 Add memory checks to wget_http_add_header_vprintf() 4659 4660 * include/wget/wget.h: return int for wget_http_add_header_vprintf(), 4661 return int for wget_http_add_header_printf() 4662 * libwget/http.c (wget_http_add_header_vprintf): 4663 check for memory allocations and return error code, 4664 (wget_http_add_header_printf): Return error code 4665 46662019-06-26 Tim Rühsen <tim.ruehsen@gmx.de> 4667 4668 * libwget/html_url.c (_html_get_url): Set url.link_inline 4669 46702019-06-26 Tim Rühsen <tim.ruehsen@gmx.de> 4671 4672 * libwget/html_url.c (_css_parse_uri): Use malloc + wget_vector_add 4673 46742019-06-26 Tim Rühsen <tim.ruehsen@gmx.de> 4675 4676 * libwget/sitemap_url.c (_sitemap_get_url): Use malloc + wget_vector_add 4677 46782019-06-26 Tim Rühsen <tim.ruehsen@gmx.de> 4679 4680 * libwget/rss_url.c (_rss_get_url): Use malloc + wget_vector_add 4681 46822019-06-26 Tim Rühsen <tim.ruehsen@gmx.de> 4683 4684 * libwget/css_url.c (_css_get_url): Use calloc + wget_vector_add 4685 46862019-06-26 Tim Rühsen <tim.ruehsen@gmx.de> 4687 4688 * libwget/atom_url.c (_atom_get_url): Use malloc + wget_vector_add 4689 46902019-06-26 Tim Rühsen <tim.ruehsen@gmx.de> 4691 4692 Simplify vector API 4693 4694 * libwget/vector.c: Use wget_free as default destructor, 4695 renamed _vec_insert_private() -> insert_element, 4696 (insert_element): removed args 'size' and 'alloc', 4697 removed the _noalloc() API, 4698 removed the 'size' argument from functions, 4699 added wget_vector_add_memdup() as convenience function, 4700 renamed _compare() -> compare_element 4701 * include/wget/wget.h: Removed _noalloc() functions 4702 * fuzz/libwget_cookie_fuzzer.c: Amended to new API 4703 * libwget/*.c: Likewise 4704 * src/*.c: Likewise 4705 * tests/*.c: Likewise 4706 * unit-tests/*.c: Likewise 4707 47082019-06-24 Gisle Vanem <gisle.vanem@gmail.com> 4709 4710 * libwget/ssl_gnutls.c: Fix Doxygen indenting of bullet list 4711 4712 Seems Doxgen gets confused unless all bullet-ed items in a list have the same number of spaced. 4713 And the generated HTML looks jagged. 4714 47152019-06-25 Tim Rühsen <tim.ruehsen@gmx.de> 4716 4717 * AUTHORS: Add Gisle Vanem 4718 47192019-06-24 Tim Rühsen <tim.ruehsen@gmx.de> 4720 4721 Add sc_prohibit_alloc to 'make syntax-check' 4722 4723 * cfg.mk: Add sc_prohibit_alloc rule plus exceptions 4724 * src/options.c: Tag exceptions 4725 * unit-tests/test.c: Likewise 4726 4727 This rule checks for calling malloc()/calloc()/realloc(). Instead, either 4728 use wget_malloc(), wget_calloc() or wget_realloc(). 4729 47302019-06-24 Tim Rühsen <tim.ruehsen@gmx.de> 4731 4732 Add sc_prohibit_free to 'make syntax-check' 4733 4734 * cfg.mk: Add sc_prohibit_free rule plus exceptions 4735 * examples/print_css_urls3.c: Remove unneeded comment 4736 * fuzz/libwget_base64_fuzzer.c: Use wget_free() instead of free() 4737 * fuzz/libwget_cookie_fuzzer.c: Likewise 4738 * fuzz/libwget_css_url_fuzzer.c: Likewise 4739 * fuzz/libwget_http_client_fuzzer.c: Likewise 4740 * fuzz/libwget_utils_fuzzer.c: Likewise 4741 * libwget/vector.c: Likewise 4742 * src/options.c: Likewise 4743 * src/wget_main.h: Likewise 4744 * tests/test-compression.c: Likewise 4745 * tests/test-cookies-http_state.c: Likewise 4746 * tests/test-metalink.c: Likewise 4747 * unit-tests/stringmap_perf.c: Likewise 4748 4749 This rule checks for calling free(). Instead, either use wget_free() or 4750 the convenience macro xfree(). 4751 47522019-06-24 Tim Rühsen <tim.ruehsen@gmx.de> 4753 4754 * m4/wget_manywarnings.m4: Remove -Werror-... options 4755 47562019-06-24 Tim Rühsen <tim.ruehsen@gmx.de> 4757 4758 * libwget/net.c: Fix compiler warning on MinGW 4759 47602019-06-24 Tim Rühsen <tim.ruehsen@gmx.de> 4761 4762 * fuzz/wget_options_fuzzer.c: Fix compiler warning on MinGW 4763 47642019-06-24 Tim Rühsen <tim.ruehsen@gmx.de> 4765 4766 * tests/Makefile.am: Avoid using unportable .o reference with libtool 4767 47682019-06-24 Tim Rühsen <tim.ruehsen@gmx.de> 4769 4770 Remove need for C11 thread local storage 4771 4772 * configure.ac: Remove check for threads.h 4773 * libwget/ssl_gnutls.c: Remove need for C11 thread local storage 4774 47752019-06-23 Tim Rühsen <tim.ruehsen@gmx.de> 4776 4777 * fuzz/libwget_http_client_fuzzer.c: Add emulation of freeaddrinfo() 4778 47792019-06-22 Tim Rühsen <tim.ruehsen@gmx.de> 4780 4781 * tests/libtest.c (_answer_to_connection): Add const to conn_info 4782 47832019-06-21 Tim Rühsen <tim.ruehsen@gmx.de> 4784 4785 * tests/Makefile.am: Use top_srcdir instead of .. to fix VPATH build 4786 47872019-06-22 Tim Rühsen <tim.ruehsen@gmx.de> 4788 4789 * src/options.c (deinit): Fix OSS-Fuzz issue 15443 4790 47912019-06-22 Tim Rühsen <tim.ruehsen@gmx.de> 4792 4793 * src/options.c (parse_stats): Fix OSS-Fuzz issue 15438 4794 47952019-06-21 Tim Rühsen <tim.ruehsen@gmx.de> 4796 4797 * tests/Makefile.am: Use top_srcdir instead of .. to fix VPATH build 4798 47992019-06-19 Tim Rühsen <tim.ruehsen@gmx.de> 4800 4801 Inline most of stringmap API 4802 4803 * include/wget/wget.h: Add stringmap API (mostly) as static inline functions 4804 * libwget/stringmap.c: Remove stringmap implementation (mostly) 4805 48062019-06-19 Tim Rühsen <tim.ruehsen@gmx.de> 4807 4808 Add memory checks and error return value to hashmap API 4809 4810 * include/wget/wget.h: wget_hashmap_sethashfunc() returns int 4811 * libwget/hashmap.c: Check memory allocations 4812 * libwget/stringmap.c: wget_stringmap_sethashfunc() returns int 4813 48142019-06-19 Tim Rühsen <tim.ruehsen@gmx.de> 4815 4816 Simplify hashmap and stringmap API 4817 4818 * include/wget/wget.h: Replace _put() by _put_noalloc() functions to 4819 keep memory allocations outside the library functions. 4820 * libwget/stringmap.c: Likewise 4821 * libwget/hashmap.c: Likewise 4822 * libwget/*.c: Likewise 4823 * src/*.c: Likewise 4824 * unit-tests/*.c: Likewise 4825 48262019-06-14 Tim Rühsen <tim.ruehsen@gmx.de> 4827 4828 Separate DNS and DNS caching 4829 4830 * include/wget/wget.h: Rewrite parts of the DNS / DNS caching API 4831 * libwget/dns.c: Likewise 4832 * libwget/dns_cache.c: Likewise 4833 * libwget/init.c (wget_global_init): Amend WGET_DNS_CACHING 4834 * libwget/net.c: Cleanup and amend for the new API 4835 * libwget/net.h: Cleanup 4836 * src/options.c: Use DNS caching instance if caching is requested 4837 48382019-06-06 Tim Rühsen <tim.ruehsen@gmx.de> 4839 4840 Remove --stats-all 4841 4842 * docs/wget2.md Remove docs for --stats-all 4843 * src/options.c: Remove --stats-all and parse_stats_all() 4844 * fuzz/wget_options_fuzzer.dict: remove --stats-all 4845 * tests/Makefile.am: Remove test-stats-all 4846 * tests/test-stats-all.c: Remove file 4847 48482019-06-06 Tim Rühsen <tim.ruehsen@gmx.de> 4849 4850 Rewrite Site statistics --stats-site 4851 4852 * fuzz/Makefile.am: Remove ../src/stats_site.o 4853 * include/wget/wget.h: Remove wget_stats_type_t 4854 * po/POTFILES.in. Remove src/stats.c 4855 * src/Makefile.am: Remove stats_site.c 4856 * src/options.c (parse_stats_all): Remove site stats code, 4857 (init): Add DNS stats code, 4858 (deinit): Cleanup dns stats code 4859 * src/stats.c: Remove file 4860 * src/stats_site.c: iFix for new stats code 4861 * src/wget.c (main): stats_print -> site_stats_print, 4862 (add_statistics): config.stats_site -> config.stats_site_args, 4863 (process_response): Likewise 4864 * src/wget_options.h (struct config): Remove stats_site, add stats_site_args 4865 * src/wget_stats.h: Remove stats_opt_t, 4866 remove stats_print_func_t, 4867 remove stats_callback_setter_t, 4868 remove struct stats_opts, 4869 remove stats_site_opts, 4870 rename stats_init -> site_stats_init, 4871 rename stats_exit -> site_stats_exit, 4872 rename stats_print -> site_stats_print 4873 * unit-tests/Makefile.am: Remove ../src/stats.o 4874 48752019-06-06 Tim Rühsen <tim.ruehsen@gmx.de> 4876 4877 Amend --stats-* syntax 4878 4879 * docs/wget2.md: Amend docs for --stats-* 4880 * src/options.c: Amend option syntax for --stats-* 4881 * tests/stats-test-util.h: Amend tests to succeed 4882 48832019-06-06 Tim Rühsen <tim.ruehsen@gmx.de> 4884 4885 Rewrite Server statistics --stats-server 4886 4887 * fuzz/Makefile.am: Remove ../src/stats_server.o 4888 * include/wget/wget.h: 4889 remove wget_server_stats_t, 4890 rename wget_stats_callback_t -> wget_server_stats_callback_t, 4891 rename wget_tcp_set_stats_server -> wget_server_set_stats_callback, 4892 add wget_server_stats_data_t, 4893 add wget_server_stats_callback_t, 4894 * libwget/http.c: Remove _stats_data_t, 4895 add server_stats_callback, 4896 add server_stats_ctx 4897 * src/Makefile.am: Remove stats_server.c 4898 * src/options.c (parse_stats_all): Remove server stats code, 4899 add stats_callback_server(), 4900 (init): Add DNS stats code, 4901 (deinit): Cleanup dns stats code 4902 * src/stats.c (stats_print_func_t): Remove print_server[], 4903 remove WGET_STATS_TYPE_SERVER 4904 * src/stats_server.c: Remove file 4905 * src/wget_options.h (struct config): Remove stats_server, add stats_server_args 4906 * src/wget_stats.h: Remove stats_server_opts 4907 * unit-tests/Makefile.am: Remove ../src/stats_server.o 4908 49092019-06-06 Tim Rühsen <tim.ruehsen@gmx.de> 4910 4911 Rewrite TLS statistics --stats-tls 4912 4913 * fuzz/Makefile.am: Remove ../src/stats_tls.o 4914 * include/wget/wget.h: Add wget_tls_stats_data_t, 4915 add wget_tls_stats_callback_t, 4916 add wget_ssl_set_stats_callback_tls, 4917 remove WGET_STATS_TYPE_TLS, 4918 remove wget_tls_stats_t, 4919 remove wget_tcp_set_stats_tls(), 4920 remove wget_tcp_get_stats_tls() 4921 * libwget/ssl_gnutls.c: Remove old stats code, add new stats code 4922 * libwget/ssl_none.c: Add/remove function stubs 4923 * libwget/ssl_wolfssl.c: Remove old stats code, add new stats code 4924 * src/Makefile.am: Remove stats_tls.c 4925 * src/options.c (parse_stats_all): Remove TLS stats code, 4926 add stats_callback_tls(), 4927 (init): Add TLS stats code, 4928 * src/stats.c (stats_print_func_t): Remove print_tls[], 4929 remove WGET_STATS_TYPE_TLS 4930 * src/stats_tls.c: Remove file 4931 * src/wget_options.h (struct config): Remove stats_tls, add stats_tls_args 4932 * src/wget_stats.h: Remove stats_tls_opts 4933 * unit-tests/Makefile.am: Remove ../src/stats_tls.o 4934 49352019-06-05 Tim Rühsen <tim.ruehsen@gmx.de> 4936 4937 Rewrite OCSP statistics --stats-ocsp 4938 4939 * fuzz/Makefile.am: Remove ../src/stats_ocsp.o 4940 * include/wget/wget.h: Add wget_ocsp_stats_data_t, 4941 add wget_ocsp_stats_callback_t, 4942 add wget_ssl_set_stats_callback_ocsp, 4943 remove WGET_STATS_TYPE_OCSP, 4944 remove wget_ocsp_stats_t, 4945 remove wget_tcp_set_stats_ocsp(), 4946 remove wget_tcp_get_stats_ocsp() 4947 * libwget/ssl_gnutls.c: Remove old stats code, add new stats code 4948 * libwget/ssl_none.c: Add/remove function stubs 4949 * libwget/ssl_wolfssl.c: Remove old stats code, add new stats code 4950 * src/Makefile.am: Remove stats_ocsp.c 4951 * src/options.c (parse_stats_all): Remove OCSP stats code, 4952 add stats_callback_ocsp(), 4953 (init): Add OCSP stats code, 4954 * src/stats.c (stats_print_func_t): Remove print_ocsp[], 4955 remove WGET_STATS_TYPE_OCSP 4956 * src/stats_ocsp.c: Remove file 4957 * src/wget_options.h (struct config): Remove stats_ocsp, add stats_ocsp_args 4958 * src/wget_stats.h: Remove stats_ocsp_opts 4959 * unit-tests/Makefile.am: Remove ../src/stats_ocsp.o 4960 49612019-06-02 Tim Rühsen <tim.ruehsen@gmx.de> 4962 4963 Rewrite DNS statistics --stats-dns 4964 4965 * fuzz/Makefile.am: Remove ../src/stats_dns.o 4966 * include/wget/wget.h: Add wget_dns_stats_data_t, 4967 add wget_dns_stats_callback_t, 4968 add wget_dns_set_stats_callback, 4969 remove WGET_STATS_TYPE_DNS, 4970 remove wget_dns_stats_t, 4971 remove wget_dns_set_stats(), 4972 remove wget_dns_get_stats() 4973 * libwget/dns.c: Remove _stats_data_t, 4974 amend struct wget_dns_st, 4975 add wget_dns_set_stats_callback(), 4976 remove wget_dns_get_stats() 4977 * src/Makefile.am: Remove stats_dns.c 4978 * src/options.c (parse_stats_all): Remove DNS stats code, 4979 add stats_callback_dns(), 4980 (init): Add DNS stats code, 4981 * src/stats.c (stats_print_func_t): Remove print_dns[], 4982 remove WGET_STATS_TYPE_DNS 4983 * src/stats_dns.c: Remove file 4984 * src/wget_options.h (struct config): Remove stats_dns, add stats_dns_args 4985 * src/wget_stats.h: Remove stats_dns_opts 4986 * tests/stats-test-util.h: Remove "human" 4987 * unit-tests/Makefile.am: Remove ../src/stats_ocsp.o 4988 49892019-05-31 Tim Rühsen <tim.ruehsen@gmx.de> 4990 4991 Put resolver/dns code into own source file 4992 4993 * docs/Makefile.am: Add libwget-dns.3 man page 4994 * examples/batch_loader.c: Remove call to wget_tcp_set_dns_timeout() 4995 * examples/check_url_types.c: Use wget_dns_set_timeout() 4996 * include/wget/wget.h: Add wget_dns_ API 4997 * libwget/Makefile.am: Add dns.c 4998 * libwget/dns.c: New file 4999 * libwget/init.c: Use wget_dns_set_caching() 5000 * libwget/net.c: Remove DNS functions 5001 * libwget/net.h (wget_tcp_st): Add dns member 5002 * po/POTFILES.in: Add libwget/dns.c 5003 * src/options.c: Use new DNS API 5004 * src/stats.c: Add some checks 5005 * src/stats_dns.c: Use wget_dns_get_stats() 5006 50072019-05-17 Tim Rühsen <tim.ruehsen@gmx.de> 5008 5009 * libwget/thread.c: Manually inline wget_get_timemillis() into wget_thread_cond_wait() 5010 50112019-05-14 Tim Rühsen <tim.ruehsen@gmx.de> 5012 5013 Move wget_restrict_file_name() to src/utils.c 5014 5015 * fuzz/libwget_utils_fuzzer.c: Remove test code for wget_restrict_file_name() 5016 * include/wget/wget.h: Remove wget_restrict_file_name() prototype 5017 * libwget/utils.c: Remove wget_restrict_file_name() 5018 * src/utils.c: Add wget_restrict_file_name() 5019 * src/wget_utils.h: Add wget_restrict_file_name() prototype 5020 * tests/Makefile.am: Add ../src/utils.c to libtest_la_SOURCES 5021 * tests/libtest.c: Include ../src/wget_utils.h 5022 50232019-06-21 Tim Rühsen <tim.ruehsen@gmx.de> 5024 5025 Fix several forgotten xmalloc -> wget_malloc 5026 5027 * libwget/css.c (wget_css_parse_file): Rename xmalloc->wget_malloc 5028 * libwget/hashfile.c (wget_hash_init): Likewise 5029 * libwget/ssl_gnutls.c (_cert_verify_hpkp): Likewise 5030 * libwget/xml.c (wget_xml_parse_file): Likewise 5031 50322019-06-20 Tim Rühsen <tim.ruehsen@gmx.de> 5033 5034 * libwget/hashmap.c (hashmap_rehash): Fix for wget_calloc() 5035 50362019-06-20 Tim Rühsen <tim.ruehsen@gmx.de> 5037 5038 Remove xrealloc define for wget_realloc 5039 5040 * libwget/private.h: Remove #define 5041 * libwget/*.c: Replace xrealloc by wget_realloc 5042 50432019-06-20 Tim Rühsen <tim.ruehsen@gmx.de> 5044 5045 Remove xcalloc define for wget_calloc 5046 5047 * libwget/private.h: Remove #define 5048 * libwget/*.c: Replace xcalloc by wget_calloc 5049 50502019-06-20 Tim Rühsen <tim.ruehsen@gmx.de> 5051 5052 Remove xmalloc define for wget_malloc 5053 5054 * libwget/private.h: Remove #define 5055 * libwget/*.c: Replace xmalloc by wget_malloc 5056 50572019-06-20 Tim Rühsen <tim.ruehsen@gmx.de> 5058 5059 * libwget/vector.c (wget_vector_create): Check result of malloc() 5060 50612019-06-20 Tim Rühsen <tim.ruehsen@gmx.de> 5062 5063 * libwget/thread.c: Check result of malloc() 5064 50652019-06-20 Tim Rühsen <tim.ruehsen@gmx.de> 5066 5067 * libwget/mem.c: Check result of malloc() 5068 50692019-06-20 Tim Rühsen <tim.ruehsen@gmx.de> 5070 5071 * libwget/list.c (wget_list_append): Check result of malloc() 5072 50732019-06-20 Tim Rühsen <tim.ruehsen@gmx.de> 5074 5075 * libwget/iri.c (wget_iri_parse,wget_iri_clone): Check result of malloc() 5076 50772019-06-20 Tim Rühsen <tim.ruehsen@gmx.de> 5078 5079 * libwget/http.c (_server_stats_add): Check result of malloc() 5080 50812019-06-20 Tim Rühsen <tim.ruehsen@gmx.de> 5082 5083 * libwget/cookie.c (wget_cookie_create_request_header): Check result of malloc() 5084 50852019-06-20 Tim Rühsen <tim.ruehsen@gmx.de> 5086 5087 * include/wget/wget.h: Add LIBWGET_WARN_UNUSED_RESULT 5088 50892019-06-20 Tim Rühsen <tim.ruehsen@gmx.de> 5090 5091 Don't ignore wget_malloc() return value 5092 5093 * libwget/test_linking.c: Don't ignore wget_malloc() return value 5094 50952019-06-20 Tim Rühsen <tim.ruehsen@gmx.de> 5096 5097 Add G_GNUC_WGET_RETURNS_NONNULL in wget.h 5098 5099 * include/wget/wget.h: Add G_GNUC_WGET_RETURNS_NONNULL 5100 * src/Makefile.am: Add -DMALLOC_RETURNS_NONNULL 5101 * src/options.c: Use G_GNUC_WGET_RETURNS_NONNULL for own alloc functions 5102 51032019-06-20 Tim Rühsen <tim.ruehsen@gmx.de> 5104 5105 * libwget/base64.c: Check for malloc failures 5106 51072019-06-19 Tim Rühsen <tim.ruehsen@gmx.de> 5108 5109 Amend buffer functions to handle failed memory allocations 5110 5111 * include/wget/wget.h: wget_buffer_ensure_capacity() returns int 5112 * libwget/buffer.c (wget_buffer_init): Return NULL if malloc fails, 5113 (_buffer_realloc): Return error if malloc fails 5114 * libwget/http.c (wget_http_get_response_cb): Check return value of 5115 wget_buffer_ensure_capacity() 5116 * unit-tests/test.c (test_buffer): Add asserts 5117 51182019-06-18 Tim Rühsen <tim.ruehsen@gmx.de> 5119 5120 Make wget allocation functions overridable function pointers 5121 5122 * include/wget/wget.h: Remove allocation function prototypes, 5123 add function pointer types and 'extern' globals 5124 * libwget/private.h: Use wget_free() instead of free() 5125 * libwget/xalloc.c: Remove function definitions, 5126 add global function pointer variables 5127 * src/options.c: Add own allocation functions 5128 * unit-tests/test.c: Test that function pointers are overridable 5129 51302019-06-18 Tim Rühsen <tim.ruehsen@gmx.de> 5131 5132 Change OOM callback implementation 5133 51342019-06-17 Tim Rühsen <tim.ruehsen@gmx.de> 5135 5136 Fix robots.txt code for stand-alone library API 5137 5138 * fuzz/libwget_robots_parse_fuzzer.c: Amend API call 5139 * include/wget/wget.h: Amend wget_robots_parse() API 5140 * libwget/robots.c: Amend wget_robots_parse() API, 5141 check memory allocations 5142 * libwget/test_linking_robots.c: New file 5143 * src/wget.c (process_response): Amend call to wget_robots_parse() 5144 * unit-tests/test.c (test_robots): Amend call to wget_robots_parse() 5145 51462019-06-16 Tim Rühsen <tim.ruehsen@gmx.de> 5147 5148 Add robots.txt functions, make wget_robots_t opaque 5149 51502019-05-14 Tim Rühsen <tim.ruehsen@gmx.de> 5151 5152 * cfg.mk: Fix syntax-check (bindtextdomain) 5153 51542019-06-19 Tim Rühsen <tim.ruehsen@gmx.de> 5155 5156 Cleanup bitmap API 5157 5158 * wget.h: Add WGET_E_MEMORY = -2, 5159 amend function interface of wget_bitmap_allocate, 5160 rename wget_bitmap_allocate -> wget_bitmap_init 5161 * libwget/bitmap.c: Likewise 5162 * unit-tests/test.c: Amend bitmap tests appropriate 5163 51642019-06-18 Darshit Shah <darnir@gnu.org> 5165 5166 * gnulib: Update gnulib 5167 51682019-06-15 Darshit Shah <darnir@gnu.org> 5169 5170 Don't check for always true headers 5171 5172 * cfg.mk: Enable checking for always_true_header_tests 5173 * libwget/http.c,net.c,ssl_gnutls.c: Don't check for HAVE_SYS_SOCKET_H. 5174 The gnulib module always provides it. 5175 * libwget/ssl_gnutls.c: Don't check for HAVE_SYS_UIO_H. The gnulib 5176 module always provides it. 5177 * bootstrap.conf: Add header sys_uio 5178 * configure.ac: Remove check for sys/uio.h 5179 51802019-06-17 Tim Rühsen <tim.ruehsen@gmx.de> 5181 5182 Add sc_prohibit_sprintf and sc_prohibit_printf and fix code 5183 5184 * cfg.mk: New syntax rules sc_prohibit_sprintf and sc_prohibit_printf 5185 * fuzz/*.c: Apply rules 5186 * libwget/*.c: Likewise 5187 * src/*.c: Likewise 5188 * tests/*.[ch]: Likewise 5189 * unit-tests/*.c: Likewise 5190 51912019-06-17 Tim Rühsen <tim.ruehsen@gmx.de> 5192 5193 * include/wget/wget.h: #define wget_printf() 5194 51952019-06-15 Darshit Shah <darnir@gnu.org> 5196 5197 * cfg.mk: Our makefiles make judicious use of $<, skip the check 5198 51992019-06-17 Tim Rühsen <tim.ruehsen@gmx.de> 5200 5201 * bootstrap.conf: Add gnulib module arpa_inet 5202 5203 On Debian unstable, after updating gnulib there was: 5204 5205 In file included from ../lib/arpa/inet.h:46, 5206 from ip.c:27: 5207 /usr/include/arpa/inet.h:34:8: error: unknown type name 'in_addr_t' 5208 extern in_addr_t inet_addr (const char *__cp) __THROW; 5209 52102019-06-15 Darshit Shah <darnir@gnu.org> 5211 5212 * bootstrap: Patch script to use the python tool 5213 52142019-06-15 Darshit Shah <darnir@gnu.org> 5215 5216 * bootstrap: Update the bootstrap script from gnulib 5217 52182019-06-15 Darshit Shah <darnir@gnu.org> 5219 5220 * gnulib: Update gnulib 5221 52222019-06-13 Tim Rühsen <tim.ruehsen@gmx.de> 5223 5224 * src/wget.c: Fix --https-enforce=hard for metalink 5225 52262019-06-12 Tim Rühsen <tim.ruehsen@gmx.de> 5227 5228 * src/wget.c: Make read_xattr_metadata() easier and safer to use 5229 52302019-06-12 Tim Rühsen <tim.ruehsen@gmx.de> 5231 5232 Fix -nc/--no-clobber 5233 5234 * src/wget.c: New function parse_local_file(), 5235 (add_url_to_queue): Parse local file if needed, 5236 (add_url): Likewise 5237 5238 Closes #451 5239 52402019-06-11 Tim Rühsen <tim.ruehsen@gmx.de> 5241 5242 * libwget/http.c: Moev _fix_broken_server_encoding() outside HTTP/2 code 5243 52442019-06-11 Tim Rühsen <tim.ruehsen@gmx.de> 5245 5246 * libwget/http.c: Fix call to _fix_broken_server_encoding() for HTTP/2 5247 52482019-06-06 Tim Rühsen <tim.ruehsen@gmx.de> 5249 5250 Add --http2-only to resist on HTTP/2 5251 5252 * docs/wget2.md: Document --http2-only 5253 * libwget/ssl_gnutls.c (wget_ssl_open): Error if server doesn't accept h2 5254 * src/options.c: Add --http2-only 5255 * src/wget_options.h: Add config.http2_only 5256 52572019-06-06 Tim Rühsen <tim.ruehsen@gmx.de> 5258 5259 * .gitlab-ci.yml: Fix WolfSSL CI runner 5260 52612019-06-04 Tim Rühsen <tim.ruehsen@gmx.de> 5262 5263 Add WITH_TLS as define and conditional 5264 5265 * configure.ac: Add WITH_TLS as define and conditional 5266 * tests/libtest.c: Use WITH_TLS for conditional code 5267 52682019-06-04 Tim Rühsen <tim.ruehsen@gmx.de> 5269 5270 * tests/test-post-handhshake-auth.c: Check for WITH_GNUTLS 5271 52722019-05-01 Tim Rühsen <tim.ruehsen@gmx.de> 5273 5274 * tests/libtest.c: Enable SSL/TLS tests for WolfSSL 5275 52762019-05-01 Tim Rühsen <tim.ruehsen@gmx.de> 5277 5278 * tests/test-i-https.c: Skip CRL test for WolfSSL 5279 52802019-05-01 Tim Rühsen <tim.ruehsen@gmx.de> 5281 5282 * libwget/ssl_wolfssl.c (wget_ssl_open): Fix return code for testing 5283 52842019-05-01 Tim Rühsen <tim.ruehsen@gmx.de> 5285 5286 Add SSL/TLS engine 'none' 5287 5288 * libwget/Makefile.am: Add building ssl_none.c 5289 * libwget/ssl_gnutls.c: Remove #ifdef WITH_GNUTLS 5290 * libwget/ssl_wolfssl.c: Likewise 5291 * libwget/ssl_none.c: Stub routines for 'no SSL/TLS support' 5292 52932019-05-01 Tim Rühsen <tim.ruehsen@gmx.de> 5294 5295 * .gitlab-ci-yml: Test WolfSSL build on Debian Unstable 5296 52972019-04-12 Tim Rühsen <tim.ruehsen@gmx.de> 5298 5299 WolfSSL: Add ALPN and thus HTTP/2 5300 5301 * libwget/ssl_wolfssl.c (wget_ssl_init): Fix setting minimal TLS version, 5302 (wget_ssl_open): Set ALPN for HTTP/2, add result to statistics 5303 53042019-04-11 Tim Rühsen <tim.ruehsen@gmx.de> 5305 5306 Initial implementation of WolfSSL as TLS backend 5307 5308 * README.md: Mention WolfSSL 5309 * configure.ac: Check for WolfSSL 5310 * libwget/Makefile.am: Conditionally add WolfSSL to libwget 5311 * libwget/ssl_wolfssl.c: New file with WolfSSL implementation 5312 * po/POTFILES.in: Add libwget/ssl_wolfssl.c 5313 5314 ./configure --without-gnutls --with-wolfssl 5315 53162019-05-25 Tim Rühsen <tim.ruehsen@gmx.de> 5317 5318 * .travis.sh: Set gettext version to 0.18.2 5319 53202019-05-24 Tim Rühsen <tim.ruehsen@gmx.de> 5321 5322 Publish tarball via Gitlab CI 5323 5324 * .gitlab-ci.yml: Create https://gnuwget.gitlab.io/wget2/wget2-latest.tar.gz 5325 * README.md: Instruction to download and build wget2 from tarball 5326 53272019-05-24 Tim Rühsen <tim.ruehsen@gmx.de> 5328 5329 * bootstrap.conf: Explicitly set source_base and test_base 5330 53312019-05-18 Tim Rühsen <tim.ruehsen@gmx.de> 5332 5333 Update spell-checker and fix more typos 5334 5335 * contrib/spell-checker: Update to python3 version of codespell 5336 * libwget/robots.c: Fix typo(s) 5337 * src/plugin.c: Likewise 5338 * src/wget_plugin.h: Likewise 5339 * tests/test-plugin-nonexistance.c: Likewise 5340 53412019-05-18 Tim Rühsen <tim.ruehsen@gmx.de> 5342 5343 * po/.gitignore: Update 5344 53452019-05-18 Tim Rühsen <tim.ruehsen@gmx.de> 5346 5347 * bootstrap.conf: Work around VPATH issue 5348 53492019-05-18 Tim Rühsen <tim.ruehsen@gmx.de> 5350 5351 * fuzz/main.c: Fix paths for WIN32 5352 53532019-05-18 Tim Rühsen <tim.ruehsen@gmx.de> 5354 5355 * configure.ac: Update gettext version to 0.19.3 5356 53572019-05-17 Tim Rühsen <tim.ruehsen@gmx.de> 5358 5359 Fix checks to include C11 threads.h 5360 5361 * configure.ac: Check for threads.h 5362 * libwget/ssl_gnutls.c: Add check for HAVE_THREADS_H 5363 53642019-05-15 Tim Rühsen <tim.ruehsen@gmx.de> 5365 5366 * libwget/ssl_gnutls.c: Fix position of _Thread_local 5367 53682019-05-14 Tim Rühsen <tim.ruehsen@gmx.de> 5369 5370 * libwget/bar.c: Replace sprintf/snprintf by wget_ functions 5371 53722019-05-14 Tim Rühsen <tim.ruehsen@gmx.de> 5373 5374 * libwget/thread.c: Remove #include timespec.h 5375 53762019-05-14 Tim Rühsen <tim.ruehsen@gmx.de> 5377 5378 * bootstrap: Fallback to gnulib-tool if python version errors 5379 53802019-05-10 Tim Rühsen <tim.ruehsen@gmx.de> 5381 5382 * libwget/ssl_gnutls.c: Use thread-safe ctime() replacement 5383 53842019-05-06 Tim Rühsen <tim.ruehsen@gmx.de> 5385 5386 * configure.ac: Silence gcc-9 -Wchkp 5387 53882019-04-29 sebma <sebma@users.noreply.github.com> 5389 5390 Test if doxygen OR pandoc is present to build the docs 5391 5392 * configure.ac: Logically split checking for doxygen and pandoc 5393 5394 Copyright-paperwork-exempt: Yes 5395 53962019-04-30 Tim Rühsen <tim.ruehsen@gmx.de> 5397 5398 Add new option --unlink 5399 5400 * bootstrap.conf: Add gnulib module 'link' 5401 * docs/wget2.md: Remove the 'unimplemented' tag for --unlink 5402 * src/options.c: Add --unlink option 5403 * src/wget.c (_prepare_file): Unlink file if requested 5404 * src/wget_options.h (struct config): Add 'unlink' member 5405 * tests/Makefile.am: Add test-unlink 5406 * tests/libtest.c (wget_test): Implement hardlink feature 5407 * tests/libtest.h (wget_test_file_t): Add 'hardlink' member 5408 * tests/test-unlink.c: New file with tests for --unlink 5409 54102019-04-30 Tim Rühsen <tim.ruehsen@gmx.de> 5411 5412 * src/options.c: Fix memleaks from XDG and homedir functions 5413 54142019-04-30 Tim Rühsen <tim.ruehsen@gmx.de> 5415 5416 * src/options.c (get_config_files): Fix memleaks 5417 54182019-04-29 Tim Rühsen <tim.ruehsen@gmx.de> 5419 5420 * docs/wget2.md: Mark unimplemented options with '[Not implemented yet]' 5421 54222019-04-26 Tim Rühsen <tim.ruehsen@gmx.de> 5423 5424 * tests/test-limit-rate.c: Increase tolerance from 200 to 500 ms 5425 5426 Valgrind tests on Travis needed the higher value 5427 54282019-04-25 Tim Rühsen <tim.ruehsen@gmx.de> 5429 5430 * fuzz/wget_options_fuzzer.c: Slightly change magic number 5431 5432 Libfuzzer is too clever and detects the magic number used in the fuzzer. 5433 This leads to weird behavior and false positives. 5434 54352019-04-25 Tim Rühsen <tim.ruehsen@gmx.de> 5436 5437 * fuzz/*.in: Update fuzz corpora from OSS-fuzz 5438 54392019-04-25 Tim Rühsen <tim.ruehsen@gmx.de> 5440 5441 * fuzz/get_ossfuzz_corpora: mkdir *.in directories 5442 54432019-04-25 Tim Rühsen <tim.ruehsen@gmx.de> 5444 5445 * fuzz/get_ossfuzz_corpora: Remove -f from unzip 5446 54472019-04-25 Tim Rühsen <tim.ruehsen@gmx.de> 5448 5449 * libwget/iri.c (_iri_unescape_inline): Fix integer overflow (harmless) 5450 54512019-04-18 Kumar Mallikarjuna <kumarmallikarjuna1@gmail.com> 5452 5453 Add TLS 1.3 post-handshake authentication 5454 * tests/Makefile.am: Loading post-handshake-auth test 5455 * tests/libtest.c: 5456 Added execution of 'WGET_TEST_POST_HANDSHAKE_AUTH' key. 5457 Value: other than 0 (Check for post handshake authentication) 5458 Value: 0 (Don't check) 5459 * tests/libtest.h: Defined 'WGET_TEST_POST_HANDSHAKE_AUTH' 5460 * tests/test-post-handhshake-auth.c: Added to test post handshake authentication support 5461 54622019-04-24 Tim Rühsen <tim.ruehsen@gmx.de> 5463 5464 Fix heap buffer overflow introduced in previous commit 5465 5466 * libwget/iri.c (_iri_unescape_inline): Add missing 'continue' 5467 5468 Found by OSS-FUZZ (Issue 14428) 5469 54702019-04-23 Tim Rühsen <tim.ruehsen@gmx.de> 5471 5472 Add basic HTML entity decoding 5473 5474 * libwget/iri.c (_iri_unescape_inline): Decode basic HTML entities 5475 * tests/test-base.c: Add test for &, #ddd; and #xHH; 5476 5477 This only cares for the basic HTML entities mentioned in RFC1866. 5478 This commit closes Gitlab issue 44, though it is not a full handling 5479 of entities. But not sure if anyone ever requests it. 5480 5481 Fixes #44 5482 54832019-04-22 Rohan Fletcher <rohfle@gmail.com> 5484 5485 Added tests for limit-rate 5486 5487 * tests/test-limit-rate.c: new test file for limit-rate 5488 * tests/Makefile.am: added tests/test-limit-rate.c to build 5489 54902019-04-22 Rohan Fletcher <rohfle@gmail.com> 5491 5492 Progress bar speed now calculated earlier 5493 5494 * libwget/bar.c: added ring_used to _bar_slot_t. 5495 speed calculations now use the first slot while the ring is filling 5496 54972019-04-20 Rohan Fletcher <rohfle@gmail.com> 5498 5499 Added limit-rate feature (#408) 5500 5501 * src/options.c: new --limit-rate command-line args 5502 * src/wget_options.h: new config variable for limit-rate cli arg 5503 * src/wget.c: new limit_transfer_rate function. Added limit rate state 5504 vars to struct _body_callback_context 5505 (_get_body): add call to limit_transfer_rate when limit-rate enabled 5506 (http_send_request): init limit rate state vars 5507 55082019-04-21 Tim Rühsen <tim.ruehsen@gmx.de> 5509 5510 Fix parsing float values for CLI options 5511 5512 * src/options.c: New function _parse_double_modifier(), 5513 (parse_numbytes): use _parse_double_modifier() instead of sscanf(), 5514 (parse_timeout): Likewise 5515 5516 Fixes #432 5517 55182019-03-21 Kumar Mallikarjuna <kumarmallikarjuna314@gmail.com> 5519 5520 Fix for -p -nc Bug 5521 5522 * src/wget.c: Modified to stop redownload if document already exists 5523 * tests/test-p-nc.c: Added test for '-p -nc' 5524 * tests/Makefile.am: Modified to include test-p-nc.c while testing. 5525 5526 Fixes #209 5527 55282019-04-21 Tim Rühsen <tim.ruehsen@gmx.de> 5529 5530 * AUTHORS: Add Kumar Mallikarjuna [ci skip] 5531 55322019-04-18 Tim Rühsen <tim.ruehsen@gmx.de> 5533 5534 * .gitlab-ci.yml: Use buildenv-fedora for FEDORA_BUILD 5535 55362019-04-18 Tim Rühsen <tim.ruehsen@gmx.de> 5537 5538 Change /builds/common to /usr/local 5539 55402019-04-15 Kumar Mallikarjuna <kumarmallikarjuna314@gmail.com> 5541 5542 Fix for --stats-all not working 5543 * src/options.c: Modified 'parse_stats_all()' for 'val' to be non-null. 5544 55452019-04-14 Tim Rühsen <tim.ruehsen@gmx.de> 5546 5547 Add TCP FastOpen Linux 4.11+ style 5548 5549 * libwget/net.c: #define TCP_FASTOPEN_LINUX_411, 5550 (_set_socket_options): Set TCP_FASTOPEN_CONNECT socket option, 5551 (wget_tcp_connect): Add code for Linux 4.11+ 5552 55532019-04-11 Tim Rühsen <tim.ruehsen@gmx.de> 5554 5555 * contrib/mingw: Move WINPATH further up 5556 55572019-04-07 Tim Rühsen <tim.ruehsen@gmx.de> 5558 5559 * contrib/mingw: Fix pkg-config and gnutls 5560 55612019-04-02 Tim Rühsen <tim.ruehsen@gmx.de> 5562 5563 * contrib/spell-checker: Fix for 'te' in example URL 5564 55652019-04-02 Tim Rühsen <tim.ruehsen@gmx.de> 5566 5567 Skip blacklisting URLs from STDIN + tty 5568 5569 * src/wget.c: Add URL_FLG_NO_BLACKLISTING, 5570 (add_url_to_queue): New param 'flags', skip blacklisting 5571 when URL_FLG_NO_BLACKLISTING is given, 5572 (input_thread): Add description, use URL_FLG_NO_BLACKLISTING 5573 5574 This change allows us to use interactive services like 5575 (b="http://te.ttr.is:8003"; echo $b; \ 5576 while read -sN1 a; do echo "$b/$a"; done) | wget2 --input-file=- -qO- 5577 (h,j,k,l = left, down, turn, right; ctrl-c = stop) 5578 55792019-04-02 Tim Rühsen <tim.ruehsen@gmx.de> 5580 5581 * src/wget.c (input_thread): Fix communication with main thread 5582 55832019-03-31 Darshit Shah <darnir@gnu.org> 5584 5585 Add Last-Modified and Content-Type to CSV stats 5586 5587 * src/stats_site.c(struct site_stats_t): Add members last_modified and 5588 mime_type to store the last modified time and content-type respectively 5589 (stats_site_add): Store the mime type and last modification time of the 5590 file into the stats 5591 (free_stats): Free the heap-allocated mime_type field 5592 (print_csv): Add columns for last-modified and content-type to CSV 5593 header 5594 (print_csv_entry): Add the data for the above two columns 5595 55962019-03-26 Darshit Shah <darnir@gnu.org> 5597 5598 Support XDG Desktop Specification for config files 5599 5600 Adds functionality to Wget2 to support the XDG Base Directory 5601 Specification[1]. Also marks as deprecated the old location of the 5602 config file. 5603 5604 * docs/wget2.md: Explicitly mark `$HOME/.wget2rc` as deprecated. 5605 * po/potfiles.in: utils.c now has a translateable stirng 5606 * src/options.c(read_config): Use bool instead of int 5607 (get_config_files): Now takes config_home and user_home as input. 5608 `user_home` is only temporary and will be removed once support for 5609 ~/.wget2rc is removed. 5610 (get_xdg_data_home): Derives the location where the data files are to be 5611 stored according to [1]. 5612 (get_xdg_config_home): Derives the location where the config files are 5613 to be stored according to [1]. 5614 (init): Store all the data files in $XD_DATA_HOME 5615 * src/wget.c(mkdir_path): Move function to utils.c 5616 * src/utils.c(mkdir_path): Move function from wget.c. Can now handle 5617 both file and directory paths. 5618 * src/utils.h: Add declaration for mkdir_path 5619 5620 [1]: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html 5621 56222019-02-16 Darshit Shah <darnir@gnu.org> 5623 5624 Improve handling of initialization files 5625 5626 * docs/wget2.md: Add section on initialization files and the order in 5627 which they are read. 5628 * src/options.c(struct config config): Set system_config to the default 5629 value of "SYSCONFDIR/wget2rc" 5630 (struct optionw): --config now maps to config.user_config and update the 5631 value of the default path 5632 (read_config): Read the configuration for system and user configs, if 5633 they're set 5634 (get_config_files): New function that sets the values for 5635 config.system_config and config.user_config. For the system config it 5636 picks either the file in `$SYSTEM_WGET2RC` or at 5637 `/usr/local/etc/wget2rc`. For the user config, it picks the first file from 5638 `--config`, `$WGET2RC`, `$XDG_CONFIG_HOME/wget/wget2rc`, 5639 `~/.config/wget/wget2rc` or `$HOME/.wget2rc`. 5640 (init): Remove the code for finding all the config files and move it to 5641 `get_config_file`. 5642 (deinit): Free config.user_config and config.system_config. Remove 5643 config.config_files. 5644 * src/wget_options.h(struct config): New char * user_config and 5645 system_config. Remove config.config_files 5646 56472019-02-16 Darshit Shah <darnir@gnu.org> 5648 5649 Get system wget2rc file 5650 5651 * src/Makefile.am: Don't create a separate directory for Wget2 in 5652 SYSCONFDIR 5653 * src/options.c: If SYSTEM_WGET2RC is not set, then try to read the 5654 global Wget2rc from SYSCONFDIR 5655 56562019-03-01 Tim Rühsen <tim.ruehsen@gmx.de> 5657 5658 * libwget/encoding.c (wget_str_to_ascii): Use IDN2_USE_STD3_ASCII_RULES 5659 5660 We convert hostnames and thus have to apply IDN2_USE_STD3_ASCII_RULES. 5661 If we don't do, the result could contain any ascii characters, 5662 e.g. 'evil.c\u2100.example.com' will be converted into 5663 'evil.ca/c.example.com', which seems no good idea. 5664 56652019-02-20 Tim Rühsen <tim.ruehsen@gmx.de> 5666 5667 * fuzz/libwget_http_client_fuzzer.c: Fix for OpenBSD 5668 56692019-02-16 Darshit Shah <darnir@gnu.org> 5670 5671 * docs/wget2.md: Fix typo in identation of --dns-cache 5672 56732019-02-16 Darshit Shah <darnir@gnu.org> 5674 5675 * Pull gnulib forward 5676 56772019-02-14 Tim Rühsen <tim.ruehsen@gmx.de> 5678 5679 * docs/wget2.md: Correct --logfile -> --output-file 5680 56812019-01-23 Leon Klingele <git@leonklingele.de> 5682 5683 * docs/wget2.md: --no-cache also sets the 'Cache-Control: no-cache' header 5684 5685 Copyright-paperwork-exempt: Yes 5686 56872019-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 5688 5689 * .gitlab-ci.yml: Don't enable valgridn tests for Arch runner 5690 56912019-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 5692 5693 * .gitlab-ci.yml: Do not call pacman -Q 5694 56952019-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 5696 5697 * bootstrap.conf: Prerequisite 'rsync' removed 5698 56992019-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 5700 5701 Fix YAML syntax error 5702 57032019-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 5704 5705 Add Debian Testing CI runner 5706 57072019-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 5708 5709 Really use Arch runner in CI 5710 57112019-01-04 Tim Rühsen <tim.ruehsen@gmx.de> 5712 5713 * unit-tests/test.c (test_stringmap): Fix warning (shadowed variable) 5714 57152019-01-04 Tim Rühsen <tim.ruehsen@gmx.de> 5716 5717 Fix hashmap + stringmap docs 5718 5719 * include/wget/wget.h: Add docs for hashmap/stringmap typedefs, 5720 fix argument of wget_hashmap_iterator_free() 5721 * libwget/hashmap.c: Add docs, fix wget_hashmap_iterator_free() 5722 * libwget/stringmap.c: Add docs 5723 * unit-tests/test.c: Fix call to wget_stringmap_iterator_free() 5724 57252019-01-03 Tim Rühsen <tim.ruehsen@gmx.de> 5726 5727 Add iterators for hashmap and stringmap 5728 5729 * include/wget/wget.h: New functions wget_hashmap_iterator_alloc(), 5730 wget_hashmap_iterator_free(), wget_hashmap_iterator_next(), 5731 also for stringmap. 5732 * libwget/hashmap.c: Implementation of the above functions 5733 * libwget/stringmap.c: Add wget_stringmap_iterator_next() 5734 * unit-tests/test.c: Add tests using stringmap iterator 5735 5736 This functionality is sometimes more handy than the *_browse() API 5737 with callback functions and context variables. 5738 57392019-01-03 Tim Rühsen <tim.ruehsen@gmx.de> 5740 5741 * libwget/http.c (wget_http_add_credentials): Code cleanup 5742 57432019-01-02 Tim Rühsen <tim.ruehsen@gmx.de> 5744 5745 Rename container set functions 5746 5747 * include/wget/wget.h: 5748 rename wget_vector_set_growth_policy() to wget_vector_set_resize_factor(), 5749 rename wget_hashmap_set_growth_policy() to wget_hashmap_set_resize_factor(), 5750 rename wget_hashmap_setloadfactor() to wget_hashmap_set_load_factor(), 5751 rename wget_stringmap_setloadfactor() to wget_stringmap_set_load_factor(), 5752 rename wget_stringmap_set_growth_policy() to wget_stringmap_set_resize_factor(). 5753 * libwget/hashmap.c: Likewise 5754 * libwget/stringmap.c: Likewise 5755 * libwget/vector.c: Likewise 5756 57572019-01-02 Tim Rühsen <tim.ruehsen@gmx.de> 5758 5759 Simplify hasmap/stringmap/vector API 5760 5761 * include/wget/wget.h: Remove wget_hashmap_get_null() and 5762 wget_stringmap_get_null(), 5763 change params and return value of wget_hashmap_get() and 5764 wget_stringmap_get(). 5765 * libwget/hashmap.c: Remove wget_hashmap_get_null(), 5766 change params and return value of wget_hashmap_get(), 5767 simplify hashmap_find_entry(). 5768 * libwget/stringmap.c: Remove wget_stringmap_get(), 5769 change params and return value of wget_stringmap_get(). 5770 * libwget/dns_cache.c: Amend for new API 5771 * libwget/hpkp.c: Likewise 5772 * libwget/hsts.c: Likewise 5773 * libwget/http.c: Likewise 5774 * libwget/netrc.c: Likewise 5775 * libwget/ocsp.c: Likewise 5776 * libwget/tls_session.c: Likewise 5777 * src/host.c: Likewise 5778 * src/options.c: Likewise 5779 * src/plugin.c: Likewise 5780 * src/stats_site.c: Likewise 5781 * unit-tests/test.c: Likewise 5782 57832019-01-02 Tim Rühsen <tim.ruehsen@gmx.de> 5784 5785 Use float for container growth policy 5786 5787 * include/wget/wget.h: Use float for *_set_growth_policy() 5788 * libwget/hashmap.c: Use float for wget_hashmap_set_growth_policy() 5789 * libwget/stringmap.c: Use float for wget_stringmap_set_growth_policy() 5790 * libwget/vector.c: Use float for wget_vector_set_growth_policy() 5791 5792 Additionally, the +/- logic has been reversed in the above functions. 5793 57942019-01-02 Tim Rühsen <tim.ruehsen@gmx.de> 5795 5796 Update copyrigght to 2019 5797 57982019-01-02 Tim Rühsen <tim.ruehsen@gmx.de> 5799 5800 * src/version-text.h.in: Use ASCII only chars 5801 58022018-12-30 Tim Rühsen <tim.ruehsen@gmx.de> 5803 5804 Fix xattr behavior (CVE-2018-20483) 5805 5806 * src/options.c (config): Disable --xattr by default 5807 * src/wget.c (set_file_metadata): Store origin URL without user/pw, 5808 store referer just as scheme/host/port 5809 58102018-12-28 Tim Rühsen <tim.ruehsen@gmx.de> 5811 5812 * .gitlab-ci.yml: Spell check 5813 58142018-12-28 Tim Rühsen <tim.ruehsen@gmx.de> 5815 5816 Fix typos found by contrib/spell-checker 5817 58182018-12-28 Tim Rühsen <tim.ruehsen@gmx.de> 5819 5820 * contrib/spell-checker: Add script for spell checking 5821 58222018-12-28 Tim Rühsen <tim.ruehsen@gmx.de> 5823 5824 * fuzz/Makefile.am: Fix order of libraries for linking [skip ci] 5825 58262018-12-27 Rafael Fontenelle <rafaelff@gnome.org> 5827 5828 Fix misspellings 5829 58302018-12-26 Tim Rühsen <tim.ruehsen@gmx.de> 5831 5832 * README.md: Add libzstd as optional dependency 5833 58342018-12-25 Tim Rühsen <tim.ruehsen@gmx.de> 5835 5836 * libwget/utils.c: Cleanup wget_match_tail(_nocase) 5837 58382018-12-20 Tim Rühsen <tim.ruehsen@gmx.de> 5839 5840 * tests/test-redirection.c: Add test for Location URI with spaces in filename 5841 58422018-12-20 Tim Rühsen <tim.ruehsen@gmx.de> 5843 5844 * tests/libtest.c (_answer_to_connection): Allow 3xx for redirection 5845 58462018-12-20 Tim Rühsen <tim.ruehsen@gmx.de> 5847 5848 * src/wget.c (src/wget.c): Small code cleanups 5849 58502018-12-20 Tim Rühsen <tim.ruehsen@gmx.de> 5851 5852 * libwget/http_parse.c (wget_http_parse_location): Being more lenient 5853 5854 Some servers don't percent encode the URI in a Location: header. 5855 Having spaces in the URI leads to magled file names and likely 404. 5856 5857 Fixes #420 5858 58592018-12-19 Tim Rühsen <tim.ruehsen@gmx.de> 5860 5861 Handle ldconfig for unprivileged users 5862 58632018-12-19 Tim Rühsen <tim.ruehsen@gmx.de> 5864 5865 Call 'ldconfig' at the end of 'make install' 5866 58672018-12-13 Tim Rühsen <tim.ruehsen@gmx.de> 5868 5869 Revert "Fix -k/--convert-links" 5870 5871 This reverts commit 89ff57ee937e6c70d3927c00a9dda75f33947238. 5872 5873 The commit fixed a bug by generating a regression at another place. 5874 See https://gitlab.com/gnuwget/wget2/issues/415#note_124641970 5875 58762018-12-12 Tim Rühsen <tim.ruehsen@gmx.de> 5877 5878 libwget/http.c (wget_http_add_credentials): Compare case independent 5879 5880 Fixes an issue with MHD 9.62 that uses a lowercase 'md5' string. 5881 58822018-12-03 Leif Ryge <leif@synthesize.us> 5883 5884 * docs/wget2.md: Fix typo s/exists/exits 5885 5886 Copyright-paperwork-exempt: Yes 5887 58882018-11-18 Tim Rühsen <tim.ruehsen@gmx.de> 5889 5890 * src/wget_xattr.h: Fix getxattr args on OSX/FreeBSD 5891 58922018-11-17 Tim Rühsen <tim.ruehsen@gmx.de> 5893 5894 * libwget/Makefile.am: Do remove css_tokenizer.c with 'make clean' 5895 58962018-11-17 Tim Rühsen <tim.ruehsen@gmx.de> 5897 5898 * contrib/check_options: Exit if not run in bash 5899 59002018-11-17 Tim Rühsen <tim.ruehsen@gmx.de> 5901 5902 * .gitlab-ci.yml: Add CI tarball build on basic Alpine 5903 59042018-11-17 Darshit Shah <darnir@gnu.org> 5905 5906 Fix VPATH build broken in earlier commit 5907 5908 * tests/Makefile.am: Add new file plugin_tests.h to DIST Files 5909 * tests/plugin_tests.h: Use BUILDDIR not SRCDIR for .libs location 5910 59112018-11-14 Darshit Shah <darnir@gnu.org> 5912 5913 Fix bug in dns_cache_preload 5914 5915 * src/options.c(options): --dns-cache-preload does expect a value. It is 5916 not an option. 5917 59182018-11-14 Darshit Shah <darnir@gnu.org> 5919 5920 Use a common header file to deduplicate plugin test boilerplate 5921 5922 * tests/test_plugin.h: Add the OBJECT_DIR and other defines in a single 5923 common file for all plugin tests 5924 * tests/test-plugin*.c: Remove boilerplate code and include 5925 "test_plugin.h" 5926 59272018-11-14 Tim Rühsen <tim.ruehsen@gmx.de> 5928 5929 * docs/wget2.md: Ad -r to example for --filter-mime-type [skip ci] 5930 59312018-10-23 Tim Rühsen <tim.ruehsen@gmx.de> 5932 5933 Use extended file attributes for server's file timestamp 5934 5935 * src/wget_xattr.h: Add fgetxattr definitions (Linux, Apple, FreeBSD) 5936 * src/wget.c (set_file_metadata): Save "user.last_modified" attribute, 5937 (read_xattr_metadata): Add function, 5938 (write_xattr_metadata): Cleanup code, 5939 (http_create_request): Get timestamp from xattr if available 5940 59412018-10-16 Josef Moellers <jmoellers@suse.de> 5942 5943 Handle wide characters in download progress bar 5944 5945 * bootstrap.conf: Add gnulib module 'wcwidth' 5946 * libwget/bar.c: New function inspect_multibyte(), 5947 (_bar_update_slot): Make use of inspect_multibyte() 5948 59492018-10-31 Tim Rühsen <tim.ruehsen@gmx.de> 5950 5951 * src/options.c (init): Avoid error msg if HSTS preload file isn't given 5952 59532018-10-31 Tim Rühsen <tim.ruehsen@gmx.de> 5954 5955 Fix -k/--convert-links 5956 5957 When different URLs result in the same local file so that 5958 -k converts a file several times, that file becomes corrupted. 5959 5960 This commit fixes it and adds a test case. 5961 5962 Reported-by: rgpublic on Gitab.com 5963 Fixes #411 5964 59652018-10-21 Tim Rühsen <tim.ruehsen@gmx.de> 5966 5967 Add valgrind suppressions for TravisCI (due to old libidn) 5968 5969 * fuzz/valgrind-suppressions: Add suppression 5970 * tests/valgrind-suppressions: Add suppression 5971 59722018-10-19 Tim Rühsen <tim.ruehsen@gmx.de> 5973 5974 Suppress some leaks detected by valgrind in fuzz/ 5975 5976 * fuzz/main.c: Use --suppressions and --gen-suppressions 5977 * fuzz/valgrind-suppressions: New suppression file 5978 5979 Some library's memory can't be freed. So we suppress what is needed 5980 to let the CIs survive. 5981 59822018-10-19 Tim Rühsen <tim.ruehsen@gmx.de> 5983 5984 * fuzz/*_fuzzer.in/*: Update fuzzer copora from OSS-Fuzz 5985 59862018-10-19 Tim Rühsen <tim.ruehsen@gmx.de> 5987 5988 * fuzz/get_ossfuzz_corpora: Use faster corpus download from OSS-Fuzz 5989 59902018-10-19 Tim Rühsen <tim.ruehsen@gmx.de> 5991 5992 * .gitignore: Add fuzz/*_fuzer.new directories 5993 59942018-10-19 Tim Rühsen <tim.ruehsen@gmx.de> 5995 5996 * src/options.c (deinit): Free config.accept_regex and config.reject_regex 5997 59982018-10-18 Tim Rühsen <tim.ruehsen@gmx.de> 5999 6000 * contrib/csv2tree: Remove superfluous 'import json' [skip ci] 6001 60022018-10-18 Tim Rühsen <tim.ruehsen@gmx.de> 6003 6004 * include/wget/wget.h: Fix documentation of HPKP return values 6005 60062018-10-18 Tim Rühsen <tim.ruehsen@gmx.de> 6007 6008 * .lgtm.yml: Classify test directories 6009 60102018-10-18 Darshit Shah <darnir@gnu.org> 6011 6012 Fix progress bar display in VTE Terminals 6013 6014 GNOME VTE removed support for VT-100 sequences to save and restore 6015 cursor position that libwget progress display was using. Their suggested 6016 approach is to use the DECSC/DECRC sequences from VT-520 instead of the 6017 SCOSC/SCORC sequences from VT-100. Since the DECSC/DECRC sequences are 6018 also supported by all other terminal emulators, we make the switch here 6019 in order to suport VTE emulators as well. 6020 Upstream Report: https://gitlab.gnome.org/GNOME/vte/issues/48 6021 6022 * libwget/bar.c(_bar_print_slot): Use ESC 7 (DECSC) instead of CSI s (SCOSC) 6023 (wget_bar_write_line): Same 6024 (_restore_cursor_position): Use ESC 8 (DECRC) instead of SCI u (SCORC) 6025 60262018-10-17 Darshit Shah <darnir@gnu.org> 6027 6028 * benchmarks/benches/convert.gp: Add generated file warning 6029 6030 [ci skip] 6031 60322018-10-14 Darshit Shah <darnir@gnu.org> 6033 6034 Remove old benchmark scripts 6035 6036 * benchmarks/bench_https_*: Deleted. Superceded by new scripts 6037 * benchmarks/benchmark.sh: Deleted. Superceded by new scripts 6038 * benchmarks/new_benchmark.sh: Renamed to benchmark.sh 6039 6040 [ci skip] 6041 60422018-10-14 Darshit Shah <darnir@gnu.org> 6043 6044 Add a small harness for Benchmarking code 6045 6046 [ci skip] 6047 This set of script works through the new_benchmark.sh script. 6048 I've tried to keep everything modular, extensible and clean. 6049 6050 * benchmarks/new_benchmark.sh: New benchmark harness 6051 * benchmarks/sources/*.bench.sh: Program specification files 6052 * benchmarks/benches/http{1,2}.sh: Benchmark specification files 6053 * benchmarks/benches/convert.gp: A gnuplot script to convert the 2 6054 column data into four columns for making the errorbars plot 6055 60562018-10-16 Darshit Shah <darnir@gnu.org> 6057 6058 * .gitignore: Ignore version-text.h, a generated file 6059 60602018-10-16 Tim Rühsen <tim.ruehsen@gmx.de> 6061 6062 * .lgtm.yml: Exclude unit-tests/files 6063 60642018-08-17 jmoellers <jmoellers@suse.de> 6065 6066 Fix issue with the number of bytes downloaded vs accounted for in the progress bar. 6067 6068 * include/wget/wget.h(wget_bar_slot_begin): Now accepts another 6069 parameter, `new_file`. 6070 * libwget/bar.c(wget_bar_slot_begin): Support `new_file` parameter. 6071 Allows calling mehod multiple times for the same file. 6072 * src/bar.c(bar_slot_begin): Same 6073 * src/wget_bar.h: Same 6074 * src/wget.c(_get_body): Pass only the difference (number of bytes 6075 actually downloaded since last call) to the progress routines 6076 60772018-08-17 jmoellers <jmoellers@suse.de> 6078 6079 Fix a bug in HTTP/2 downloads that caused incorrect progress display 6080 6081 * libwget/bar.c(wget_bar_slot_begin): Display filename when only 1 file 6082 per slot. Else, display total number of files in that slot. 6083 (wget_bar_slot_downloaded): The length now represents an incremental 6084 value, not the absolute number of bytes. 6085 * src/wget.c(_get_body): Same. 6086 60872018-10-14 Darshit Shah <darnir@gnu.org> 6088 6089 * .gitlab-ci.yml: Skip downloading po files during bootstrap 6090 60912018-10-14 Tim Rühsen <tim.ruehsen@gmx.de> 6092 6093 * src/options.c (deinit): Free config.hsts_preload_file 6094 60952018-10-13 Darshit Shah <darnir@gnu.org> 6096 6097 * bootstrap: Update script from gnulib 6098 60992018-10-13 Darshit Shah <darnir@gnu.org> 6100 6101 Update gnulib 6102 61032018-10-13 Tim Rühsen <tim.ruehsen@gmx.de> 6104 6105 * bootstrap.conf: Use rm -f to avoid error messages 6106 61072018-10-12 Tim Rühsen <tim.ruehsen@gmx.de> 6108 6109 Add copyright,license and mailing list info to --version 6110 6111 * configure.ac: Add creating src/version-text.h from .in file 6112 * src/Makefile.am: Add version-text.h to wget2_SOURCES 6113 * src/options.c (print_version): Print text from version-text.h 6114 * src/version-text.h.in: New template file 6115 61162018-10-12 Tim Rühsen <tim.ruehsen@gmx.de> 6117 6118 Add zstd decompression (RFC8478) 6119 6120 * README.md: Mention zstandard 6121 * configure.ac: Check for libzstd 6122 * docs/wget2.md: Document new --compression type 6123 * include/wget/wget.h: Add wget_content_encoding_zstd 6124 * libwget/decompressor.c: Implement the zstd decompressor 6125 * libwget/http_parse.c (wget_http_parse_content_encoding): Add zstd 6126 * src/options.c (print_version): Add +/-zstd for --version, 6127 (parse_compression): Check for wget_content_encoding_zstd, 6128 (options): Add zstd to help text 6129 * src/wget.c (http_create_request): Add zstd to Accept-Encoding: 6130 * tests/test-compression.c: Add test for zstd 6131 61322018-09-22 Darshit Shah <darnir@gnu.org> 6133 6134 Remove support for libunistring and libidn2 < 0.14 6135 6136 * configure.ac: Remove support for libidn2 < 0.14 and libunistring 6137 * libwget/encoding.c: Same 6138 * README.md: Same 6139 61402018-10-09 Tim Rühsen <tim.ruehsen@gmx.de> 6141 6142 * tests/test-include-and-exclude-directories.c: Use double quote 6143 61442018-08-15 Tim Rühsen <tim.ruehsen@gmx.de> 6145 6146 * tests/libtest.c (_answer_to_connection): Fix check for non-200 status codes 6147 61482018-07-04 Tim Rühsen <tim.ruehsen@gmx.de> 6149 6150 Add option --save-content-on 6151 6152 * docs/wget2.md: Add docs for --save-content-on 6153 * src/options.c (options): Add "save-content-on" 6154 * src/wget.c: 6155 * src/wget_options.h (struct config): Add save_content_on member 6156 * tests/Makefile.am: Add tests/test--save-content-on.c 6157 * tests/test--save-content-on.c: New test file 6158 61592018-10-03 Tim Rühsen <tim.ruehsen@gmx.de> 6160 6161 Add support for Chromium's HSTS Preload List 6162 6163 * README.md: Add libhsts as optional dependency 6164 * configure.ac: Add test for libhsts 6165 * docs/wget2.md: Add text for --hsts-preload and --hsts-preload-file 6166 * libwget/init.c: 6167 * src/options.c (print_version): Add +/-hsts for --version, 6168 (options): Add --hsts-preload and --hsts-preload-file, 6169 (init): Load the HSTS peload list, 6170 (deinit): Unload the HSTS preload list 6171 * src/wget.c (try_connection): Eventually change http to https 6172 * src/wget_options.h (config): Add hsts_preload and hsts_preload_file 6173 61742018-10-01 Tim Rühsen <tim.ruehsen@gmx.de> 6175 6176 * README.md: Add libpcre + libpcre2 as optional deps [skip ci] 6177 61782018-09-28 Tim Rühsen <tim.ruehsen@gmx.de> 6179 6180 * src/wget.c (add_url): Fix -H / --span-hosts 6181 61822018-09-25 DalmeGNU <dalmemail@gmail.com> 6183 6184 * docs/wget2.md: Fixed broken link on guide index 61852018-09-23 Darshit Shah <darnir@gnu.org> 6186 6187 * tests/valgrind-suppressions: Suppress issues from GPGME library 6188 61892018-09-21 Darshit Shah <darnir@gnu.org> 6190 6191 * src/wget.c (process_response): Just an aesthetic improvement to the code 6192 61932018-09-21 Darshit Shah <darnir@gnu.org> 6194 6195 Ensure that robots.txt is honoured even with -c 6196 6197 There was a bug that prevented the robots.txt from being parsed when 6198 resuming an incomplete download. This would cause the robots rules to 6199 not be honoured when resuming a broken download. 6200 6201 * src/wget.c (process_response): Move the robots check out of the 6202 conditional, so it runs in all valid cases 6203 (http_create_request): In case -c has been passed and we see an existing 6204 robots.txt, remove it. As a result, we will always download a fresh 6205 copy of the robots.txt file 6206 * tests/test-robots.c: Add a new test to ensure the robots file is 6207 always being parsed 6208 62092018-08-24 Darshit Shah <darnir@gnu.org> 6210 6211 Add some debug messages when a URI is not added to queue 6212 6213 * src/wget.c: Likewise 6214 * src/blacklist.c: Likewise 6215 62162018-09-21 Darshit Shah <darnir@gnu.org> 6217 6218 Minor changes to the commit-check script 6219 62202018-09-19 Tim Rühsen <tim.ruehsen@gmx.de> 6221 6222 * configure.ac: Fix searching for libpcre2 6223 62242018-09-19 DalmeGNU <dalmemail@gmail.com> 6225 6226 Add Building with alternate GnuTLS version doc 6227 62282018-09-16 DalmeGNU <dalmemail@gmail.com> 6229 6230 Add URL Encoding documentation 6231 62322018-09-16 DalmeGNU <dalmemail@gmail.com> 6233 6234 Update TestSuite.md & fix pipeline 6235 62362018-09-16 DalmeGNU <dalmemail@gmail.com> 6237 6238 Add test suite documentation 6239 62402018-09-14 DalmeGNU <dalmemail@gmail.com> 6241 6242 Add Contributing Guide 6243 62442018-09-14 DalmeGNU <dalmemail@gmail.com> 6245 6246 Add OptionHandling documentation 6247 62482018-09-17 Tim Rühsen <tim.ruehsen@gmx.de> 6249 6250 * src/options.c (options): List all TLS options for --secure-protocol 6251 62522018-09-16 Ander Juaristi <a@juaristi.eus> 6253 6254 Fix SSL/TLS Doxygen documentation 6255 62562018-09-16 Ander Juaristi <a@juaristi.eus> 6257 6258 Update AUTHORS file 6259 62602018-09-15 Tim Rühsen <tim.ruehsen@gmx.de> 6261 6262 * contrib/commit-check: Add support for companies (e.g. redhat.com) 6263 62642018-08-31 DalmeGNU <dalmemail@gmail.com> 6265 6266 Update documentation about how to add a new command line option 6267 6268 * src/options.c: Update comments on how to add a new option 6269 * docs/faq.md: Document how to add a new CLI-option 6270 62712018-09-01 Tim Rühsen <tim.ruehsen@gmx.de> 6272 6273 Fix buffer overflow in -X/-I parsing 6274 6275 * src/options.c (set_char_prefix): Fix backslash handling 6276 * fuzz/wget_options_fuzzer.in/: Add reproducer 6277 6278 This bug was introduced yesterday by commit 6279 756e470de942ec830a9a424a2340b7e986e9fe7c 6280 6281 Found by oss-fuzz (issue 10163). 6282 62832018-09-01 Tim Rühsen <tim.ruehsen@gmx.de> 6284 6285 Fix buffer overflow in -X/-I parsing 6286 6287 * src/options.c (set_char_prefix): Fix scratch buffer size 6288 * fuzz/wget_options_fuzzer.in/: Add reproducer 6289 6290 This bug was introduced yesterday by commit 6291 756e470de942ec830a9a424a2340b7e986e9fe7c 6292 6293 Found by oss-fuzz (issue 10159). 6294 62952018-04-10 Dan <dalmemail@gmail.com> 6296 6297 Add -X/--exclude-directories and -I/--include-directories 6298 6299 * docs/wget2.md: Add docs for -I/--include-directories=list 6300 and -X/--exclude-directories=list 6301 * src/options.c: New function _strchrnul_esc(), 6302 new function _strmemdup_esc(), 6303 (parse_stringlist_expand): Use new functions from above, 6304 new function set_char_prefix(), parse_included_directories() 6305 and parse_excluded_directories, 6306 (options): add exclude-directories and --include-directories 6307 * src/wget.c: New functions match_subdir() and in_directory_pattern_list(), 6308 (add_url): check if path matches directory patterns, 6309 (_prepare_file): add new param 'path', 6310 * src/wget_options.h (struct config): Add member 'exclude_directories' 6311 * tests/Makefile.am: Add 'test-include-and-exclude-directories' 6312 * tests/test-include-and-exclude-directories.c: New file 6313 63142018-08-29 Tim Rühsen <tim.ruehsen@gmx.de> 6315 6316 Rename --dns-caching to --dns-cache (Wget1.x compatibility) 6317 6318 * docs/wget2.md: --dns-caching -> --dns-cache 6319 * src/options.c (options): Likewise 6320 63212018-08-29 Tim Rühsen <tim.ruehsen@gmx.de> 6322 6323 * docs/Makefile.am: Add README.md to DISTCLEANFILES 6324 63252018-08-29 Tim Rühsen <tim.ruehsen@gmx.de> 6326 6327 Improve online documentation 6328 6329 * README.md: Move some dev info to faq.md 6330 * docs/Makefile.am: Generate introduction from README.md 6331 * docs/faq.md: Started with User and Dev sections 6332 * docs/libwget.doxy.in: Remove mainpage, use README.md instead 6333 * docs/mainpage.md: Remove 6334 * docs/wget2.md: Amended intro to options that take lists 6335 63362018-08-21 Tim Rühsen <tim.ruehsen@gmx.de> 6337 6338 * fuzz/libwget_base64_fuzzer.c: Silence scan-build 6339 63402018-08-21 Tim Rühsen <tim.ruehsen@gmx.de> 6341 6342 Document wget_base64_get_(en|de)coded_length() and move to base64.c 6343 6344 * include/wget/wget.h: Declare both function as pure 6345 * libwget/base64.c: Add both functions incl. documentation, 6346 (wget_base64_decode_alloc): Remove hard-coded calculation, 6347 (wget_base64_encode_alloc): Likewise. 6348 * libwget/tls_session.c (_tls_session_save): 6349 Use wget_base64_get_encoded_length() instead hard-coded calculation 6350 * fuzz/libwget_base64_fuzzer.c: 6351 Avoid both functions to be optimized out 6352 63532018-08-21 Tim Rühsen <tim.ruehsen@gmx.de> 6354 6355 * po/POTFILES.in: Add libwget/error.c 6356 63572018-08-17 Tim Rühsen <tim.ruehsen@gmx.de> 6358 6359 * src/wget.c: Set tries to 1 on HTTPS errors when built without TLS support 6360 63612018-08-17 Tim Rühsen <tim.ruehsen@gmx.de> 6362 6363 * src/gpgme.c (_verify_detached_sig): Return WGET_E_GPG_VER_FAIL on signatue failure 6364 63652018-08-17 Tim Rühsen <tim.ruehsen@gmx.de> 6366 6367 New function wget_strerror() 6368 6369 * docs/Makefile.am: Add man page build for error functions 6370 * include/wget/wget.h: Make WGET_E_* an enum wget_error_t, 6371 declare new function wget_strerror() 6372 * libwget/Makefile.am: Add error.c 6373 * libwget/error.c: New file 6374 63752018-08-17 Darshit Shah <darnir@gnu.org> 6376 6377 * src/wget_options.h: Add the const qualifier to valid options 6378 63792018-08-17 Darshit Shah <darnir@gnu.org> 6380 6381 * libwget/http.c(_print_frame_type): Don't print anything when frame type is DATA 6382 63832018-08-17 Tim Rühsen <tim.ruehsen@gmx.de> 6384 6385 Add base64 URL/file safety 6386 6387 * include/wget/wget.h: Add wget_base64_urlencode() 6388 * libwget/base64.c: New function wget_base64_urlencode(), 6389 new function _wget_base64_encode(), 6390 (base64_2_bin): add charactes '-' and '_'. 6391 63922018-08-16 Tim Rühsen <tim.ruehsen@gmx.de> 6393 6394 * AUTHORS: Fix name of Josef Möllers 6395 63962018-08-16 Tim Rühsen <tim.ruehsen@gmx.de> 6397 6398 * contrib/commit-check: Don't check the name 6399 6400 The name can't easily be used as an identifier. 6401 E.g. my name is different through commits: 'Tim Ruehsen' or 'Tim Rühsen' 6402 6403 Checking the email address used for the FSF assignment is enough. 6404 64052018-08-16 Darshit Shah <darnir@gnu.org> 6406 6407 * AUTHORS: Josef Moellers has copyrights assigned 6408 6409 [skip ci] 6410 64112018-08-14 Tim Rühsen <tim.ruehsen@gmx.de> 6412 6413 * Makefile: Perform checks in check-local unconditionally 6414 64152018-08-14 Tim Rühsen <tim.ruehsen@gmx.de> 6416 6417 * Makefile.am: Fix local-check for VPATH build 6418 64192018-08-12 Darshit Shah <darnir@gnu.org> 6420 6421 * Makefile.am: Make check-local fail on error 6422 64232018-08-11 Tim Rühsen <tim.ruehsen@gmx.de> 6424 6425 * AUTHORS: Add Aniketh Gireesh 6426 64272018-08-08 Tim Rühsen <tim.ruehsen@gmx.de> 6428 6429 * docs/wget2.md: Add description for --dns-caching 6430 64312018-08-08 Tim Rühsen <tim.ruehsen@gmx.de> 6432 6433 Add new option --dns-cache-preload 6434 6435 * include/wget/wget.h: New function wget_tcp_dns_cache_add() 6436 * libwget/dns_cache.c (wget_dns_cache_add): Fix docs 6437 * libwget/net.c (_wget_tcp_resolve): Changed params, 6438 new function wget_tcp_dns_cache_add() 6439 * src/options.c (options): Add --dns-cache-preload, 6440 new function _preload_dns_cache(), 6441 (init): Call _preload_dns_cache() 6442 * src/wget_options.h (struct config): Add member dns_cache_preload 6443 64442018-08-07 Tim Rühsen <tim.ruehsen@gmx.de> 6445 6446 * src/wget.c (add_url): Don't follow redirects when --max-redirects=0 6447 64482018-08-05 Tim Rühsen <tim.ruehsen@gmx.de> 6449 6450 * src/wget.c (process_response_header): Prevent read of uninitialized data 6451 64522018-08-05 DalmeGNU <dalmemail@gmail.com> 6453 6454 Add information related to the build process in Haiku [skip ci] 64552018-08-04 Tim Rühsen <tim.ruehsen@gmx.de> 6456 6457 Add example batch_loader 6458 6459 * examples/Makefile.am: Add batch_loader.c 6460 * examples/batch_loader.c: New example code 6461 6462 This example uses 500 threads to process domains / URLS from 6463 stdin. It downloads the URL and creates a stats entry in out.csv. 6464 Check the source for details. 6465 64662018-08-04 Tim Rühsen <tim.ruehsen@gmx.de> 6467 6468 Remove usage of getaddrinfo_a() and gai_* functions 6469 6470 The glibc async functions turned out to be unstable and 6471 error-prone. They also use threads to implement timeouts. 6472 If we need DNS timeouts and/or async DNS lookups, we should 6473 have a look at external resolver libraries. 6474 64752018-08-03 Tim Rühsen <tim.ruehsen@gmx.de> 6476 6477 Fix calling error handler for uncompressing 6478 6479 * ../libwget/decompressor.c (wget_decompress): Fix argument to 6480 error_handler() 6481 * ../libwget/http.c (_on_stream_close_callback): Set stream context 6482 to NULL when freeing 6483 64842018-08-04 Darshit Shah <darnir@gnu.org> 6485 6486 * src/wget.c (main): Add comment explaining why there are nthreads+2 slots 6487 64882018-08-01 Darshit Shah <darnir@gnu.org> 6489 6490 * src/options.c: Remove dot progress from help text 6491 64922018-07-29 Tim Rühsen <tim.ruehsen@gmx.de> 6493 6494 * README.md: Mention 'setarch x86' on Haiku [skip ci] 6495 64962018-07-29 Tim Rühsen <tim.ruehsen@gmx.de> 6497 6498 * configure.ac: Remove -Wabi, too loud with gcc 8 6499 65002018-07-29 Tim Rühsen <tim.ruehsen@gmx.de> 6501 6502 * src/wget.c (downloader_thread): Fix buffer overflow 6503 65042018-07-29 Darshit Shah <darnir@gnu.org> 6505 6506 Rewrte the speed reporting codepath 6507 6508 * include/wget/wget.h (wget_human_readable): Function is not a const 6509 * libwget/bar.c (_BAR_SETTINGS): Remove SPEED_REDRAW_TIME 6510 (struct _speed_report): Remove and add relevant fields to _bar_slot_t 6511 (_bar_update_speed): Removed 6512 (_bar_update_speed_stats): New function to populate the speed ring and 6513 fill in the speed_buf buffer 6514 (_bar_set_progress): Remove old commented out code 6515 (_bar_update_slot): Speed computation is moved to 6516 `_bar_update_speed_stats`. 6517 (wget_bar_set_slots): No longer need to realloc speed ring buffers 6518 (wget_bar_slot_begin): Initialize the ring_pos and the speed rings 6519 (wget_bar_deinit): Variable `speed_r` no longer used 6520 6521 In this implementation, I've made a few functional changes and some 6522 other design changes to how the speed report is computed. First, I've 6523 removed the assumption that the progress bar is updated every 125ms. 6524 This is part of the client side logic and we can't assume that in the 6525 library. Instead, the speed report is computed every time the progress 6526 bar is refreshed. The size of the speed ring and how the computation is 6527 done is documented to allow the library users to make a decision on how 6528 they want to use the progress bar. 6529 6530 While, I've currently removed SPEED_REDRAW_TIME, I do plan to bring it 6531 back soon. This will most likely be done alongside support for computing 6532 the ETA of the download. 6533 6534 In this commit, I have also made it such that the speed is shown only 6535 after the speed ring is filled in entirely. This most likely needs to 6536 change such that we show the speed immediately. However, we document 6537 that it will jitter a lot while the speed ring is being populated. 6538 65392018-07-26 Darshit Shah <darnir@gnu.org> 6540 6541 * libwget/bar.c(_bar_update_speed): Get time only once 6542 65432018-07-23 Darshit Shah <darnir@gnu.org> 6544 6545 * libwget/bar.c(_BAR_DECOR_SIZE): Account for extra space at end 6546 65472018-07-26 Tim Rühsen <tim.ruehsen@gmx.de> 6548 6549 * libwget/tls_session.c: Only update/write when really changed 6550 65512018-07-17 Tim Rühsen <tim.ruehsen@gmx.de> 6552 6553 Remove --gnutls-options 6554 6555 * docs/wget2.md: Remove docs for --gnutls-options 6556 * include/wget/wget.h: Remove WGET_SSL_DIRECT_OPTIONS 6557 * libwget/ssl_gnutls.c: Remove use of WGET_SSL_DIRECT_OPTIONS 6558 * src/options.c: Remove --gnutls-options 6559 * src/wget_options.h: Remove config.gnutls_options 6560 6561 This option was obsoleted by --secure-protocol where you can 6562 also set an explicit priority/cipher string. 6563 65642018-07-17 Tim Rühsen <tim.ruehsen@gmx.de> 6565 6566 Add TLSv1_x to --secure-protocol 6567 6568 * docs/wget2.md: Extend docs for --secure-protocol 6569 * libwget/ssl_gnutls.c (wget_ssl_init): Add priority handling 6570 6571 This commit adds TLSv1_1, TLSv1_2 and TLSv1_3. 6572 65732018-07-15 Tim Rühsen <tim.ruehsen@gmx.de> 6574 6575 Extend OOM handling 6576 6577 * include/wget/wget.h: Amend type of wget_oom_callback_t 6578 * libwget/xalloc.c: Amend OOM handling 6579 * src/options.c (_no_memory): Return EXIT_FAILURE 6580 * unit-tests/test.c (main): Cast to avoid warning 6581 6582 The OOM callback can now return 0 and the allocation function is tried again. 6583 65842018-07-05 Darshit Shah <darnir@gnu.org> 6585 6586 * libwget/bar.c: Set the speed modifier globally 6587 6588 This reduces the number of computations that need to be done on each bar 6589 slot update. The modifier is set only at startup, so we don't need to 6590 recompute it everytime 6591 65922018-07-05 Tim Rühsen <tim.ruehsen@gmx.de> 6593 6594 * .gitlab-ci.yml: Increase version of cache 6595 65962018-07-04 Tim Rühsen <tim.ruehsen@gmx.de> 6597 6598 Add wget_bitmap_t 6599 6600 * include/wget/wget.h: Add bitmap prototypes 6601 * libwget/Makefile.am: Add libwget/bitmap.c 6602 * libwget/bitmap.c: New file for bitmap implementation 6603 * docs/Makefile.am: Add man pages for bitmap functions 6604 * unit-tests/test.c: Add tests for bitmap functions 6605 6606 First version was written by Aniketh Girish 6607 66082018-07-04 Darshit Shah <darnir@gnu.org> 6609 6610 * libwget/bar.c: Use enums for constants instead of defines 6611 66122018-07-04 Darshit Shah <darnir@gnu.org> 6613 6614 * libwget/bar.c: Add a space to empty speed report 6615 66162018-06-11 DalmeGNU <dalmemail@gmail.com> 6617 6618 Implementation of the --retry-on-http-status option 6619 6620 * src/wget_options.h: Add http_retry_on_status (wget_vector_t) to config structure 6621 * src/options.c: Add --retry-on-http-status option 6622 * src/wget.c: Modify downloader_thread() in order to retry a download following the --retry-on-http-status option 6623 * docs/wget2.md: Add documentation for the --retry-on-http-status option 6624 66252018-06-11 DalmeGNU <dalmemail@gmail.com> 6626 6627 * libwget/bar.c: Don't print zero as speed when we can't calculate it 6628 66292018-06-22 Tim Rühsen <tim.ruehsen@gmx.de> 6630 6631 Add new option --keep-extension 6632 6633 * src/options.c: Add option --keep-extension 6634 * src/wget.c (_open_unique): Add code for --keep-extension 6635 * src/wget_options.h (struct config): Add keep_extension member 6636 * docs/wget2.md: Add docs for --keep-extension 6637 6638 The new option --keep-extension changes the behavior for creating a 6639 unique filename if a file already exists. 6640 The standard (default) pattern is to generate <filename>.<N>, the new 6641 pattern is <basename>_<N>.<ext>. 6642 6643 The idea is use such files without renaming when the use depends on the 6644 extension, like on Windows. 6645 66462018-06-22 Tim Rühsen <tim.ruehsen@gmx.de> 6647 6648 * .gitlab-ci.yml: Allow MinGW runner to fail 6649 6650 The MinGW runner fails due to GnuTLS randomizer failing. 6651 See https://gitlab.com/gnutls/gnutls/issues/486 6652 6653 When fixed, we will revert this commit. 6654 66552018-06-20 Tim Rühsen <tim.ruehsen@gmx.de> 6656 6657 * .gitlab-ci.yml: Add config.h to MinGW artifacts 6658 66592018-06-20 Tim Rühsen <tim.ruehsen@gmx.de> 6660 6661 * libwget/http.c (wget_http_get_response_cb): Fix clang warning 6662 66632018-06-20 Tim Rühsen <tim.ruehsen@gmx.de> 6664 6665 * src/wget.c (_add_authorize_header): Fix tests for auth scheme name 6666 6667 Reported-by: @Con7e (gitlab.com) 6668 66692018-06-15 Tim Rühsen <tim.ruehsen@gmx.de> 6670 6671 Fix http2 slowness issue 6672 6673 We saw many WINDOW_UPDATE frames while debugging, so we tried to 6674 fix the window sizes for connection and stream windows to a large value. 6675 6676 This patch also simplifies the receive loop. 6677 66782018-06-13 Tim Rühsen <tim.ruehsen@gmx.de> 6679 6680 * libwget/ssl_gnutls.c (_verify_certificate_callback): Fix grammar of error msg 6681 6682 Reported-by: Nicholas Sielicki 6683 66842018-06-10 DalmeGNU <dalmemail@gmail.com> 6685 6686 * libwget/bar.c (wget_bar_slot_begin): Reset speed ring buffer 6687 6688 This fixes wrong (huge) values for small files on the progress bar. 6689 66902018-05-27 Neil Locketz <neil@nlocketz.com> 6691 6692 Document new arguments 6693 6694 * docs/wget2.md: Document the change in behavior, and what each option 6695 means. 6696 66972018-05-31 Neil Locketz <neil@nlocketz.com> 6698 6699 Add verify-sig missing signature file behavior test. 6700 6701 * tests/Makefile.am: Add new test. 6702 * tests/test-gpg-verify-no-fail.c: Test behavior of the new missing 6703 signature stuff. 6704 67052018-05-27 Neil Locketz <neil@nlocketz.com> 6706 6707 Add arguments fail / nofail to --verify-sig 6708 6709 * src/options.c: Change flag to parse out the signature options. 6710 * src/wget_options.h: Change verify_sig to allow more information 6711 (selected option rather then a boolean value). 6712 * src/wget.c: Check for missing signature behavior before failing for 6713 missing signature. 6714 * src/job.c: Added additional memory cleanup 6715 * src/wget_job.h: Shuffled some fields to make new behavior cleaner and 6716 more convinient. Also added list for remaining signatures that need to 6717 be attempted. 6718 6719 Allows fine-tuning Wget2's behavior when signature files are not found. 6720 67212018-06-07 Tim Rühsen <tim.ruehsen@gmx.de> 6722 6723 * bootstrap.conf: Enable syncing with translationproject.org 6724 67252018-06-04 Tim Rühsen <tim.ruehsen@gmx.de> 6726 6727 Do not localize debug_printf format strings 6728 6729 * libwget/cookie.c: Likewise 6730 * libwget/css_url.c: Likewise 6731 * libwget/hsts.c: Likewise 6732 * libwget/ocsp.c: Likewise 6733 * libwget/ssl_gnutls.c: Likewise 6734 * libwget/tls_session.c: Likewise 6735 * unit-tests/test.c: Likewise 6736 6737 Reported-by: Rafael Fontenelle 6738 67392018-06-02 Yuri Chornoivan <yurchor@ukr.net> 6740 6741 Fix minor typos 6742 6743 * docs/wget2.md: sperated -> separated 6744 * src/bar.c (bar_init): progess -> progress 6745 6746 Copyright-paperwork-exempt: Yes 6747 67482018-05-13 Tim Rühsen <tim.ruehsen@gmx.de> 6749 6750 * contrib/mingw: Add libpsl build + cleanup 6751 67522018-05-07 Tim Rühsen <tim.ruehsen@gmx.de> 6753 6754 Skip -np/--no-parent for CSS URLs 6755 6756 * src/wget.c: Use URL_FLG_REQUISITE for all CSS URLs 6757 * tests/test--page-requisites.c: Add tests for @import and url() in CSS 6758 67592018-05-04 Tim Rühsen <tim.ruehsen@gmx.de> 6760 6761 Add URL_FLG_REQUISITE to add_url() 6762 6763 * src/wget.c: Add flag URL_FLG_REQUISITE, call add_url() with 6764 URL_FLG_REQUISITE in case of page requisites. 6765 67662018-05-03 Tsukasa OI <floss_wget@irq.a4lg.com> 6767 6768 Add test case to fail -p with -np 6769 6770 * tests/test--page-requisites.c: Add test case to fail 6771 67722018-05-07 Tim Rühsen <tim.ruehsen@gmx.de> 6773 6774 * cfg.mk: Escape dots in path components 6775 67762018-05-07 Tim Rühsen <tim.ruehsen@gmx.de> 6777 6778 * po/POTFILES.in: Remove libwget/html_url.c 6779 67802018-05-06 sameeran joshi <joshisameeran17@gmail.com> 6781 6782 * libwget/html_url.c(_urls_to_absolute): Remove unused function 6783 67842018-05-04 Darshit Shah <darnir@gnu.org> 6785 6786 Update AUTHORS 6787 6788 [skip-ci] 6789 67902018-05-04 Tsukasa OI <floss_wget@irq.a4lg.com> 6791 6792 * contrib/commit-check: Detect Copyright-paperwork-exempt correctly 6793 67942018-05-03 Tim Rühsen <tim.ruehsen@gmx.de> 6795 6796 Remove unconditionally set warning flags for GCC 6797 6798 * configure.ac: Add -W(no-)unused-macros and -Wno-missing-field-initializers 6799 to gcc/clang compiler flags 6800 * libwget/Makefile.am: Remove -Wno-unused-macros 6801 * tests/Makefile.am: Remove -Wno-missing-field-initializers 6802 * unit-tests/Makefile.am: Likewise 6803 6804 Reported-by: Dagobert Michelsen 6805 68062018-05-03 Tim Rühsen <tim.ruehsen@gmx.de> 6807 6808 * tests/Makefile.am: Add $(EXEEXT) where missing 6809 68102018-05-03 Tsukasa OI <floss_wget@irq.a4lg.com> 6811 6812 Fix null-pointer dereference on -r -np 6813 6814 * src/wget.c (add_url): Fix null-pointer dereference on -r -np 6815 * tests/test-np.c: Modify test case to detect this condition 6816 6817 Copyright-paperwork-exempt: Yes 6818 68192018-05-01 Tim Rühsen <tim.ruehsen@gmx.de> 6820 6821 * README.md: Small cleanup 6822 68232018-05-01 Darshit Shah <darnir@gnu.org> 6824 6825 * libwget/bar.c(_bar_set_progress): Fix off by one error 6826 68272018-04-30 Tim Rühsen <tim.ruehsen@gmx.de> 6828 6829 Prepare Release 1.99.1 (alpha) 6830 68312018-04-30 Tim Rühsen <tim.ruehsen@gmx.de> 6832 6833 * fuzz/fuzzer.h: Disable pedantic and unused warnings 6834 68352018-04-30 Tim Rühsen <tim.ruehsen@gmx.de> 6836 6837 Update copyright to 2018 6838 68392018-04-30 Tim Rühsen <tim.ruehsen@gmx.de> 6840 6841 * contrib/update_copyright: Update to 2018 6842 68432018-04-30 Tim Rühsen <tim.ruehsen@gmx.de> 6844 6845 Add scripts for testing on gcc and OpenCSW buildfarm 6846 6847 * ci-test: New script with generic code 6848 * ci-test.d/gcc110.fsffrance.org.sh: Script with special code for gcc110 (CentOS 7.4) 6849 * ci-test.d/gcc70.fsffrance.org.sh: Script with special code for gcc70 (NetBSD 5.1) 6850 * ci-test.d/login.opencsw.org.sh: Script with special code for OpenCSW (Solaris) 6851 68522018-04-30 Tim Rühsen <tim.ruehsen@gmx.de> 6853 6854 * Makefile.am: Don't do syntax-check + check_options in tarball build 6855 68562018-04-13 Tim Rühsen <tim.ruehsen@gmx.de> 6857 6858 * tests/valgrind-suppressions: Ignore pthread leak from gai_misc.c 6859 68602018-04-13 Tim Rühsen <tim.ruehsen@gmx.de> 6861 6862 Add G_GNUC_WGET_UNUSED to fuzz code 6863 6864 * fuzz/libwget_xml_parse_buffer_fuzzer.c: Likewise 6865 * fuzz/main.c: Likewise 6866 68672018-04-13 Tim Rühsen <tim.ruehsen@gmx.de> 6868 6869 * fuzz/Makefile.am: Remove hard-coded compiler flags 6870 68712018-04-13 Tim Rühsen <tim.ruehsen@gmx.de> 6872 6873 Remove _GL_INLINE from functions 6874 6875 * libwget/hashmap.c: Likewise 6876 * libwget/iri.c: Likewise 6877 * libwget/ssl_gnutls.c: Likewise 6878 * libwget/utils.c: Likewise 6879 6880 Gcc 4.1.3 on NetBSD 5.1 errors when duplicate _GL_INLINE is given as a 6881 function attribute. 6882 From the gnulib manual: "C code ordinarily should not use inline. Typically it 6883 is better to let the compiler figure out whether to inline, as compilers are 6884 pretty good about optimization nowadays. In this sense, inline is like 6885 register, another keyword that is typically no longer needed" 6886 68872018-04-30 Tim Rühsen <tim.ruehsen@gmx.de> 6888 6889 Exclude fuzz corpora from tarball 6890 6891 * fuzz/Makefile.am: Do not include corpora in tarball 6892 * fuzz/main.c: SKIP if corpora directory isn't found (make check) 6893 6894 The fuzz corpora are thousands of files, not needed for a standard build 6895 from a distribution tarball. The reproducers of former issues are being 6896 included for regression testing. 6897 68982018-04-23 Tim Rühsen <tim.ruehsen@gmx.de> 6899 6900 Add --retry-connrefused 6901 6902 * src/options.c: Add --retry-connrefused 6903 * src/wget.c (establish_connection): Skip final failure 6904 * src/wget_options.h (struct config): Add retry_connrefused 6905 69062018-04-27 Darshit Shah <darnir@gnu.org> 6907 6908 * tests/valgrind-suppressions: Update suppressions for Glibc 2.27 6909 69102018-04-17 Tim Rühsen <tim.ruehsen@gmx.de> 6911 6912 * contrib/mail.sh: Assume bash, print email to file if msmtp not found 6913 69142018-04-17 Darshit Shah <darnir@gnu.org> 6915 6916 * contrib/mail.sh: File got deleted accidentally in an earlier commit 6917 69182018-04-16 Darshit Shah <darnir@gnu.org> 6919 6920 Update the AUTHORS list 6921 69222018-04-12 Tim Rühsen <tim.ruehsen@gmx.de> 6923 6924 * .lgtm.yml: Call ./bootstrap 6925 69262018-04-12 Tim Rühsen <tim.ruehsen@gmx.de> 6927 6928 Dont't recognize %3A as colon in relative URLs 6929 6930 * include/wget/wget.h: New function wget_iri_unescape_url_inline() 6931 * libwget/iri.c: Likewise 6932 * src/wget.c (_normalize_uri): Use wget_iri_unescape_url_inline() 6933 * examples/check_url_types.c: Likewise 6934 * tests/test-base.c: Add test case 6935 * unit-tests/test.c (test_iri_relative_to_absolute): Add test case 6936 6937 Relative URLS like in href='foo%3A/' have been detected and parsed 6938 as absolute URL with (unknown) scheme 'foo:'. 6939 This commit fixes it. 6940 69412018-04-11 Bas van Schaik <github@s.traiectum.net> 6942 6943 * .lgtm.yml: Remove unnneeded package installation and ./bootstrap 6944 6945 - no need to install gnutls-dev; it's installed automatically during the 6946 build/analysis process 6947 - however, the lgtm.yml I used for setting wget2 up on lgtm.com does 6948 install two other packages that are not auto-detected: lzip and 6949 libgpgme11-dev 6950 - no need to run ./bootstrap either; LGTM will do that automatically :) 6951 69522018-04-11 Tim Rühsen <tim.ruehsen@gmx.de> 6953 6954 * .lgtm.yml: New file for static analysis on lgtm.com [ci skip] 6955 69562018-04-11 Tim Rühsen <tim.ruehsen@gmx.de> 6957 6958 * libwget/xml.c: Fix copyright date (test lgtm.com automatism) [ci skip] 6959 69602018-04-11 Tim Rühsen <tim.ruehsen@gmx.de> 6961 6962 * include/wget/wget.h: Fix header guard (found by lgtm.com) 6963 69642018-04-11 Tim Rühsen <tim.ruehsen@gmx.de> 6965 6966 * libwget/ssl_gnutls.c (_do_handshake): Fix error value for older GnuTLS on OSX 6967 69682018-04-11 Tim Rühsen <tim.ruehsen@gmx.de> 6969 6970 * libwget/Makefile: Make css_tokenizer.c generation more portable 6971 69722018-03-15 Jiading Guo <zingdle@gmail.com> 6973 6974 Add --[no-]compression=TYPE 6975 6976 * src/options.c: Add compression option support 6977 * src/wget.c: Generate 'Accept-Encoding' headers accordingly 6978 * src/wget_options.h: Add compression variables 6979 * libwget/decompressor.c: Add xz and "none" types 6980 * include/wget/wget.h: Add xz types 6981 * docs/wget2.md: Add compression option document 6982 * tests/Makefile.am: Add compression test 6983 * tests/libtest.c: Add request header test support 6984 * tests/libtest.h: Add request header test support 6985 * tests/test-compression.c: Add compression test 6986 69872018-04-11 Tim Rühsen <tim.ruehsen@gmx.de> 6988 6989 * libwget/ssl_gnutls.c (_do_handshake): Fix error value for older GnuTLS 6990 69912018-04-11 Tim Rühsen <tim.ruehsen@gmx.de> 6992 6993 * libwget/net.c (wget_tcp_connect): Use WGET_E_* return code 6994 69952018-04-11 Tim Rühsen <tim.ruehsen@gmx.de> 6996 6997 Add Jiading Guo to AUTHORS [ci skip] 6998 69992018-04-10 Tim Rühsen <tim.ruehsen@gmx.de> 7000 7001 * src/wget_job.h: Fix typo in comment [ci skip] 7002 70032018-04-10 Tim Rühsen <tim.ruehsen@gmx.de> 7004 7005 * src/options.c (parse_prefer_family): Fix pointer type 7006 7007 Fixes #373 7008 70092018-04-06 Tim Rühsen <tim.ruehsen@gmx.de> 7010 7011 * configure.ac: Enable hashing fallback to nettle 7012 70132018-04-06 Tim Rühsen <tim.ruehsen@gmx.de> 7014 7015 Fix scan-build for gnulib hash code 7016 7017 * .gitlab-ci.yml: Obsolete configure cache 7018 * include/wget/wget.h: Add WGET_DIGTYPE_MAX 7019 * libwget/hashfile.c: Fix code 7020 70212018-04-06 Tim Rühsen <tim.ruehsen@gmx.de> 7022 7023 * libwget/hashfile.c: Fix warnings 7024 70252018-04-06 Tim Rühsen <tim.ruehsen@gmx.de> 7026 7027 * configure.ac: Fix detection of gnutls/crypto.h 7028 7029 Some versions of GnuTLS do not provide a crypto.h, so we have 7030 to check for it's presence. 7031 This check fails with some versions of GnuTLS since crypto.h 7032 lacks the #include <gnutls/gnutls.h>. 7033 70342018-04-06 Tim Rühsen <tim.ruehsen@gmx.de> 7035 7036 * contrib/mingw: Add fix for lib/pthread_sigmask.c 7037 70382018-04-06 Tim Rühsen <tim.ruehsen@gmx.de> 7039 7040 * configure.ac: Remove gcc's -Wno-incompatible-pointer-types when cross-compiling 7041 70422018-04-03 Tim Rühsen <tim.ruehsen@gmx.de> 7043 7044 * src/options.c: Fix misalignment, found by oss-fuzz 7045 70462018-04-03 Tim Rühsen <tim.ruehsen@gmx.de> 7047 7048 * fuzz/*.in: Update oss-fuzz corpora 7049 70502018-04-02 Darshit Shah <darnir@gnu.org> 7051 7052 * .gitlab-ci.yml: Add new Arch CI which is run only on schedules 7053 7054 [ci skip] 7055 70562018-04-03 Tim Rühsen <tim.ruehsen@gmx.de> 7057 7058 Check for gnutls/crypto.h 7059 7060 * configure.ac: Check for gnutls/crypto.h 7061 * libwget/hashfile.c: Need HAVE_GNUTLS_CRYPTO_H to include gnutls/crypto.h 7062 7063 Found this problem on the OpenCSW Solaris build farm 7064 70652018-04-03 Tim Rühsen <tim.ruehsen@gmx.de> 7066 7067 * libwget/cookie.c: Don't define _U, already defined on Solaris 7068 70692018-04-03 Tim Rühsen <tim.ruehsen@gmx.de> 7070 7071 * README.md: Remove gperf from dependency list 7072 70732018-04-02 Darshit Shah <darnir@gnu.org> 7074 7075 * configure.ac: Add comment explaining IDNA support 7076 70772018-04-02 Darshit Shah <darnir@gnu.org> 7078 7079 * bootstrap.conf: Update dependencies 7080 70812018-04-01 Darshit Shah <darnir@gnu.org> 7082 7083 * .gitlab-ci.yml: Switch commitcheck script to basic alpine container 7084 70852018-04-01 Darshit Shah <darnir@gnu.org> 7086 7087 * .gitlab-ci.yml: Remove flawfinder and change valgrind to Debian 7088 70892018-03-29 Tim Rühsen <tim.ruehsen@gmx.de> 7090 7091 * .gitlab-ci.yml: Do not build lzip tarball 7092 70932018-03-29 Tim Rühsen <tim.ruehsen@gmx.de> 7094 7095 * .gitlab-ci.yml: Copy gnulib subdir instead using git [skip ci] 7096 70972018-03-29 Tim Rühsen <tim.ruehsen@gmx.de> 7098 7099 Use wget_snprintf() in src/*.c 7100 7101 * src/options.c: Use wget_snprintf() instead of snprintf()" 7102 * src/wget.c: Likewise 7103 71042018-03-28 Tim Rühsen <tim.ruehsen@gmx.de> 7105 7106 Use libwget's print-like functions instead the stdio ones 7107 7108 * include/wget/wget.h: Amend return type of wget_bar_print(), wget_bar_vprintf() 7109 * libwget/Makefile.am: Replace fprintf in generated css_tokenizer.c 7110 * libwget/bar.c: Replace *printf by wget_*printf, 7111 (_bar_set_progress): Generate progress bar with memcpy/memset 7112 * libwget/hpkp.c: Replace *printf by wget_*printf 7113 * libwget/cookie.c: Likewise 7114 * libwget/hpkp.c: Likewise 7115 * libwget/hsts.c: Likewise 7116 * libwget/http.c: Likewise 7117 * libwget/http_parse.c: Likewise 7118 * libwget/io.c: Likewise 7119 * libwget/net.c: Likewise 7120 * libwget/ocsp.c: Likewise 7121 * libwget/pipe.c: Likewise 7122 * libwget/ssl_gnutls.c: Likewise 7123 * libwget/utils.c: Likewise 7124 * libwget/xml.c: Likewise 7125 7126 The intention is to not pull in (large) code parts from libc when 7127 linking statically, the performance is better and we have no 7128 portability issues on non-POSIX platforms (e.g. Windows). 7129 71302018-03-28 Tim Rühsen <tim.ruehsen@gmx.de> 7131 7132 Add more printf-like functions 7133 7134 * include/wget/wget.h: Add wget_vfprintf(), wget_fprintf(), 7135 wget_vsnprintf(), wget_snprintf() 7136 * libwget/printf.c: Likewise 7137 71382018-03-28 Tim Rühsen <tim.ruehsen@gmx.de> 7139 7140 * libwget/strscpy.c: Fix return value of strscpy() 7141 71422018-03-28 Tim Rühsen <tim.ruehsen@gmx.de> 7143 7144 * unit-tests/test.c: Add tests for strscpy() 7145 71462018-03-28 Tim Rühsen <tim.ruehsen@gmx.de> 7147 7148 * docs/Makefile.am: Build man pages for hashmap/stringmap API 7149 71502018-03-25 Tim Rühsen <tim.ruehsen@gmx.de> 7151 7152 Document hashmap and stringmap 7153 7154 * include/wget/wget.h: Cleanups 7155 * libwget/hashmap.c: Documentation + cleanups 7156 * libwget/stringmap.c: Documentation + cleanups 7157 * libwget/vector.c: Fix doxygen issue 7158 71592018-03-25 Tim Rühsen <tim.ruehsen@gmx.de> 7160 7161 * libwget/vector.c: Small cleanups 7162 71632018-03-25 Tim Rühsen <tim.ruehsen@gmx.de> 7164 7165 Remove param 'off' from wget_vector_create() 7166 7167 * libwget/vector.c (wget_vector_create): Remove param 'off', 7168 (wget_vector_set_growth_policy): Add new function 7169 * include/wget/wget.h: Add prototype for wget_vector_set_growth_policy() 7170 * */*.c: Remove param 'off' from calls to wget_vector_create() 7171 71722018-03-24 Tim Rühsen <tim.ruehsen@gmx.de> 7173 7174 Add docs for vector routines 7175 7176 * docs/Makefile.am: Add man page 7177 * include/wget/wget.h: Amend some vector functions 7178 * libwget/vector.c: Add checks for parameters, 7179 add documentation 7180 71812018-03-23 Tim Rühsen <tim.ruehsen@gmx.de> 7182 7183 * .gitlab-ci.yml: Remove stages, fix configure cache 7184 71852018-03-23 Tim Rühsen <tim.ruehsen@gmx.de> 7186 7187 * .gitlab-ci.yml: Add testing on Alpine (musl/busybox) 7188 71892018-03-23 Darshit Shah <darnir@gnu.org> 7190 7191 Merge the Full/Debian and VPATH Runners into one 7192 71932018-03-23 Darshit Shah <darnir@gnu.org> 7194 7195 More efficient use of CI Pipelines 7196 7197 * .gitlab-ci.yml: Split CI runners into 3 stages, build, test and 7198 deploy. Stages are executed in that order. So any breakage will save the 7199 later stages from executing. 7200 72012018-03-23 Tim Rühsen <tim.ruehsen@gmx.de> 7202 7203 * cfg.mk: Exclude tests/gpg and tests/certs from any syntax checks 7204 72052018-03-23 Darshit Shah <darnir@gnu.org> 7206 7207 Fix GPGME detection in configure 7208 72092018-03-23 Darshit Shah <darnir@gnu.org> 7210 7211 Update gnulib submodule 7212 7213 * gnulib: Update submodule 7214 * bootstrap: Update script from gnulib submodule 7215 72162018-03-23 Tim Rühsen <tim.ruehsen@gmx.de> 7217 7218 * tests/test-iri-subdir.c: Add runtime test for working SHIFT_JIS->UTF-8 transcoding 7219 72202018-02-24 Darshit Shah <darnir@gnu.org> 7221 7222 New script to ensure that patches without copyright assignment aren't merged 7223 7224 * AUTHORS: Update file with all known contributors to date. Update 7225 FSF Copyright Assignment status in the first column 7226 * contrib/commit-check: New script. This is to be run on each merge 7227 request to master to ensure that the copyright assignment process 7228 has been completed. 7229 * .gitlab-ci.yml: Add a new CommitCheck CI which ensures that the 7230 author has completed their Copyright Assignments. This runner is 7231 allowed to fail, so it won't affect the CI runners for all forks. 7232 72332018-02-26 Darshit Shah <darnir@gnu.org> 7234 7235 Add new scripts to send Copyright assignment mails 7236 7237 * contrib/assignment_template.txt: Template header text for email 7238 * contrib/mail.sh: Script that composes and sends an email to a new 7239 contributor for Copyright Assignment 7240 * cfg.mk: Add exceptions for assignment_template.txt to syntax-check 7241 72422018-02-25 Darshit Shah <darnir@gnu.org> 7243 7244 Allow a list of possible signature-extensions 7245 7246 * stc/options.c: Modify old option signature-extension to now be a 7247 stringlist. Also rename it to signature-extensions 7248 * src/wget_options.h: Move sig_ext from char* to wget_vector_t 7249 * src/wget.c: Iterate over all signature extensions and request a 7250 signature file 7251 * tests/test-gpg-styles.c: Add new test for signature extensions 7252 * docs/wget2.md: Update documentation for signature-extensions 7253 72542018-03-15 Jiading Guo <zingdle@gmail.com> 7255 7256 Fix lzma decompressor init 7257 7258 * libwget/decompressor.c: Use lzma_auto_decoder() instead to auto detect lzma/xz format. 7259 72602018-03-18 Tim Rühsen <tim.ruehsen@gmx.de> 7261 7262 * bootstrap.conf: Add pkg-config as dependency 7263 72642018-03-15 Tim Rühsen <tim.ruehsen@gmx.de> 7265 7266 Fix decompress_open argument type 7267 7268 * include/wget/wget.h: Fix 'encoding' to wget_content_encoding_type_t, 7269 make wget_content_encoding_by_name() PURE, 7270 make wget_content_encoding_to_name() PURE. 7271 * libwget/decompressor.c: Fix struct _wget_decompressor_st encoding to 7272 wget_content_encoding_type_t, 7273 fix wget_content_encoding_to_name() for 'identity'. 7274 72752018-03-15 Tim Rühsen <tim.ruehsen@gmx.de> 7276 7277 Add type<->name functions for content-encoding types 7278 7279 * include/wget/wget.h: AdD typedef wget_content_encoding_type_t, 7280 add wget_content_encoding_unknown, 7281 add prototypes for wget_content_encoding_by_name() and 7282 wget_content_encoding_to_name(). 7283 * libwget/decompressor.c: Implement wget_content_encoding_by_name() and 7284 wget_content_encoding_to_name(). 7285 72862018-03-13 Tim Rühsen <tim.ruehsen@gmx.de> 7287 7288 * README.md: Increase GnuTLS version from 2.10.0 to 3.3, 3.5 or 3.6 7289 72902018-02-27 Jay <jbhv12@gmail.com> 7291 7292 error handling in XML parsing 7293 7294 * include/wget/wget.h: removed nonnull attribute and defined error code 7295 * libwget/metalink.c: wget_metalink_parse returns null if XML is malformed 7296 * libwget/xml.c: added coditions to detect malformed XML in parseXML 7297 * po/POTFILES.in: localization support for metalink.c 7298 72992018-03-08 Tim Rühsen <tim.ruehsen@gmx.de> 7300 7301 * tests/test-gzip.c: Fix unused define w/o WITH_ZLIB 7302 73032018-03-08 Tim Rühsen <tim.ruehsen@gmx.de> 7304 7305 * tests/libtest.c (wget_test_start_server): Fix unused var w/o WITH_GNUTLS 7306 73072018-03-07 Tim Rühsen <tim.ruehsen@gmx.de> 7308 7309 * .gitlab-ci.yml: Add -Werror to appropriate runners 7310 73112018-03-07 Tim Rühsen <tim.ruehsen@gmx.de> 7312 7313 * configure.ac: Add -Wno-error to gnulib compiler flags 7314 73152018-03-07 Tim Rühsen <tim.ruehsen@gmx.de> 7316 7317 * src/stats_site.c (print_human): Fix unused-but-used warning 7318 73192018-03-07 Tim Rühsen <tim.ruehsen@gmx.de> 7320 7321 * libwget/http.c (wget_tcp_set_stats_site): Fix unused argument 7322 73232018-03-04 Tim Rühsen <tim.ruehsen@gmx.de> 7324 7325 * contrib/mingw: Add dlfcn-win32 build 7326 73272018-03-02 Tim Rühsen <tim.ruehsen@gmx.de> 7328 7329 * tests/libtest.c (_http_server_start): Check MHD_OPTION_STRICT_FOR_CLIENT 7330 73312018-03-02 Tim Rühsen <tim.ruehsen@gmx.de> 7332 7333 * tests/libtest.c (_http_server_start): Enable strict MHD client mode 7334 7335 Will not allow spaces in the GET target URI from the next release. 7336 73372018-02-26 Tim Rühsen <tim.ruehsen@gmx.de> 7338 7339 * src/http_parse.c (wget_http_parse_response_header): Remove unneeded comment 7340 73412018-02-24 Tim Rühsen <tim.ruehsen@gmx.de> 7342 7343 * tests/test-gzip.c: Add tests for broken server gzip Content-Encoding 7344 73452018-02-24 Tim Rühsen <tim.ruehsen@gmx.de> 7346 7347 * src/http.c (wget_http_get_response_cb): Add gzip workarounds 7348 73492018-02-24 Tim Rühsen <tim.ruehsen@gmx.de> 7350 7351 Support binary content in test suite 7352 7353 * tests/libtest.h (wget_test_file_t): Add content_length member 7354 * tests/libtest.c (_answer_to_connection): Support content_length member 7355 73562018-02-23 Tim Rühsen <tim.ruehsen@gmx.de> 7357 7358 Fix ignorant server's Content-Encoding 7359 7360 * libwget/decompressor.c: Fix segfault on unexpected Content-Encoding 7361 * tests/Makefile.am: Add test-gzip.c 7362 * tests/test-gzip.c: New test 7363 7364 Reported-by: Jiading Guo 7365 7366 73672018-03-02 Tim Rühsen <tim.ruehsen@gmx.de> 7368 7369 Fix header guards 7370 7371 * include/wget/wget.h: Likewise 7372 * include/wget/wgetver.h.in: Likewise 7373 * libwget/*.h: Likewise 7374 * src/*.h: Likewise 7375 * tests/libtest.h: Likewise 7376 7377 Header guards should not start with _. 7378 Private headers now reflect the path within the project. 7379 The two public headers reflect the releative install directory. 7380 73812018-03-02 Tim Rühsen <tim.ruehsen@gmx.de> 7382 7383 Fix doxygen syntax 7384 7385 * src/wget_gpgme.h: Likewise 7386 * libwget/thread.c: Likewise 7387 * src/wget_gpgme.h: Likewise 7388 73892018-03-01 Tim Rühsen <tim.ruehsen@gmx.de> 7390 7391 * libwget/iri.c (wget_iri_get_escaped_resource): Escape space in query 7392 73932018-03-01 Tim Rühsen <tim.ruehsen@gmx.de> 7394 7395 * libwget/http.c: Add links about request line format 7396 73972018-02-25 Tim Rühsen <tim.ruehsen@gmx.de> 7398 7399 Fix oss-fuzz build 7400 7401 * fuzz/Makefile.am: Add ../src/stats_server.o ../src/stats_site.o to oss-fuzz rule 7402 * fuzz/libwget_http_client_fuzzer.c: Fix pedantic C++ errors 7403 74042018-02-23 DalmeGNU <dalmemail@gmail.com> 7405 7406 * src/wget.c: Avoid printing two times the number of errors in the same bar_printf() 74072018-02-21 Vijo Cherian <codervijo@gmail.com> 7408 7409 * src/options.c: Improve --help output 7410 74112018-02-23 Tim Rühsen <tim.ruehsen@gmx.de> 7412 7413 * src/wget.c: Check config.metalink before executing metalink code 7414 74152018-02-22 Tim Rühsen <tim.ruehsen@gmx.de> 7416 7417 * src/ssl_gnutls.c (_do_handshake): Check for GNUTLS_E_PREMATURE_TERMINATION 7418 74192018-02-22 Tim Rühsen <tim.ruehsen@gmx.de> 7420 7421 Fix stats and add docs for stats 7422 7423 * docs/wget2.md: Extend docs for --stats-* 7424 * include/wget/wget.h: Rename WGET_STATS_TLS_TCP_PROTO to WGET_STATS_TLS_HTTP_PROTO, 7425 add WGET_STATS_OCSP_STAPLING. 7426 * libwget/ssl_gnutls.c: add stapling stats member, cleanup variables 7427 * po/POTFILES.in: Remove rsrc/stats_server.c 7428 * src/stats_dns.c: Cleanup 7429 * src/stats_ocsp.c: Add stapling to stats 7430 * src/stats_server.c: Cleanup 7431 * src/stats_site.c: Rename STATS_SCHEME_* to STATS_METHOD_* 7432 * src/stats_tls.c: Cleanup 7433 * src/wget_stats.h: Remove memory alloc from NULL_TO_DASH() 7434 74352018-02-21 Tim Rühsen <tim.ruehsen@gmx.de> 7436 7437 * src/stats_site: Change PGP verification status in CSV output 7438 74392018-02-21 Tim Rühsen <tim.ruehsen@gmx.de> 7440 7441 * src/stats_site.c: Avoid double entries when signature checking is on 7442 74432018-02-21 Tim Rühsen <tim.ruehsen@gmx.de> 7444 7445 * src/gpgme.c: Add and use _print_gpg_error() 7446 74472018-02-20 Darshit Shah <darnir@gnu.org> 7448 7449 * src/wget.c(_get_body): Remove leftover debugging statement 7450 74512018-02-20 Tim Rühsen <tim.ruehsen@gmx.de> 7452 7453 * src/gpgme.c: Some fixes and cleanups 7454 74552018-02-20 Tim Rühsen <tim.ruehsen@gmx.de> 7456 7457 * src/gpgme.c (wget_verify_job): Always initialize info structure 7458 74592018-02-20 Tim Rühsen <tim.ruehsen@gmx.de> 7460 7461 * contrib/csv2tree: New file 7462 74632018-02-20 Tim Rühsen <tim.ruehsen@gmx.de> 7464 7465 * contrib/csv2json: New file 7466 74672018-02-20 Tim Rühsen <tim.ruehsen@gmx.de> 7468 7469 Remove JSON format for stats options 7470 7471 * include/wget/wget.h: Remove WGET_STATS_FORMAT_JSON 7472 * src/stats.c: Remove JSON code 7473 * src/stats_dns.c: Likewise 7474 * src/stats_ocsp.c: Likewise 7475 * src/stats_server.c: Likewise 7476 * src/stats_site.c: Likewise 7477 * src/stats_tls.c: Likewise 7478 * src/wget_stats.h: Likewise 7479 * tests/stats-test-util.h: Remove JSON tests 7480 We will provide an extra tool to convert CSV into JSON. 7481 74822018-02-19 Tim Rühsen <tim.ruehsen@gmx.de> 7483 7484 Remove tree statistics 7485 7486 * docs/wget2.md: Remove 'tree' format from --stats-site 7487 * po/POTFILES.in: Remove src/stats_site.c 7488 * src/host.c: Remove host_docs, tree_docs 7489 * src/job.c: Add a unique ID for each job 7490 * src/stats.c: Remove TREE stuff 7491 * src/stats_dns.c: Likewise 7492 * src/stats_ocsp.c: Likewise 7493 * src/stats_server.c: Likewise 7494 * src/stats_tls.c: Likewise 7495 * src/stats_site.c: Likewise, 7496 add site_stats_t, cleanup CSV and HUMAN output 7497 * src/wget.c: Set job ID and ParentID, remove TREE stuff 7498 * src/wget_host.h: Remove TREE stuff 7499 * src/wget_job.h: add id and parent_id to struct JOB 7500 * src/wget_stats.h: Add json_stats 7501 * tests/stats-test-util.h: Remove TREE test 7502 We decided to provide an external tool to generate TREE and other 7503 formatted output from Wget2's CSV output. 7504 75052018-02-17 Tim Rühsen <tim.ruehsen@gmx.de> 7506 7507 * stats_*.c: Add missing entry for WGET_STATS_FORMAT_TREE 7508 75092018-02-17 Tim Rühsen <tim.ruehsen@gmx.de> 7510 7511 Move external stats_opts_t from stat.c to wget_stats.h 7512 7513 * src/stats.c: Remove external stats_opts_t 7514 * src/wget_stats.h: Add external stats_opts_t 7515 75162018-02-17 Tim Rühsen <tim.ruehsen@gmx.de> 7517 7518 * src/stats.c (stats_init): Fix memory leak 7519 75202018-02-17 Tim Rühsen <tim.ruehsen@gmx.de> 7521 7522 * src/stats.c (stats_exit): Only deinit after init 7523 75242018-02-17 Tim Rühsen <tim.ruehsen@gmx.de> 7525 7526 Move Site stats code to own source file 7527 75282018-02-17 Tim Rühsen <tim.ruehsen@gmx.de> 7529 7530 Move Server stats code to own source file 7531 75322018-02-17 Tim Rühsen <tim.ruehsen@gmx.de> 7533 7534 Move OCSP stats code to own source file 7535 75362018-02-16 Tim Rühsen <tim.ruehsen@gmx.de> 7537 7538 Move TLS stats code to own source file 7539 75402018-02-16 Tim Rühsen <tim.ruehsen@gmx.de> 7541 7542 Clean up DNS stats code 7543 7544 * src/stats_dns.c: Renames and cleanups 7545 * src/wget_stats.h: Likewise 7546 75472018-02-16 Tim Rühsen <tim.ruehsen@gmx.de> 7548 7549 Move _shell_expand() into own source file 7550 7551 * src/Makefile.am: Add utils.c and wget_utils.h 7552 * src/options.c: Remove _shell_expand() 7553 * src/stats.c: Likewise 7554 * src/utils.c: New file with shell_expand() 7555 * src/wget_utils.h: Header file for shell_expand() 7556 * fuzz/Makefile.am: Add utils.o 7557 * unit-tests/Makefile.am: Likewise 7558 75592018-02-16 Tim Rühsen <tim.ruehsen@gmx.de> 7560 7561 Move dns stats code into stats_dns.c 7562 75632018-02-16 Tim Rühsen <tim.ruehsen@gmx.de> 7564 7565 Fix stats tests 7566 75672018-02-16 Tim Rühsen <tim.ruehsen@gmx.de> 7568 7569 Refactorings on stats option parsing and printing 7570 75712018-02-14 Darshit Shah <darnir@gnu.org> 7572 7573 Set callback for stats_site and allow freeing non-init mutex 7574 75752018-02-13 Tim Rühsen <tim.ruehsen@gmx.de> 7576 7577 Refactoring of stats callback functions 7578 75792018-02-13 Darshit Shah <darnir@gnu.org> 7580 7581 Handle tree stats case 7582 75832018-02-13 Darshit Shah <darnir@gnu.org> 7584 7585 Some more cleanups 7586 75872018-02-13 Darshit Shah <darnir@gnu.org> 7588 7589 Replace dns data and mutex 7590 75912018-02-13 Darshit Shah <darnir@gnu.org> 7592 7593 Improve stats printing 7594 75952018-02-21 Darshit Shah <darnir@gnu.org> 7596 7597 * src/options.c(print_version): Add gpgme info to wget2 --version 7598 75992018-02-20 Darshit Shah <darnir@gnu.org> 7600 7601 Handle case where wget_bar_init() fails 7602 76032018-02-20 Jay <jbhv12@gmail.com> 7604 7605 added error in progress report 7606 76072018-02-17 Tim Rühsen <tim.ruehsen@gmx.de> 7608 7609 * src/wget.c (process_response): Collect site stats only when requested 7610 76112018-02-17 zingdle <zingdle@gmail.com> 7612 7613 * src/stats.c: Fix handling of output location for stats code 7614 76152018-02-15 Darshit Shah <darnir@gnu.org> 7616 7617 * src/stats.c: Initialize all stats modules, always 7618 7619 This is a terrible hack. But it's the smallest solution I can come up 7620 with, with the existing stats code to fix the problem that none of the 7621 stats are being reported. 7622 7623 The problem is that stats_init() must be called before the command line 7624 is parsed. But stats_init() depends on the command line parsing code to 7625 set the status flags for which stats to report. Hence, it always sees 7626 them all as negative. 7627 7628 This commit will initialize all the stats modules, always. So, the stats 7629 are always collected. Only, we decide at the very end, what, if 7630 anything, to display. As is obvious, this is terrible. It's a waste of 7631 resources to compute all these stats that are simply not required. But, 7632 till the stats code is re-written cleanly, this is what we have to deal 7633 with 7634 76352018-02-15 Darshit Shah <darnir@gnu.org> 7636 7637 * .gitignore: Update gitignore file 7638 76392018-02-15 Darshit Shah <darnir@gnu.org> 7640 7641 Revert "* libwget/thread.c(pthread_mutex_destroy): Survive destroying a non-initialized mutex" 7642 7643 This reverts commit c46669387bcb4caffa792d2d6360b09685bf3449. 7644 76452018-02-15 Darshit Shah <darnir@gnu.org> 7646 7647 * bootstrap.conf: Clean up some files that gnulib-tool.py creates 7648 76492018-02-15 Tim Rühsen <tim.ruehsen@gmx.de> 7650 7651 * src/stats.c (stats_print): Fix possible memory leak 7652 76532018-02-15 Tim Rühsen <tim.ruehsen@gmx.de> 7654 7655 Revert "Delay stats_init till after comand line parsing" 7656 7657 This reverts commit 33e3322a718a330fb6b426c6a640a0f3f7746d36. 7658 76592018-02-14 Tim Rühsen <tim.ruehsen@gmx.de> 7660 7661 * gnulib: Update 7662 76632018-02-14 Tim Rühsen <tim.ruehsen@gmx.de> 7664 7665 Add gnulib module limits-h 7666 7667 * bootstrap.conf: Add limits-h 7668 * libwget/cookie.c: Include limits.h 7669 * libwget/metalink.c: Likewise 7670 76712018-02-14 Tim Rühsen <tim.ruehsen@gmx.de> 7672 7673 * po/POTFILES.in: Remove lib/openat-die.c 7674 76752018-02-14 Darshit Shah <darnir@gnu.org> 7676 7677 * libwget/thread.c(pthread_mutex_destroy): Survive destroying a non-initialized mutex 7678 76792018-02-13 Darshit Shah <darnir@gnu.org> 7680 7681 * src/stats.c: Print to stderr not stdout 7682 76832018-02-14 Tim Rühsen <tim.ruehsen@gmx.de> 7684 7685 Use realpath() instead of canonicalize_filename_mode() 7686 7687 * bootstrap.conf: Use canonicalize-lgpl module 7688 * src/gpgme.c: Likewise 7689 7690 Using realpath() reduces extra code from gnulib. 7691 76922018-02-13 Tim Rühsen <tim.ruehsen@gmx.de> 7693 7694 * configure.ac: Fix help text for --enable-fuzzing 7695 76962018-02-13 Darshit Shah <darnir@gnu.org> 7697 7698 Delay stats_init till after comand line parsing 7699 7700 The stats module depends on the command line parser to set some of its 7701 values. Without that, the module is initialized incorrectly. 7702 77032018-02-09 Darshit Shah <darnir@gnu.org> 7704 7705 src/wget.c(main): Honor --quiet for progress bar 7706 77072018-02-07 Tim Rühsen <tim.ruehsen@gmx.de> 7708 7709 Fix make dist with --disable-doc 7710 7711 * configure.ac: Unconditionally process docs/*.in files 7712 * docs/Makefile.am: Unconditionally put DoxygenLayout.xml into EXTRA_DIST 7713 77142018-02-06 Tim Rühsen <tim.ruehsen@gmx.de> 7715 7716 * configure.ac: Fix --disable-docs for make distcheck 7717 77182018-02-06 Tim Rühsen <tim.ruehsen@gmx.de> 7719 7720 * configure.ac: Fix --disable-doc configure option 7721 77222018-02-06 Tim Rühsen <tim.ruehsen@gmx.de> 7723 7724 * .gitlab-ci.yml: Remove continuation slashes 7725 77262018-02-06 Tim Rühsen <tim.ruehsen@gmx.de> 7727 7728 * .gitlab-ci.yml: Add pipeline (gcc full and gcc minial build) 7729 77302018-02-06 Tim Rühsen <tim.ruehsen@gmx.de> 7731 7732 * cfg.mk: Exclude .gitlab-ci.yml from sc_two_space_separator_in_usage 7733 77342018-02-06 Tim Rühsen <tim.ruehsen@gmx.de> 7735 7736 * libwget/ssl_gnutls.c: Remove obsolete dummy functions 7737 77382018-02-06 Tim Rühsen <tim.ruehsen@gmx.de> 7739 7740 * src/gpgme.c (wget_verify_get_base_file): Fix to build w/o WITH_GPGME 7741 77422018-02-03 Tim Rühsen <tim.ruehsen@gmx.de> 7743 7744 Fix manywarnings for gcc 8 7745 7746 * configure.ac: Amend for gcc-8 7747 * m4/wget_manywarnings.m4: Amend for gcc-8 7748 77492018-02-02 Tim Rühsen <tim.ruehsen@gmx.de> 7750 7751 * libwget/http.c (wget_http_get_response_cb): Fix undefined behavior 7752 77532018-02-02 Tim Rühsen <tim.ruehsen@gmx.de> 7754 7755 * libwget/net.c: Use getaddrinfo() for fuzzing 7756 77572017-11-03 Tim Rühsen <tim.ruehsen@gmx.de> 7758 7759 Add new fuzzer libwget_http_client_fuzzer 7760 7761 * fuzz/Makefile.am: Add libwget_http_client_fuzzer 7762 * fuzz/libwget_http_client_fuzzer.c: New file 7763 * fuzz/libwget_http_client_fuzzer.in: Initial corpora 7764 * fuzz/run-clang.sh: Small cleanup 7765 77662018-01-30 Tim Rühsen <tim.ruehsen@gmx.de> 7767 7768 More tests for --https-enfore 7769 7770 * src/options.c: Add debug lines, fix exit_status to exit_status_t 7771 * src/wget_options.h: Amend prototype of get_exit_status() 7772 * tests/test--https-enforce-soft2.c: New test 7773 * tests/test--https-enforce-soft3.c: New test 7774 * tests/Makefile.am: Add new tests 7775 * src/wget.c (_fallback_to_http): Skip robotstxt jobs 7776 * tests/libtest.c: New option WGET_TEST_HTTPS_REJECT_CONNECTIONS 7777 for wget_test_start_server() 7778 77792018-01-29 Tim Rühsen <tim.ruehsen@gmx.de> 7780 7781 Add test test--https-enforce-hard3.c 7782 77832018-01-29 Tim Rühsen <tim.ruehsen@gmx.de> 7784 7785 * tests/libtest.c (wget_test): Allow {{port}} in options 7786 77872018-01-29 Tim Rühsen <tim.ruehsen@gmx.de> 7788 7789 Add options --default-http-port and --default-https-port 7790 7791 * docs/wget2.md: Add docs for the two options 7792 * include/wget/wget.h: Prototype for wget_iri_set_defaultport() 7793 * libwget/iri.c: New function wget_iri_set_defaultport() 7794 * src/options.c: New options --default-http-port and --default-https-port 7795 * src/wget_options.h (struct config): Add default_http_port and default_https_port 7796 77972018-01-29 Tim Rühsen <tim.ruehsen@gmx.de> 7798 7799 Fix exit code for TLS connect errors 7800 7801 * libwget/ssl_gnutls.c (_do_handshake): Return WGET_E_CONNECT on connect errors 7802 * src/wget.c (establish_connection): Set WG_EXIT_STATUS_NETWORK on connect errors 7803 78042018-01-23 Tim Rühsen <tim.ruehsen@gmx.de> 7805 7806 * src/options.c (parse_https_enforce): Fix wrong casts 7807 78082018-01-23 Tim Rühsen <tim.ruehsen@gmx.de> 7809 7810 Add tests for --https-enforce 7811 7812 * tests/Makefile.am: Add new tests 7813 * tests/libtest.c: Code cleanup, 7814 (_answer_to_connection): implement protocol specific urls, 7815 (wget_test_start_server): implement WGET_TEST_HTTP(S)_ONLY, 7816 (wget_test): Allow absolute URLS for WGET_TEST_REQUEST_URL(S) 7817 * tests/libtest.h (wget_test_url_t): Add https_only and http_only 7818 78192018-01-23 Tim Rühsen <tim.ruehsen@gmx.de> 7820 7821 * src/wget.c: Fix --https-enforce=soft --recursive 7822 78232018-01-19 Tim Rühsen <tim.ruehsen@gmx.de> 7824 7825 Add http:// to URIs without scheme 7826 7827 * libwget/iri.c (wget_iri_parse): Add http:// to uri without scheme 7828 * include/wget/wget.h (wget_iri_t): Add member msize 7829 7830 This commit also fixes a buffer overflow in wget_iri_set_scheme in 7831 combination with wget_iri_clone. 7832 78332018-01-18 Tim Rühsen <tim.ruehsen@gmx.de> 7834 7835 Simplify code for --https-enforce 7836 7837 * libwget/iri.c (wget_iri_set_scheme): Cleanup 7838 * src/host.c (host_add_robotstxt_job): Add param http_fallback 7839 * src/wget_host.h: Likewise 7840 * src/job.c (job_init): Add param http_fallback 7841 * src/wget_job.h: Likewise 7842 * src/wget.c: Remove http_fallback_urls and http_fallback_urls_mutex, 7843 (add_url_to_queue): Set http_fallback for new jobs, 7844 (add_url): Likewise 7845 78462018-01-18 DalmeGNU <dalmemail@gmail.com> 7847 7848 Add new option --https-enforce 7849 7850 * docs/wget2.md: Add docs 7851 * src/options.c: Add --https-enforce and parse_https_enforce() 7852 * src/wget.c: 7853 * src/wget_options.h: Add config.https_enforce and WGET_HTTPS_ENFORCE_* 7854 78552018-01-30 Tim Rühsen <tim.ruehsen@gmx.de> 7856 7857 * libwget/net.c (_wget_tcp_resolve): Handle EAI_ALLDONE 7858 78592018-01-29 Tim Rühsen <tim.ruehsen@gmx.de> 7860 7861 * .gitlab-ci.yml: Save artifacts for the VPATH build 7862 78632018-01-29 Tim Rühsen <tim.ruehsen@gmx.de> 7864 7865 Fix testing options 7866 7867 * Makefile.am: Add wget2 executable from builddir 7868 * contrib/check_options: Use given command line arguments 7869 78702018-01-29 Tim Rühsen <tim.ruehsen@gmx.de> 7871 7872 Suppress ASAN leak detection in getaddrinfo_a() 7873 7874 * .gitlab-ci.yml: export LSAN_OPTIONS=suppression=... 7875 * tests/Makefile.am: Add suppression file to TESTS_ENVIRONMENT 7876 * tests/clang-asan-suppressions: New file with leak suppression 7877 7878 getaddrinfo_a() has leak(s) that we have to suppress when using 7879 the address sanitizer. 7880 78812018-01-27 Tim Rühsen <tim.ruehsen@gmx.de> 7882 7883 * src/wget.c (downloader_thread): Pause on error with --disable-threads 7884 78852018-01-26 Tim Rühsen <tim.ruehsen@gmx.de> 7886 7887 * tests/valgrind-suppressions: Add leaks in glibc's getaddrinfo_a() 7888 78892018-01-26 Tim Rühsen <tim.ruehsen@gmx.de> 7890 7891 * tests/libtest.c (wget_test): Add 10s timeout to wget2 command line 7892 78932018-01-26 Tim Rühsen <tim.ruehsen@gmx.de> 7894 7895 * .gitlab-ci.yml: Use persistent ccache and configure cache 7896 78972018-01-25 Tim Rühsen <tim.ruehsen@gmx.de> 7898 7899 * libwget/io.c: #undef select for _WIN32 build 7900 7901 Reported-by: Gisle Vanem 7902 79032018-01-24 Tim Rühsen <tim.ruehsen@gmx.de> 7904 7905 * fuzz/wget_options_fuzzer.dict: Update with new options 7906 79072018-01-24 Tim Rühsen <tim.ruehsen@gmx.de> 7908 7909 * fuzz/wget_options_fuzzer.in: Add new corpora 7910 79112018-01-24 Tim Rühsen <tim.ruehsen@gmx.de> 7912 7913 * src/options.c (parse_regex_type): Return error instead of exit() 7914 79152018-01-19 Tim Rühsen <tim.ruehsen@gmx.de> 7916 7917 * src/wget.c (main): Minor cleanup 7918 79192018-01-23 Tim Rühsen <tim.ruehsen@gmx.de> 7920 7921 * src/host.c (host_queue_free): Fix double free with --debug 7922 79232018-01-18 Tim Rühsen <tim.ruehsen@gmx.de> 7924 7925 Add --http2-request-window to set max. # of parallel HTTP/2 streams 7926 7927 * docs/wget2.md: Docs for --http2-request-window 7928 * src/options.c: Add --http2-request-window 7929 * src/wget_options.h: Remove unused config.http1_request_window 7930 79312018-01-15 Tim Rühsen <tim.ruehsen@gmx.de> 7932 7933 * contrib/release: Fix and add more checks 7934 79352018-01-13 Tim Rühsen <tim.ruehsen@gmx.de> 7936 7937 Fix option checking 7938 7939 * Makefile.am: Add contrib/check_options to EXTRA_DIST 7940 * contrib/check_options: Fix paths 7941 79422018-01-13 Tim Rühsen <tim.ruehsen@gmx.de> 7943 7944 * src/options.c: Add SECTION_PLUGIN and move plugin options into it 7945 79462018-01-13 Tim Rühsen <tim.ruehsen@gmx.de> 7947 7948 * contrib/check_options: Force /bin/bash to have shopt 7949 79502018-01-13 Tim Rühsen <tim.ruehsen@gmx.de> 7951 7952 * docs/wget2.md: Remove WARC and FTP stuff 7953 79542018-01-13 Tim Rühsen <tim.ruehsen@gmx.de> 7955 7956 * docs/wget2_md2man.sh.in: Remove set -o pipefail (incompatible) 7957 79582018-01-13 Tim Rühsen <tim.ruehsen@gmx.de> 7959 7960 * docs/wget2.md: Add text for plugin options 7961 79622018-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 7963 7964 * docs/wget2.md: Add text for --local-db, --input-encoding=encoding 7965 79662018-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 7967 7968 * docs/wget2.md: Amend text for --secure-protocol 7969 79702018-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 7971 7972 * docs/wget2.md: Add text for --gnutls-options 7973 79742018-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 7975 7976 * docs/wget2.md: Add text for --fsync-policy, --hpkp, --hpkp-file 7977 79782018-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 7979 7980 * docs/wget2.md: Add text for --dns-caching, --http2, --metalink 7981 79822018-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 7983 7984 * docs/wget2.md: Add text for --cookie-suffixes 7985 79862018-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 7987 7988 * src/options.c: Update link to public_suffix_list.dat 7989 79902018-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 7991 7992 * contrib/check_options: Enable/fix pattern matching for case 7993 79942018-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 7995 7996 * docs/wget2.md: Add text for --robots 7997 79982018-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 7999 8000 * docs/wget2.md: Fix syntax of --private-key 8001 80022018-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 8003 8004 * src/options.c: Don't display -n compat option on --help 8005 80062018-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 8007 8008 * docs/wget2.md: Fix --inet*, Add text for --tcp-fastopen 8009 80102018-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 8011 8012 * contrib/check_options: Amend collecting options 8013 80142018-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 8015 8016 Remove --config-file in favor of --config 8017 8018 * docs/wget2.md: Amend docs 8019 * src/options.c: Remove option --config-file 8020 80212018-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 8022 8023 * docs/wget2.md: Fix option syntax 8024 80252018-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 8026 8027 * contrib/check_options: Adjust search patter 8028 80292018-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 8030 8031 * docs/wget2.md: Add text for --ocsp, --ocsp-stapling and --ocsp-file 8032 80332018-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 8034 8035 * docs/wget2.md: Add text for --tls-session-file and --tls-false-start 8036 80372018-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 8038 8039 * docs/wget2.md: Add text for --http-proxy and --https-proxy 8040 80412018-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 8042 8043 * docs/wget2.md: Add space before --tries and --output-document 8044 80452018-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 8046 8047 * docs/wget2.md: Add text for --check-hostname 8048 80492018-01-11 Darshit Shah <darnir@gnu.org> 8050 8051 * docs/wget2_md2man.sh.in: Add bash error flags to script 8052 80532018-01-11 Darshit Shah <darnir@gnu.org> 8054 8055 * docs/wget2.md: Add documentation for --signature-extension 8056 80572018-01-11 Tim Rühsen <tim.ruehsen@gmx.de> 8058 8059 Check wget2 options against wget2 manual 8060 8061 * Makefile.am: Call contrib/check_options in 'make check' 8062 * contrib/check_options: New script to check options 8063 80642018-01-10 Neil Locketz <neil@nlocketz.com> 8065 8066 Delete signature file, and delete files that fail signature validation. 8067 8068 * docs/wget2.md: Added documentation for new '--verify-save-failed' 8069 * src/gpgme.c: Exposed function to determine base downloaded file from 8070 signature JOB. 8071 * src/options.c: Added '--verify-save-failed' to allow users to keep downloaded 8072 files that fail validation. 8073 * src/wget.c: Logic for unlinking signatures, and files failing validation. 8074 * src/wget_gpgme.c: Declaration for new function that determine base downloaded 8075 files. 8076 * tests/Makefile.am: Added New test code, fixed missing SOURCES. 8077 * tests/gpg-test-util.h: Conditionally expect a saved base file if exit 8078 code == 0, never expect a saved signature file. 8079 * tests/test-gpg-save-failed.c: A test that tests the '--verify-save-failed' 8080 flag. 8081 * tests/test-gpg-style.s: Remove signature file from expected output. 8082 8083 Added flag '--verify-save-failed' to disable the "fail delete" behavior. 8084 80852018-01-12 Avinash Sonawane <rootkea@gmail.com> 8086 8087 * README.md: Add libgpgme to build requirements 8088 80892016-11-25 Tim Rühsen <tim.ruehsen@gmx.de> 8090 8091 Prepare alpha release 8092 80932018-01-11 Tim Rühsen <tim.ruehsen@gmx.de> 8094 8095 Update gnulib 8096 80972018-01-11 Tim Rühsen <tim.ruehsen@gmx.de> 8098 8099 Fix warnings 8100 8101 * configure.ac: Add -Wno-assign-enum -Wno-unreachable-code to gnulib warnings 8102 * libwget/thread.c: Add #pragmas to silence warnings from gnulib includes 8103 * libwget/utils.c: Likewise 8104 * src/log.c: Likewise 8105 * src/wget.c: Likewise 8106 * src/bar.c: Make _terminate_thread static 8107 * tests/test-gpg-styles.c: Make urls static 8108 81092018-01-11 Tim Rühsen <tim.ruehsen@gmx.de> 8110 8111 * configure.ac: Add -Wno-float-conversion to gnulib compilation 8112 81132018-01-11 Tim Rühsen <tim.ruehsen@gmx.de> 8114 8115 Make strings translatable for error_printf() 8116 8117 * libwget/*.c: Likewise 8118 * src/*.c: Likewise 8119 * po/POTFILES.in: Add source files 8120 81212018-01-11 Tim Rühsen <tim.ruehsen@gmx.de> 8122 8123 Remove data/ directory 8124 8125 * Makefile.am: Remove data/ from SUBDIRS 8126 * configure.ac: Remove data/Makefile from AC_CONFIG_FILES 8127 * tests/Makefile.am: Remove WGET_DATADIR from DEFS 8128 * unit-tests/Makefile.am: Likewise 8129 * data/effective_tld_names.dat: Move to unit-tests/files/public_suffix_list.dat 8130 and update from upstream 8131 * unit-tests/test.c (test_cookies): Use public_suffix_list.dat 8132 81332018-01-11 Tim Rühsen <tim.ruehsen@gmx.de> 8134 8135 * docs/wget2.md: Add text for --xattr 8136 81372018-01-10 Tim Rühsen <tim.ruehsen@gmx.de> 8138 8139 Add man pages to tarball 8140 81412018-01-09 Tim Rühsen <tim.ruehsen@gmx.de> 8142 8143 Fix building docs 8144 8145 * Makefile.am: Add README.md to EXTRA_DIST 8146 * configure.ac: Generate conditionals WITH_DOXYGEN and WITH_PANDOC 8147 * docs/Makefile.am: Use conditionals for building 8148 81492018-01-09 Tim Rühsen <tim.ruehsen@gmx.de> 8150 8151 Check for pandoc in ./configure 8152 8153 * configure.ac: Check for pandoc 8154 * docs/Makefile.am: Use $(PANDOC) 8155 * docs/wget2_md2man.sh.in: Use $PANDOC shell variable 8156 81572018-01-09 Tim Rühsen <tim.ruehsen@gmx.de> 8158 8159 Generate .texi and .info from markdown manual 8160 8161 * Makefile.am: Convert .md to .texi and .info 8162 * mainpage.md: Rename wget2_manual.md to wget2.md 8163 * wget2_manual.md: Renamed to wget2.md 8164 81652018-01-09 Darshit Shah <darnir@gnu.org> 8166 8167 Add a space after section header string in md manual 8168 81692018-01-09 Tim Rühsen <tim.ruehsen@gmx.de> 8170 8171 Generate wget2 man page 8172 8173 * .gitignore: Add auto-generated docs/wget2_md2man 8174 * README.md: Add pandoc 8175 * configure.ac: Generate docs/wget2_md2man 8176 * docs/Makefile.am: Build wget2.1 8177 * docs/wget2_manual.md: Fix things for a better man page experience 8178 * docs/wget2_md2man.sh.in: Template file for docs/wget2_md2man 8179 81802018-01-10 Tim Rühsen <tim.ruehsen@gmx.de> 8181 8182 * po/POTFILES.in: Add src/stats.c 8183 81842018-01-10 Tim Rühsen <tim.ruehsen@gmx.de> 8185 8186 Fix calls to info_printf() for translation 8187 8188 * src/stats.c: Add _() around static text 8189 * src/wget.c: Likewise 8190 81912018-01-10 Tim Rühsen <tim.ruehsen@gmx.de> 8192 8193 * .gitlab-ci.yml: 'make' before 'make distcheck' in VPATH build 8194 81952018-01-09 Neil Locketz <neil@nlocketz.com> 8196 8197 GPG signature information now presented in --site-stats 8198 8199 * src/stats.c: Site stats output contains relevant GPG signature information 8200 * stc/wget.c: Now exits with just a generic GPG error if any sigs fail validation. 8201 More information presented in --site-stats output. 8202 * src/wget_host.h: Added signature information to DOC struct. 8203 * src/wget_options.h: Removed old exit codes in favor of single GPG error exit code. 8204 * tests/Makefile.am: Added test-gpg-bad to Makefile 8205 * tests/gpg/helloworld.txt.bad.sig: A corrupted signature (I just deleted a byte somewhere) 8206 * tests/test-gpg-bad.c: A test for a bad (corrupted) signature. 8207 * tests/test-gpg-invalid.c: Changed exit code to the single GPG error exit code. 8208 82092017-12-26 Tim Rühsen <tim.ruehsen@gmx.de> 8210 8211 Use hashmap instead of vector for DNS caching 8212 8213 * libwget/dns_cache.c: Likewise 8214 82152017-12-26 Tim Rühsen <tim.ruehsen@gmx.de> 8216 8217 Refactor DNS chaching code out of net.c 8218 8219 * include/wget/wget.h: Add missing wget_dns_cache declarations 8220 * libwget/Makefile.am: Add dns_cache.c 8221 * libwget/dns_cache.c: New file 8222 * libwget/net.c: Remove DNS chaching code 8223 82242018-01-06 Tim Rühsen <tim.ruehsen@gmx.de> 8225 8226 Fix MinGW compilation without threads 8227 8228 * .gitlab-ci.yml: Test without multi-threading 8229 * pthread_sigmask.c.mingw: New file with patch for MinGW 8230 8231 Wine/MinGW seems to have a multi-threadign issue (sometimes hangs). 8232 Disabling threads using ./configure --disable-threads needs a change in 8233 gnulib. It has been reported, but not worked on currently. 8234 So we provide our own solution. 8235 82362018-01-06 Tim Rühsen <tim.ruehsen@gmx.de> 8237 8238 * gnulib: Update 8239 82402018-01-05 Tim Rühsen <tim.ruehsen@gmx.de> 8241 8242 * libwget/ssl_gnutls.c (_print_info): Amend printed error messages 8243 82442018-01-04 Darshit Shah <darnir@gnu.org> 8245 8246 Eliminate redundant variable config.head_progress 8247 82482018-01-04 Darshit Shah <darnir@gnu.org> 8249 8250 Unify functions to print progress stats and progress_head stats 8251 82522018-01-04 Darshit Shah <darnir@gnu.org> 8253 8254 * libwget/iri.c: Don't percent encode the query portion of a IRI 8255 82562018-01-02 Darshit Shah <darnir@gnu.org> 8257 8258 Add support to change the GPG signature file extension 8259 8260 * src/wget_options.h: Define a new option, --signature-extension 8261 * src/options.c: Guard the SECTION_GPG in help_section_t with ifdef's. 8262 Set new option as a string and give it a default value 8263 * src/wget.c(process_response): Use the value in config.sig_ext to 8264 decide the extension of the signature file 8265 * tests/Makefile.am: Add new tests to Makefile 8266 * tests/test-gpg-styles.c: New test file 8267 82682018-01-02 Darshit Shah <darnir@gnu.org> 8269 8270 * src/options.c: Put GPG options in their own help section 8271 82722018-01-04 Darshit Shah <darnir@gnu.org> 8273 8274 * src/wget.c: Gracefully disable progress when built without threads 8275 82762018-01-03 Tim Rühsen <tim.ruehsen@gmx.de> 8277 8278 Fix build to work without multi-threading 8279 8280 * libwget/thread.c: Fix wget_thread_start() and wget_thread_join() 8281 * src/wget.c: Fix typo 8282 * tests/libtest.c: Don't skip tests when multi-threading is disabled 8283 82842018-01-03 Tim Rühsen <tim.ruehsen@gmx.de> 8285 8286 Fix --without-plugin-support build 8287 8288 * configure.ac: Check for dlsym and introduce $FUZZ_LIBS 8289 * fuzz/Makefile.am: Use $FUZZ_LIBS instead of $LIBS 8290 82912018-01-03 Tim Rühsen <tim.ruehsen@gmx.de> 8292 8293 * tests/Makefile.am: Do not build/run GPG tests if gpgme isn't installed 8294 82952018-01-01 Tim Rühsen <tim.ruehsen@gmx.de> 8296 8297 Add test for --filter-mime-type 8298 8299 * tests/Makefile.am: Add test--filter-mime-type 8300 * tests/test--filter-mime-type.c: New test 8301 83022017-12-30 DalmeGNU <dalmemail@gmail.com> 8303 8304 Add --filter-mime-type option 8305 8306 * src/wget.c: Add mime type check before downloading a file 8307 * src/options.c: Add --filter-mime-type option 8308 * src/wget_options.h: Add mime_types to the config structure 8309 * docs/wget2_manual.md: Add documentation related to the new option 8310 83112018-01-01 Darshit Shah <darnir@gnu.org> 8312 8313 Cleaner error messages for GPG Verification 8314 8315 * src/wget.c(process_response): Remove some info_printf statements. They 8316 are printed from gpgme now 8317 * src/gpgme.c: Pass the filename of the signature file (if any) ad use 8318 it to print an error message to the screen. This prevents the double 8319 error messages that were printed and works well with the progress bar 8320 83212017-12-25 Neil Locketz <neil@nlocketz.com> 8322 8323 Fixed problems pointed out in MR. Added tests and doxygen documentation. 8324 8325 * bootstrap.conf: Add canonicalize module. 8326 * cfg.mk: Added exclusions to no new line at EOF for binary files used in tests. 8327 * configure.ac: Check for libgpgme 8328 * docs/wget2_manual.md: Added manual entries for --verify-sig, --gnupg-homedir, and new exit codes. 8329 * fuzz/Makefile.am: Amend linker options 8330 * include/wget/wget.h: Add error codes for GPG signature verification. 8331 * po/POTFILES.in: Add new files. 8332 * src/Makefile.am: Add src/gpgme.c and src/wget_gpgme.h 8333 * src/gpgme.c: Using new error codes, and better signature verification failure detection. 8334 * src/job.c (job_free): Free sig_filename 8335 * src/options.c: Add new options --gnupg-homedir and --verify-sig 8336 * src/wget.c: Verify the signature if possible, exit with the proper status code, 8337 print error messages 8338 * src/wget_gpgme.h: Add documentation. 8339 * src/wget_job.h: Extend struct JOB 8340 * src/wget_options.h: Add new status codes, add new members to struct config 8341 * tests/Makefile.am: Added new tests. 8342 * tests/gpg-test-util.h: Common GPG testing functionality (tries to verify a signature, expects exit code ... etc). 8343 * tests/gpg/helloworld.txt: Text that has been signed in the .sig files. 8344 * tests/gpg/helloworld.txt.{invalid,no-pub,missing,trusted}.sig: Signatures on helloworld.txt with properties described by their names. 8345 * tests/gpg/openpgp-revocs.d/*: Revocation certs for the fake "homedir" 8346 * tests/gpg/private-keys-v1.d/*: The not-so-private private keys used to sign the test file. 8347 * tests/gpg/pubring.kbx: Fake gnupg homedir public key ring. 8348 * tests/gpg/test-gpg-*.c: Tests. 8349 * tests/valgrind-supressions: Supress failures due to oddness with GPGME. 8350 * unit-tests/Makefile.am: Add src/gpgme.o to BASE_OBJS 8351 83522018-01-01 Tim Rühsen <tim.ruehsen@gmx.de> 8353 8354 * cfg.mk: Exclude *gnulib/*.c from sc_copyright_check 8355 83562018-01-01 Tim Rühsen <tim.ruehsen@gmx.de> 8357 8358 * libwget/thread.c: Fix typos (make syntax-check) 8359 83602017-12-31 Tim Rühsen <tim.ruehsen@gmx.de> 8361 8362 Remove unused function wget_vector_deinit() 8363 8364 * include/wget/wget.h: Likewise 8365 * libwget/vector.c: Likewise 8366 83672017-12-31 Tim Rühsen <tim.ruehsen@gmx.de> 8368 8369 * src/stats.c (_free_tree_docs_entry): Use wget_vector_free() 8370 83712017-12-29 Tim Rühsen <tim.ruehsen@gmx.de> 8372 8373 Add docs for thread functions 8374 8375 * docs/Makefile.am: Add man page 8376 * libwget/thread.c: Add documentation 8377 83782017-12-31 Tim Rühsen <tim.ruehsen@gmx.de> 8379 8380 * README.md: Extend list of dependencies 8381 83822017-12-31 Tim Rühsen <tim.ruehsen@gmx.de> 8383 8384 * fuzz/main.c: Fix path separator on MinGW 8385 83862017-12-30 Tim Rühsen <tim.ruehsen@gmx.de> 8387 8388 Revert "* .gitlab-ci.yml: Remove MinGW CI runner" 8389 8390 This reverts commit 89166a38d428ccb02eb263394130dd4acada2b51. 8391 8392 At least on Debian unstable the MinGW build works stable now. 8393 This might be due to the latest fixes in the threading area. 8394 83952017-12-30 DalmeGNU <dalmemail@gmail.com> 8396 8397 * docs/wget2_manual.md: Remove duplicate documentation on the --report-speed option and change it a bit 83982017-12-30 Tim Rühsen <tim.ruehsen@gmx.de> 8399 8400 * libwget/bar.c (wget_bar_set_slots): Fix memleak when adding more slots 8401 84022017-12-29 Tim Rühsen <tim.ruehsen@gmx.de> 8403 8404 * src/wget.c (main): Fix read overflow on progress+spider without TTY 8405 84062017-12-23 DalmeGNU <dalmemail@gmail.com> 8407 8408 Fix the filename encoding for the progress bar in spider mode 8409 8410 * src/wget.c: Use functions from wget2 to get the filename, 8411 refactor get_local_filename(). Shorten the progress info 8412 line 8413 * src/wget_main.h: Use const for get_local_filename() param 8414 84152017-12-28 Tim Rühsen <tim.ruehsen@gmx.de> 8416 8417 * libwget/thread.c: Suppress -Wundef warnings in gnulib includes 8418 84192017-12-27 Tim Rühsen <tim.ruehsen@gmx.de> 8420 8421 Avoid copying initialized glthread structures 8422 8423 * libwget/thread.c: Use malloc+init instead init+memdup 8424 8425 Memdup'ing the glthread structures broke internal pointers, 8426 at least on Windows. 8427 8428 Reported-by: Gisle Vanem 8429 84302017-12-23 DalmeGNU <dalmemail@gmail.com> 8431 8432 Print progress info related to headers when spider+progress are set 8433 8434 * src/options.c: Set config.head_progress if spider+progress are set 8435 * src/wget.c: New function print_head_progress_report(), 8436 new function get_filename() 8437 * src/wget_options.h: New var config.head_progress 8438 84392017-12-25 Tim Rühsen <tim.ruehsen@gmx.de> 8440 8441 * src/bar.c: Let progress thread stop 8442 8443 Glthreads don't have a cancel or kill function, so we use 8444 a global termination flag. 8445 84462017-12-10 DalmeGNU <dalmemail@gmail.com> 8447 8448 Improve progress speed display 8449 8450 * include/wget/wget.h: Use enum for WGET_REPORT_SPEED_* 8451 * libwget/bar.c: Add ringbuffer for smoother speed calculations 8452 * src/wget.c (main): Replace call to print_progress_report() by 8453 call to bar_printf() 8454 84552017-12-20 Darshit Shah <darnir@gnu.org> 8456 8457 libwget/bar.c: Ensure all progress bars have the same size 8458 84592017-12-20 Tim Rühsen <tim.ruehsen@gmx.de> 8460 8461 Add test for multi-threading 8462 8463 * unit-tests/Makefile.am: Add test-cond 8464 * unit-tests/test-cond.c: New test 8465 84662017-12-17 Tim Rühsen <tim.ruehsen@gmx.de> 8467 8468 * contrib/build_fuzzers: Print out a small info 8469 84702017-05-03 Tim Rühsen <tim.ruehsen@gmx.de> 8471 8472 Thread abstraction via gnulib thread wrapper (glthread) 8473 8474 * bootstrap.conf: Add modules cond, lock and thread, 8475 remove module pthread 8476 * include/wget/wget.h: Remove pthread code, 8477 add new wget_thread_* functions, 8478 amend params of wget_thread_* functions, 8479 add init and exit functions for mutex initialization 8480 * */*.[ch]: Amend threading to new API 8481 8482 This change let libwget work with different kinds of 8483 threading libraries incl. pthreads and windows threads. 8484 84852017-12-15 Tim Rühsen <tim.ruehsen@gmx.de> 8486 8487 * configure.ac: Reduce warnings from gnulib code 8488 84892017-12-12 Tim Rühsen <tim.ruehsen@gmx.de> 8490 8491 Fix some more URLs from http:// to https:// 8492 8493 * .travis.sh: Likewise 8494 * .travis_setup.sh: Likewise 8495 * COPYING: Likewise 8496 * COPYING.LESSER: Likewise 8497 * bootstrap: Likewise 8498 * include/wget/wget.h: Likewise 8499 * include/wget/wgetver.h.in: Likewise 8500 * libwget/atom_url.c: Likewise 8501 * libwget/iri.c: Likewise 8502 85032017-12-11 Tim Rühsen <tim.ruehsen@gmx.de> 8504 8505 Fix race condition(s) in downloader logic 8506 8507 * src/host.c: Use new flag job.done, 8508 add more documentation, 8509 protect some debugging lines with hosts_mutex 8510 * src/wget.c: Use job.done instead of job.inuse 8511 * src/wget_host.h: Use void return for host_add_job() 8512 and host_add_robotstxt_job() 8513 * src/wget_job.h (struct JOB): Add job.done 8514 8515 The job.inuse flag has been used for two purposes. This 8516 resulted in sporadic conflicts between threads. While one was 8517 destroying a job structure another got this structure from the 8518 job queue. Best reproducible with '-r --spider' combination. 8519 85202017-12-06 Tim Rühsen <tim.ruehsen@gmx.de> 8521 8522 Fix deadlock in host_remove_job() 8523 8524 * src/host.c (_host_remove_job): New function fixes deadlock 8525 8526 Fixes #314 8527 85282017-12-08 Tim Rühsen <tim.ruehsen@gmx.de> 8529 8530 * fuzz/*_fuzzer.in/*: Update fuzzer corpora 8531 85322017-12-08 Tim Rühsen <tim.ruehsen@gmx.de> 8533 8534 * contrib/build_fuzzers: Add new helper script to build fuzzers 8535 85362017-12-08 Tim Rühsen <tim.ruehsen@gmx.de> 8537 8538 * fuzz/get_ossfuzz_corpora: Fix script to handle many corpora 8539 85402017-12-08 Tim Rühsen <tim.ruehsen@gmx.de> 8541 8542 * src/wget.c: Fix clang warning about 64/32 conversion 8543 85442017-12-08 Tim Rühsen <tim.ruehsen@gmx.de> 8545 8546 * libwget/net.c: Fix clang warning about 64/32 conversion 8547 85482017-12-05 Tim Rühsen <tim.ruehsen@gmx.de> 8549 8550 * gnulib: Update 8551 85522017-11-30 DalmeGNU <dalmemail@gmail.com> 8553 8554 Implement speed reporting in the progress bar and the --report-speed switch 8555 8556 * docs/wget2_manual.md: Add documentation for the --report-speed switch 8557 * include/wget/wget.h: Define the report speed types, add reference to wget_bar_set_speed_type() 8558 * libwget/bar.c: Modify the wget2 progress bar to print speed information 8559 * src/bar.c: Add code to set the type of speed reporting 8560 * src/options.c: Add the --report-speed switch and a function to parse the legal types 8561 * src/wget_options.h: Add 'report_speed' in the config structure 8562 * src/wget.c: Print speed reports at the end of a download thread 8563 85642017-12-06 Tim Rühsen <tim.ruehsen@gmx.de> 8565 8566 Fix several issues foudn by cppcheck 8567 8568 * libwget/bar.c (_wget_bar_st): Remove unused member screen_width 8569 * libwget/css.c: Reduce scope of variables 8570 * libwget/encoding.c: Likewise 8571 * libwget/hpkp.c: Likewise 8572 * libwget/http.c: Likewise 8573 * libwget/http_parse.c: Likewise 8574 * libwget/iri.c: Likewise 8575 * libwget/net.c: Likewise 8576 * libwget/sitemap_url.c: Likewise 8577 * libwget/ssl_gnutls.c: Likewise 8578 * libwget/vector.c: Likewise 8579 * src/dl.c: Likewise 8580 85812017-12-06 Tim Rühsen <tim.ruehsen@gmx.de> 8582 8583 * .gitlab-ci.yml: Add VPATH build 8584 85852017-12-06 Tim Rühsen <tim.ruehsen@gmx.de> 8586 8587 Use BUILDDIR for popen() in test suite 8588 8589 * tests/Makefile.am: Set BUILDDIR 8590 * tests/libtest.c: Use BUILDDIR for executable path 8591 85922017-12-05 Tim Rühsen <tim.ruehsen@gmx.de> 8593 8594 Update link libraries in Makefiles 8595 8596 * fuzz/Makefile.am: Update link libraries and remove redundant code 8597 * libwget/Makefile.am: Likewise 8598 * src/Makefile.am: Likewise 8599 * tests/Makefile.am: Likewise 8600 * unit-tests/Makefile.am: Likewise 8601 86022017-12-04 Tim Rühsen <tim.ruehsen@gmx.de> 8603 8604 * po/POTFILES.in: Add lib/regcomp.c 8605 86062017-12-04 Tim Rühsen <tim.ruehsen@gmx.de> 8607 8608 * libwget/net.c: Fix -Wundef warning on Win32 8609 86102017-12-04 Tim Rühsen <tim.ruehsen@gmx.de> 8611 8612 * src/options.c: Include getpass.h 8613 86142017-12-04 Tim Rühsen <tim.ruehsen@gmx.de> 8615 8616 * bootstrap.conf: Add modules pipe-posix, regex 8617 8618 # Conflicts: 8619 # bootstrap.conf 8620 86212017-12-02 Tim Rühsen <tim.ruehsen@gmx.de> 8622 8623 * .gitlab-ci.yml: Use new Fedora27 CI image 8624 86252017-12-02 Tim Rühsen <tim.ruehsen@gmx.de> 8626 8627 * libwget/hpkp.c: Silence doxygen 8628 86292017-12-02 Tim Rühsen <tim.ruehsen@gmx.de> 8630 8631 * libwget/bar.c: Add missing documentation 8632 86332017-12-02 Tim Rühsen <tim.ruehsen@gmx.de> 8634 8635 * libwget/hashfile.c: Use doxygen 'ingroup' instead of 'defgroup' 8636 86372017-12-02 Tim Rühsen <tim.ruehsen@gmx.de> 8638 8639 * libwget/ssl_gnutls.c: Fix end of doxygen file 8640 86412017-12-02 Tim Rühsen <tim.ruehsen@gmx.de> 8642 8643 Fix some doxygen issues 8644 8645 * libwget/hash_printf.c: Fix name of param 8646 * libwget/hpkp.c: Document missing param, 8647 (wget_hpkp_db_add): Rename param 8648 * libwget/ssl_gnutls.c: Fix \ref syntax warnings 8649 * libwget/strscpy.c: Fix param usage in docs 8650 86512017-08-19 Ander Juaristi <a@juaristi.eus> 8652 8653 doxygen: Document SSL/TLS engine 8654 86552017-11-30 DalmeGNU <dalmemail@gmail.com> 8656 8657 * docs/wget2_manual.md: Add documentation for --max-threads and --chunk-size switches 8658 86592017-11-29 Tim Rühsen <tim.ruehsen@gmx.de> 8660 8661 * .gitlab-ci.yml: Add make distcheck 8662 86632017-11-29 Dan <dalmemail@amaya.tk> 8664 8665 * src/options.c: Prevert --max-threads & --chunk-size flags combination 8666 86672017-11-28 DalmeGNU <dalmemail@gmail.com> 8668 8669 * src/options.c: Don't allow wget2 to show any password dialogs if there are no URL arguments 8670 86712017-11-28 Akash Rawal <argmlac@gmail.com> 8672 8673 * unit-tests/Makefile.am: Make libwget usable in dummy libraries 8674 86752017-11-24 Akash Rawal <argmlac@gmail.com> 8676 8677 Fix 'make distcheck' for VPATH build 8678 8679 * fuzz/Makefile.am: Use $(srcdir) to find files 8680 * tests/Makefile.am: Add stats-test-util.h to *_SOURCES where needed 8681 86822017-11-24 Akash Rawal <argmlac@gmail.com> 8683 8684 * .travis.yml: Fix travis-ci build 8685 86862017-11-28 DalmeGNU <dalmemail@gmail.com> 8687 8688 * src/wget.c: Let the user know if file is completely retrieved after a 416 HTTP error 8689 86902017-11-29 Tim Rühsen <tim.ruehsen@gmx.de> 8691 8692 * fuzz/wget_options_fuzzer.c: Fix for C++ building 8693 86942017-11-21 Tim Rühsen <tim.ruehsen@gmx.de> 8695 8696 * fuzz/Makefile.am: Fix building for oss-fuzz 8697 86982017-11-18 Tim Rühsen <tim.ruehsen@gmx.de> 8699 8700 Add testmode to avoid interactive functions when testing 8701 8702 * fuzz/Makefile.am: Link options fuzzer with testing.o 8703 * fuzz/wget_options_fuzzer.c: Set test mode 8704 * src/Makefile.am: Add testing.c and wget_testing.h 8705 * src/options.c (prompt_for_password, run_use_askpass): 8706 Check for testing mode 8707 * src/testing.c: New file 8708 * src/wget_testing.h: New file 8709 * unit-tests/Makefile.am: Link with testing.o 8710 87112017-11-16 Tim Rühsen <tim.ruehsen@gmx.de> 8712 8713 * libwget/hsts.c: Check some function arguments against NULL 8714 87152017-11-16 Tim Rühsen <tim.ruehsen@gmx.de> 8716 8717 * tests/test--accept.c: Fix new tests for Windows 8718 8719 Reported-by: Gisle Vanem 8720 87212017-11-15 Tim Rühsen <tim.ruehsen@gmx.de> 8722 8723 * src/options.c: Fix reading passwords for fuzzing 8724 87252017-11-15 Tim Rühsen <tim.ruehsen@gmx.de> 8726 8727 Fix resource leaks 8728 8729 * src/options.c (prompt_for_password): Fix indentation, 8730 (run_use_askpass): Add file actions to close pipe fds in child, 8731 (init): Free config.password before calling prompt_for_password(), 8732 (deinit): Free config.use_askpass_bin 8733 87342017-11-14 Avinash Sonawane <rootkea@gmail.com> 8735 8736 Fix warnings 8737 8738 * src/wget.c : Declare 'nthreads' as static variable 8739 * src/wget.c (regex_match_pcre): explicit typecast to PCRE2_SPTR 8740 87412017-11-14 Tim Rühsen <tim.ruehsen@gmx.de> 8742 8743 * tests/test-stats-tls.c: Remove superfluous include 8744 87452017-11-14 Tim Rühsen <tim.ruehsen@gmx.de> 8746 8747 * tests/stats-test-util.h: Fix free() on arbitrary stack content 8748 87492017-11-14 Tim Rühsen <tim.ruehsen@gmx.de> 8750 8751 * src/options.c (run_use_askpass): Remove warning 8752 87532017-11-13 Neil Locketz <neil@nlocketz.com> 8754 8755 Hosts gathered from metalinks are added to hosts hashmap 8756 8757 * src/wget.c: Add metalink mirrors to hosts hashmap 8758 87592017-11-14 Tim Rühsen <tim.ruehsen@gmx.de> 8760 8761 * src/wget.c: Fix check for WITH_LIBPCRE 8762 87632017-11-14 Tim Rühsen <tim.ruehsen@gmx.de> 8764 8765 * src/options.c (run_use_askpass): Use const for 'question' 8766 87672017-11-14 Tim Rühsen <tim.ruehsen@gmx.de> 8768 8769 * src/options.c (init): Fix memleak (harmless) 8770 87712017-11-14 Tim Rühsen <tim.ruehsen@gmx.de> 8772 8773 * README.md: Add lzip to list of prerequisites 8774 87752017-11-13 Tim Rühsen <tim.ruehsen@gmx.de> 8776 8777 * src/options.c: Cleanups, prevent resource leaks in --use-askpass 8778 87792017-11-11 DalmeGNU <dalmemail@gmail.com> 8780 8781 Disable TLS Session Resumption by default 8782 8783 * src/options.c: Set config.tls_resume to false/zero by default 8784 8785 * docs/wget2_manual.md: Add docs for --tls-resume 8786 87872017-11-06 DalmeGNU <dalmemail@gmail.com> 8788 8789 Implementation of --use-askpass switch 8790 8791 * bootstrap.conf: Add 'posix_spawn' and 'spawn-pipe' gnulib modules 8792 * docs/wget2_manual.md: Add docs for --use-askpass 8793 * src/options.c: Add implementation of --use-askpass 8794 * src/wget_options.h (struct config): Add 'use_askpass_bin' member 8795 87962017-11-11 Tim Rühsen <tim.ruehsen@gmx.de> 8797 8798 * bootstrap.conf: Add more prerequisites 8799 88002017-11-10 Tim Rühsen <tim.ruehsen@gmx.de> 8801 8802 * include/wget/wget.h: More documentation added 8803 88042017-11-10 Tim Rühsen <tim.ruehsen@gmx.de> 8805 8806 * src/wget.c: Add Cache-Control: no-cache if --no-cache is given 8807 88082017-11-06 Neil Locketz <neil@nlocketz.com> 8809 8810 Response Time Site Statistic 8811 8812 * include/wget/wget.h: first_data_back field added to represent the time of first bytes received back. 8813 * libwget/http.c: Assigning first_data_back at the appropriate time. 8814 * stc/wget_host.h: Added response_time field to DOC, holds response time for document. 8815 * src/stats.c: Logic to calculate response_time for DOCs, and stat printing. 8816 88172017-11-06 Neil Locketz <neil@nlocketz.com> 8818 8819 Transfer time site statistic 8820 8821 * include/wget/wget.h: Added request_start, and response_end to wget_http_request_t, and wget_http_response_t respectively. 8822 * libwget/http.c: New fields initialized/set with their corresponding values at the right time. 8823 * stc/wget_host.h: Added timestamps to DOC for request timeframes. 8824 * src/stats.c: Logic to calculate request_start and response_end for DOCs. Stats writing. 8825 88262017-11-05 Tim Rühsen <tim.ruehsen@gmx.de> 8827 8828 * src/options.c: Skip DNS resolve for bind address for fuzz/ tests 8829 88302017-11-03 Tim Rühsen <tim.ruehsen@gmx.de> 8831 8832 * src/wget.c (add_statistics): Count status 303, 307, 308 as redirects 8833 88342017-11-03 Tim Rühsen <tim.ruehsen@gmx.de> 8835 8836 * libwget/http.c (wget_http_get_response_cb): Improve gzip workaround 8837 88382017-10-31 DalmeGNU <dalmemail@gmail.com> 8839 8840 Implement --ask-password switch to enable a password prompt 8841 8842 * bootstrap.conf: Add 'getpass' gnulib module 8843 * docs/wget2_manual.md: Amend docs for --ask-password 8844 * src/options.c: Add implementation of --ask-password 8845 * src/wget_options.h (struct config): Add 'password' member 8846 88472017-11-02 Tim Rühsen <tim.ruehsen@gmx.de> 8848 8849 * include/wget/wget.h: Add some struct member documentation 8850 88512017-11-02 Tim Rühsen <tim.ruehsen@gmx.de> 8852 8853 Fix out-of-memory issue in option parsing 8854 8855 * src/options.c (parse_stringlist_expand): Limit number 8856 entries in vector table. 8857 8858 And endless loop situation when reading config files lead 8859 to an out-of-memory situation. 8860 8861 Found by oss-fuzz (issue 4015). 8862 Bug existed since a long time. 8863 88642017-11-01 Tim Rühsen <tim.ruehsen@gmx.de> 8865 8866 * fuzz/wget_options_fuzzer.in: Update fuzzer corpora 8867 88682017-11-01 Tim Rühsen <tim.ruehsen@gmx.de> 8869 8870 Let plugin_db_load_from_envvar() return error 8871 8872 * src/options.c (init): Return error if plugin_db_load_from_envvar() fails 8873 * src/plugin.c (plugin_db_load_from_envvar): Return error instead of void 8874 * src/wget_plugin.h (plugin_db_load_from_envvar): Likewise 8875 88762017-10-23 Neil Locketz <neil@nlocketz.com> 8877 8878 Split up plugin tests into several files 8879 8880 * tests/Makefile.am: Add new files 8881 * tests/test-plugin-failure.c: New file with tests based on invalid input 8882 * tests/test-plugin-interception.c: New file for testing the various things 8883 plugins can intercept 8884 * tests/test-plugin-nonexistance.c: New file for tests with plugins that don't exist) 8885 * tests/test-plugin.c: Moved tests to the above new files 8886 88872017-10-23 Neil Locketz <neil@nlocketz.com> 8888 8889 Split individual stats tests into their own files 8890 8891 * tests/Makefile.am: Add new files 8892 * tests/stats-test-util.h: New file 8893 * tests/test-stats-all.c: New file 8894 * tests/test-stats-dns.c: DNS stats tests 8895 * tests/test-stats-ocsp.c: OCSP stats tests 8896 * tests/test-stats-server.c: Server stats tests 8897 * tests/test-stats-site.c: Site stats tests 8898 * tests/test-stats-tls.c: TLS stats tests 8899 89002017-11-01 Tim Rühsen <tim.ruehsen@gmx.de> 8901 8902 Fix memory leak in wget2 8903 8904 * src/options.c (init): Free config.logfile before assignment 8905 8906 Found by oss-fuzz (issue 3963). 8907 Bug existed since a long time. 8908 Bug is not relevant except for testing. 8909 89102017-10-31 Tim Rühsen <tim.ruehsen@gmx.de> 8911 8912 Fix buffer overflow in option parser 8913 8914 * src/options.c (_parse_option): Add end-of-string check 8915 8916 Found by oss-fuzz (issue 3950). 8917 Bug existed since a long time. 8918 89192017-10-29 Tim Rühsen <tim.ruehsen@gmx.de> 8920 8921 Add support for RFC 7616 HTTP Digest Access Authentication 8922 8923 * docs/Makefile.am: Remove libwget-md5.3 8924 * include/wget/wget.h: Remove wget_md5_printf_hex(), 8925 add wget_hash_printf_hex() 8926 * libwget/Makefile.am: Rename md5.c to hash_printf.c 8927 * libwget/hash_printf.c: New file with wget_hash_printf_hex() 8928 * libwget/http.c (wget_http_add_credentials): Remove hardcoded MD5 algo 8929 * tests/test-metalink.c: Use wget_hash_printf_hex() 8930 8931 RFC 7616 adds/replaces the MD5 digest algorithm with SHA-256. 8932 89332017-04-13 Michael Heerklotz <michael.heerklotz@check24.de> 8934 8935 Added new setting --filter-urls 8936 8937 * docs/wget2_manual.md: Added doc for new setting 8938 * src/options.c: Added new setting 8939 * src/wget.c: Added code for new setting. 8940 * src/wget_options.h: Added new setting 8941 8942 This commit hasn't been copyright-assigned to the FSF. 8943 89442017-04-13 Michael Heerklotz <michael.heerklotz@check24.de> 8945 8946 Added regex filters (--accept-regex, --reject-regex, --regex-type) 8947 8948 * configure.ac: Added detection of libpcre and libpcre2 8949 * include/wget/wget.h: Added regex_type defines 8950 * src/options.c: Added the new options 8951 * src/wget.c: Added regex code 8952 * src/wget_options.h: Added the new options 8953 * tests/test--accept.c: Added tests for the new options 8954 8955 This commit hasn't been copyright-assigned to the FSF. 8956 89572017-10-27 Tim Rühsen <tim.ruehsen@gmx.de> 8958 8959 Fixes for oss-fuzz 8960 8961 * fuzz/Makefile.am: Extend oss-fuzz make script 8962 * fuzz/wget_options_fuzzer.c: Do not opendir() in init() 8963 * src/wget_options.h: Tell C++ that functions are C 8964 * src/wget_plugin.h: Likewise 8965 89662017-10-10 Tim Rühsen <tim.ruehsen@gmx.de> 8967 8968 Add wget_options_fuzzer 8969 8970 * Makefile.am: Fix make target 'fuzz-coverage' 8971 * configure.ac: Enable building static library by default, 8972 add option --enable-fuzzing 8973 * fuzz/Makefile.am: Add wget_options_fuzzer, 8974 check for FUZZING (set with --enable-fuzzing) 8975 * fuzz/README.md: Amend the text 8976 * fuzz/main.c: Use printf() instead of wget_info_printf() 8977 * fuzz/run-clang.sh: Use fuzzer binaries built by 'make' 8978 * fuzz/wget_options_fuzzer.c: New fuzzer 8979 * fuzz/wget_options_fuzzer.dict: New fuzzer dictionary 8980 * fuzz/wget_options_fuzzer.in/*: Initial fuzz corpora 8981 * libwget/net.c: Skip IP address resolution when fuzzing 8982 * src/log.c: Don't create files when fuzzing, 8983 don't print to console when fuzzing 8984 * src/options.c: Add set_exit_status() and get_exit_status(), 8985 don't print --help / --version to console when fuzzing, 8986 do not call exit() - return error instead, 8987 fix recursion level in _read_config(), 8988 don't create files when fuzzing, 8989 fix memory leaks in deinit() 8990 * src/stats.c: Don't create files when fuzzing 8991 * src/wget.c: Remove set_exit_status() 8992 * src/wget_main.h: Remove exit_status_t 8993 * src/wget_options.h: Add exit_status_t 8994 * tests/test-plugin.c: Fix expected exit codes from 1 to 2 8995 8996 This is for application fuzzing (namely code from src/). 8997 The code in src/ had to be prepared in certain ways, but it 8998 doesn't add significant overhead, even makes the code cleaner 8999 in some ways. Several of these changes have already been committed 9000 into the master branch. 9001 90022017-10-22 Tim Rühsen <tim.ruehsen@gmx.de> 9003 9004 Rename WGET_HTML_PARSED_RESULT to wget_html_parsed_result_t 9005 9006 * examples/check_url_types.c: Likewise 9007 * examples/print_html_urls.c: Likewise 9008 * fuzz/libwget_html_url_fuzzer.c: Likewise 9009 * include/wget/wget.h: Likewise 9010 * libwget/html_url.c: Likewise 9011 * src/wget.c: Likewise 9012 90132017-10-22 Tim Rühsen <tim.ruehsen@gmx.de> 9014 9015 Rename WGET_HTML_PARSED_URL to wget_html_parsed_url_t 9016 9017 * examples/check_url_types.c: Likewise 9018 * examples/print_html_urls.c: Likewise 9019 * include/wget/wget.h: Likewise 9020 * libwget/html_url.c: Likewise 9021 * src/wget.c: Likewise 9022 90232017-10-22 Tim Rühsen <tim.ruehsen@gmx.de> 9024 9025 Rename WGET_PARSED_URL to wget_css_parsed_url_t 9026 9027 * examples/print_css_urls3.c: Likewise 9028 * include/wget/wget.h: Likewise 9029 * libwget/css_url.c: Likewise 9030 90312017-10-22 Tim Rühsen <tim.ruehsen@gmx.de> 9032 9033 Rename ROBOTS to wget_robots_t 9034 9035 * fuzz/libwget_robots_parse_fuzzer.c: Rename ROBOTS to wget_robots_t 9036 * include/wget/wget.h: Likewise 9037 * libwget/robots.c: Likewise 9038 * src/wget_host.h: Likewise 9039 * unit-tests/test.c: Likewise 9040 90412017-10-22 Tim Rühsen <tim.ruehsen@gmx.de> 9042 9043 Replace ROBOTS_PATH by wget_string_t 9044 9045 * include/wget/wget.h: Remove struct ROBOTS_PATH 9046 * libwget/robots.c: Replace ROBOTS_PATH by wget_string_t 9047 * src/host.c: Likewise 9048 * src/wget.c: Likewise 9049 * unit-tests/test.c: Likewise 9050 90512017-10-21 Tim Rühsen <tim.ruehsen@gmx.de> 9052 9053 * src/options.c (_read_config): Fix buffer underflow 9054 90552017-10-21 Tim Rühsen <tim.ruehsen@gmx.de> 9056 9057 * gnulib: Update for glob() buffer overflows 9058 90592017-10-18 Tim Rühsen <tim.ruehsen@gmx.de> 9060 9061 * src/options.c (parse_timeout): Fix two integer overflows 9062 90632017-10-18 Tim Rühsen <tim.ruehsen@gmx.de> 9064 9065 * src/options.c (parse_numbytes): Fix integer overflow 9066 90672017-10-18 Tim Rühsen <tim.ruehsen@gmx.de> 9068 9069 Cleanup dl_error* functions 9070 9071 * src/dl.c: Deduplicate code, use const where needed 9072 * src/wget_dl.h: Use const attribute for dl_error_t.msg 9073 90742017-10-18 Tim Rühsen <tim.ruehsen@gmx.de> 9075 9076 * src/wget_plugin.h: Include needed header files 9077 90782017-10-18 Tim Rühsen <tim.ruehsen@gmx.de> 9079 9080 * src/options.c (get_home_dir): Allow free'ing 'home' outside the function 9081 90822017-10-18 Tim Rühsen <tim.ruehsen@gmx.de> 9083 9084 * src/options.c (_read_config): Add errno and strerror to error message 9085 90862017-10-18 Tim Rühsen <tim.ruehsen@gmx.de> 9087 9088 * unit-tests/test-dl.c: Fix memory leak 9089 90902017-10-18 Tim Rühsen <tim.ruehsen@gmx.de> 9091 9092 * libwget/net.c (wget_tcp_set_bind_address): Fix allocation policy flag 9093 90942017-10-18 Tim Rühsen <tim.ruehsen@gmx.de> 9095 9096 * libwget/net.c (_wget_tcp_resolve): Fix read of uninitialized stack memory 9097 90982017-10-18 Tim Rühsen <tim.ruehsen@gmx.de> 9099 9100 * libwget/http.c (_parse_no_proxies): Remove wrong destructor from vector 'proxies' 9101 91022017-10-18 Tim Rühsen <tim.ruehsen@gmx.de> 9103 9104 * gnulib: Update 9105 91062017-10-14 Tim Rühsen <tim.ruehsen@gmx.de> 9107 9108 * src/options.c: Fine-tune help output 9109 91102017-10-12 Tim Rühsen <tim.ruehsen@gmx.de> 9111 9112 Add wget_strscpy() 9113 9114 * include/wget/wget.h: Add wget_strscpy() 9115 * libwget/strscpy.c: New file 9116 * libwget/Makefile.am: Add strscpy.c 9117 * libwget/html_url.c: Use wget_strscpy() instead of wget_strlcpy() 9118 * libwget/http.c: Likewise 9119 * libwget/iri.c: Likewise 9120 * libwget/metalink.c: Likewise 9121 * libwget/ssl_gnutls.c: Likewise 9122 * libwget/test_linking.c: Likewise 9123 * src/job.c: Likewise 9124 * src/plugin.c: Likewise 9125 * src/wget.c: Likewise 9126 91272017-10-11 Tim Rühsen <tim.ruehsen@gmx.de> 9128 9129 Use MHD_free in test suite if available 9130 9131 * configure.ac: Check for MHD_free(), 9132 fallback to AC_SEARCH_LIBS if pkg-config not available 9133 * tests/libtest.c: Call MHD_free() where appropriate, 9134 small cleanups 9135 91362017-10-10 Avinash Sonawane <rootkea@gmail.com> 9137 9138 * .gitlab-ci/yml: Add scan-build for fuzz/*, tests/* and unit-tests/* 9139 91402017-10-10 Avinash Sonawane <rootkea@gmail.com> 9141 9142 * .gitlab-ci.yml: Generate flawfinder report 9143 91442017-10-11 Tim Rühsen <tim.ruehsen@gmx.de> 9145 9146 Cleanup test library 9147 9148 * tests/libtest.c (_http_server_start): Use wget_error_printf instead of printf, 9149 simplify some code, 9150 gettextize some printf strings, 9151 (wget_test): generate WIN32 command line 9152 91532017-10-09 Tim Rühsen <tim.ruehsen@gmx.de> 9154 9155 Fix usage of wget_global_init() and wget_http_get() 9156 9157 * examples/*.c: Use 0 instead of NULL as terminating param 9158 * fuzz/main.c: Likewise 9159 * include/wget/wget.h: Remove G_GNUC_WGET_NULL_TERMINATED from 9160 wget_global_init() and wget_http_get(). 9161 91622017-10-09 Tim Rühsen <tim.ruehsen@gmx.de> 9163 9164 * tests/libtest.c: Fix free'ing of certain variables 9165 91662017-10-09 Tim Rühsen <tim.ruehsen@gmx.de> 9167 9168 * include/wget/wget.h: Fix usage of G_GNUC_WGET_NONNULL for clang-cl (Windows) 9169 91702017-10-07 Tim Rühsen <tim.ruehsen@gmx.de> 9171 9172 * src/options.c (parse_local_db): Let --local-db be a master switch 9173 91742017-10-07 Tim Rühsen <tim.ruehsen@gmx.de> 9175 9176 Add --no-local-db to test suite 9177 9178 * tests/libtest.c: Add --no-local-db to wget2 options 9179 * tests/test-plugin.c: Fix test 9180 91812017-09-27 Dan <dalmemail@amaya.tk> 9182 9183 Implement '--local-db' option 9184 9185 * src/options.c: New function parse_local_db(), 9186 new option '--local-db', 9187 (init): Check for config settings 9188 * src/wget_options.h (struct config): Add local_db 9189 91902017-10-07 Tim Rühsen <tim.ruehsen@gmx.de> 9191 9192 * .gitlab-ci.yml: Fix scan-build 9193 91942017-10-07 Tim Rühsen <tim.ruehsen@gmx.de> 9195 9196 * libwget/iri.c (wget_iri_relative_to_abs): Fix null pointer dereference 9197 91982017-09-21 Tim Rühsen <tim.ruehsen@gmx.de> 9199 9200 Implement --dns-timeout using getaddrinfo_a() 9201 9202 * configure.ac: Check for getaddrinfo_a() in libanl 9203 * libwget/net.c: Implement _wget_tcp_resolve() with timeout 9204 9205 Currently, there seems to be memory leak in getaddrinfo_a(). 9206 Needs investigation and a bug report. 9207 92082017-10-06 Tim Rühsen <tim.ruehsen@gmx.de> 9209 9210 * .gitlab-ci.yml: Generate scan-build report (clang static analyzer) 9211 92122017-10-07 Tim Rühsen <tim.ruehsen@gmx.de> 9213 9214 * libwget/ssl_gnutls.c (send_ocsp_request): Fix null ptr dereference 9215 92162017-10-07 Tim Rühsen <tim.ruehsen@gmx.de> 9217 9218 * src/wget_bar.h: Remove unneeded G_GNUC_WGET_NONNULL_ALL from bar_slot_begin() 9219 92202017-10-07 Avinash Sonawane <rootkea@gmail.com> 9221 9222 Use snprintf() instead of sprintf() 9223 9224 * tests/libtest.c: Likewise 9225 * unit-tests/test.c: Likewise 9226 92272017-10-07 Tim Rühsen <tim.ruehsen@gmx.de> 9228 9229 * src/wget_xattr.h: Move #include into guarded area 9230 92312017-10-05 Avinash Sonawane <rootkea@gmail.com> 9232 9233 Fix issues reported by clang static analyzer 9234 9235 * unit-tests/test-dl-dummy.c: use wget_strlcpy() intead of strcpy() 9236 * src/plugin.c: Likewise 9237 * tests/libtest.c: Get rid of strcpy() 9238 * unit-tests/test.c: Fix out-of-bound array access 9239 92402017-10-05 Avinash Sonawane <rootkea@gmail.com> 9241 9242 Reduce variable scope 9243 9244 * examples/print_html_urls.c: Likewise 9245 * fuzz/libwget_cookie_fuzzer.c: Likewise 9246 * fuzz/main.c: Likewise 9247 * tests/libtest.c: Likewise 9248 * unit-tests/test.c: Likewise 9249 9250 Found by: cppcheck 9251 92522017-10-07 Avinash Sonawane <rootkea@gmail.com> 9253 9254 Remove dead assignments 9255 9256 * libwget/http.c: Likewise 9257 * libwget/net.c: Likewise 9258 * libwget/ssl_gnutls.c: Likewise 9259 * src/wget.c: Likewise 9260 9261 Found by: Clang static analyzer (scan-build) 9262 92632017-10-05 Tim Rühsen <tim.ruehsen@gmx.de> 9264 9265 * tests/test-plugin.c: Fix check for skipping the test 9266 92672017-09-28 Josef Moellers <jmoellers@suse.de> 9268 9269 Terminate http request on response status code 416. 9270 9271 * libwget/http.c (wget_http_get_response_cb): Stop download on 9272 status code 416, cleanup using HTTP status defines. 9273 * libwget/http.h: Add HTTP status defines from Wget1.x 9274 9275 HTTP status response 416 Requested Range Not Satisfiable. 9276 This sometimes happens when a server responds incorrectly to a range request. 9277 There is not enough information available (Range of the request) to properly 9278 handle this case. If it were, the case that the file has already been 9279 completely downloaded could be detected and an appropriate message could be 9280 generated. I also took the liberty to port the status codes from the old wget 9281 source to libwget/http.h to make the code more readable. 9282 92832017-10-05 Avinash Sonawane <rootkea@gmail.com> 9284 9285 Reduce scope of variables 9286 9287 * libwget/bar.c: Likewise 9288 * libwget/console.c: Likewise 9289 * libwget/encoding.c: Likewise 9290 * libwget/hashmap.c: Likewise 9291 * libwget/io.c: Likewise 9292 * libwget/md5.c: Likewise 9293 * libwget/netrc.c: Likewise 9294 * libwget/ssl_gnutls.c: Likewise 9295 * libwget/xml.c: Likewise 9296 * src/job.c: Likewise 9297 * src/plugin.c: Likewise 9298 * libwget/hashfile.c: Include local private.h 9299 * src/host.c: Remove unused find_free_job_context struct 9300 9301 Found by: cppcheck 9302 93032017-10-04 Tim Rühsen <tim.ruehsen@gmx.de> 9304 9305 Remove testing for MHD in test suite 9306 9307 * tests/libtest.c: Likewise 9308 * tests/libtest.h: Likewise 9309 9310 Reported-by: Gisle Vanem 9311 93122017-10-04 Tim Rühsen <tim.ruehsen@gmx.de> 9313 9314 * fuzz/*.in: Update fuzzer corpora 9315 93162017-10-04 Tim Rühsen <tim.ruehsen@gmx.de> 9317 9318 * fuzz/*: Fix clang-5.0 to clang-6.0 9319 93202017-10-03 Tim Rühsen <tim.ruehsen@gmx.de> 9321 9322 Skip plugin tests if shared build is disabled 9323 9324 The use of -shared in the LDFLAGS for the plugins does not work 9325 with './configure --disable-shared'. Instead of failing the build 9326 this patch SKIPs the plugin tests. 9327 93282017-10-02 Tim Rühsen <tim.ruehsen@gmx.de> 9329 9330 * fuzz/main.c: Remove libtool prefix 'lt-' from directory names 9331 93322017-10-02 Tim Rühsen <tim.ruehsen@gmx.de> 9333 9334 Remove -static from AM_LDFLAGS in test directories 9335 9336 * fuzz/Makefile.am: Remove -static from AM_LDFLAGS 9337 * tests/Makefile.am: Likewise 9338 * unit-tests/Makefile.am: Likewise 9339 9340 'make check' didn't work on CygWin with these settings. 9341 Also, GnuTLS removed these a short time ago from the fuzz/ 9342 directory since there were build issues. 9343 93442017-10-02 Tim Rühsen <tim.ruehsen@gmx.de> 9345 9346 * contrib/mingw: Cleanup 9347 93482017-10-02 Tim Rühsen <tim.ruehsen@gmx.de> 9349 9350 * src/wget.c: Set values for enum actions 9351 93522017-10-02 Tim Rühsen <tim.ruehsen@gmx.de> 9353 9354 * README.md: Add libiconv to dependencies 9355 93562017-10-02 Tim Rühsen <tim.ruehsen@gmx.de> 9357 9358 Extend plugin loading for CygWIN 9359 9360 * src/dl.c: Add PATTERN for CygWin 9361 * tests/test-plugin.c: Define LOCAL_NAME for CygWin 9362 * unit-tests/test-dl.c: Define BUILD_NAME and LOCAL_NAME for CygWin 9363 93642017-10-02 Tim Rühsen <tim.ruehsen@gmx.de> 9365 9366 Make fuzzers survive on CygWin 9367 9368 * fuzz/libwget_hpkp_fuzzer.c: Check for RTLD_NEXT 9369 * fuzz/libwget_hsts_fuzzer.c: Likewise 9370 * fuzz/libwget_netrc_fuzzer.c: Likewise 9371 * fuzz/libwget_ocsp_fuzzer.c: Likewise 9372 * fuzz/libwget_tlssess_fuzzer.c: Likewise 9373 9374 On CygWin RTLD_NEXT doesn't exist, so we can't overwrite/preload fopen(). 9375 93762017-09-29 Tim Rühsen <tim.ruehsen@gmx.de> 9377 9378 * tests/libtest.c (wget_test): Flush stderr after each write 9379 93802017-09-29 Tim Rühsen <tim.ruehsen@gmx.de> 9381 9382 * .gitlab-ci.yml: Remove MinGW CI runner 9383 9384 Due to several instabilities / hangs we temporarily remove 9385 the MinGW CI runner. One problem is the buggy behavior of 9386 MinGW pthread_cond_broadcast() that doesn't wake up every thread. 9387 As a result Wget2 sometimes hangs and so does the test suite. 9388 93892017-09-29 Tim Rühsen <tim.ruehsen@gmx.de> 9390 9391 .gitlab-ci.yml: grep posix version of libgcc_s_seh-1.dll 9392 93932017-09-28 Tim Rühsen <tim.ruehsen@gmx.de> 9394 9395 * .gitlab-ci.yml: Remove --enable-static configure flag from MinGW build 9396 93972017-09-27 Tim Rühsen <tim.ruehsen@gmx.de> 9398 9399 * .gitlab-ci.yml: Fix WINEPATH 9400 94012017-09-22 Avinash Sonawane <rootkea@gmail.com> 9402 9403 * tests/libtest.c (_http_server_start): Remove explicit type conversion 94042017-09-27 Tim Rühsen <tim.ruehsen@gmx.de> 9405 9406 * libwget/netrc.c (wget_netrc_db_load): Use wget_strncasecmp_ascii() 9407 94082017-09-27 Tim Rühsen <tim.ruehsen@gmx.de> 9409 9410 Add GNU extensions to .netrc parsing 9411 9412 * include/wget/wget.h (wget_netrc_t): Add port and force 9413 * libwget/netrc.c (wget_netrc_db_load): Parse port and force 9414 94152017-09-22 DalmeGNU <dalmemail@gmail.com> 9416 9417 Replace error_printf() with debug_printf() in order to solve #254 94182017-09-22 Tim Rühsen <tim.ruehsen@gmx.de> 9419 9420 * .gitlab-ci.yml: Test MinGW with -j1 9421 94222017-09-20 Tim Rühsen <tim.ruehsen@gmx.de> 9423 9424 Use type bool instead of char 9425 9426 * include/wget/wget.h: Use type bool instead of char 9427 * libwget/bar.c: Likewise 9428 * libwget/base64.c: Likewise 9429 * libwget/cookie.c: Likewise 9430 * libwget/encoding.c: Likewise 9431 * libwget/hsts.c: Likewise 9432 * libwget/http.h: Likewise 9433 * libwget/http_highlevel.c: Likewise 9434 * libwget/http_parse.c: Likewise 9435 * libwget/ip.c: Likewise 9436 * libwget/iri.c: Likewise 9437 * libwget/logger.c: Likewise 9438 * libwget/net.h: Likewise 9439 * libwget/ocsp.c: Likewise 9440 * libwget/tls_session.c: Likewise 9441 * libwget/vector.c: Likewise 9442 * src/plugin.c: Likewise 9443 * src/wget_host.h: Likewise 9444 * src/wget_job.h: Likewise 9445 * src/wget_plugin.h: Likewise 9446 * tests/test-plugin-dummy.c: Likewise 9447 94482017-09-22 Tim Rühsen <tim.ruehsen@gmx.de> 9449 9450 Fix HPKP checking 9451 9452 * libwget/ssl_gnutls.c (_verify_certificate_callback): PIN check the 9453 whole cert chain. 9454 9455 We used only cert #0 for HPKP checking. This broke connectivity 9456 to github.com. 9457 Now checking the whole cert chain. 9458 9459 Fixes #293 9460 94612017-09-20 Tim Rühsen <tim.ruehsen@gmx.de> 9462 9463 * libwget/thread.c: Do not call pthread functions with NULL thread value 9464 94652017-09-20 Tim Rühsen <tim.ruehsen@gmx.de> 9466 9467 Fix HTTPS functionality on _WIN32 9468 9469 * libwget/ssl_gnutls.c: Add _win32_send() and _win32_recv(), 9470 set those functions as push and pull functions on _WIN32. 9471 9472 Sets the GnuTLS pull and push functions to make gnulib sockets work. 9473 Tested only on MinGW64. 9474 94752017-09-20 Tim Rühsen <tim.ruehsen@gmx.de> 9476 9477 Remove obsolete server code from library and test suite 9478 9479 * include/wget/wget.h: Remove wget_tcp_listen(), wget_tcp_accept(), 9480 wget_ssl_server_init(), wget_ssl_server_deinit(), wget_ssl_server_open(), 9481 wget_ssl_server_close(). 9482 * libwget/net.c: Remove wget_tcp_listen(), wget_tcp_accept(), 9483 remove tcp->passive, 9484 amend wget_tcp_tls_start() and wget_tcp_tls_stop(). 9485 * libwget/net.h: Remove tcp->passive. 9486 * libwget/ssl_gnutls.c: Remove server variables, wget_ssl_server_init(), 9487 wget_ssl_server_deinit(), wget_ssl_server_open(), wget_ssl_server_close(). 9488 * tests/libtest.c: Remove FTP(S) code and obsolete test server code. 9489 * tests/libtest.h: Remove FTP flags, structures, functions. 9490 94912017-09-08 Avinash Sonawane <rootkea@gmail.com> 9492 9493 * doc/wget2_manual.md: Add docs for --stats-* options 9494 94952017-09-17 Avinash Sonawane <rootkea@gmail.com> 9496 9497 Fix --stats-* for chunked download 9498 9499 * src/stats.c (stats_docs_add): For chunked download add chunk sizes to print total size 9500 * src/stats.c (stats_tree_docs_add): Point to doc with non-HEAD method in case of collision 9501 95022017-09-15 Avinash Sonawane <rootkea@gmail.com> 9503 9504 Add tests for --stats-*=format:file 9505 9506 * tests/test-stats.c: test --stats-site=tree:file 9507 * tests/test-stats.c: test --stats-all=csv:file 9508 95092017-09-15 Avinash Sonawane <rootkea@gmail.com> 9510 9511 * src/stats.c: Refactor stats code 9512 95132017-09-14 Avinash Sonawane <rootkea@gmail.com> 9514 9515 Add HTTP status to --stats-site=csv and --stats-site=json 9516 9517 * src/wget_host.h: Add 'status' to struct DOC 9518 * src/stats.c (print_*_site_entry): Print status 9519 95202017-09-14 Avinash Sonawane <rootkea@gmail.com> 9521 9522 Add new format 'tree' for --stats-site 9523 9524 * include/wget/wget.h: Add WGET_STATS_FORMAT_TREE to wget_stats_format_t enum 9525 * src/options.c (parse_stats): Accept format 'tree' for --stats-site switch 9526 * src/stats.c (stats_print_tree): Print tree-ish o/p for format WGET_STATS_FORMAT_TREE 9527 95282017-09-14 Avinash Sonawane <rootkea@gmail.com> 9529 9530 * src/stats.c (stats_print): For --stats-all=csv:foo, save stats in separate files 9531 95322017-09-12 Avinash Sonawane <rootkea@gmail.com> 9533 9534 Add --stats-all switch as a shorthand to turn ON all the stats-* switches 9535 9536 * src/wget_options.h (struct config): Add member 'stats_all' 9537 * src/options.c: Add new function parse_stats_all to parse --stats-all 9538 * tests/test-stats.c (stats_options[]): Add "--stats-all" 9539 * src/stats.c (stats_print): Append to file if --stats-all is provided 9540 95412017-09-11 Avinash Sonawane <rootkea@gmail.com> 9542 9543 Fix --stats-site o/p for --spider 9544 9545 * src/wget_host.h (struct HOST_DOCS): change datatype of 'docs' from wget_vector_t to wget_hashmap_t 9546 * src/stats.c (stats_docs_add): For --spider replace contents of 'doc' with 'resp' of second GET request 9547 95482017-09-10 Avinash Sonawane <rootkea@gmail.com> 9549 9550 Consolidate --stats-site CSV and JSON o/p 9551 9552 * src/stats.c: Consolidate print_csv() and print_json() 9553 * src/stats.c: Consolidate print_site_stats_csv() and print_site_stats_json() 9554 * src/wget_stats.h: Move stats_format_t enum to include/wget/wget.h 9555 95562017-09-09 Avinash Sonawane <rootkea@gmail.com> 9557 9558 Fix --stats-* JSON o/p 9559 9560 * src/wget_host.h: Add 'json_stats' context struct 9561 * src/stats.c: Pass 'ctx' stats_print_*_entry()s 9562 95632017-09-09 Avinash Sonawane <rootkea@gmail.com> 9564 9565 * src/stats.c: Consolidate code from stats_print_*() functions in stats_print() 9566 95672017-09-08 Tim Rühsen <tim.ruehsen@gmx.de> 9568 9569 * src/stats.c (stats_set_option): Fix memory leak 9570 95712017-09-08 Tim Rühsen <tim.ruehsen@gmx.de> 9572 9573 Fix --stats-site hashing 9574 9575 * src/stats.c (_host_docs_hash): Disable integer sanitizer checks, 9576 avoid memory allocation. 9577 (stats_docs_add): Use calloc instead of malloc. 9578 95792017-09-08 Tim Rühsen <tim.ruehsen@gmx.de> 9580 9581 * src/stats.c: More consolidation 9582 95832017-09-08 Tim Rühsen <tim.ruehsen@gmx.de> 9584 9585 Detangle src/hosts.c and src/stats.c 9586 9587 * src/host.c: Move stuff to src/stats.c 9588 * src/options.c (init): Save --stats-site status in config 9589 * src/stats.c: Insert stuff rom src/host.c 9590 * src/wget.c: Cleaup regarding the above changes 9591 * src/wget_host.h: Add structs and prototypes 9592 * src/wget_options.h: Add config.stats_site 9593 * src/wget_stats.h: Add prototypes 9594 * unit-tests/Makefile.am: Link stats.o where needed 9595 95962017-09-07 Avinash Sonawane <rootkea@gmail.com> 9597 9598 Add JSON o/p for --stats-site 9599 9600 * src/wget_host.h: Add print_site_stats_json() prototype declaration 9601 * src/stats.c (stats_print_json): Handle WGET_STATS_TYPE_SITE case 9602 * src/host.c: Add print_site_stats_json(), hosts_hashmap_json() and 9603 print_json() functions 9604 96052017-09-07 Tim Rühsen <tim.ruehsen@gmx.de> 9606 9607 Detangle stats from options.c 9608 9609 * src/options.c (parse_stats): Call stats_set_option() to set values, 9610 (deinit): Call stats_exit() 9611 * src/stats.c: Move stats_opts here, 9612 new functions stats_set_option() and stats_exit() 9613 * src/wget_options.h: Remove stats_format_t, stats_opts_t, stats_opts 9614 * src/wget_stats.h: Add stats_format_t, 9615 add prototypes for stats_exit() and stats_set_option() 9616 96172017-09-07 Tim Rühsen <tim.ruehsen@gmx.de> 9618 9619 * src/stats.c: Cleanup stats output dispatching 9620 96212017-09-07 Tim Rühsen <tim.ruehsen@gmx.de> 9622 9623 * src/stats.c (stats_server_hpkp): Add G_GNUC_WGET_PURE attribute 9624 96252017-09-07 Tim Rühsen <tim.ruehsen@gmx.de> 9626 9627 * src/stats.c: Reduce number of memory allocations 9628 96292017-09-06 Avinash Sonawane <rootkea@gmail.com> 9630 9631 Add CSV o/p for --stats-site 9632 9633 I'll amend this later. 9634 96352017-09-06 Avinash Sonawane <rootkea@gmail.com> 9636 9637 Collect site stats only if --stats-site switch is supplied 9638 9639 * src/wget.c (wget_tcp_set_stats_site): Set 'stats-site' flag 9640 * src/wget.c (add_statistics): Collect Site stats only if `stats_site` is set 9641 * src/stats.c (stats_init): Call wget_tcp_set_stats_site if --stats-site is supplied 9642 * include/wget/wget.h: Add wget_tcp_set_stats_site() prototype declaration 9643 96442017-09-06 Tim Rühsen <tim.ruehsen@gmx.de> 9645 9646 Rearrange stats struct members to avoid padding 9647 9648 * src/wget_stats.h: Likewise 9649 * libwget/ssl_gnutls.c: Likewise 9650 96512017-09-05 Avinash Sonawane <rootkea@gmail.com> 9652 9653 Add docs 9654 9655 * libwget/http.c: Document wget_tcp_set_stats_server() and wget_tcp_get_stats_server() 9656 * libwget/net.c: Document wget_tcp_set_stats_dns() and wget_tcp_get_stats_dns() 9657 * libwget/ssl_gnutls.c: Document wget_tcp_set_stats_tls() and wget_tcp_get_stats_tls() 9658 * libwget/ssl_gnutls.c: Document wget_tcp_set_stats_ocsp() and wget_tcp_get_stats_ocsp() 9659 96602017-09-05 Avinash Sonawane <rootkea@gmail.com> 9661 9662 Add robots.txt as child of first doc having same host as robots.txt 9663 9664 * src/host.c (tree_docs_add): Likewise 9665 * src/host.c (print_treeish): Backtrack once all children have been printed 9666 * src/wget.c: Remove commented code 9667 * scr/wget_job.h: Remove not needed 'cloned_robot_iri' and 'previous_robot_job' 9668 * src/wget_host.h: Remove not needed 'bool robot_iri' 9669 96702017-09-04 Avinash Sonawane <rootkea@gmail.com> 9671 9672 Add robot_iri to blacklist and do not free it explicitly 9673 9674 * src/wget.c (add_url_to_queue): Likewise 9675 * src/wget.c (add_url): Likewise 9676 * src/host.c (host_remove_job): Don't free robot_iri explicitly 9677 96782017-09-04 Avinash Sonawane <rootkea@gmail.com> 9679 9680 * tests/test-stats.c: Add tests for -r with --stats-* options 9681 96822017-09-03 Tim Rühsen <tim.ruehsen@gmx.de> 9683 9684 Add test 'test-stats' for new stats options 9685 9686 * tests/Makefile.am: Add test-stats.c 9687 * tests/test-stats.c: New file 9688 96892017-09-03 Tim Rühsen <tim.ruehsen@gmx.de> 9690 9691 * src/wget.c (downloader_thread): Add missing brackets around else case 9692 96932017-09-03 Tim Rühsen <tim.ruehsen@gmx.de> 9694 9695 * src/stats.c: Reduce # of allocations in stats_print_* functions 9696 96972017-09-03 Tim Rühsen <tim.ruehsen@gmx.de> 9698 9699 * src/host.c (print_encoding): Add 'const' attribute to function 9700 97012017-09-03 Avinash Sonawane <rootkea@gmail.com> 9702 9703 Do not print sizes in human-readable form 9704 9705 * src/host.c (host_docs_hashmap): Likewise 9706 * libwget/http.c (_free_host_entry): Fix parenhesis 9707 * src/options.c: Amend help text to reflect the progress 9708 97092017-09-02 Avinash Sonawane <rootkea@gmail.com> 9710 9711 * src/host.c (print_treeish): Use context variable instead of local static variable 9712 97132017-09-01 Avinash Sonawane <rootkea@gmail.com> 9714 9715 Assign enum values explicitly 9716 9717 * include/wget/wget.h: Likewise 9718 * src/stats.c (stats_print_human): Remove commented code 9719 97202017-09-01 Avinash Sonawane <rootkea@gmail.com> 9721 9722 * src/stats.c (stats_print_csv): Use buffer to print CSV header 9723 97242017-09-01 Avinash Sonawane <rootkea@gmail.com> 9725 9726 Refactor --stats-tls code 9727 9728 * src/wget_stats.h: Change datatype of 'tls_con' and 'resumed' from char to bool 9729 * libwget/ssl_gnutls.c (stats_data_t struct): Likewise 9730 * src/stats.c (stats_print_*): Use WGET_HTTP_PROTOCOL_* instead of hard-coded values 9731 97322017-09-01 Avinash Sonawane <rootkea@gmail.com> 9733 9734 Add port to DNS stats 9735 9736 * include/wget/wget.h: Add WGET_STAST_DNS_PORT to wget_stats_dns_t enum 9737 * libwget/netc. (wget_tcp_resolve): store port in _stats_data_t struct 9738 * src/wget_stats.h: Add 'port' to dns_stats_t struct 9739 * src/stats.c (stats_callback): Collect port into dns_stats_t struct 9740 * src/stats.c (stats_print_*): Print port 9741 97422017-08-29 Avinash Sonawane <rootkea@gmail.com> 9743 9744 * libwget/http.c: Suppress clang warning about integer overflow 9745 97462017-08-23 Avinash Sonawane <rootkea@gmail.com> 9747 9748 Add parent child relationships and print them in tree-ish form 9749 9750 * include/wget/wget.h: Add prototype for wget_vector_deinit() 9751 * libwget/vector.c: Add wget_vector_deinit() to free 'v->entry' 9752 (can be used for vector maintaining references) 9753 * src/host.c: Refactor tree_docs_add() 9754 * src/host.c: Add hosts_hashmap_tree() and print_treeish() to print tree-ish o/p 9755 * wget/host.h: Add 'root' and 'robot' to HOST struct 9756 * src/wget_job.h (JOB struct): Add 'previous_robot_job' and 'clonned_robot_iri' 9757 97582017-08-20 Avinash Sonawane <rootkea@gmail.com> 9759 9760 Add data structures and functions for tree-ish o/p 9761 9762 * src/wget_host.h: Add tree_docs hashmap to HOST struct 9763 * src/wget_host.h: Add TREE_DOCS struct 9764 * src/host.c: Add _tree_docs_hash() as hash function for 'tree_docs' hashmap 9765 * src/host.c: Add _tree_docs_compare() as compare function for 'tree_docs' hashmap 9766 * src/host.c: Add _free_tree_docs_entry() as destructor for 'tree_docs' hashmap 9767 * src/host.c: (tree_docs_add): Add entry to 'tree_docs' hashmap 9768 * src/host.c: (tree_docs_get): Get entry from 'tree_docs' hashmap 9769 97702017-08-17 Avinash Sonawane <rootkea@gmail.com> 9771 9772 Add doc_size and content-encoding to --stats-site 9773 9774 * src/wget_host.h (DOC struct): Add size_downloaded, size_decompressed and encoding 9775 * src/wget.c (_prepare_file): Simplify code 9776 * src/options.c: Amend --stats-* help text 9777 * src/host.c (host_docs_add): Collect size_downloded, size_decompressed and encoding 9778 97792017-08-16 Avinash Sonawane <rootkea@gmail.com> 9780 9781 * src/host.c: Suppress clang warning about integer overflow 9782 97832017-07-31 Avinash Sonawane <rootkea@gmail.com> 9784 9785 Add --stats-site switch 9786 9787 * include/wget/wget.h: Add WGET_STATS_TYPE_SITE to wget_stats_type_t enum 9788 * src/options.h: Increase stats_opts[] size to 5 9789 * src/options.c: Add --stats-site 9790 * src/wget_host.h: Add 'robot_iri' to DOC struct 9791 * src/host.c: Add new functions print_site_stats(), hosts_hashmap() and host_docs_hashmap() 9792 * src/stats.c (stats_print_human): Print site stats 9793 * src/wget.c: Call host_add() as soon as scheme changes due to HSTS 9794 * src/wget.c: Clone robot_iri 9795 * src/wget_stats.h: Fix indentation 9796 97972017-07-31 Avinash Sonawane <rootkea@gmail.com> 9798 9799 Assign enum values explicitly 9800 9801 * src/wget_options.h (stats_format_t enum): Likewise 9802 * src/options.c (help_section_t enum): Likewise 9803 * libwget/css_tokenizer.h: Likewise 9804 * libwget/bar.c (_bar_slot_status_t enum): likewise 9805 * src/host.c (host_docs_get): Initialize 'host_docsp' 9806 * src/wget.c (add_statistics): Add call to host_docs_add() 9807 98082017-07-30 Avinash Sonawane <rootkea@gmail.com> 9809 9810 Add WGET_STATS_HPKP_ERROR to handle HPKP error 9811 9812 * include/wget/wget.h: Add WGET_STATS_HPKP_ERROR to wget_hpkp_stats_t enum 9813 * src/wget_stats.h (server_stats_t struct): Change datatype of 'hpkp' from char to wget_hpkp_stats_t 9814 * libwget/ssl_gnutls.c (_cert_verify_hpkp): Store WGET_STATS_HPKP_ERROR for error 9815 * src/stats.c (stats_server_hpkp): Return appropriate message depending on 'hpkp' value 9816 98172017-07-28 Avinash Sonawane <rootkea@gmail.com> 9818 9819 Collect --stats-server for unique servers(IPs) only 9820 9821 * src/wget_stats.h: Add member 'scheme' to server_stats_t struct 9822 * src/stats.c (stats_callback): Collect 'scheme' in server_stats_t struct 9823 * src/stats.c (stats_print_*): Print 'scheme' 9824 * include/wget/wget.h: Add WGET_STATS_SERVER_SCHEME to wget_server_stats_t enum 9825 * libwget/hashmap.c (wget_hashmap_contains): Add check for 'h' being non-NULL 9826 * libwget/http.c: Add _host_hash() as hash function for 'hosts' hashmap 9827 * libwget/http.c: Add _host_compare() as compare function for 'hosts' hashmap 9828 * libwget/http.c: Add _free_host_entry() destructor for 'hosts' hashmap 9829 * libwget/http.c (host_add): Add host to 'hosts' hashmap 9830 98312017-07-28 Avinash Sonawane <rootkea@gmail.com> 9832 9833 * include/wget/wget.h: Set explicit enum values 9834 98352017-07-28 Avinash Sonawane <rootkea@gmail.com> 9836 9837 Add IP to --stats-server 9838 9839 * src/wget_stats.h: Add 'ip' to 'server_stats_t' struct 9840 * src/stats.c (stats_callback): Collect IP 9841 * src/stats.c (stats_print_*): Print IP 9842 * src/stats.c (free_server_stats): Free 'ip' 9843 * libwget/net.h (wget_tcp_st struct): Add 'ip' 9844 * libwget/net.c (wget_tcp_connect): Store IP in tcp->ip 9845 * libwget/http.c: Collect IP from conn->tcp->ip 9846 98472017-07-27 Avinash Sonawane <rootkea@gmail.com> 9848 9849 * src/options.c: Amend the help text for --stats-* options 9850 98512017-07-26 Avinash Sonawane <rootkea@gmail.com> 9852 9853 Collect site-based stats 9854 9855 * src/wget_host.h: Add HOST_DOCS and DOC structs 9856 * src/host.c (_host_docs_compare): Add compare function for host_docs hashmap 9857 * src/host.c (_host_docs_hash): Add hash function for host_docs hashmap 9858 * src/host.c (_free_host_docs_entry): Add destructor for host_docs hashmap 9859 * src/host.c (host_docs_add): Add function to add stats in host_docs hashmap 9860 * src/host.c (host_docs_get): Add function to retrieve doc from host_docs hashmap 9861 * src/wget.c (process_response_header): Add call to host_docs_add() 9862 98632017-07-21 Avinash Sonawane <rootkea@gmail.com> 9864 9865 Assign default value if wget_tcp_get_stats_* return NULL 9866 9867 * src/stats.c (stats_callback): Likewise 9868 * src/wget_stats.h: Change datatype of cert_chain_size, nvalid, 9869 ignored, nrevoked from size_t to int 9870 * src/wget_stats.h: Change datatype of hpkp from wget_hpkp_stats_t 9871 to char 9872 * src/options.c (parse_stats): Exit if unknown stats format 9873 * libwget/net.c (wget_tcp_resolve): Initialize 'before_millisecs' 9874 * libwget/ssl_gnutls.c: Add function definitions for wget_tcp_*_stats_ocsp() 9875 98762017-07-20 Avinash Sonawane <rootkea@gmail.com> 9877 9878 Add support for --stats-*[=[format:]filename] 9879 9880 * src/options.c: Add parse_stats() function to parse --stats-*[=[format:]filename] 9881 * src/wget_options.h: Add stats_format_t enum and stats_opts_t struct 9882 * src/stats.c: Add stats_print_human() for "human" formatted output 9883 9884 3 case-insensitive formats: json, csv and human (default) 9885 'stdout' is the default file. '-' stands for 'stdout'. 9886 98872017-07-12 Avinash Sonawane <rootkea@gmail.com> 9888 9889 * src/stats.c: Fix --stats-server and --stats-ocsp JSON output 9890 98912017-07-12 Avinash Sonawane <rootkea@gmail.com> 9892 9893 Add flag tls_stats to separate --stats-tls from --stats-ocsp 9894 9895 * libwget/ssl_gnutls.c: Likewise 9896 * src/http.c (wget_http_open): Add check to see whether stats_callback is non-NULL 9897 98982017-07-12 Avinash Sonawane <rootkea@gmail.com> 9899 9900 * src/stats.c (free_server_stats): free server_stats_t members 9901 99022017-07-11 Avinash Sonawane <rootkea@gmail.com> 9903 9904 Print Server stats and OCSP stats in CSV and JSON format 9905 9906 * src/stats.c: Likewise 9907 * src/wget_stats.h: Remove stats_print*() function declarations 9908 99092017-07-11 Avinash Sonawane <rootkea@gmail.com> 9910 9911 Print --stats-server, if asked, for HPKP_NOMATCH 9912 9913 * libwget/http.c (wget_http_open): Call stats_callback() even for WGET_E_CERTIFICATE, if asked 9914 * src/wget_stats.h (server_stats_t struct): Fix indentation 9915 * src/stats.c (stats_print): Fix info_printfs() for server stats 9916 99172017-07-10 Avinash Sonawane <rootkea@gmail.com> 9918 9919 Add HPKP_NEW to --stats-server 9920 9921 * src/wget_stats.h: Add hpkp_new to server_stats_t struct 9922 * src/stats.c (stats_callback): Collect hpkp_new 9923 * src/stats.c (stats_print): Print hpkp_new 9924 * libwget/http.c (wget_http_get_response_cb): Collect hpkp_new stats 9925 * include/wget/wget.h: Add WGET_STATS_SERVER_HPKP_NEW to wget_server_stats_t enum 9926 99272017-07-10 Avinash Sonawane <rootkea@gmail.com> 9928 9929 Add IGNORED to --stats-ocsp 9930 9931 * libwget/ssl_gnutls.c (_verify_certificate_callback): Add nignored to stats 9932 * src/stats.c (stats_callback): Collect nignored 9933 * src/stast.c (stats_print): Print nignored 9934 99352017-07-08 Avinash Sonawane <rootkea@gmail.com> 9936 9937 Add HPKP stats and hostname to --stats-server 9938 9939 * libwget/ssl_gnutls.c: Collect HPKP stats in tcp struct via session_context 9940 * libwget/http.c: Collect hostname and HPKP stats in _stats_data_t struct 9941 * src/stats.c: Collect hostname in stats_callback() and print it 9942 99432017-07-08 Avinash Sonawane <rootkea@gmail.com> 9944 9945 Add --stats-ocsp option 9946 9947 * src/wget_stats.h: Add ocsp_stats_t struct 9948 * src/stats.c: Add ocsp_stats_v vector to store OCSP stats 9949 * src/stats.c: Add OCSP stats code in stats_init(), stats_callback() and stats_print() 9950 * src/wget_options.h: Add stats_ocsp to struct config 9951 * src/options.c: Add --stats-ocsp 9952 * include/wget/wget.h: Add wget_ocsp_stats_t enum 9953 * include/wget/wget.h: Add WGET_STATS_TYPE_OCSP to wget_stats_type_t enum 9954 * libwget/ssl_gnutls.c: Add wget_tcp_set_stats_ocsp() and wget_tcp_get_stats_ocsp() 9955 99562017-07-07 Avinash Sonawane <rootkea@gmail.com> 9957 9958 Print stats in CSV and JSON format 9959 9960 * src/wget_stats.h: Add prototypes for stats_printcsv() and stats_printjson() 9961 * src/stats.c: Add stats_printcsv() and stats_printjson() functions 9962 * libwget/ssl_gnutls.c: Change datatype of cert_chain_size from unsigned int to size_t 9963 99642017-07-06 Avinash Sonawane <rootkea@gmail.com> 9965 9966 Add --stats-server option 9967 9968 * src/wget_stats.h: Add server_stats_t struct 9969 * src/stats.c: Add server_stats_v vector to store server stats 9970 * src/stats.c: Add server stats code in stats_init(), stats_callback and stats_print() 9971 * src/stats.c: Add free_server_stats() destructor 9972 * src/wget_options.h: Add stats_server to struct config 9973 * src/options.c: Add --stats-server 9974 * include/wget/wget.h: Add wget_server_stats_t and wget_hpkp_stats_t enums 9975 * include/wget/wget.h: Add WGET_STATS_TYPE_SERVER to wget_stats_type_t enum 9976 * libwget/http.c: Add wget_tcp_set_stats_server() and wget_tcp_get_stats_server() 9977 * libwget/http_parse.c: Check for "Content-Security-Policy" header 9978 * libwget/ssl_gnutls.c: Collect HPKP stats in wget_tcp_t struct 9979 * libwget/net.h: Add hpkp to wget_tcp_st struct 9980 99812017-06-16 Avinash Sonawane <rootkea@gmail.com> 9982 9983 Add --stats-dns and --stats-tls options 9984 9985 * src/wget_stats.h: Add dns_stats_t and tls_stats_t structs 9986 * src/stats.c: Add stats_init(), stats_callback() and stats_print() functions 9987 * src/stats.c: Add dns_stats_v and tls_stats_v vectors 9988 * src/stats.c: Add free_tls_stats() and free_tls_stats() functions 9989 * src/wget_options.h: Add stats_dns and stats_tls in config struct 9990 * src/options.c: Add --stats-dns and --stats-tls 9991 * src/wget.c: Add call to stats_init() and stats_print() functions 9992 * src/Makefile.am: Add stats.c and wget_stats.h files 9993 * include/wget/wget.h: Add prototypes for wget_tcp_set_stats_dns() and wget_tcp_set_stats_tls() 9994 * include/wget/wget.h: Add prototypes for wget_tcp_get_stats_dns() and wget_tcp_get_stats_tls() 9995 * include/wget/wget.h: Add wget_stats_type_t, wget_dns_stats_t and wget_tls_stats_t enums 9996 * libwget/ssl_gnutls.c: Add wget_tcp_set_stats_tls() and wget_tcp_get_stats_tls() 9997 * libwget/net.h: Add TLS stats in wget_tcp_st struct 9998 * libwget/net.c: Add wget_tcp_set_stats_dns() and wget_tcp_get_stats_dns() 9999 100002017-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 10001 10002 * tests/libtest.c (_answer_to_connection): Fix memleaks found by coverity 10003 100042017-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 10005 10006 * libwget/net.c: Fix warnings on _WIN32 10007 100082017-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 10009 10010 * src/log.c: Fix unused param warning on _WIN32 10011 100122017-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 10013 10014 * libwget/ssl_gnutls.c (_print_info): Remove call to deprecated GnuTLS function 10015 100162017-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 10017 10018 Change __WIN32 to _WIN32 10019 10020 * tests/test-idn-cmd.c: Likewise 10021 * tests/test-idn-robots.c: Likewise 10022 100232017-09-18 Darshit Shah <darnir@gnu.org> 10024 10025 * tests/libtest.h: Add WGET_TEST_FEATURE_FTP to satisfy clang 10026 100272017-09-18 Darshit Shah <darnir@gnu.org> 10028 10029 Revert "* libwget/net.c: Remove port variable from DNS cache" 10030 10031 This reverts commit b9006672dcbbffb3995a78918d04bfe009f29e2d. 10032 We cannot remove the port variable from the DNS cache. The struct 10033 addrinfo structure contains the port information and hence causes issues 10034 during HTTP->HTTPS redirects 10035 100362017-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 10037 10038 * tests/libtest.c: Cleanups 10039 100402017-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 10041 10042 Fix configure ans Makefile.am for MHD 10043 10044 * Makefile.am: Add tests to SUBDIRS only with MHD 10045 * configure.ac: Fix MHD detection 10046 100472017-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 10048 10049 Fix two IDN tests for MinGW/Windows 10050 10051 * tests/test-idn-cmd.c: Skip UTF-8 on command line 10052 * tests/test-idn-robots.c: Likewise 10053 10054 MinGW mangles UTF-8 characters on the command line, so we skip 10055 those tests. 10056 100572017-09-17 Tim Rühsen <tim.ruehsen@gmx.de> 10058 10059 Add Wget2 dependencies to mingw script 10060 100612017-09-16 Darshit Shah <darnir@gnu.org> 10062 10063 * libwget/net.c: Remove port variable from DNS cache 10064 100652017-09-17 Darshit Shah <darnir@gnu.org> 10066 10067 Use Feature Flags to SKIP unsupported tests 10068 10069 * tests/libtest.{c,h}: Add support for feature flags during test 10070 startup. Check if Wget2 is compiled with the feature and conditionally 10071 SKIP the tests 10072 * tests/test-*.c: Pass the right feature flags for each test. MHD for 10073 HTTP, FTP for FTP, IDN and PLUGIN when applicable 10074 100752017-09-17 Darshit Shah <darnir@gnu.org> 10076 10077 * configure.ac: Support compiling without MHD support 10078 100792017-09-18 Darshit Shah <darnir@gnu.org> 10080 10081 * .gitlab-ci.yml: The Fedora runner should use GCC 10082 100832017-09-18 Darshit Shah <darnir@gnu.org> 10084 10085 * .gitlab-ci.yml: Use new MingW Docker Image 10086 100872017-09-16 Tim Rühsen <tim.ruehsen@gmx.de> 10088 10089 * .gitlab-ci.yml: Adjust WINEPATH, remove CXX 10090 100912017-09-16 Tim Rühsen <tim.ruehsen@gmx.de> 10092 10093 * libwget/metalink.c (_add_file_hash): Skip spaces at begin of mirror URL 10094 100952017-09-16 Darshit Shah <darnir@gnu.org> 10096 10097 Fix bug with combination of host-directories and cut-dirs 10098 10099 * libwget/iri.c(wget_iri_get_path): Change API so that a path separator 10100 is added _only_ if one does not already exist at the end of the buffer. 10101 This should be a non-breaking change. 10102 * src/wget.c(get_local_filename): Append a "/" at the end of the 10103 hostname, always. 10104 101052017-09-16 Darshit Shah <darnir@gnu.org> 10106 10107 * tests/test-cut-dir: Add two new tests with host directories 10108 101092017-09-13 Tim Rühsen <tim.ruehsen@gmx.de> 10110 10111 * libwget/buffer_printf.c (wget_buffer_vprintf_append): Reset precision after use 10112 101132017-09-08 Didik Setiawan <ds@didiksetiawan.com> 10114 10115 Fix socket handle issue on MinGW64 build 10116 10117 Helped-by: Akash Rawal 10118 Helped-by: Tim Rühsen 10119 101202017-09-12 Tim Rühsen <tim.ruehsen@gmx.de> 10121 10122 * tests/libtest.c (_http_server_start): Do not use real randomness 10123 101242017-09-12 Tim Rühsen <tim.ruehsen@gmx.de> 10125 10126 * .gitlab-ci.yml: Adjust build flags 10127 101282017-09-12 Tim Rühsen <tim.ruehsen@gmx.de> 10129 10130 * contrib/mingw: Add /usr/x86_64-w64-mingw32/lib/pkgconfig to PKG_CONFIG_PATH 10131 101322017-08-17 Didik Setiawan <ds@didiksetiawan.com> 10133 10134 Add digest authentication test 10135 10136 * tests/Makefile.am: Add test 'test-auth-digest' 10137 * tests/libtest.c: Fix HTTP server to handle digest 10138 authentication 10139 * tests/libtest.h: Add opaque for digest authentication 10140 * tests/test-auth-digest.c: Add new test to prove digest 10141 authentication functionality 10142 101432017-09-11 Darshit Shah <darnir@gnu.org> 10144 10145 * configure.ac: MHD is used only in tests. Don't link to Wget2 10146 101472017-09-12 Akash Rawal <argmlac@gmail.com> 10148 10149 * .gitlab-ci.yml (MinGW64): Remove hardcoded path to wget2 clone 10150 101512017-09-12 Tim Rühsen <tim.ruehsen@gmx.de> 10152 10153 * contrib/mingw: Include building libmicrohttpd 10154 101552017-09-11 Tim Rühsen <tim.ruehsen@gmx.de> 10156 10157 * .gitlab-ci.yml: Remove MHD clone & bootstrap (now in docker build) 10158 101592017-09-11 Tim Rühsen <tim.ruehsen@gmx.de> 10160 10161 * .gitlab-ci.yml: Remove MHD install, moved into docker build 10162 101632017-09-11 Tim Rühsen <tim.ruehsen@gmx.de> 10164 10165 Use gnulib-tool.py to speed up ./bootstrap 10166 10167 * README.md: Add python to optional dependencies 10168 * bootstrap: Use gnulib-tool.py if possible 10169 * gnulib: Update 10170 10171 gnulib-tool.py is much faster than the old gnulib-tool. 10172 101732017-09-10 Avinash Sonawane <rootkea@gmail.com> 10174 10175 * src/wget.c: If not -r then don't send second GET request for --spider 10176 101772017-09-10 Didik Setiawan <ds@didiksetiawan.com> 10178 10179 Fix Clang warnings on MHD code 10180 10181 Reported-by: Avinash Sonawane 10182 101832017-09-05 Darshit Shah <darnir@gnu.org> 10184 10185 * .gitlab-ci.yaml: Set default CFLAGS to retain the human readable symbols 10186 101872017-09-05 Darshit Shah <darnir@gnu.org> 10188 10189 Prevent heap-use-after-free of default_challenges 10190 10191 * src/wget_job.h: Add new field to JOB struct, challenges_alloc. This 10192 field indicates whether the JOB object owns the challenges struct. 10193 * src/job.c(job_free): Free the challenges struct of the job only if it 10194 is owned. Else, let the owner handle freeing it. 10195 * src/wget.c: Mark the challenges vector as owned when it is taken from 10196 the response. If it is the default vector, it is not owned. 10197 101982017-09-03 Didik Setiawan <ds@didiksetiawan.com> 10199 10200 Remove redundant debugging option 10201 10202 * tests/test--post-file.c: Remove redundant debugging option 10203 * tests/test-auth-basic.c: Likewise 10204 * tests/test-metalink.c: Likewise 10205 * tests/test-redirection.c: Likewise 10206 * tests/test-wget-1.c: Likewise 10207 10208 Debugging option already provided in tests/libtest.c, so we don't need 10209 to adding it in each test file 10210 102112017-09-03 Didik Setiawan <ds@didiksetiawan.com> 10212 10213 Fix expected error code regarding wrong authentication test 10214 10215 * tests/test-auth-basic.c: Fix expected error code regarding wrong 10216 authentication test which use basic scheme 10217 102182017-09-03 Didik Setiawan <ds@didiksetiawan.com> 10219 10220 * test/libtest.c: Remove unnecessary old http server code 10221 102222017-09-03 Didik Setiawan <ds@didiksetiawan.com> 10223 10224 * test/libtest.c: Ensure dinfo variable to be initialized before usage 10225 102262017-08-23 Didik Setiawan <ds@didiksetiawan.com> 10227 10228 * tests/libtest.c: Add server info into HTTP header 10229 102302017-08-04 Didik Setiawan <ds@didiksetiawan.com> 10231 10232 Fix HTTP server to handle chunked transfer encoding 10233 10234 * tests/libtest.c: Fix HTTP server to handle chunked 10235 transfer encoding 10236 * tests/test-bad-chunk.c: Modify test to conform with new 10237 server 10238 * tests/test-chunked.c: Likewise 10239 102402017-07-19 Didik Setiawan <ds@didiksetiawan.com> 10241 10242 * tests/libtest.c: Fix -Wunused-param caused by MHD API 10243 102442017-07-14 Didik Setiawan <ds@didiksetiawan.com> 10245 10246 * tests/libtest.c: Add HTTPS server handler 10247 102482017-07-13 Didik Setiawan <ds@didiksetiawan.com> 10249 10250 Fix HTTP server to handle basic authentication 10251 10252 * tests/libtest.c: Add basic authentication test handler 10253 * tests/test-auth-basic.c: Add test for wrong credentials 10254 102552017-07-11 Didik Setiawan <ds@didiksetiawan.com> 10256 10257 Fix HTTP server response to handle 302 redirection 10258 10259 * tests/libtest.c: Fix HTTP server response to handle 302 10260 status code 10261 102622017-07-10 Didik Setiawan <ds@didiksetiawan.com> 10263 10264 Fix HTTP server response to handle 404 Not Found 10265 10266 * tests/libtest.c: Fix HTTP server response to handle 404 10267 Not Found status code with non-empty body 10268 102692017-07-09 Didik Setiawan <ds@didiksetiawan.com> 10270 10271 Fix HTTP server response to handle Byte serving 10272 10273 * tests/libtest.c: Fix HTTP server response to handle Byte 10274 serving 10275 102762017-07-05 Didik Setiawan <ds@didiksetiawan.com> 10277 10278 Fix HTTP server response to handle If-Modified-Since 10279 10280 * tests/libtest.c: Fix HTTP server response to handle 10281 If-Modified-Since 10282 102832017-06-25 Didik Setiawan <ds@didiksetiawan.com> 10284 10285 Fix requested URL query string which contains space 10286 10287 * tests/libtest.c: Fix requested URL query string which 10288 contains space 10289 102902017-06-23 Didik Setiawan <ds@didiksetiawan.com> 10291 10292 Fix empty requested URL regarding IDN hostname 10293 10294 * tests/libtest.c: Fix empty requested URL by redirect 10295 default page to index.html regarding IDN hostname 10296 102972017-06-22 Didik Setiawan <ds@didiksetiawan.com> 10298 10299 Fix empty requested URL 10300 10301 * tests/libtest.c: Fix empty requested URL by redirect 10302 default page to index.html 10303 103042017-06-21 Didik Setiawan <ds@didiksetiawan.com> 10305 10306 Fix remote URL to handle IRI object 10307 10308 * tests/libtest.c: Fix remote URL which contains IRI object 10309 using Libmicrohttpd function (MHD_http_unescape) 10310 103112017-06-18 Didik Setiawan <ds@didiksetiawan.com> 10312 10313 Fix HTTP server response to handle directory creation 10314 10315 * tests/libtest.c: Fix HTTP server response regarding 10316 directory creation on recursive download 10317 103182017-06-18 Didik Setiawan <ds@didiksetiawan.com> 10319 10320 Fix HTTP server response to include available header 10321 10322 * tests/libtest.c: Fix HTTP server response to include 10323 available header. This solved many cases which involving 10324 proper HTTP header response such as for Chunked 10325 "Transfer-Encoding" and "Redirection" 10326 103272017-06-17 Didik Setiawan <ds@didiksetiawan.com> 10328 10329 Fix HTTP server to get available port 10330 10331 * tests/libtest.c: Automatically get available port for HTTP 10332 server using Libmicrohttpd function 10333 103342017-06-16 Didik Setiawan <ds@didiksetiawan.com> 10335 10336 Fix requested URL which contains query string 10337 10338 * tests/libtest.c: Fix requested URL which contains 10339 query string 10340 103412017-06-14 Didik Setiawan <ds@didiksetiawan.com> 10342 10343 Fix HTTP server response to handle 404 Not Found 10344 10345 * tests/libtest.c: Fix HTTP server response to handle 404 10346 Not Found status code with empty body 10347 103482017-06-13 Didik Setiawan <ds@didiksetiawan.com> 10349 10350 * tests/libtest.c: Create Libmicrohttpd function wrapper 10351 103522017-06-05 Didik Setiawan <ds@didiksetiawan.com> 10353 10354 Initial system preparation for Libmicrohttpd integration 10355 10356 * .gitlab-ci.yml: Add Libmicrohttpd package for CI testing 10357 using Debian/gcc, Fedora/clang and MinGW64 10358 * .travis.sh: Add Libmicrohttpd package for OSX/clang 10359 * .travis_setup.sh: Add Libmicrohttpd package for Debian/gcc 10360 and clang 10361 * README.md: Add info which mentioning Libmicrohttpd as 10362 optional requirement 10363 * configure.ac: Check for Libmicrohttpd availability 10364 103652017-09-06 Tim Rühsen <tim.ruehsen@gmx.de> 10366 10367 * docs/wget2_manual.md: Fix several small things 10368 103692017-09-06 Tim Rühsen <tim.ruehsen@gmx.de> 10370 10371 Remove redundant pointer syntax from function pointer calls 10372 10373 * libwget/hsts.c: Likewise 10374 * libwget/ocsp.c: Likewise 10375 * libwget/plugin.c: Likewise 10376 * src/plugin.c: Likewise 10377 103782017-09-06 Tim Rühsen <tim.ruehsen@gmx.de> 10379 10380 * src/plugin.c (plugin_db_finalize): Check if initialized 10381 103822017-09-05 Tim Rühsen <tim.ruehsen@gmx.de> 10383 10384 README.md: document clang not working with 'make check-coverage' 10385 103862017-09-04 Akash Rawal <argmlac@gmail.com> 10387 10388 Fix clang warnings 10389 10390 * include/wget/wget.h: Add new function wget_ssl_set_config_object() 10391 * libwget/ssl_gnutls.c: Likewise 10392 * src/options.c: Use wget_ssl_set_config_object() 10393 * libwget/ssl_gnutls.c (wget_ssl_write_timeout): Remove unreachable code 10394 not required by syntax 10395 * src/wget.c (downloader_thread): Likewise 10396 * unit-tests/test.c (test_hpkp): Remove unnecessary variable with same 10397 name 10398 103992017-09-03 Akash Rawal <argmlac@gmail.com> 10400 10401 Add plugin APIs for custom HSTS, HPKP and OCSP databases 10402 10403 * include/wget/wget.h: Add plugin API declarations 10404 * libwget/hsts.c: Make wget_hsts_db_t extensible 10405 * libwget/hpkp.c: Make wget_hpkp_db_t extensible 10406 * libwget/ocsp.c: Make wget_ocsp_db_t extensible 10407 * libwget/plugin.c: Add virtual functions for plugin API 10408 * src/plugin.c: Add plugin API implementation 10409 * src/wget_plugin.h: Likewise 10410 * src/option.c: Add code to call the implementation 10411 * src/wget.c: Likewise 10412 * tests/test-plugin-dummy: Add plugin with dummy databases for testing 10413 * tests/Makefile.am: Add target libplugindb.la 10414 * tests/test-plugin.c: Add tests for custom databases 10415 * unit-tests/test.c: Add tests for new HPKP functions 10416 * libwget/ssl_gnutls.c: Adapt to API changes 10417 * examples/http_multi_get.c: Likewise 10418 * fuzz/libwget_hpkp_fuzzer.c: Likewise 10419 * fuzz/libwget_hsts_fuzzer.c: Likewise 10420 * fuzz/libwget_ocsp_fuzzer.c: Likewise 10421 10422 This feature implemented as per the specifications at 10423 https://gitlab.com/akash_rawal/wget2/wikis/Stage-4 10424 104252017-09-03 Akash Rawal <argmlac@gmail.com> 10426 10427 Add plugin APIs for intercepting downloaded files. 10428 10429 Merged from branch tmp-akash_rawal-stage3 into master 10430 10431 * include/wget/wget.h: Add function declarations 10432 * libwget/plugin.c: Add virtual functions 10433 * configure.ac: Check for fmemopen() 10434 * src/plugin.c: Add implementation 10435 * src/wget_plugin.h: Likewise 10436 * src/wget.c: Add code that calls the implementation 10437 * tests/test-plugin-dummy.c (pluginapi): Add option 'parse-rot13', 10438 'only-rot13' and 'test-pp' 10439 * tests/test-plugin.c: Add tests 10440 * tests/libtest.c: Load files into dynamic memory instead of stack, 10441 enables testing with large files. 10442 10443 Plugin APIs for intercepting downloaded files have been implemented 10444 as per specifications at https://gitlab.com/akash_rawal/wget2/wikis/Stage-3 10445 104462017-09-02 Tim Rühsen <tim.ruehsen@gmx.de> 10447 10448 Include sys/uio.h for writev() 10449 10450 * configure.ac: Check for sys/uio.h 10451 * libwget/ssl_gnutls.c: Include sys/uio.h for writev() if available 10452 10453 Fixes #260 10454 Reported-by: Gabriele Balducci 10455 10456 104572017-09-01 Darshit Shah <darnir@gnu.org> 10458 10459 Call strerror() to get Error message with some errors 10460 104612017-09-01 Darshit Shah <darnir@gnu.org> 10462 10463 * libwget/http.c(wget_http_send_request): Fix printf specifier data type 10464 104652017-08-31 Darshit Shah <darnir@gnu.org> 10466 10467 Remove magic numbers when setting exit codes 10468 10469 Magic numbers are bad, they make the code very difficult to read since 10470 one must guess their intention. Which is why this commit eliminates all 10471 the magic numbers for setting the exit status and replaces them with a 10472 structured enum. This has the added benefit of having these values as 10473 symbols in the final symbol table. 10474 10475 * src/wget.c: Replace all calls to set_exit_status() to use the 10476 exit_status_t enum values 10477 * src/wget_main.h: Define the exit_status_t enum and associated exit 10478 error code values 10479 104802017-08-31 Darshit Shah <darnir@gnu.org> 10481 10482 * src/wget.c(process_response_header): Remove dead (commented) code 10483 104842017-08-31 Darshit Shah <darnir@gnu.org> 10485 10486 * src/wget.c(process_response_header): Clean up auth failure pathways 10487 104882017-08-31 Avinash Sonawane <rootkea@gmail.com> 10489 10490 Do not print request body if it's an OCSP request 10491 10492 * include/wget/wget.h: Add 'debug_skip_body' flag to 'wget_http_request_t' 10493 * libwget/ssl_gnutls.c: set 'debug_skip_body' flag if it's an OCSP request 10494 * libwget/http.c: Do not print 'req->body' if 'debug_skip_body' is set 10495 104962017-08-31 Avinash Sonawane <rootkea@gmail.com> 10497 10498 * src/wget.c: Fix regression of having extra '/' in filename 10499 105002017-08-23 Darshit Shah <darnir@gnu.org> 10501 10502 New benchmark script 10503 105042017-08-23 Tim Rühsen <tim.ruehsen@gmx.de> 10505 10506 Improve fuzzer helper scripts 10507 10508 * fuzz/get_ossfuzz_corpora: Improve description text 10509 * fuzz/view-coverage.sh: Allow 1+ arguments 10510 105112017-08-23 Darshit Shah <darnir@gnu.org> 10512 10513 Add counter for authorization failures 10514 10515 Fixes #259 10516 105172017-08-23 Tim Rühsen <tim.ruehsen@gmx.de> 10518 10519 Use clang for sanitizer CI 10520 10521 * .gitlab-ci.yml: Use clang for sanitizing, remove memory sanitizer 10522 * configure.ac: Do not combine leak and memory sanitizer for clang 10523 10524 Memory sanitizer only makes sense when all dependencies are built with it. 10525 Else we will see many false positives. 10526 105272017-08-23 Tim Rühsen <tim.ruehsen@gmx.de> 10528 10529 Update gnulib 10530 105312017-08-15 Tim Rühsen <tim.ruehsen@gmx.de> 10532 10533 * libwget/ssl_gnutls.c (_do_handshake): Entangle code 10534 105352017-08-15 Tim Rühsen <tim.ruehsen@gmx.de> 10536 10537 * fuzz/README.md: Add sanitizer options 10538 105392017-08-15 Tim Rühsen <tim.ruehsen@gmx.de> 10540 10541 Update gnulib 10542 105432017-08-15 Tim Rühsen <tim.ruehsen@gmx.de> 10544 10545 Fix 'deflate' content-type decompression 10546 10547 * ../libwget/decompressor.c (deflate_init): Fix deflate initialization 10548 10549 Fixes: #251 10550 Reported-by: Avinash Sonawane 10551 105522017-08-15 Tim Rühsen <tim.ruehsen@gmx.de> 10553 10554 Fix possible buffer read underflow 10555 10556 * libwget/cookie.c (_path_match): Fix underflow 10557 10558 Fixes: #253 10559 Reported-by: Avinash Sonawane 10560 105612017-08-15 Avinash Sonawane <rootkea@gmail.com> 10562 10563 * Suppress clang warning about integer overflow 10564 10565 * src/host.c: Likewise 10566 * src/blacklist.c: Likewise 10567 * src/wget.c: Likewise 10568 105692017-08-15 Avinash Sonawane <rootkea@gmail.com> 10570 10571 * libwget/utils.c: Fix unsigned integer overflow 10572 10573 * wget_match_tail: Likewise 10574 * wget_match_tail_nocase: Likewise 10575 10576 Found by fuzzing 10577 105782017-08-13 Didik Setiawan <ds@didiksetiawan.com> 10579 10580 Fix DATADIR clash when build using MinGW64 10581 10582 * tests/Makefile.am: Change DATADIR to WGET_DATADIR 10583 * unit-tests/Makefile.am: Likewise 10584 * unit-tests/test.c: Likewise 10585 10586 When build Wget2 using MinGW64 and embedding other library 10587 (Libmicrohttpd), DATADIR macro from Wget2 clash with MinGW64 10588 header. 10589 105902017-08-09 Darshit Shah <darnir@gnu.org> 10591 10592 * libwget/bar.c(_bar_set_progress): Fix progress bar printf command to fit total size 10593 105942017-08-08 Darshit Shah <darnir@gnu.org> 10595 10596 * libwget/bar.c: Deduplicate code in function wget_bar_set_slots 10597 105982017-08-07 Darshit Shah <darnir@gnu.org> 10599 10600 * libwget/bar.c: SPlit duplicated code into function 10601 106022017-08-07 Darshit Shah <darnir@gnu.org> 10603 10604 * libwget/bar.c: Replace redundant variable bar->max_slots with bar->nslots 10605 106062017-08-07 Darshit Shah <darnir@gnu.org> 10607 10608 * libwget/bar.c(wget_bar_init): Fix progress bar memory allocation value 10609 106102017-08-01 Darshit Shah <darnir@gnu.org> 10611 10612 Add documentation for wget_bar_set_slots 10613 106142017-08-04 Tim Rühsen <tim.ruehsen@gmx.de> 10615 10616 Hide internal structures/defines from doxygen 10617 10618 * include/wget/wget.h: Use _ as prefix for internals 10619 * libwget/atom_url.c: Likewise 10620 * libwget/cookie.c: Likewise 10621 * libwget/iri.c: Likewise 10622 * libwget/net.c: Likewise 10623 * libwget/rss_url.c: Likewise 10624 * libwget/sitemap_url.c: Likewise 10625 * src/wget_options.h: Likewise 10626 106272017-08-04 Tim Rühsen <tim.ruehsen@gmx.de> 10628 10629 Add docs for xml parsing functions. 10630 10631 * libwget/xml.c: Rename XML_CONTEXT to _xml_context, 10632 document wget_* functions 10633 * docs/Makefile.am: Sort order of man page files, 10634 add building of libwget-xml.3 10635 106362017-08-03 Tim Rühsen <tim.ruehsen@gmx.de> 10637 10638 * configure.ac: Improve ASAN and UBSAN sanitizer flags 10639 106402017-08-03 Tim Rühsen <tim.ruehsen@gmx.de> 10641 10642 * fuzz/*.in/*: Update fuzzer corpora 10643 106442017-08-03 Tim Rühsen <tim.ruehsen@gmx.de> 10645 10646 * libwget/utils.c: Fix param name in docs of wget_strnglob() 10647 106482017-08-03 Tim Rühsen <tim.ruehsen@gmx.de> 10649 10650 * libwget/net.c: Document 'protocol' for wget_tcp_set_protocol() 10651 106522017-08-03 Tim Rühsen <tim.ruehsen@gmx.de> 10653 10654 * libwget/buffer_printf.c: Do not document internal defines 10655 106562017-08-01 Tim Rühsen <tim.ruehsen@gmx.de> 10657 10658 * fuzz/Makefile.am: Add -Wno-pedantic to suppress dlsym() warnings 10659 106602017-08-01 Tim Rühsen <tim.ruehsen@gmx.de> 10661 10662 Add new fuzzer libwget_tlssess_fuzzer 10663 10664 * fuzz/Makefile.am: Add libwget_tlssess_fuzzer 10665 * fuzz/libwget_tlssess_fuzzer.c: New file 10666 * fuzz/libwget_tlssess_fuzzer.in/*: Add fuzz corpora 10667 * libwget/tls_session.c: Prepare code for fuzzing 10668 106692017-08-01 Tim Rühsen <tim.ruehsen@gmx.de> 10670 10671 Add new fuzzer libwget_ocsp_fuzzer 10672 10673 * fuzz/Makefile.am: Add libwget_ocsp_fuzzer 10674 * fuzz/libwget_ocsp_fuzzer.c: New file 10675 * fuzz/libwget_ocsp_fuzzer.in/*: Add fuzz corpora 10676 106772017-08-01 Tim Rühsen <tim.ruehsen@gmx.de> 10678 10679 * libwget/ocsp.c: Suppress clang warning about integer overflow 10680 106812017-08-01 Tim Rühsen <tim.ruehsen@gmx.de> 10682 10683 Add new fuzzer libwget_netrc_fuzzer 10684 10685 * fuzz/Makefile.am: Add libwget_netrc_fuzzer 10686 * fuzz/libwget_netrc_fuzzer.c: New file 10687 * fuzz/libwget_netrc_fuzzer.dict: Add dictionary 10688 * fuzz/libwget_netrc_fuzzer.in/*: Add fuzz corpora 10689 106902017-08-01 Tim Rühsen <tim.ruehsen@gmx.de> 10691 10692 * libwget/netrc.c: Suppress clang warning about integer overflow in hash function 10693 106942017-08-01 Tim Rühsen <tim.ruehsen@gmx.de> 10695 10696 * libwget/http_parse.c (wget_http_parse_response_header): Fix 1-byte-read-buffer-overflow 10697 10698 Fix oss-fuzz issue #2823. 10699 107002017-08-01 Tim Rühsen <tim.ruehsen@gmx.de> 10701 10702 * libwget/http_parse.c (wget_http_parse_content_disposition): Fix NULL ptr dereference 10703 10704 Fix oss-fuzz issue #2822. 10705 107062017-08-01 Tim Rühsen <tim.ruehsen@gmx.de> 10707 10708 Add new fuzzer libwget_hsts_fuzzer 10709 10710 * fuzz/Makefile.am: Add libwget_hsts_fuzzer 10711 * fuzz/libwget_hsts_fuzzer.c: New file 10712 * fuzz/libwget_hsts_fuzzer.in/*: Add fuzz corpora 10713 107142017-08-01 Tim Rühsen <tim.ruehsen@gmx.de> 10715 10716 Fix HSTS code regarding time_t overflow 10717 10718 * libwget/hsts.c: Use int64_t instead of time_t, 10719 (wget_hsts_new): Fix possible integer overflow, 10720 (_hsts_db_load): Likewise. 10721 10722 Same type of changes that we applied to HPKP code, 10723 to fix the integer over/underflows found by fuzzing. 10724 107252017-08-01 Tim Rühsen <tim.ruehsen@gmx.de> 10726 10727 * libwget/strlcpy.c: Add documentation 10728 107292017-08-01 Tim Rühsen <tim.ruehsen@gmx.de> 10730 10731 * libwget/stringmap.c: Suppress clang warning about integer overflow 10732 10733 The hash functions rely on integer overflow. 10734 Found by fuzzing. 10735 107362017-08-01 Tim Rühsen <tim.ruehsen@gmx.de> 10737 10738 * fuzz/*.in/*: Update fuzzer corpora from oss-fuzz 10739 107402017-08-01 Tim Rühsen <tim.ruehsen@gmx.de> 10741 10742 * libwget/hpkp.c (wget_hpkp_set_maxage): Fix integer overflow 10743 10744 Fix oss-fuzz issue #2820. 10745 107462017-07-31 Tim Rühsen <tim.ruehsen@gmx.de> 10747 10748 * libwget/strlcpy.c: Always include string.h 10749 107502017-07-31 Tim Rühsen <tim.ruehsen@gmx.de> 10751 10752 Check for fmemopen() 10753 10754 * configure.ac: Check for fmemopen() 10755 * fuzz/libwget_hpkp_fuzzer.c: Skip corpora load if fmemopen is missing 10756 107572017-07-31 Tim Rühsen <tim.ruehsen@gmx.de> 10758 10759 * fuzz/libwget_hpkp_fuzzer.c: Skip corpora loading on WIN32 10760 107612017-07-31 Tim Rühsen <tim.ruehsen@gmx.de> 10762 10763 * fuzz/libwget_hpkp_fuzzer.c: Remove assert.h (syntax-check) 10764 107652017-07-31 Tim Rühsen <tim.ruehsen@gmx.de> 10766 10767 Fix DNS caching (regression) 10768 10769 * libwget/net.c: Add 'port' param where needed 10770 10771 Reported-by: Avinash Sonawane 10772 107732017-07-31 Tim Rühsen <tim.ruehsen@gmx.de> 10774 10775 * fuzz/README.md: Add undefined sanitizer to CFLAGS 10776 107772017-07-31 Tim Rühsen <tim.ruehsen@gmx.de> 10778 10779 New fuzzer 'libwget_hpkp_fuzzer' 10780 10781 * fuzz/Makefile.am: Add libwget_hpkp_fuzzer 10782 * fuzz/libwget_hpkp_fuzzer.c: New fuzzer 10783 * fuzz/libwget_hpkp_fuzzer.in/*: Add fuzzer corpora 10784 107852017-07-31 Tim Rühsen <tim.ruehsen@gmx.de> 10786 10787 Fix integer overflows in HPKP code 10788 10789 * libwget/hpkp.c: Use int64_t instead of time_t, 10790 (_hash_hpkp): Suppress integer overflow detection, 10791 (_hpkp_db_load): Avoid integer overflow 10792 10793 Two integer overflows detected by fuzzing. One is wanted and thus 10794 we suppress detection by clang. The other was unwanted and is fixed. 10795 107962017-07-31 Tim Rühsen <tim.ruehsen@gmx.de> 10797 10798 * fuzz/Makefile.am: Build all fuzzers with 'make oss-fuzz' 10799 108002017-07-30 Tim Rühsen <tim.ruehsen@gmx.de> 10801 10802 Add new fuzzer libwget_http_parse_fuzzer 10803 10804 * fuzz/Makefile.am: Add libwget_http_parse_fuzzer 10805 * fuzz/libwget_http_parse_fuzzer.c: New fuzzer 10806 * fuzz/libwget_http_parse_fuzzer.dict: New dictionary 10807 * fuzz/libwget_http_parse_fuzzer.in/*: Fuzzer corpora 10808 * fuzz/run-clang.sh: Use all availbale cores for fuzzing 10809 108102017-07-30 Tim Rühsen <tim.ruehsen@gmx.de> 10811 10812 * libwget/http_parse.c (wget_http_parse_content_disposition): Fix memleak (found by fuzzing) 10813 108142017-07-30 Tim Rühsen <tim.ruehsen@gmx.de> 10815 10816 * libwget/http_parse.c (wget_http_parse_link): Fix memleak (found by fuzzing) 10817 108182017-07-30 Tim Rühsen <tim.ruehsen@gmx.de> 10819 10820 Fix off-by-one buffer read in wget_hpkp_pin_add() 10821 10822 * libwget/hpkp.c (wget_hpkp_pin_add): Fix pinsize value, 10823 (_compare_pin): Fix off-by-one buffer read 10824 * libwget/base64.c (wget_base64_decode_alloc): Add outlen param 10825 * include/wget/wget.h (wget_base64_decode_alloc): Likewise 10826 * fuzz/libwget_base64_fuzzer.c: Add 3rd param to wget_base64_decode_alloc() 10827 10828 Found by local fuzzing 10829 108302017-07-30 Darshit Shah <darnir@gnu.org> 10831 10832 * libwget/http.c: Disable some very verbose debug statements 10833 108342017-07-30 Darshit Shah <darnir@gnu.org> 10835 10836 Support Wget 1.x `--auth-no-challenge` switch 10837 10838 * src/job.c(job_init): Set default value of challenges_alloc to false 10839 (job_free): Free the challenges vector only if the current job owns it 10840 * src/options.c: Add new switch "--auth-no-challenge" 10841 * src/wget.c(add_url_to_queue): Honor the config.auth_no_challenge 10842 option 10843 (add_url): Same 10844 (process_response_header): Fallback to Server provided challenges if 10845 defaults don't work 10846 108472017-07-29 Darshit Shah <darnir@gnu.org> 10848 10849 Fix make syntax-check due to double word 10850 108512017-07-29 Tim Rühsen <tim.ruehsen@gmx.de> 10852 10853 * libwget/http_parse.c (wget_http_parse_header_line): Fix memleaks (found by fuzzing) 10854 108552017-07-29 Darshit Shah <darnir@gnu.org> 10856 10857 * fuzz/libwget_utils_fuzzer.c: Fix call to wget_strglob 10858 108592017-07-29 Darshit Shah <darnir@gnu.org> 10860 10861 Revert "Prevent tiny memory allocations when globbing" 10862 10863 This reverts commit 2d7fe3e9fc364f282c945f372b9a78f8a56d66ff. 10864 10865 With the above patch, a tiny memory allocation is avoided, but in doing 10866 so, it misses an important case. The glob(3) call never returns a 10867 success when the file does not already exist at the given path. 10868 108692017-07-28 Tim Rühsen <tim.ruehsen@gmx.de> 10870 10871 * .gitlab-ci.yml: Move to Fedora 26 10872 108732017-07-28 Tim Rühsen <tim.ruehsen@gmx.de> 10874 10875 Fix more clang warnings 10876 10877 * libwget/css_tokenizer.lex: Skip -Wsuggest-attribute=pure for clang 10878 * libwget/iri.c (wget_iri_parse): Explicit cast 10879 * src/dl.c: Use 'int' for vector size 10880 * src/options.c: Likewise, 10881 remove 'return' after call to exit(), 10882 (set_long_option): Rename local var 'env' to 'path' 10883 * src/plugin.c: Make global vars 'static', 10884 Use 'int' for vector size 10885 108862017-07-28 Tim Rühsen <tim.ruehsen@gmx.de> 10887 10888 Fix more clang warnings 10889 10890 * tests/test-plugin-dummy.c: Make options 'static' 10891 * unit-tests/test-dl.c (string_vector_check): Make vector index 'int' 10892 * unit-tests/test-dl.c (string_vector_dump): Likewise 10893 * unit-tests/test.c (test_hsts): Make port 'uint16_t' 10894 108952017-07-28 Tim Rühsen <tim.ruehsen@gmx.de> 10896 10897 Fix clang warnings 10898 10899 * libwget/css.c (wget_css_parse_buffer): Explicitly typecast 'len' to int 10900 * libwget/http.c (_send_callback): Change datatype of 'rc' from int to ssize_t 10901 * libwget/http.c (_recv_callback): Likewise 10902 * libwget/http.c (wget_http_match_no_proxy): Change param name from 'no_proxies' to 10903 'no_proxies_vec' to not to shadow global 'no_proxies' 10904 * libwget/ssl_gnutls.c (check_ocsp_response): Explicit type conversion to unsigned int 10905 * libwget/net.c (wget_tcp_listen): Move declaration of variable 'on' in #ifdef block where it's used 10906 * src/options.c (set_long_option): Change datatypes of 'invert', 'char_insensitive' 10907 and 'value_present' from int to char 10908 10909 Reported-by: Avinash Sonawane 10910 109112017-07-26 Tim Rühsen <tim.ruehsen@gmx.de> 10912 10913 * fuzz/libwget_cookie_fuzzer.in/*: Update corpora 10914 109152017-07-26 Tim Rühsen <tim.ruehsen@gmx.de> 10916 10917 * fuzz/get_all_corpora: Work even if fuzzers are not pre-built 10918 109192017-07-26 Akash Rawal <argmlac@gmail.com> 10920 10921 * libwget/iri.c (iri_ports): Remove redundant const 10922 109232017-07-25 Akash Rawal <argmlac@gmail.com> 10924 10925 Make wget_iri_set_scheme() update iri->uri 10926 10927 * include/wget/wget.h (wget_iri_st): Add field uri_allocated 10928 * libwget/iri.c: Make wget_iri_set_scheme() update iri->uri 10929 109302017-07-24 Akash Rawal <argmlac@gmail.com> 10931 10932 Fix recursive downloads with '-c' option 10933 10934 * bootstrap.conf: Enable safe-read module 10935 * src/wget.c: Fix recursive downloads with '-c' option 10936 * tests/Makefile.am: Add test-c-r.c 10937 * tests/test-c-r.c: Add tests 10938 109392017-07-25 Tim Rühsen <tim.ruehsen@gmx.de> 10940 10941 Fix fuzzer regression test for WIN32 10942 10943 * fuzz/main.c: Adjust slash and remove .exe 10944 10945 Reported-by: Gisle Vanem 10946 109472017-07-25 Tim Rühsen <tim.ruehsen@gmx.de> 10948 10949 Fail fuzzers if *.in directory does not exist 10950 10951 * fuzz/Makefile.am: Set -DTEST_RUN 10952 * fuzz/main.c: Error on non-exisiting *.in directory 10953 109542017-07-23 Darshit Shah <darnir@gnu.org> 10955 10956 Use C99 bool instead of unsigned int in IRI struct and code 10957 109582017-07-23 Tim Rühsen <tim.ruehsen@gmx.de> 10959 10960 Change type of port numbers from char * to uint16_t 10961 10962 * include/wget/wget.h: Amend struct wget_iri_st, 10963 amend API 10964 * libwget/hsts.c: Amend port type to uint16_t 10965 * libwget/http.c: Likewise 10966 * libwget/http.h: Likewise 10967 * libwget/http_highlevel.c: Likewise 10968 * libwget/http_parse.c: Likewise 10969 * libwget/iri.c: Likewise 10970 * libwget/net.c: Likewise 10971 * src/blacklist.c: Likewise 10972 * src/host.c: Likewise 10973 * src/wget.c: Likewise 10974 * src/wget_host.h: Likewise 10975 * tests/libtest.c: Likewise 10976 * unit-tests/test.c: Likewise 10977 109782017-07-23 Darshit Shah <darnir@gnu.org> 10979 10980 Clean up .gitignore and sort 10981 109822017-07-23 Darshit Shah <darnir@gnu.org> 10983 10984 Remove unneeded make variables 10985 109862017-07-22 Darshit Shah <darnir@gnu.org> 10987 10988 * libwget/{hsts,hpkp}.c: Don't print all contents as debug messages 10989 109902017-07-23 Darshit Shah <darnir@gnu.org> 10991 10992 Fix heap-use-after-free bug in IRI 10993 10994 * libwget/http.c(wget_http_open): iri maybe free'd far before the 10995 connection is closed. Hence, strdup the relevant fields 10996 * libwget/http.c(wget_http_close): Free the newly strdup'ed memory 10997 109982017-07-22 Darshit Shah <darnir@gnu.org> 10999 11000 * include/wget/wget.h: Improve setting of noreturn attribute to functions 11001 110022017-07-22 Tim Rühsen <tim.ruehsen@gmx.de> 11003 11004 * libwget/cookie.c (_compare_cookie2): Fix code to avoid warnings and undefined behavior 11005 110062017-05-02 Avinash Sonawane <rootkea@gmail.com> 11007 11008 Implement --force-progress to force show progress bar 11009 11010 * bootstrap.conf: Add isatty module 11011 * src/options.c: Add force_progress option 11012 * src/wget.c: if force_progress then turn on progress bar 11013 * src/wget_options.h: Add force_progress in config struct 11014 110152017-05-02 Avinash Sonawane <rootkea@gmail.com> 11016 11017 * src/wget.c: Disable progress bar if output isn't TTY 11018 11019 Reported By: Darshit Shah 11020 110212017-07-22 Didik Setiawan <ds@didiksetiawan.com> 11022 11023 Fix digest authentication when server omits algorithm value 11024 11025 * libwget/http.c: Fix digest authentication mechanism when 11026 server omits algorithm value 11027 110282017-07-20 Avinash Sonawane <rootkea@gmail.com> 11029 11030 Fix doxygen warnings 11031 11032 * README.md: Mark options 11033 * docs/wget2_manual.md: Mark URLs 11034 * libwget/bar.c: Fix doc for bar_init(), 11035 add doxygen close tag at end of file 11036 * libwget/buffer.c: Fix doc for wget_buffer_reset() 11037 * libwget/console.c: Move unused tag to front of param 11038 * libwget/hpkp.c: Fix documented params for wget_hpkp_new() 11039 * libwget/iri.c: Fix doc for wget_iri_supported() 11040 * libwget/net.c: Fix doc for wget_tcp_printf() 11041 * libwget/utils.c: Move unused tag to front of param 11042 110432017-07-21 Tim Rühsen <tim.ruehsen@gmx.de> 11044 11045 * src/options.c: Add missing param to print_plugin_help 11046 110472017-07-08 Akash Rawal <argmlac@gmail.com> 11048 11049 Add plugin APIs for intercepting URLs 11050 11051 * include/wget/wget.h: Add function declarations 11052 * libwget/plugin.c: Add virtual functions 11053 * src/plugin.c: Add implementation 11054 * src/wget_plugin.h: Likewise 11055 * src/wget.c: Add code that calls the implementation 11056 * src/wget_job.h: Add a variable to store 'accept' action 11057 * tests/Makefile.am: Add libpluginapi.la 11058 * tests/test-plugin-dummy.c: Add a test plugin for testing 11059 * tests/test-plugin.c: Add tests 11060 11061 Plugin API for intercepting URLs has been implemented as per 11062 specifications at https://gitlab.com/akash_rawal/wget2/wikis/Stage-2 11063 110642017-07-16 Akash Rawal <argmlac@gmail.com> 11065 11066 * src/dl.c: Fix gcc warnings when compiled without plugin support 11067 110682017-07-16 Akash Rawal <argmlac@gmail.com> 11069 11070 * src/dl.c (convert_to_path_if_not): Use wget_aprintf() and simplify the code 11071 110722017-06-12 Akash Rawal <argmlac@gmail.com> 11073 11074 Add command line option forwarding for plugins 11075 11076 * include/wget/wget.h: Add API for command line option forwarding 11077 * libwget/plugin.c: Likewise 11078 * libwget/test_linking: Add function from libwget/plugin.c 11079 * src/dl.c: Remove unused dl_search1() and dl_list1(), 11080 use wget_vector_t for pointer arrays 11081 * src/wget_dl.h: Likewise 11082 * src/plugin.c: Implement option forwarding 11083 * src/wget_plugin.h: Likewise 11084 * src/options.c: Add options '--plugin-opt=', '--plugin-help' 11085 * unit-tests/test-dl.c: Use dl_list() instead of dl_list1() 11086 * tests/Makefile.am: Add test plugins pluginoption, pluginfaulty1, 11087 pluginfaulty2 11088 * tests/test-plugin-dummy.c: Implement additional test plugins 11089 * tests/test-plugin.c: Extend tests for testing option processing 11090 11091 Command line option forwarding has been implemented as per 11092 specifications at https://gitlab.com/akash_rawal/wget2/wikis/Stage-1 11093 11094 Several style issues were also fixed (Thanks Ander Juaristi) 11095 110962017-07-19 Avinash Sonawane <rootkea@gmail.com> 11097 11098 * src/options.c : Push 'invert' handling from set_long_option() to parse functions 11099 * src/options.c : Make --mirror boolean 11100 * src/options.c (parse_proxy): Modify --proxy to have behavior described below: 11101 1) --proxy is boolean which means inherit proxies from environment 11102 2) --no-proxy is boolean which means don't inherit proxies from environment 11103 3) --proxy=<addrs> sets http_proxy and https_proxy to <addrs> (shorthand!) 11104 4) --no-proxy=<addrs> makes wget2 to not use proxy while dealing with <addrs> 11105 111062017-07-19 Avinash Sonawane <rootkea@gmail.com> 11107 11108 * src/options.c (set_long_option): Check if opt->var is NULL before accessing *(opt->var) 11109 111102017-07-19 Avinash Sonawane <rootkea@gmail.com> 11111 11112 * src/options.c (set_long_option): Allow empty string i.e. "" to be argument of an option 11113 * src/options.c (parse_bool): If value is an empty string then set opt->var to 0 11114 111152017-07-19 Avinash Sonawane <rootkea@gmail.com> 11116 11117 * src/options.c (opt_compare_config_linear): Skip '_' or '-' from s1 only if there is '-' or '_' in s2 11118 * src/options.c (set_long_option): Invert value for boolean option with the prefix --no- even if the 11119 option argument is false/0/off e.g. --no-cache=off 11120 * src/options.c (set_long_option): For long options with value separated by '=', treat empty string("") argument 11121 as if no argument was given 11122 111232017-07-17 Avinash Sonawane <rootkea@gmail.com> 11124 11125 * src/options.c (set_long_option): Remove linear search 11126 11127 * src/options.c (_parse_option): Accept command with '_' char e.g. http_proxy 11128 * src/options.c (set_long_option): Remove unnecessary linear search 11129 * src/options.c (set_long_option): options are case-, underscore- and minus-insensitive. 11130 111312017-07-19 Tim Rühsen <tim.ruehsen@gmx.de> 11132 11133 * configure.ac: Add -fdiagnostics-color only for gcc >= 5 11134 111352017-07-16 Tim Rühsen <tim.ruehsen@gmx.de> 11136 11137 Add libwget_html_url_fuzzer 11138 11139 * fuzz/Makefile.am: Add libwget_html_url_fuzzer 11140 * fuzz/libwget_html_url_fuzzer.dict: Add dictionary 11141 * fuzz/libwget_html_url_fuzzer.in/*: New copora 11142 111432017-07-16 Tim Rühsen <tim.ruehsen@gmx.de> 11144 11145 Update gnulib 11146 111472017-07-16 Tim Rühsen <tim.ruehsen@gmx.de> 11148 11149 Revert "* libwget/http_parse.c (wget_http_print_date): Fix gmtime crash with Wine" 11150 11151 This reverts commit 11d413476bac87d9315727f8ce127e7acdde2066. 11152 This has been fixed by gnulib. 11153 111542017-07-16 Tim Rühsen <tim.ruehsen@gmx.de> 11155 11156 Revert "* src/log.c (_write_out): Fix localtime crash with Wine" 11157 11158 This reverts commit e7c78f2e3049c6f862ed06da4424a5b2980ed616. 11159 This has been fixed by gnulib. 11160 111612017-07-14 Tim Rühsen <tim.ruehsen@gmx.de> 11162 11163 * configure.ac: Use pkg-config to find libidn2 config 11164 111652017-07-14 Tim Rühsen <tim.ruehsen@gmx.de> 11166 11167 Use FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION from oss-fuzz 11168 11169 * fuzz/Makefile.am: Remove -DTEST_RUN from AM_CPPFLAGS 11170 * fuzz/main.c: Use #ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION 11171 111722017-07-14 Tim Rühsen <tim.ruehsen@gmx.de> 11173 11174 Check for fuzzer build in helper scripts 11175 11176 * fuzz/get_ossfuzz_corpora: Check if fuzzer were build for fuzzing 11177 * fuzz/run-clang.sh: Likewise 11178 111792017-07-14 Tim Rühsen <tim.ruehsen@gmx.de> 11180 11181 * fuzz/get_all_corpora: New script to update oss-fuzz corpora 11182 111832017-07-14 Tim Rühsen <tim.ruehsen@gmx.de> 11184 11185 * fuzz/*_fuzzer.in/*: Update fuzzer corpora from oss-fuzz 11186 111872017-07-11 Tim Rühsen <tim.ruehsen@gmx.de> 11188 11189 Fix buffer_printf() when char type is unsigned 11190 11191 Sometimes 'char' is not enough. C doesn't specify if it is 11192 signed or unsigned. Here we had to explicitly use 'signed char' 11193 instead of 'char'. 11194 Gcc can be switched to unsigned char with -funsigned-char. 11195 11196 Reported-by: Michael <michael@cyber-dome.com> 11197 111982017-07-10 Tim Rühsen <tim.ruehsen@gmx.de> 11199 11200 * fuzz/Makefile.am: Fix static build of libwget_cookie_fuzzer 11201 112022017-07-10 Tim Rühsen <tim.ruehsen@gmx.de> 11203 11204 Consolidate response header parsing 11205 11206 * include/wget/wget.h: New prototype wget_http_parse_header_line() 11207 * libwget/http.c (_on_header_callback): Use wget_http_parse_header_line() 11208 * libwget/http_parse.c: New function wget_http_parse_header_line(), 11209 (wget_http_parse_response_header): Use wget_http_parse_header_line() 11210 11211 We had doubled code for HTTP/1.1 and HTTP/2 response header parsing. 11212 Now merged into one function. 11213 11214 Reported-by: Avinash Sonawane 11215 112162017-07-10 Akash Rawal <argmlac@gmail.com> 11217 11218 Fix broken Travis-CI builds 11219 11220 * .travis.sh: Print fuzz/test-suite.log on failure 11221 * .travis.yml: Install libunistring-dev 11222 112232017-07-10 Tim Rühsen <tim.ruehsen@gmx.de> 11224 11225 Add password parsing to wget_iri_parse() 11226 11227 * libwget/iri.c (wget_iri_parse): Find and set password 11228 * unit-tests/test.c: Test password parsing 11229 112302017-07-09 Akash Rawal <argmlac@gmail.com> 11231 11232 Fix const-correctness issue with wget_iri_clone 11233 11234 * include/wget/wget.h: Add 'const' to wget_iri_clone's parameter 11235 * libwget/iri.c: Likewise 11236 112372017-07-08 Tim Rühsen <tim.ruehsen@gmx.de> 11238 11239 * fuzz/run-clang.sh: Needs bash for ctrl-c handling 11240 112412017-07-07 Darshit Shah <darnir@gnu.org> 11242 11243 Fix recursive downloads when using HTTP2 11244 11245 * src/wget.c (downloader_thread): Ensure that the job->original_url 11246 field is always set before attempting a download 11247 112482017-07-07 Tim Rühsen <tim.ruehsen@gmx.de> 11249 11250 * src/options.c: Set default read timeout to 900s 11251 112522017-07-07 Tim Rühsen <tim.ruehsen@gmx.de> 11253 11254 Do not use ALPN when not build with HTTP/2 support 11255 11256 * libwget/ssl_gnutls.c (struct _config): Conditionally set .alpn 11257 * src/options.c (init): Set ALPN string only when build with HTTP/2 support 11258 112592017-07-07 Tim Rühsen <tim.ruehsen@gmx.de> 11260 11261 * src/log.c (_write_out): Fix localtime crash with Wine 11262 112632017-07-07 Tim Rühsen <tim.ruehsen@gmx.de> 11264 11265 * libwget/http_parse.c (wget_http_print_date): Fix gmtime crash with Wine 11266 112672017-07-05 Tim Rühsen <tim.ruehsen@gmx.de> 11268 11269 * fuzz/Makefile.am: Add link libraries to build cookie fuzzer 11270 112712017-07-05 Tim Rühsen <tim.ruehsen@gmx.de> 11272 11273 Disable plugin tests when plugins are disabled 11274 11275 * configure.ac: Add conditional PLUGIN_SUPPORT 11276 * tests/Makefile.am: Enable plugin testing only if PLUGIN_SUPPORT exists 11277 * unit-tests/Makefile.am: Likewise 11278 112792017-07-05 Tim Rühsen <tim.ruehsen@gmx.de> 11280 11281 * configure.ac: Fix static linking with libidn2 11282 112832017-07-04 Tim Rühsen <tim.ruehsen@gmx.de> 11284 11285 Remove h2-14 and h2-16 from ALPN 11286 11287 * libwget/ssl_gnutls.c: Remove h2-14 and h2-16 from default ALPN offer 11288 * examples/http_multi_get.c: Set ALPN to h2,http/1.1 11289 * src/options.c: Likewise 11290 11291 h2-14 and h2-16 were some HTTP/2 drafts, should not be relevant in 11292 the real world now. 11293 112942017-07-03 Tim Rühsen <tim.ruehsen@gmx.de> 11295 11296 * fuzz/Makefile.am: Fix oss-fuzz target for new cookie fuzzer 11297 112982017-07-01 Tim Rühsen <tim.ruehsen@gmx.de> 11299 11300 Enhance memtohex fuzzer, rename it to utils fuzzer 11301 11302 * Makefile.am: Rename libwget_memtohex_fuzzer to libwget_utils_fuzzer 11303 * libwget_memtohex_fuzzer.c: Renamed to libwget_utils_fuzzer.c 11304 * libwget_utils_fuzzer.c: New file 11305 * libwget_utils_fuzzer.in/*: Test corpora 11306 * run-clang.sh: Add merge step in ctrl-c handler 11307 113082017-06-30 Tim Rühsen <tim.ruehsen@gmx.de> 11309 11310 * fuzz/libwget_memtohex_fuzzer.c: Add all functions from utils.c 11311 113122017-06-30 Tim Rühsen <tim.ruehsen@gmx.de> 11313 11314 Update fuzzer with latest corpora from oss-fuzz 11315 11316 * fuzz/get_ossfuzz_corpora: Enhance corpora merging 11317 * fuzz/libwget_*fuzzer.in/*: Updated fuzz corpora 11318 113192017-06-29 Tim Rühsen <tim.ruehsen@gmx.de> 11320 11321 Update gnulib submodule 11322 113232017-06-26 Tim Rühsen <tim.ruehsen@gmx.de> 11324 11325 Update fuzz corpora from OSS-Fuzz 11326 11327 * fuzz/get_ossfuzz_corpora: New file to download and merge corpora 11328 * fuzz/*.in/*: New corpora 11329 * fuzz/run-clang.sh: Updated to work with get_ossfuzz_corpora 11330 113312017-06-25 Tim Rühsen <tim.ruehsen@gmx.de> 11332 11333 * .gitlab-ci.yml: Switch MinGW64 build to Debian 11334 113352017-06-24 Tim Rühsen <tim.ruehsen@gmx.de> 11336 11337 * libwget/ssl_gnutls.c (_cert_verify_hpkp): Fix code for GnuTLS < 3.1.3 11338 113392017-06-24 Tim Rühsen <tim.ruehsen@gmx.de> 11340 11341 Correctly include config.h into css_tokenizer 11342 11343 * libwget/css_tokenizer.lex: Add config.h via %top directive 11344 * libwget/Makefile.am: Remove sed from make target 11345 113462017-06-23 Tim Rühsen <tim.ruehsen@gmx.de> 11347 11348 * libwget/cookie.c (wget_cookie_parse_setcookie): Avoid maxage integer overflow 11349 113502017-06-23 Avinash Sonawane <rootkea@gmail.com> 11351 11352 *configure.ac: Fix warning about 'AM_PROG_MKDIR_P' macro being deprecated 11353 * README.md: Update gettext required version 11354 113552017-06-22 Tim Rühsen <tim.ruehsen@gmx.de> 11356 11357 Increase fuzz coverage for cookie code 11358 11359 * fuzz/libwget_cookie_fuzzer.c: Add more function calls 11360 * fuzz/libwget_cookie_fuzzer.in/*: Add test corpora 11361 113622017-06-22 Tim Rühsen <tim.ruehsen@gmx.de> 11363 11364 * fuzz/libwget_xml_parse_buffer_fuzzer.c: Don't hang when readng from stdin 11365 113662017-06-22 Tim Rühsen <tim.ruehsen@gmx.de> 11367 11368 * libwget/io.c (wget_update_file): Fix leak found by fuzzing 11369 113702017-06-22 Tim Rühsen <tim.ruehsen@gmx.de> 11371 11372 Fix issues in cookie code found by fuzzing 11373 11374 * libwget/cookie.c (wget_cookie_db_load_psl): Fix memleak when 11375 psl_load_file() fails, 11376 (_compare_cookie): Fix strcmp() NULL pointer crash, 11377 (_wget_cookie_normalize_cookie): Fix memleak 11378 113792017-06-22 Avinash Sonawane <rootkea@gmail.com> 11380 11381 * src/options.c: Fix array index out of bounds runtime error 11382 113832017-06-22 Tim Rühsen <tim.ruehsen@gmx.de> 11384 11385 Enhance creating of libwget/css_tokenizer.c 11386 11387 * Makefile.am: Remove '<stdout>' special handling in coverage rules 11388 * libwget/Makefile.am: Generate css_tokenizer.c with proper automake 11389 macros, prepend include line using sed. 11390 113912017-06-22 Tim Rühsen <tim.ruehsen@gmx.de> 11392 11393 * fuzz/libwget_xml_parse_buffer_fuzzer.c: Increase fuzz code coverage 11394 113952017-06-22 Tim Rühsen <tim.ruehsen@gmx.de> 11396 11397 * fuzz/libwget_base64_fuzzer.c: Add coverage for wget.h inline functions 11398 113992017-06-22 Tim Rühsen <tim.ruehsen@gmx.de> 11400 11401 Let CI create online fuzz coverage report 11402 11403 * .gitlab-ci.yml: Place fuzz coverage report in public area 11404 * Makefile.am: Use 'make check' in fuzz directory 11405 * README.md: Add link to fuzz coverage report 11406 * fuzz/Makefile.am: Remove make target 'fuzz-coverage' 11407 * fuzz/coverage.sh: Remove file 11408 114092017-06-18 Tim Rühsen <tim.ruehsen@gmx.de> 11410 11411 * po/POTFILES.in: Add libwget/http_parse.c 11412 114132017-06-18 Tim Rühsen <tim.ruehsen@gmx.de> 11414 11415 * fuzz/libwget_cookie_fuzzer.c: Add forgotten file 11416 114172017-06-18 Tim Rühsen <tim.ruehsen@gmx.de> 11418 11419 Add new fuzzer libwget_cookie_fuzzer 11420 11421 * fuzz/Makefile.am: Add libwget_cookie_fuzzer 11422 * fuzz/libwget_cookie_fuzzer.c: New fuzzer 11423 * fuzz/libwget_cookie_fuzzer.in/*: Corpora 11424 * fuzz/run-clang.sh: Add -lpsl and -lgnutls 11425 114262017-06-18 Tim Rühsen <tim.ruehsen@gmx.de> 11427 11428 Move parsing from libwget/http.c to libwget/http_parse.c 11429 11430 * libwget/Makefile.am: Add http_parse.c 11431 * libwget/http.c: Remove parse functions 11432 * libwget/http_parse.c: New file with parse functions 11433 114342017-06-17 Tim Rühsen <tim.ruehsen@gmx.de> 11435 11436 Add new fuzzer libwget_base64_fuzzer 11437 11438 * fuzz/Makefile.am: Add libwget_base64_fuzzer 11439 * fuzz/libwget_base64_fuzzer.c: New fuzzer 11440 * fuzz/libwget_base64_fuzzer.in/*: Corpora 11441 114422017-06-17 Tim Rühsen <tim.ruehsen@gmx.de> 11443 11444 Increase fuzz coverage for bar.c and rss_url.c 11445 11446 * fuzz/libwget_atom_url_fuzzer.c: Add RSS parsing 11447 * fuzz/libwget_atom_url_fuzzer.dict: Add RSS tags 11448 * fuzz/libwget_bar_fuzzer.c: Increase fuzz code coverage 11449 * fuzz/*.in/*: Update corpora 11450 114512017-06-17 Tim Rühsen <tim.ruehsen@gmx.de> 11452 11453 Check slot value in wget_bar_slot_deregister() 11454 11455 * libwget/bar.c (wget_bar_init): Remove redundant xfree()s, 11456 (wget_bar_slot_downloaded): Check value of 'slot' param 11457 114582017-06-16 Tim Rühsen <tim.ruehsen@gmx.de> 11459 11460 Fix issues in IRI code found by fuzzing 11461 11462 * include/wget/wget.h: Remove nonnull attribute from wget_iri_compare() 11463 * libwget/iri.c (wget_iri_clone): Fix possible crashes due to random free(), 11464 (wget_iri_compare): Check input arguments against NULL, 11465 (wget_iri_set_scheme): Use string compare instead of pointer compare 11466 114672017-06-15 Tim Rühsen <tim.ruehsen@gmx.de> 11468 11469 Add new fuzzer libwget_iri_fuzzer 11470 11471 * fuzz/Makefile.am: Add libwget_sitemap_url_fuzzer 11472 * fuzz/libwget_iri_fuzzer.c: New fuzzer 11473 * fuzz/libwget_iri_fuzzer.dict: New dictionary 11474 * fuzz/libwget_iri_fuzzer.in/*: Corpora 11475 114762017-06-15 Ander Juaristi <a@juaristi.eus> 11477 11478 Fix MinGW compatibility issues 11479 11480 * libwget/buffer_printf.c (_read_precision): do not pass a va_list 11481 as argument. 11482 (_read_field_width): likewise. 11483 114842017-06-15 Tim Rühsen <tim.ruehsen@gmx.de> 11485 11486 Add new fuzzer libwget_sitemap_url_fuzzer 11487 11488 * fuzz/Makefile.am: Add libwget_sitemap_url_fuzzer 11489 * fuzz/libwget_sitemap_url_fuzzer.c: New fuzzer 11490 * fuzz/libwget_sitemap_url_fuzzer.dict: New dictionary 11491 * fuzz/libwget_sitemap_url_fuzzer.in/*: Corpora 11492 * fuzz/run-clang.sh: Add -jobs and -workers 11493 114942017-06-15 Tim Rühsen <tim.ruehsen@gmx.de> 11495 11496 * libwget/utils.c: Fix param in docs of wget_strglob() 11497 114982017-06-15 Tim Rühsen <tim.ruehsen@gmx.de> 11499 11500 Remove nonnnull attribute from functions 11501 11502 * include/wget/wget.h: Remove G_GNUC_WGET_NONNULL from several functions 11503 * libwget/buffer.c: Add explicit checks for NULL 11504 * libwget/buffer_printf.c (wget_buffer_vprintf_append): Likewise 11505 * libwget/net.c: Likewise 11506 11507 The nonnull attribute removes the NULL checks under certain conditions. 11508 That might turn out as a security flaw. 11509 115102017-06-15 Tim Rühsen <tim.ruehsen@gmx.de> 11511 11512 * libwget/metalink.c: Avoid calling memcpy with src=NULL 11513 115142017-06-14 Tim Rühsen <tim.ruehsen@gmx.de> 11515 11516 Add new fuzzer libwget_css_url_fuzzer 11517 11518 * fuzz/Makefile.am: Add libwget_css_url_fuzzer 11519 * fuzz/libwget_css_url_fuzzer.c: New fuzzer 11520 * fuzz/libwget_css_url_fuzzer.dict: New dictionary 11521 * fuzz/libwget_css_url_fuzzer.in/*: Corpora 11522 115232017-06-14 Tim Rühsen <tim.ruehsen@gmx.de> 11524 11525 * libwget/css.c (wget_css_parse_buffer): Fix length calculation 11526 115272017-06-14 Tim Rühsen <tim.ruehsen@gmx.de> 11528 11529 * fuzz/libwget_atom_url_fuzzer.dict: Remove empty line at EOF 11530 115312017-06-14 Tim Rühsen <tim.ruehsen@gmx.de> 11532 11533 Add new fuzzer libwget_atom_url_fuzzer 11534 11535 * fuzz/Makefile.am: Add libwget_atom_url_fuzzer 11536 * fuzz/libwget_atom_url_fuzzer.c: New fuzzer 11537 * fuzz/libwget_atom_url_fuzzer.dict: New dictionary 11538 * fuzz/libwget_atom_url_fuzzer.in/*: Corpora 11539 115402017-06-14 Tim Rühsen <tim.ruehsen@gmx.de> 11541 11542 Add fuzz corpora from OSS-Fuzz 11543 11544 * *.in/*: New copora 11545 * run-clang.sh: Add needed libraries to fuzzer executables (regression) 11546 115472017-06-12 Ander Juaristi <a@juaristi.eus> 11548 11549 docs: Inline docs for net.c 11550 115512017-06-12 Ander Juaristi <a@juaristi.eus> 11552 11553 docs: Inline docs for IRI/URI API 11554 115552017-06-12 Ander Juaristi <a@juaristi.eus> 11556 11557 docs: Inline docs for buffer and buffer_printf 11558 115592017-06-13 Tim Rühsen <tim.ruehsen@gmx.de> 11560 11561 * libwget/http.c (wget_http_add_credentials): Remove debug printf 11562 115632017-06-13 Tim Rühsen <tim.ruehsen@gmx.de> 11564 11565 New options --http-proxy-user and --http-proxy-passord 11566 11567 * docs/wget2_manual.md: Amend description of user/password options 11568 * docs/wget2_manual.md: Add new param to wget_http_add_credentials() 11569 * libwget/http.c (wget_http_parse_response_header): Add Proxy-Authenticate 11570 HTTP header, 11571 (wget_http_add_credentials): Add Proxy-Authorization HTTP header, 11572 (_on_header_callback): Add Proxy-Authenticate HTTP header 11573 * libwget/http_highlevel.c: Amend call to wget_http_add_credentials() 11574 * src/job.c (job_free): Free proxy_challenges 11575 * src/options.c: Add --http-proxy-password and --http-proxy-user 11576 * src/wget.c (process_response_header): Add status code 407, 11577 (_add_authorize_header): New function, 11578 (http_create_request): Use _add_authorize_header() 11579 * src/wget_job.h: Add JOB.proxy_challenges 11580 * src/wget_options.h: Add config.http_proxy_username and config.http_proxy_password 11581 * unit-tests/test.c: Amend call to wget_http_add_credentials() 11582 115832017-06-12 Tim Rühsen <tim.ruehsen@gmx.de> 11584 11585 * libwget/ssl_gnutls.c: Debug output for certain OCSP warnings 11586 115872017-06-11 Akash Rawal <argmlac@gmail.com> 11588 11589 * src/options.c (set_long_option): Fix behavior for options that don't accept arguments and are not boolean 11590 115912017-06-11 Akash Rawal <argmlac@gmail.com> 11592 11593 Allow setting destructor to keys to wget_stringmap_t 11594 11595 * include/wget/wget.h: Add wget_stringmap_key_destructor_t and 11596 wget_stringmap_set_key_destructor() declaration. 11597 * libwget/stringmap.c: Add wget_stringmap_set_key_destructor() 11598 definition. 11599 116002017-06-11 Akash Rawal <argmlac@gmail.com> 11601 11602 Remove rarely used parameter 'off' from wget_hashmap_create() 11603 11604 * libwget/hashmap.c: Remove 'off' parameter, now defaults to -2, 11605 Add wget_hashmap_set_growth_policy() to set 'off' 11606 * include/wget/wget.h: likewise 11607 * libwget/hpkp.c: Adapt to the change in wget_hashmap_create() 11608 * libwget/hsts.c: Likewise 11609 * libwget/netrc.c: Likewise 11610 * libwget/ocsp.c: Likewise 11611 * libwget/stringmap.c: Likewise 11612 * libwget/test_linking.c: Likewise 11613 * libwget/tls_session.c: Likewise 11614 * src/blacklist.c: Likewise 11615 * src/host.c: Likewise 11616 * src/wget.c: Likewise 11617 116182017-06-11 Avinash Sonawane <rootkea@gmail.com> 11619 11620 * unit-tests/test.c: Add tests for wget_http_parse_response_header() 11621 116222017-06-10 Tim Rühsen <tim.ruehsen@gmx.de> 11623 11624 Fix integer overflow in metalink code found by OSS-Fuzz 11625 11626 * fuzz/libwget_metalink_parse_fuzzer.repro/5268760606801920: 11627 Reproducer from oss-fuzz 11628 * libwget/metalink.c (_add_piece): Avoid integer overflow 11629 116302017-06-09 Tim Rühsen <tim.ruehsen@gmx.de> 11631 11632 * fuzz/fuzzer.h: Add extern 'C' 11633 116342017-06-09 Tim Rühsen <tim.ruehsen@gmx.de> 11635 11636 * fuzz/README.md: Add code coverage section 11637 116382017-06-09 Tim Rühsen <tim.ruehsen@gmx.de> 11639 11640 * fuzz/Makefile.am: Add clean-local make target 11641 116422017-06-08 Tim Rühsen <tim.ruehsen@gmx.de> 11643 11644 Increase fuzz coverage of wget_metalink_parse() 11645 11646 * libwget_metalink_parse_fuzzer.c: Call wget_metalink_sort_mirrors() 11647 * libwget_metalink_parse_fuzzer.dict: Add keywords 11648 * libwget_metalink_parse_fuzzer.in/xml1: Add content 11649 116502017-06-08 Tim Rühsen <tim.ruehsen@gmx.de> 11651 11652 Add script for fast checking of fuzz coverage 11653 11654 * fuzz/view-coverage.sh: New helper script 11655 116562017-06-08 Tim Rühsen <tim.ruehsen@gmx.de> 11657 11658 Add more fuzz corpora for wget_xml_parse_buffer() 11659 11660 * fuzz/libwget_xml_parse_buffer_fuzzer.in/*: New files 11661 116622017-06-08 Tim Rühsen <tim.ruehsen@gmx.de> 11663 11664 Increase fuzz coverage for wget_xml_parse_buffer() 11665 11666 * libwget_xml_parse_buffer_fuzzer.c: Increase fuzz coverage 11667 * libwget_xml_parse_buffer_fuzzer.dict: Add 'style' keyword 11668 116692017-06-07 Tim Rühsen <tim.ruehsen@gmx.de> 11670 11671 Use C instead of C++ for fuzzer targets 11672 11673 * configure.ac: Remove AC_PROG_CXX 11674 * fuzz/Makefile.am: Amend *_SOURCES for .c fuzzer targets, 11675 Remove non-portable EXTRA_DIST wildcards, 11676 Add dist-hook to include fuzzer target files, 11677 Add oss-fuzz make target. 11678 * fuzz/fuzzer.h: New file 11679 * fuzz/*cc: Rename to C, include fuzzer.h 11680 * fuzz/main.c: Include fuzzer.h 11681 * fuzz/run-clang.sh: Build and run fuzzer targets made with clang/libFuzzer 11682 116832017-06-07 Akash Rawal <argmlac@gmail.com> 11684 11685 Fix name clashes with gnulib 11686 11687 * tests/test-plugin.c: Rename setenv and unsetenv to setenv_rpl 11688 and unsetenv_rpl respectively. 11689 * unit-tests/test-dl.c: Rename rpl_remove to remove_rpl. 11690 11691 Reported by @gvanem 11692 116932017-06-06 Tim Rühsen <tim.ruehsen@gmx.de> 11694 11695 * tests/Makefile.am: Remove buffer_printf_perf, stringmap_perf from check_PROGRAMS 11696 116972017-06-06 Akash Rawal <argmlac@gmail.com> 11698 11699 Fix sanitizer builds 11700 11701 * .gitlab-ci.yml: Separate sanitizer build from `make distcheck` and 11702 use clang++ as c++ compiler in clang/Fedora build 11703 * .travis.sh: Use clang++ as c++ compiler if CC=clang and 11704 disable sanitizer builds (unstable on Travis-CI) 11705 * .travis.yml: Add lzip package 11706 * .travis_setup.sh: Likewise 11707 117082017-06-06 Tim Rühsen <tim.ruehsen@gmx.de> 11709 11710 Remove obsolete files from tests/ 11711 11712 * tests/buffer_printf_perf.c: Remove 11713 * tests/stringmap_perf.c: Remove 11714 11715 Reported-by: Gisle Vanem 11716 117172017-06-06 Tim Rühsen <tim.ruehsen@gmx.de> 11718 11719 * .gitlab-ci.yml: Parallel 'make check' for Debian image 11720 117212017-05-30 Akash Rawal <argmlac@gmail.com> 11722 11723 Add basic plugin loading mechanism 11724 11725 * configure.ac: Add configure time tests for plugin support backend. 11726 * include/wget/wget.h: Add basic plugin API 11727 * libwget/Makefile.am: Add new file plugin.c to libwget.la 11728 * libwget/plugin.c: Add plugin API functions (new file) 11729 * src/Makefile.am: Add new files dl.c, wget_dl.h, plugin.c, wget_plugin.h 11730 to wget2 11731 * src/dl.c: Add abstraction for dynamic loading of object files 11732 * src/wget_dl.h: Likewise 11733 * src/plugin.c: Add implementation for loading plugins 11734 * src/wget_plugin.h: likewise 11735 * src/options.c: Add options `--plugin=`, `--local-plugin=`, 11736 `--plugin-dirs=`, `--list-plugins` 11737 * src/wget.c: Add function calls to initialize and finalize plugin 11738 support system 11739 * unit-tests/Makefile.am: Add test-dl, libalpha.la, and libbeta.la 11740 * unit-tests/test-dl.c: Add unit test for src/dl.c 11741 * unit-tests/test-dl-dummy.c: Likewise 11742 * tests/Makefile.am: Add test-plugin, libpluginname.la, and 11743 libpluginexit.la 11744 * tests/test-plugin.c: Add tests for plugin support 11745 * tests/test-plugin-dummy.c: Likewise 11746 * libwget/test-linking.c: Fix warnings with --enable-manywarnings 11747 * unit-tests/test.c: likewise 11748 11749 Plugin loading mechanism has been implemented as per specifications 11750 at https://gitlab.com/akash_rawal/wget2/wikis/Stage-0 11751 117522017-06-06 Tim Rühsen <tim.ruehsen@gmx.de> 11753 11754 * fuzz/Makefile.am: Add test corpora to tarball 11755 117562017-06-06 Tim Rühsen <tim.ruehsen@gmx.de> 11757 11758 * configure.ac: Use dist-lzip instead of dist-xz 11759 117602017-06-06 Tim Rühsen <tim.ruehsen@gmx.de> 11761 11762 * configure.ac: Set CXXFLAGS for --enable-sanitize-... options 11763 117642017-06-04 Tim Rühsen <tim.ruehsen@gmx.de> 11765 11766 * .gitlab-ci.yml: YAML doesn't like paths starting with */ 11767 117682017-06-04 Tim Rühsen <tim.ruehsen@gmx.de> 11769 11770 Add OSS-Fuzz reproducers to test suite 11771 11772 * cfg.mk: Exclude *.repro/* from syntax-check 11773 * fuzz/Makefile.am: Add *.repro/* to EXTRA_DIST 11774 * fuzz/libwget_metalink_parse_fuzzer.repro/clusterfuzz-testcase-minimized-5103826937839616: 11775 Reproducer for OSS-Fuzz issue #1915 11776 * fuzz/libwget_xml_parse_buffer_fuzzer.repro/clusterfuzz-testcase-minimized-4704516446355456: 11777 Reproducer for OSS-Fuzz issue #2041 11778 * fuzz/main.c: Scan and test all files from *.repro/ 11779 117802017-06-04 Tim Rühsen <tim.ruehsen@gmx.de> 11781 11782 * libwget/xml.c (getScriptContent): Fix read-off-by-one found by OSS-Fuzz (#2041) 11783 117842017-06-04 Tim Rühsen <tim.ruehsen@gmx.de> 11785 11786 * .gitlab-ci.yml: Add all .log files to artifacts 11787 117882017-06-04 Akash Rawal <argmlac@gmail.com> 11789 11790 * .travis.sh: Fix printing logs when build fails 11791 117922017-06-03 Tim Rühsen <tim.ruehsen@gmx.de> 11793 11794 * fuzz/Makefile.am: Remove lib/ from include directories 11795 117962017-06-02 Tim Rühsen <tim.ruehsen@gmx.de> 11797 11798 Use fuzz targets as unit tests for 'make check' 11799 11800 * Makefile.am: Add 'fuzz' directory to SUBDIRS, 11801 tune 'fuzz-coverage' make target, 11802 print info on how to view coverage report. 11803 * configure.ac: Add AC_PROG_CXX for C++ code in fuzz/ 11804 * fuzz/Makefile: Removed 11805 * fuzz/Makefile.am: New file 11806 * fuzz/libwget_bar_fuzzer.cc: Fix memleak 11807 * fuzz/main.c: Add code for unit testing 11808 11809 The OSS-Fuzz targets will now be taken for unit testing as well. 11810 11811 That is, they will be tested by 'make check' including our sanitizer 11812 and valgrind checks. The fuzz tests will be run once with each test 11813 corpus from the corresponding '.in' directory. 11814 11815 A 'make fuzz-coverage' generates a coverage report for running all 11816 fuzz targets against their corpora. 11817 118182017-06-01 Tim Rühsen <tim.ruehsen@gmx.de> 11819 11820 * fuzz/libwget_memtohex_fuzzer.cc: Add two test vectors 11821 118222017-06-01 Tim Rühsen <tim.ruehsen@gmx.de> 11823 11824 Add make target 'fuzz-coverage' 11825 11826 * Makefile.am: Add target 'fuzz-coverage' to generate a coverage 11827 report for fuzz targets. 11828 * fuzz/Makefile: Add target 'fuzz-coverage' 11829 * fuzz/coverage.sh: New script to call a fuzz target with each corpus. 11830 * fuzz/libwget_metalink_parse_fuzzer.cc: Add check for max input length. 11831 * fuzz/libwget_xml_parse_buffer_fuzzer.cc: Likewise 11832 * fuzz/libwget_robots_parse_fuzzer.cc: Add comment 11833 * fuzz/libwget_robots_parse_fuzzer.in/user_agent2: Amend for max coverage 11834 * fuzz/main.c: selfmade __AFL_LOOP() returns 0 after first invocation. 11835 * fuzz/libwget_memtohex.in: Rename to fuzz/libwget_memtohex_fuzzer.in 11836 * fuzz/libwget_metalink_parse.in: Rename to fuzz/libwget_metalink_parse_fuzzer.in 11837 * fuzz/libwget_robots_parse.in: Rename to fuzz/libwget_robots_parse_fuzzer.in 11838 * fuzz/libwget_xml_parse_buffer.in: Rename to fuzz/libwget_xml_parse_buffer_fuzzer.in 11839 * fuzz/libwget_xml_parse_buffer.options: Removed 11840 * fuzz/libwget_metalink_parse_fuzzer.options: Removed 11841 118422017-06-01 Avinash Sonawane <rootkea@gmail.com> 11843 11844 Use HTTPS url instead of SSH to clone the repo 118452017-05-31 Tim Rühsen <tim.ruehsen@gmx.de> 11846 11847 Move unit tests from tests/ to unit-tests/ 11848 11849 * Makefile.am: Add unit-tests 11850 * cfg.mk: Make syntax-check work with unit-tests/ 11851 * configure.ac: Add unit-tests/Makefile 11852 * tests/Makefile.am: Remove unit tests 11853 * unit-tests/Makefile.am: New file with unit test rules 11854 * unit-tests/*.c: Moved from tests/ 11855 * unit-tests/files: Moved from tests/ 11856 11857 unit-tests/ is for library/API unit testing. 11858 tests/ is for testing wget2 utility. 11859 118602017-05-31 Tim Rühsen <tim.ruehsen@gmx.de> 11861 11862 Enhance fuzz code 11863 11864 * fuzz/*_fuzzer.cc: Use malloc() instead of stack memory to help 11865 sanitizers. 11866 * fuzz/libwget_robots_parse.in/user_agent1: Increase code coverage. 11867 * fuzz/main.c: define __AFL_LOOP() is not already defined. 11868 118692017-05-31 Akash Rawal <argmlac@gmail.com> 11870 11871 Silence GCC warnings 11872 11873 * tests/test.c (test_parser): Replace hardcoded array size with an expression 11874 * tests/test-parse-html.c (test_parse_files): Likewise 11875 118762017-05-30 Tim Rühsen <tim.ruehsen@gmx.de> 11877 11878 * libwget/xml.c (getValue): Fix memleak 11879 11880 Found locally via fuzzing. 11881 118822017-05-30 Tim Rühsen <tim.ruehsen@gmx.de> 11883 11884 * src/wget.c (metalink_parse_localfile): Fix memleak 11885 11886 Found locally via fuzzing. 11887 118882017-05-30 Tim Rühsen <tim.ruehsen@gmx.de> 11889 11890 * libwget/metalink.c (_metalink_parse): Fix memleak 11891 11892 Found locally via fuzzing. 11893 118942017-05-30 Tim Rühsen <tim.ruehsen@gmx.de> 11895 11896 .gitignore: Add generated files from fuzz/ directory 11897 118982017-05-30 Tim Rühsen <tim.ruehsen@gmx.de> 11899 11900 Add two fuzz corpora 11901 11902 * fuzz/libwget_metalink_parse.in/tag1: New file 11903 * fuzz/libwget_xml_parse_buffer.in/tag1: New file 11904 119052017-05-30 Tim Rühsen <tim.ruehsen@gmx.de> 11906 11907 Fix off-by-one read in XML code 11908 11909 * libwget/xml.c (getToken): Fix off-by-one read 11910 11911 Reported-by: oss-fuzz 11912 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1915 11913 119142017-05-30 Tim Rühsen <tim.ruehsen@gmx.de> 11915 11916 Fix fuzz minimizing command 11917 11918 * fuzz/README.md: Fix build recipe 11919 * fuzz/run-afl.sh: Fix check whether to call afl-tmin 11920 119212017-05-30 Tim Rühsen <tim.ruehsen@gmx.de> 11922 11923 * fuzz/Makefile: Forgot to add to repo 11924 119252017-05-29 Tim Rühsen <tim.ruehsen@gmx.de> 11926 11927 Add *.options files to fuzzer 11928 11929 * fuzz/libwget_metalink_parse.options: New file 11930 * fuzz/libwget_xml_parse_buffer.options: New file 11931 11932 Max input len is 64 for OSS-Fuzz, we need larger input for 11933 some fuzz targets. 11934 119352017-05-29 Tim Rühsen <tim.ruehsen@gmx.de> 11936 11937 Enhance fuzzing 11938 11939 * cfg.mk: Let make-syntax-check survive 11940 * fuzz/libwget_metalink_parse.dict: New dictionary 11941 * fuzz/libwget_robots_parse.dict: New dictionary 11942 * fuzz/libwget_xml_parse_buffer.dict: New dictionary 11943 * fuzz/libwget_robots_parse.in/disallowed1: Obsolete by afl-cmin 11944 * fuzz/libwget_robots_parse.in/user_agent3: Likewise 11945 * fuzz/libwget_xml_parse_buffer.in/index.html: Removed redundant HTML tags 11946 * fuzz/run-afl.sh: Auto-optimize corpora with afl-tmin 11947 119482017-05-29 Tim Rühsen <tim.ruehsen@gmx.de> 11949 11950 Add initial fuzzing code 11951 11952 * fuzz/*: New files 11953 11954 README.md contains instructions how to build and run single fuzzers. 11955 Currently we have fuzzers and corpora for 11956 - wget_memtohex() 11957 - wget_metalink_parse() 11958 - wget_robots_parse() 11959 - wget_xml_parse_buffer() 11960 11961 * fuzz/libwget_bar.in/123456: New file 11962 119632017-05-28 Tim Rühsen <tim.ruehsen@gmx.de> 11964 11965 * tests/test.c: Add test_strlcpy to cover wget_strlcpy() 11966 119672017-05-28 Tim Rühsen <tim.ruehsen@gmx.de> 11968 11969 * tests/test.c: Add test for wget_strmemcpy for 100% coverage 11970 119712017-05-28 Ander Juaristi <a@juaristi.eus> 11972 11973 Make wget_buffer_realloc static 11974 11975 * libwget/buffer.c (wget_buffer_realloc): rename to _buffer_realloc, 11976 and make it static. 11977 (_buffer_realloc): new function. 11978 11979 This function may overflow if incorrectly used so we make it internal to 11980 'buffer.c'. All the functions there that rely on it know how to use it 11981 correctly. 11982 119832017-05-27 Tim Rühsen <tim.ruehsen@gmx.de> 11984 11985 Fix wget_strmemcpy() and add tests for mem.c 11986 11987 * include/wget/wget.h: Remove nonnull attribute from wget_strmemcpy 11988 * libwget/mem.c: Check input values for wget_strmemcpy 11989 * tests/test.c: Add tests for functions of mem.c 11990 119912017-05-26 Tim Rühsen <tim.ruehsen@gmx.de> 11992 11993 * AUTHORS: Updated contributor list 11994 119952017-05-26 Akash Rawal <argmlac@gmail.com> 11996 11997 * .gitlab-ci.yml: Enable MinGW64 build 11998 119992017-05-25 Tim Rühsen <tim.ruehsen@gmx.de> 12000 12001 Fix clang -Wconversion warnings 12002 12003 * include/wget/wget.h (wget_ready_2_transfer): Change 'mode' to int 12004 * libwget/io.c: Likewise 12005 * libwget/hpkp.c: Explicit int to bit conversion 12006 * libwget/http.c: Likewise 12007 * libwget/net.c: Likewise 12008 * libwget/ocsp.c: Likewise 12009 * libwget/ssl_gnutls.c: Likewise 12010 * tests/libtest.c: Likewise 12011 * libwget/iri.c (wget_iri_unescape_inline): Explicit int to char conversion 12012 * libwget/utils.c: Likewise 12013 120142017-05-24 Tim Rühsen <tim.ruehsen@gmx.de> 12015 12016 * libwget/Makefile.am: Fix CPPFLAGS for libcsstokenizer 12017 120182017-05-24 Tim Rühsen <tim.ruehsen@gmx.de> 12019 12020 * libwget/Makefile.am: Remove macro warnings 12021 120222017-05-22 Didik Setiawan <ds@didiksetiawan.com> 12023 12024 Add support to save file extended attributes 12025 12026 * configure.ac: Check for xattr availability 12027 * src/Makefile.am: Add wget_xattr.h 12028 * src/options.c: Add new config 'xattr', 12029 (parse_execute): Add new option 'xattr 12030 * src/wget.c: (_prepare_file): Add condition for 'xattr', 12031 (http_send_request): Add parameter 'original_url', 12032 (add_url): Assign 'original_url' with proper value, 12033 (download_thread): Add variable 'original_url', 12034 (write_xattr_metadata): New function, 12035 (set_file_metadata): New function 12036 * src/wget_job.h: Add variable 'original_url' 12037 * src/wget_options.h: Add new config 'xattr' 12038 * src/wget_xattr.h: Add new function declaration 'set_file_metadata', 12039 Add fsetxattr() if defined in operating system 12040 12041 These attributes provide a lightweight method of later determining 12042 where a file was downloaded from. Adapted from Wget 1.x. 12043 12044 This patch changes: 12045 * autoconf detects whether extended attributes are available and 12046 enables the code if they are. 12047 * The new flags --xattr and --xattr=no control whether xattr is enabled. 12048 * The original and redirected URLs are recorded as shown below. 12049 * This works for both single fetches and recursive mode. 12050 12051 The attributes that are set are: 12052 user.xdg.origin.url: The URL that the content was fetched from. 12053 user.xdg.referrer.url: The URL that was originally requested. 12054 user.mime_type: Two-part identifier for file formats and format contents. 12055 user.charset: File encoding. 12056 12057 For example, where http://lwn.net redirects to https://lwn.net: 12058 $ wget2 --xattr http://lwn.net 12059 ... 12060 $ getfattr -d index.html 12061 user.charset:"UTF-8" 12062 user.mime_type:="text/html" 12063 user.xdg.origin.url="https://lwn.net/" 12064 user.xdg.referrer.url="http://lwn.net/" 12065 120662017-05-24 Tim Rühsen <tim.ruehsen@gmx.de> 12067 12068 Fix build for non-Windows envs without poll() 12069 12070 * bootstrap.conf: Add module msvc-nothrow 12071 * libwget/io.c: Include msvc-nothrow.h on _WIN32, 12072 (wget_ready_2_transfer): Fix code for non-Windows envs 12073 120742017-05-24 Tim Rühsen <tim.ruehsen@gmx.de> 12075 12076 MinGW cleanup 12077 12078 * include/wget/wget.h: Add const to first param of wget_restrict_file_name 12079 * libwget/utils.c: Likewise 12080 * tests/libtest.c: Remove debug output, start/stop ftp server thread, 12081 popen() without 'b'. 12082 * tests/test-iri.c: Skip test on _WIN32 12083 120842017-05-23 Tim Rühsen <tim.ruehsen@gmx.de> 12085 12086 Fix more tests for MinGW build 12087 12088 * include/wget/wget.h: Fixed indentation 12089 * tests/libtest.h (wget_test_file_t): Add restricted_mode member 12090 * tests/libtest.c (_scan_for_unexpected): Respect 'restricted_mode' value, 12091 (wget_test): Likewise. 12092 * test-iri-percent.c: Set WGET_RESTRICT_NAMES_NOCONTROL to expected filename 12093 * tests/test-iri.c: Likewise 12094 * tests/test-iri-subdir.c: Skip test on Windows build 12095 120962017-05-23 Tim Rühsen <tim.ruehsen@gmx.de> 12097 12098 * contrib/mingw: Fix WINEPATH and ./configure options 12099 121002017-05-23 Tim Rühsen <tim.ruehsen@gmx.de> 12101 12102 * src/wget.c (_get_header): Restrict file name from Content-Disposition 12103 121042017-05-23 Tim Rühsen <tim.ruehsen@gmx.de> 12105 12106 * libwget/utils.c (wget_restrict_file_name): Explicitely use signed char 12107 121082017-05-23 Tim Rühsen <tim.ruehsen@gmx.de> 12109 12110 Fix test-directory-clash on MinGW+Wine 12111 12112 * ../src/wget.c (_prepare_file): Check for EACCESS in unique loop 12113 12114 Reported-by: Akash Rawal 12115 121162017-05-23 Tim Rühsen <tim.ruehsen@gmx.de> 12117 12118 * tests/libtest.c (wget_test): Sync output streams to avoid garbled output 12119 121202017-05-23 Tim Rühsen <tim.ruehsen@gmx.de> 12121 12122 Make _restrict_file_name() public as wget_restrict_file_name() 12123 12124 * include/wget/wget.h: Add wget_restrict_file_name() declaration, 12125 add WGET_RESTRICT_* defines. 12126 * libwget/utils.c: Add wget_restrict_file_name() definition. 12127 * src/options.c (parse_restrict_names): Use WGET_RESTRICT_*, 12128 default to WGET_RESTRICT_NAMES_WINDOWS in _WIN32. 12129 * src/wget.c: Remove restrict_file_name(), 12130 (get_local_filename): Use wget_restrict_file_name(). 12131 * src/wget_options.h: Remove RESTRICT_NAMES_* defines. 12132 * tests/libtest.c (_scan_for_unexpected): Use wget_restrict_file_name(), 12133 (wget_test): Use wget_restrict_file_name(). 12134 12135 Reported-by: Akash Rawal 12136 121372017-05-22 Akash Rawal <argmlac@gmail.com> 12138 12139 Disabled /dev/full test on non-linux systems 12140 12141 * tests/test-wget-1.c: Test full disc only if __linux__ is defined 12142 121432017-05-22 Akash Rawal <argmlac@gmail.com> 12144 12145 Fix detecting directories on _WIN32 12146 12147 * src/wget.c (_prepare_file): Check for dir on errno = EACCES 12148 12149 _WIN32 set errno=EACCES on open(<directory>) while Linux sets 12150 errno=EISDIR. 12151 121522017-05-22 Akash Rawal <argmlac@gmail.com> 12153 12154 Fix test--accept.c and test--follow-tags.c on Win32 12155 12156 * tests/test--accept.c: Use " instead of ' on command line 12157 * tests/test--follow-tags.c: Remove unneeded ' on command line 12158 12159 Win32 doesn't like 'xxx' on the command line, wants "xxx". 12160 121612017-05-20 Akash Rawal <argmlac@gmail.com> 12162 12163 * tests/libtest.c (_write_msg): Flush stderr 12164 12165 Without flushing, the output messages are garbled on 12166 MinGW / Win32 builds. 12167 121682017-05-22 Akash Rawal <argmlac@gmail.com> 12169 12170 Fix select() for _WIN32 12171 12172 * libwget/io.c: Include io.h and winsock2.h, 12173 use OS socket descriptor for select() 12174 121752017-05-20 Tim Rühsen <tim.ruehsen@gmx.de> 12176 12177 * tests/libtest.c: Start/Stop HTTPS server again 12178 121792017-05-20 Tim Rühsen <tim.ruehsen@gmx.de> 12180 12181 Open files in binary mode where needed 12182 12183 * examples/websequencediagram.c: Use binary mode on file open 12184 * libwget/css.c: Likewise 12185 * libwget/hashfile.c: Likewise 12186 * libwget/http_highlevel.c: Likewise 12187 * libwget/io.c: Likewise 12188 * libwget/xml.c: Likewise 12189 * src/job.c: Likewise 12190 * src/options.c: Likewise 12191 * src/wget.c: Likewise 12192 * tests/libtest.c: Likewise 12193 * tests/stringmap_perf.c: Likewise 12194 12195 This fixes discrepancies between stat/st_size and read bytes on 12196 MinGW / Wine / Windows. 12197 121982017-05-19 Tim Rühsen <tim.ruehsen@gmx.de> 12199 12200 Let test suite finish with MinGW + Wine 12201 12202 * contrib/mingw: Amend the MinGW recipe 12203 * libwget/io.c (wget_ready_2_transfer): Wait 10ms before select() on MinGW 12204 * tests/libtest.c: Make 'terminate' a volatile sig_atomic_t. 12205 (_http_server_thread): Add debug output. 12206 (_empty_directory): Fix recursive removing directories. 12207 (wget_test_stop_server): Use wget_thread_cancel() instead of 12208 pthread_kill() + wget_thread_join(). 12209 122102017-05-17 Akash Rawal <argmlac@gmail.com> 12211 12212 * tests/libtest.c: Remove stray EXEEXT from the command line construction 12213 122142017-05-15 Tim Rühsen <tim.ruehsen@gmx.de> 12215 12216 * libwget/Makefile.am: Use convenience library to avoid unused macro warnings 12217 122182017-05-15 Tim Rühsen <tim.ruehsen@gmx.de> 12219 12220 * .gitlab-ci.yml: Remove explicit 'make syntax-check' 12221 122222017-05-15 Tim Rühsen <tim.ruehsen@gmx.de> 12223 12224 * Makefile.am: Add 'make syntax-check' to 'make check' 12225 122262017-05-15 Tim Rühsen <tim.ruehsen@gmx.de> 12227 12228 Remove nonnull attribute from some functions 12229 12230 * include/wget/wget.h: Remove nonnull attribute from some functions 12231 * libwget/encoding.c: Add explicit checks for NULL 12232 * libwget/io.c: Likewise 12233 * libwget/pipe.c: Likewise 12234 * libwget/strlcpy.c: Likewise 12235 * libwget/utils.c: Likewise 12236 122372017-05-12 Gianluca Varisco <gianluca.varisco@gmail.com> 12238 12239 * README: Fixed typo "Accept-Encdoing" -> "Accept-Encoding" 12240 122412017-05-12 Akash Rawal <argmlac@gmail.com> 12242 12243 Remove redundant VGSUPPFILE macro 12244 12245 * tests/Makefile.am: Remove VGSUPPFILE macro from libtest.la 12246 * tests/libtest.c: Replace VGSUPPFILE with an expression using SRCDIR 12247 122482017-05-03 Vijo Cherian <codervijo@gmail.com> 12249 12250 Moved help strings into options structure 12251 12252 * src/options.c: New enum help_section_t, 12253 new functions print_first() and print_next(), 12254 moved all help strings to struct options. 12255 12256 Print help strings such that it fits in 80 columns 12257 122582017-05-03 Avinash Sonawane <rootkea@gmail.com> 12259 12260 * src/options.c (set_long_option): Remove redundant bsearch call 12261 122622017-05-03 Avinash Sonawane <rootkea@gmail.com> 12263 12264 * libwget/http.c: Reorder switch cases in ascending order 12265 122662017-05-03 Avinash Sonawane <rootkea@gmail.com> 12267 12268 * libwget/http.c: Implement Wayback Machine's X-Archive-Orig-last-modified HTTP header 12269 122702017-05-03 Akash Rawal <argmlac@gmail.com> 12271 12272 Make wget_http_connection_t an abstract type 12273 12274 * include/wget/wget.h: Convert wget_http_connection_t to forward declaration 12275 * libwget/http.h: Move wget_http_connection_t definition here 12276 * libwget/Makefile.am: Add new file http.h 12277 * libwget/http.c: Include http.h and add accessor functions 12278 * libwget/http_highlevel.c: Include http.h 12279 * src/wget.c: Replace access to wget_http_connection_t with accessor function calls 12280 122812017-05-03 Tim Rühsen <tim.ruehsen@gmx.de> 12282 12283 * libwget/xalloc.c: Satisfy syntax-check 12284 122852017-05-03 Tim Rühsen <tim.ruehsen@gmx.de> 12286 12287 * examples/getstream.c (header_callback): Use wget_malloc() instead of malloc() 12288 122892017-05-03 Tim Rühsen <tim.ruehsen@gmx.de> 12290 12291 Add new function wget_free() 12292 12293 * examples/check_url_types.c: Use wget_xfree() instead of free() 12294 * examples/http_get2.c: Likewise 12295 * examples/print_css_urls2.c: Likewise 12296 * examples/print_html_urls.c: Likewise 12297 * include/wget/wget.h: Add wget_free() and define wget_xfree() 12298 * libwget/xalloc.c: Implement wget_free() 12299 12300 * include/wget/wget.h: Add declaration for wget_free() 12301 * libwget/xalloc.c: Implement wget_free() 12302 123032017-05-03 Tim Rühsen <tim.ruehsen@gmx.de> 12304 12305 * .gitlab-ci.yml: Enable syntax-check 12306 123072017-05-03 Tim Rühsen <tim.ruehsen@gmx.de> 12308 12309 * src/options.c: Remove trailing whitespace 12310 123112017-05-02 Avinash Sonawane <rootkea@gmail.com> 12312 12313 * tests/libtest.c: Use --no-proxy for wget2 invocation in test-suite 12314 123152017-05-02 Avinash Sonawane <rootkea@gmail.com> 12316 12317 Implement `--proxy` switch to import env proxy vars 12318 12319 * src/wget_options.h: Add `--proxy` option 12320 * src/options.c(init): Import env proxy var by default and only if no 12321 corresponding proxy variable is specified on command-line 12322 123232017-05-03 Akash Rawal <argmlac@gmail.com> 12324 12325 * src/options.c: Implement optional arguments and separate handling for --no-<option> 12326 123272017-05-02 Tim Rühsen <tim.ruehsen@gmx.de> 12328 12329 *libwget/strlcpy.c: Fix wget_strlcpy on OSX / BSD 12330 123312017-05-02 Tim Rühsen <tim.ruehsen@gmx.de> 12332 12333 Rename strlcpy to wget_strlcpy 12334 12335 * include/wget/wget.h: Rename and remove gnulib deps. 12336 * libwget/strlcpy.c: Rename function and fall back to strlcpy. 12337 * */*.c: Rename strlcpy to wget_strlcpy. 12338 123392017-05-02 Tim Rühsen <tim.ruehsen@gmx.de> 12340 12341 Amend --http-proxy and --https-proxy behavior 12342 12343 * libwget/http.c (_parse_proxies): Alloc vector on demand 12344 * src/options.c (wget_http_set_http_proxy): Return # of proxies 12345 successfully parsed, 12346 (wget_http_set_https_proxy). Likewise. 12347 * src/options.c (init): Empty and undefined proxy variable is the same. 12348 * tests/test.c (test_set_proxy): Amend tests. 12349 123502017-05-02 Avinash Sonawane <rootkea@gmail.com> 12351 12352 Remove unnecessary `while` loop & add test 12353 12354 * libwget/http.c (_parse_proxies): Remove non-required `while` 12355 * tests/test.c (test_set_proxy): Add test with leading whitespaces 12356 123572017-05-01 Avinash Sonawane <rootkea@gmail.com> 12358 12359 Add tests for wget_http_set_http(s)_proxy() functions 12360 12361 * tests/test.c (test_set_proxy): Add tests for wget_http_set_http_proxy() 12362 * tests/test.c (test_set_proxy): Add tests for wget_http_set_https_proxy() 12363 * libwget/http.c (wget_http_set_http_proxy): Return length of http_proxies if no parse error 12364 * libwget/http.c (wget_http_set_https_proxy): Return length of https_proxies if no parse error 12365 123662017-05-01 Tim Rühsen <tim.ruehsen@gmx.de> 12367 12368 * src/wget.c: Remove WIN32 futimens() implementation 12369 12370 The newest gnulib brings WIN32 futimens(). 12371 123722017-05-01 Tim Rühsen <tim.ruehsen@gmx.de> 12373 12374 *gnulib: Update 12375 123762017-04-30 Tim Rühsen <tim.ruehsen@gmx.de> 12377 12378 Fix syntax-check 'sc_prohibit_have_config_h' 12379 12380 * cfg.mk: Remove sc_prohibit_have_config_h from local-checks-to-skip 12381 * libwget/*.c: Include <config.h> unconditionally 12382 * src/*.c: Likewise 12383 * tests/*.c: Likewise 12384 123852017-04-30 Tim Rühsen <tim.ruehsen@gmx.de> 12386 12387 Remove useless parens (syntax-check) 12388 12389 * include/wget/wget.h: Remove useless parens 12390 * libwget/ssl_gnutls.c: Likewise 12391 123922017-04-30 Tim Rühsen <tim.ruehsen@gmx.de> 12393 12394 Remove gnulib dependencies from examples and wget.h 12395 12396 * cfg.mk: Add examples as excludes for config.h 12397 * examples/Makefile.am: Remove -I to srcdir and builddir 12398 * examples/*.c: Remove #include <config.h> 12399 * include/wget/wget.h: Remove gettext include and defines 12400 * libwget/private.h: Add gettext include and defines 12401 * src/wget_main.h: Likewise 12402 * tests/libtest.h: Likewise 12403 * src/log.c: Add #include <string.h> 12404 124052017-04-29 Tim Rühsen <tim.ruehsen@gmx.de> 12406 12407 * cfg.mk: New file with rules for 'make syntax-check' 12408 124092017-04-29 Tim Rühsen <tim.ruehsen@gmx.de> 12410 12411 Remove useless cpp parens (syntax-check) 12412 124132017-04-29 Tim Rühsen <tim.ruehsen@gmx.de> 12414 12415 Remove trailing whitespaces (syntax-check) 12416 124172017-04-29 Tim Rühsen <tim.ruehsen@gmx.de> 12418 12419 Fix space-tab sequences (syntax-check) 12420 124212017-04-29 Tim Rühsen <tim.ruehsen@gmx.de> 12422 12423 * libwget/net.c: Satisfy sc_require_config_h (syntax-check) 12424 124252017-04-29 Tim Rühsen <tim.ruehsen@gmx.de> 12426 12427 * bootstrap: Update to version 19 12428 124292017-04-29 Tim Rühsen <tim.ruehsen@gmx.de> 12430 12431 Remove == from scripts (syntax-check) 12432 12433 * .travis.sh: == -> = 12434 * .travis_setup.sh: Likewise 12435 * contrib/gen_option_diff.sh: Likewise 12436 124372017-04-29 Tim Rühsen <tim.ruehsen@gmx.de> 12438 12439 Do not include unused strings.h 12440 12441 * examples/getstream.c: Remove #include <strings.h> 12442 * libwget/css.c: Likewise 12443 * libwget/encoding.c: Likewise 12444 * libwget/hashfile.c: Likewise 12445 * libwget/metalink.c: Likewise 12446 * libwget/net.c: Likewise 12447 * libwget/robots.c: Likewise 12448 * src/wget.c: Likewise 12449 124502017-04-29 Tim Rühsen <tim.ruehsen@gmx.de> 12451 12452 * src/options.c: Use EXIT_SUCCESS (syntax-check) 12453 124542017-04-29 Tim Rühsen <tim.ruehsen@gmx.de> 12455 12456 * src/wget.c: Remove double colons (syntax-check) 12457 124582017-04-29 Tim Rühsen <tim.ruehsen@gmx.de> 12459 12460 * po/POTFILES.in: Update (syntax-check) 12461 124622017-04-29 Tim Rühsen <tim.ruehsen@gmx.de> 12463 12464 Spell filesystem 'file system' (syntax-check) 12465 12466 * docs/wget2_manual.md: filesystem -> file system 12467 * tests/libtest.c: Likewise 12468 * tests/libtest.h: Likewise 12469 * tests/test-wget-1.c: Likewise 12470 124712017-04-29 Tim Rühsen <tim.ruehsen@gmx.de> 12472 12473 * libwget/net.c: Use O_NONBLOCK instead of O_NDELAY (syntax-check) 12474 124752017-04-29 Tim Rühsen <tim.ruehsen@gmx.de> 12476 12477 * configure.ac: Add --disable-doc / --enable-doc (default) 12478 124792017-04-27 Darshit Shah <darnir@gnu.org> 12480 12481 * libwget/bar.c: Allocate all memory for progress display together 12482 124832017-04-27 Darshit Shah <darnir@gnu.org> 12484 12485 Prevent tiny memory allocations when globbing 12486 12487 * libwget/utils.c: Rename wget_strnglob to wget_strglob. It now calls 12488 glob on the entire string. 12489 * include/wget/wget.h: Change protoype of wget_strnglob 12490 * src/options.c: Change calls to wget_strnglob to use new wget_strglob 12491 calls 12492 124932017-04-27 Darshit Shah <darnir@gnu.org> 12494 12495 Improve the benchmark scripts slightly 12496 124972017-04-26 Tim Rühsen <tim.ruehsen@gmx.de> 12498 12499 Add error handler for decompression 12500 12501 * include/wget/wget.h: New functions wget_decompress_set_error_handler() 12502 and wget_decompress_get_context(). 12503 * libwget/decompressor.c: New functions wget_decompress_set_error_handler() 12504 and wget_decompress_get_context(). 12505 * libwget/http.c: Implement and set decompressor error handler. 12506 125072017-04-13 Michael Heerklotz <michael.heerklotz@check24.de> 12508 12509 Added a more detailed logging for HTTP errors 12510 * src/wget.c: More detailed logging for HTTP response code 12511 125122017-04-25 Tim Rühsen <tim.ruehsen@gmx.de> 12513 12514 * src/options.c: Remove double 'help' option 12515 125162017-04-24 Tim Rühsen <tim.ruehsen@gmx.de> 12517 12518 * libwget/encoding.c (wget_str_to_ascii): Fall back to TR46 transitional on error 12519 125202017-04-24 Tim Rühsen <tim.ruehsen@gmx.de> 12521 12522 * .gitlab-ci.yml: Create coverage report and online docs 12523 125242017-04-24 Darshit Shah <darnir@gnu.org> 12525 12526 Updated CI configuration 12527 125282017-04-25 Tim Rühsen <tim.ruehsen@gmx.de> 12529 12530 * README.md: Update 12531 125322017-04-23 Tim Rühsen <tim.ruehsen@gmx.de> 12533 12534 Add Gitlab CI (Debian) 12535 12536 * .gitlab-ci.yml: New file 12537 125382017-04-22 Darshit Shah <darnir@gnu.org> 12539 12540 * libwget/buffer_printf.c: Cast output of va_arg correctly 12541 125422017-04-21 Avinash Sonawane <rootkea@gmail.com> 12543 12544 * src/options.c (print_version): Remove redundant preprocessor check 125452017-04-21 Tim Rühsen <tim.ruehsen@gmx.de> 12546 12547 Fix --chunk-size with missing Content-Length 12548 12549 * src/wget.c (process_head_response): Don't release job after HEAD 12550 * tests/libtest.c: Implement WGET_TEST_SERVER_SEND_CONTENT_LENGTH 12551 * tests/libtest.h: Define WGET_TEST_SERVER_SEND_CONTENT_LENGTH 12552 * tests/test-wget-1.c: Add new tests for --chunk-size 12553 125542017-04-13 Tim Rühsen <tim.ruehsen@gmx.de> 12555 12556 * src/job.c (job_validate_file): Fix --chunk-size for partially existing files 12557 125582017-04-20 Tim Rühsen <tim.ruehsen@gmx.de> 12559 12560 Hide wget_cookie_st 12561 12562 * include/wget/wget.h: Remove struct wget_cookie_st declaration, 12563 add wget_cookie_to_setcookie(), 12564 add wget_cookie_parse_setcookie(), 12565 change wget_http_parse_setcookie() cookie param. 12566 * libwget/cookie.c: Add struct wget_cookie_st declaration, 12567 (wget_cookie_init): Use xcalloc(), 12568 (wget_cookie_to_setcookie): New function, 12569 (wget_cookie_parse_setcookie): New function, 12570 (_wget_cookie_normalize_cookie): Fix host_only flag. 12571 * libwget/http.c (wget_http_parse_setcookie): Code moved to 12572 wget_http_parse_setcookie(), 12573 (wget_http_parse_response_header): Amend cookie handling. 12574 * tests/test.c (test_cookies): Amend test code and test data. 12575 125762017-04-17 Darshit Shah <darnir@gnu.org> 12577 12578 * src/options.c: Handle --version similar to --help 12579 125802017-04-18 Michael Heerklotz <michael.heerklotz@check24.de> 12581 12582 Ignore all anchor links instead of only '#' 12583 12584 * examples/check_url_types.c: Modified _normalize_uri() to ignore all anchor links 12585 * examples/print_css_urls2.c: Removed check for anchor links 12586 * src/wget.c: Modified _normalize_uri() and _convert_links() to ignore all anchor links 12587 125882017-04-19 Tim Rühsen <tim.ruehsen@gmx.de> 12589 12590 Fix spelling issues found by ka7/misspell_fixer 12591 12592 * include/wget/wget.h: Fix typo 12593 * libwget/base64.c: Likewise 12594 * libwget/http.c: Likewise 12595 * src/wget.c: Likewise 12596 125972017-04-18 Tim Rühsen <tim.ruehsen@gmx.de> 12598 12599 * README.md: Mention 'bash ./bootstrap' 12600 126012017-04-16 Tim Rühsen <tim.ruehsen@gmx.de> 12602 12603 * libwget/encoding.c (wget_memiconv): Treat non-reversible conversion as error 12604 126052017-04-15 Tim Rühsen <tim.ruehsen@gmx.de> 12606 12607 Fix -c --chunk-size if the file is already complete 12608 12609 * src/wget.c (process_response_header): Check for status 416 12610 * tests/test-wget-1.c: Added 2 tests 12611 126122017-04-15 Tim Rühsen <tim.ruehsen@gmx.de> 12613 12614 * src/wget.c (_body_callback_context): Change size of max_memory and length to 64bit 12615 126162017-04-14 Tim Rühsen <tim.ruehsen@gmx.de> 12617 12618 * benchmarks/bench_https_http*: Add warmup runs 12619 126202017-04-13 Michael Heerklotz <michael.heerklotz@check24.de> 12621 12622 Added settings --cut-url-get-vars and --cut-file-get-vars and fixed --backups 12623 12624 * docs/wget2_manual.md: Added doc for the new settings 12625 * src/options.c: Fixed --backups and added --cut-url-get-vars and --cut-file-get-vars 12626 * src/wget.c: Added --cut-url-get-vars and --cut-file-get-vars 12627 * src/wget_options.h: Added --cut-url-get-vars and --cut-file-get-vars 12628 * tests/Makefile.am: Added test-cut-get-vars 12629 * test-cut-get-vars.c: New file 12630 126312017-04-13 Tim Rühsen <tim.ruehsen@gmx.de> 12632 12633 * libwget/html_url.c (_css_parse_uri): Fix -Wunused-param 12634 126352017-04-13 Michael Heerklotz <michael.heerklotz@check24.de> 12636 12637 Fixed crash in convert-links code introduced with html css parsing 12638 12639 * include/wget/wget.h: Removed unused variable. 12640 * libwget/html_url.c: Updated code to always return pointer inside "html" variable. 12641 * test/test-k.c: Updated test to cover the bug. 12642 126432017-04-13 Tim Rühsen <tim.ruehsen@gmx.de> 12644 12645 * libwget/html_url.c: Remove empty _css_parse_encoding() 12646 126472017-04-13 Darshit Shah <darnir@gnu.org> 12648 12649 * libwget/html_url.c: Remove some trailing whitespaces 12650 126512017-04-12 Michael Heerklotz <michael.heerklotz@check24.de> 12652 12653 Added support for html css style tag and attribute 12654 12655 * include/wget/wget.h: Add 'size_t len' to wget_css_parse_buffer() 12656 and wget_css_get_urls() 12657 * libwget/css.c (wget_css_parse_buffer): Use yy_scan_bytes() instead 12658 of yy_scan_string() 12659 * libwget/css_url.c: Add param to wget_css_get_urls() and 12660 wget_css_parse_buffer() 12661 * libwget/html_url.c: Add _css_parse_encoding() and _css_parse_uri(), 12662 (_html_get_url): Deal with 'style' attribute, 12663 (wget_html_free_urls_inline): Free url if needed 12664 * libwget/test_linking.c: Add param to wget_css_parse_buffer() 12665 * libwget/xml.c (parseXML): Add check for 'style' 12666 * src/wget.c (css_parse): Add param 'size_t len' 12667 * tests/Makefile.am: Add new test test-parse-html-css 12668 * tests/test-parse-html-css.c: New file 12669 126702017-04-12 Tim Rühsen <tim.ruehsen@gmx.de> 12671 12672 Follow link:rel=preload with --page-requisites 12673 12674 * libwget/html_url.c (_html_get_url): Add rel=preload to be followed 12675 * tests/test--page-requisites.c: Add a test href for rel=preload 12676 126772017-04-12 Tim Rühsen <tim.ruehsen@gmx.de> 12678 12679 Fix --page-requisites <link> handling 12680 12681 * libwget/html_url.c: Add helper ctx->uri_index, 12682 fix "icon shortcut" -> "shortcut icon", 12683 fix check for "stylesheet" 12684 * src/wget.c (html_parse): Check for !html_url->link_inline 12685 * tests/test--page-requisites.c: Add 'not.txt' URL and reference 12686 126872017-04-12 Tim Rühsen <tim.ruehsen@gmx.de> 12688 12689 Add special HTML to test--page-requisites.c 12690 12691 * tests/test--page-requisites.c: Add HTML code 12692 12693 With --page-requisites shortcut icons should not be followed. 12694 Link with rel="stylesheet" should be followed. 12695 126962017-04-12 Tim Rühsen <tim.ruehsen@gmx.de> 12697 12698 Fix progress bar when off_t is 32 bits 12699 12700 * include/wget/wget.h: Amend prototype of wget_human_readable() 12701 * libwget/bar.c: Use uint64_t instead of off_t 12702 * libwget/utils.c (wget_human_readable): Change 3rd param off_t -> uint64_t 12703 127042017-04-12 Tim Rühsen <tim.ruehsen@gmx.de> 12705 12706 * libwget/init.c (wget_global_init): Init console 12707 127082017-04-12 Tim Rühsen <tim.ruehsen@gmx.de> 12709 12710 * libwget/console.c (_reset_color): Do not reset color if stdout is not a TTY 12711 127122017-04-12 Tim Rühsen <tim.ruehsen@gmx.de> 12713 12714 * tests/test-cut-dirs.c: Add more tests 12715 127162017-04-12 Tim Rühsen <tim.ruehsen@gmx.de> 12717 12718 * src/wget.c (_prepare_file): Case-insensitive check for WIN32 NUL file 12719 127202017-04-12 Michael Heerklotz <michael.heerklotz@check24.de> 12721 12722 Fix --cut-dirs 12723 12724 * src/wget.c (get_local_filename): Add / after host part 12725 * tests/Makefile.am: Add new test 'test-cut-dirs' 12726 * tests/test-cut-dirs.c: New file 12727 127282017-04-11 Tim Rühsen <tim.ruehsen@gmx.de> 12729 12730 * Makefile.am: Add empty line to ChangeLog after date/author 12731 127322017-04-11 Tim Rühsen <tim.ruehsen@gmx.de> 12733 12734 * tests/libtest.c (_ftp_server_thread): Remove redundant check for WIN64 12735 127362017-04-11 Tim Rühsen <tim.ruehsen@gmx.de> 12737 12738 * libwget/pipe.c: Remove redundant check for WIN64 12739 127402017-04-11 Tim Rühsen <tim.ruehsen@gmx.de> 12741 12742 Fix handling of -O /dev/null 12743 12744 * src/wget.c (_prepare_file): Return -2 if filename is /dev/null, 12745 (http_receive_response): Check outfd for >= 0 12746 12747 Reported-by: Gisle Vanem 12748 127492017-04-11 Darshit Shah <darnir@gnu.org> 12750 12751 Prevent wget2rc from being read during tests 12752 12753 * src/options.c: Treat parse_filename{,s} as string vectors and clear 12754 them with a no-* command line option 12755 * tests/libtest.c: Pass --no-config to all the tests by default 12756 127572017-04-11 Tim Rühsen <tim.ruehsen@gmx.de> 12758 12759 * libwget/css_tokenizer.lex: Use clang #pragma for -Wshorten-64-to-32 12760 127612017-04-11 Tim Rühsen <tim.ruehsen@gmx.de> 12762 12763 Fix --chunk-size / -O combination 12764 12765 * src/wget.c (process_head_response): Set metalink->name if 12766 config.output_document is set. 12767 12768 Reported-by: Gisle Vanem 12769 Fixes: #177 12770 127712017-04-10 Tim Rühsen <tim.ruehsen@gmx.de> 12772 12773 Generate prettier ChangeLog from git log 12774 12775 * Makefile.am (gen_changelog): Use git log directly without 12776 additional gnulib tools. 12777 127782017-04-10 Tim Rühsen <tim.ruehsen@gmx.de> 12779 12780 * src/wget.c (_prepare_file): Skip saving to '/dev/null' resp. 'NUL' on WIN32 12781 127822017-04-10 Avinash Sonawane <rootkea@gmail.com> 12783 12784 * configure.ac: Add "-fPIC -pie" for Thread sanitizer 12785 127862017-04-10 Avinash Sonawane <rootkea@gmail.com> 12787 12788 * configure.ac: Fix test for asan and tsan being mutually exclusive 12789 * configure.ac: Fix test for asan and tsan being mutually exclusive 12790 * configure.ac: Make `./configure --help` document about msan and tsan being mutually exclusive 12791 127922017-04-09 Avinash Sonawane <rootkea@gmail.com> 12793 12794 * configure.ac: Check for msan and tsan being mutually exclusive 12795 127962017-04-09 Avinash Sonawane <rootkea@gmail.com> 12797 12798 * configure.ac: Check for Valgrind and Sanitizers being mutually exclusive 12799 12800 * configure.ac: Check for valgrind and Sanitizers being mutually exclusive 12801 * configure.ac: Make ./configure --help document above check 12802 * configure.ac: Make ./configure --help document the existing check of asan and msan 12803 128042017-04-08 Darshit Shah <darnir@gnu.org> 12805 12806 * docs/libwget.doxy: Fix path to libwget header file for documentation 12807 128082017-04-07 Tim Rühsen <tim.ruehsen@gmx.de> 12809 12810 * libwget/css_tokenizer.lex: Suppress clang warnings 12811 128122017-04-07 Tim Rühsen <tim.ruehsen@gmx.de> 12813 12814 * examples/check_url_types.c: Fix clang warning 12815 128162017-04-07 Tim Rühsen <tim.ruehsen@gmx.de> 12817 12818 * libwget/net.c: Support TCP Fast Open on OSX via connectx() 12819 128202017-04-07 Darshit Shah <darnir@gnu.org> 12821 12822 * configure.ac: Don't complain when exhaustive switch has default case 12823 128242017-04-07 Darshit Shah <darnir@gnu.org> 12825 12826 *libwget/http.c: Remove unused attribute from used parameters 12827 128282017-04-07 Darshit Shah <darnir@gnu.org> 12829 12830 *libwget/net.c: Silence clang's -Wconditional-uninitialized 12831 128322017-04-07 Darshit Shah <darnir@gnu.org> 12833 12834 src/options.c (parse_command_line): Silence compiler warning for precision loss 12835 128362017-04-07 Darshit Shah <darnir@gnu.org> 12837 12838 * src/log.c: Silence -Wunused-parameter when not on Windows 12839 128402017-04-07 Darshit Shah <darnir@gnu.org> 12841 12842 * configure.ac: Prevent some useless clang warnings 12843 128442017-04-07 Tim Rühsen <tim.ruehsen@gmx.de> 12845 12846 * libwget/http.c (wget_http_open): Disable push for HTTP/2 connections 12847 128482017-04-07 Tim Rühsen <tim.ruehsen@gmx.de> 12849 12850 Revert "* libwget/net.c: Silence -Wundef if TCP_FASTOPEN is undefined" 12851 12852 This reverts commit 2c17f6fc429f4e1edf78b329ff3509d1ed22f392. 12853 128542017-04-06 Tim Rühsen <tim.ruehsen@gmx.de> 12855 12856 Fix libraries to use libtool variables 12857 12858 * examples/Makefile.am: Use $(LTLIBICONV) $(LTLIBINTL) $(LTLIBTHREAD) 12859 * src/Makefile.am: Likewise 12860 * tests/Makefile.am: Likewise 12861 128622017-04-06 Tim Rühsen <tim.ruehsen@gmx.de> 12863 12864 * libwget/utils.c (wget_get_screen_size): Fix return value 12865 128662017-04-06 Tim Rühsen <tim.ruehsen@gmx.de> 12867 12868 gnulib: Update 12869 128702017-04-06 Tim Rühsen <tim.ruehsen@gmx.de> 12871 12872 * src/wget.c: Silence -Wbad-function-cast in WIN32 futimens() 12873 128742017-04-06 Tim Rühsen <tim.ruehsen@gmx.de> 12875 12876 * libwget/ssl_gnutls.c: Silence -Wunused-parameter if GnuTLS isn't available 12877 128782017-04-06 Tim Rühsen <tim.ruehsen@gmx.de> 12879 12880 * libwget/utils.c: Silence -Wunused-parameter if HAVE_IOCTL is undefined 12881 128822017-04-06 Tim Rühsen <tim.ruehsen@gmx.de> 12883 12884 * libwget/net.c: Silence -Wundef if TCP_FASTOPEN is undefined 12885 128862017-04-06 Tim Rühsen <tim.ruehsen@gmx.de> 12887 12888 * libwget/hashfile.c: Silence -Wundef from gnulib's hash code 12889 128902017-04-06 Tim Rühsen <tim.ruehsen@gmx.de> 12891 12892 * libwget/cookie.c: Silence -Wunused-parameter if without LIBPSL 12893 128942017-04-06 Tim Rühsen <tim.ruehsen@gmx.de> 12895 12896 * include/wget/wget.h: Silence -Wundef from gnulib's gettext.h 12897 128982017-04-06 Tim Rühsen <tim.ruehsen@gmx.de> 12899 12900 * configure.ac: Reduce warnings from gnulib code 12901 129022017-04-06 Tim Rühsen <tim.ruehsen@gmx.de> 12903 12904 gnulib: Update 12905 129062017-04-05 Darshit Shah <darnir@gnu.org> 12907 12908 * .gitignore: Update gitignore file with new tests and examples executables 12909 129102017-04-05 Darshit Shah <darnir@gnu.org> 12911 12912 * src/options.c: Ensure --hpkp-file is tilde expanded as well 12913 129142017-04-05 Tim Rühsen <tim.ruehsen@gmx.de> 12915 12916 Fix -Wundef warnings 12917 12918 * libwget/decompressor.c: #if -> #ifdef 12919 * libwget/http.c: Likewise 12920 * libwget/net.c: Likewise 12921 * src/wget.c: Likewise 12922 129232017-04-05 Tim Rühsen <tim.ruehsen@gmx.de> 12924 12925 * m4/wget_manywarnings.m4: Fix for MinGW 12926 129272017-04-05 Tim Rühsen <tim.ruehsen@gmx.de> 12928 12929 * configure.ac: Remove -Wformat when cross-compiling 12930 129312017-04-05 Darshit Shah <darnir@gnu.org> 12932 12933 * src/options.c: Add hpkp-file to output of wget2 --help 12934 129352017-04-05 Tim Rühsen <tim.ruehsen@gmx.de> 12936 12937 * src/options.c: Only read 'no_proxy' if proxy settings exist 12938 129392017-04-05 Tim Rühsen <tim.ruehsen@gmx.de> 12940 12941 Add support for 'no_proxy' environment variable 12942 12943 * include/wget/wget.h: Add flag 'proxied' to wget_http_connection_t, 12944 add arg 'proxied' to wget_http_request_to_buffer(), 12945 add new function declaration wget_http_set_no_proxy(), 12946 add new function declaration wget_http_match_no_proxy(). 12947 * libwget/http.c: Add variable 'no_proxies', 12948 (wget_http_open): Check host against 'no_proxy' and set 'conn->proxied' 12949 when appropriate, 12950 (wget_http_send_request): Call wget_http_request_to_buffer() with 12951 conn->proxied, 12952 (wget_http_request_to_buffer): Check 'proxied', 12953 (_parse_proxies): Cleanup, 12954 (_parse_no_proxies): New function, 12955 (wget_http_set_no_proxy): New function, 12956 (wget_http_match_no_proxy): New function 12957 * libwget/init.c (wget_global_deinit): Free no_proxy memory 12958 * libwget/ip.c: Add code in comments (for later use) 12959 * libwget/utils.c (wget_match_tail, wget_match_tail_nocase): Cleanup 12960 * src/options.c (init): Handle 'no_proxy' env variable 12961 * src/wget_options.h (struct config): Add no_proxy member 12962 129632017-04-04 Didik Setiawan <ds@didiksetiawan.com> 12964 12965 Fix illegal memory access when parsing null-terminated string 12966 129672017-03-28 Didik Setiawan <ds@didiksetiawan.com> 12968 12969 * tests/test.c: Add wget_robots_parse unit test 12970 129712017-04-04 Tim Rühsen <tim.ruehsen@gmx.de> 12972 12973 Add futimens() implementation for _WIN32 12974 12975 * src/wget.c: Add futimens() if _WIN32 is defined 12976 12977 Reported-by: Gisle Vanem 12978 Fixes: #167 12979 129802017-04-04 Avinash Sonawane <rootkea@gmail.com> 12981 12982 Use time_t instead of long 12983 12984 * include/wget/wget.h : Use time_t instead of long 12985 12986 Reported-by : Gisle Vanem 12987 129882017-04-04 Avinash Sonawane <rootkea@gmail.com> 12989 12990 Use https:// instead of git:// 12991 12992 * .gitmodule: Use https:// instead of git:// to support proxy environments 129932017-04-02 Akash Rawal <argmlac@gmail.com> 12994 12995 * libwget/http.c: Avoid signed integer overflow due to intermediate ptrdiff_t by casting operands to uintptr_t 12996 129972017-03-31 Tim Rühsen <tim.ruehsen@gmx.de> 12998 12999 * README.md: Add section about clang's CFI 13000 130012017-03-30 Tim Rühsen <tim.ruehsen@gmx.de> 13002 13003 * tests/test-metalink.c: Free allocated memory to satisfy leak sanitizer 13004 130052017-03-30 Tim Rühsen <tim.ruehsen@gmx.de> 13006 13007 Fix --enable-fsanitize-msan for gcc 13008 13009 * configure.ac: Add -fsanitize=leak if available 13010 130112017-03-30 Tim Rühsen <tim.ruehsen@gmx.de> 13012 13013 Fix logical operator in brotli code 13014 13015 * libwget/decompressor.c (brotli_decompress): Fix expression 13016 13017 Reported-by: Coverity Scan (cid: 165234) 13018 130192017-03-30 Tim Rühsen <tim.ruehsen@gmx.de> 13020 13021 Fix possible NULL ptr dereference 13022 13023 * src/wget.c (process_response): Check value for wget_metalink_parse() 13024 13025 Reported-by: Coverity Scan (cid: 149094) 13026 130272017-03-30 Tim Rühsen <tim.ruehsen@gmx.de> 13028 13029 Fix VPATH issue for test suite 13030 13031 * tests/Makefile.am: Set SRCDIR to $(abs_srcdir) 13032 * tests/libtest.c: Remove '../' in front of SRCDIR 13033 * tests/test-i-https.c: Likewise 13034 13035 Reported-by: Akash Rawal 13036 130372017-03-29 Akash Rawal <argmlac@gmail.com> 13038 13039 Fix path of valgrind-suppressions in vpath build 13040 13041 * tests/Makefile.am: For libtests.la, define VGSUPPFILE to absolute path to 13042 tests/valgrind-suppressions 13043 * tests/libtest.c: Use VGSUPPFILE macro instead of hardcoded path to 13044 valgrind-suppressions 13045 130462017-03-29 Tim Rühsen <tim.ruehsen@gmx.de> 13047 13048 Fix documentation of wget_vaprintf and wget_aprintf 13049 13050 * libwget/printf.c: Both functions do not return NULL. 13051 130522017-03-29 Tim Rühsen <tim.ruehsen@gmx.de> 13053 13054 * configure.ac: Add -Wdeclaration-after-statement to unwanted options (C89 only) 13055 130562017-03-29 Tim Rühsen <tim.ruehsen@gmx.de> 13057 13058 * m4/wget_manywarnings.m4: Call gcc instead of gcc 13059 130602017-03-29 Tim Rühsen <tim.ruehsen@gmx.de> 13061 13062 * m4/wget_manywarings.m4: Add extra options only for gcc >= 6 13063 130642017-03-29 Avinash Sonawane <rootkea@gmail.com> 13065 13066 Use atoll() instead of atol() for time_t variables 13067 13068 * libwget/cookie.c: Use atoll() instead of atol() 13069 * libwget/hsts.c: Likewise 13070 * libwget/http.c: Likewise 13071 * libwget/ocsp.c: Likewise 13072 * libwget/tls_session.c: Likewise 13073 * libwget/hpkp.c: Change type of maxage from long to time_t 13074 130752017-03-29 Tim Rühsen <tim.ruehsen@gmx.de> 13076 13077 * .travis.sh: Set CFLAGS to '-O0 -g' 13078 130792017-03-29 Avinash Sonawane <rootkea@gmail.com> 13080 13081 Read and write time_t as long long int 13082 13083 * libwget/cookie.c: Write time_t as long long int 13084 * libwget/hsts.c: Likewise 13085 * libwget/ocsp.c: Likewise 13086 * libwget/tls_session.c: Likewise 13087 * libwget/hpkp.c: Read and write time_t as long long int 13088 13089 Reported-By: Tim Rühsen 13090 130912017-03-28 Darshit Shah <darnir@gnu.org> 13092 13093 Prevent a NULL pointer dereference 13094 13095 * src/options.c (parse_header): Prevent derefencing a potential NULL 13096 pointer 13097 13098 Reported-by: Coverity Scan (cid: 165230) 13099 131002017-03-28 Darshit Shah <darnir@gnu.org> 13101 13102 Fix resource leak 13103 13104 * libwget/http.c (_on_header_callback): Prevent leaking memory when 13105 there is an empty HTTP2 response 13106 13107 Reported-by: Coverity Scan (cid: 165231) 13108 131092017-03-28 Darshit Shah <darnir@gnu.org> 13110 13111 Prevent resource leak 13112 13113 * src/wget.c (_normalize_uri): Prevent leaking resource urlpart when the 13114 url is just "#". 13115 13116 Reported-by: Coverity Scan (cid: 165232) 13117 131182017-03-27 Tim Rühsen <tim.ruehsen@gmx.de> 13119 13120 Skip IDNA tests when IDNA not available 13121 13122 * libwget/encoding.c: Fix #ifdef 13123 * tests/test-idn-cmd.c: Skip if IDNA not available 13124 * tests/test-idn-meta.c: Likewise 13125 * tests/test-idn-robots.c: Likewise 13126 * tests/test.c (test_iri_parse): Skip IDN test 13127 131282017-03-25 Tim Rühsen <tim.ruehsen@gmx.de> 13129 13130 * examples/check_url_types.c: Move #include <signal.h> further to the top 13131 131322017-03-26 Akash Rawal <argmlac@gmail.com> 13133 13134 Fix vpath builds 13135 13136 * examples/Makefile.am: Add -DWGETVER_FILE to AM_CPPFLAGS 13137 * libwget/Makefile.am: Likewise 13138 * src/Makefile.am: Likewise 13139 * tests/Makefile.am: Likewise 13140 * include/wget/wget.h: Include WGETVER_FILE if defined 13141 131422017-03-25 Tim Rühsen <tim.ruehsen@gmx.de> 13143 13144 Fix regression regarding chunked transfer-encoding 13145 13146 * libwget/http.c (wget_http_get_response_cb): Save data when chunk 13147 complete in one data packet. 13148 * tests/Makefile.am: Add new test 'test-chunked' 13149 * tests/test-chunked.c: New test 13150 131512017-03-23 Tim Rühsen <tim.ruehsen@gmx.de> 13152 13153 * libwget/encoding.c: Include idn-free.h on _WIN32 13154 131552017-03-23 Tim Rühsen <tim.ruehsen@gmx.de> 13156 13157 * libwget/xalloc.c (wget_calloc): Init *p explicit (_noreturn issue) 13158 131592017-03-23 Gisle Vanem <gvanem@yahoo.no> 13160 13161 * libwget/xalloc.c (wget_realloc): Initialize variable p to NULL 13162 131632017-03-23 Avinash Sonawane <rootkea@gmail.com> 13164 13165 Fix misuse of libidn & libidn2 memory 13166 13167 * libwget/encoding.c (wget_str_to_ascii): 13168 Free libidn memory with idn_free(), 13169 Free libidn2 memory with idn2_free() 13170 131712017-03-23 Tim Rühsen <tim.ruehsen@gmx.de> 13172 13173 Fix chunk overflow in HTTP download for 32bit systems 13174 13175 * libwget/http.c: Check for pointer overflow 13176 * tests/test-bad-chunk.c: Adjust tests 13177 13178 Reported-by: Dagobert Michelsen 13179 131802017-03-21 Tim Rühsen <tim.ruehsen@gmx.de> 13181 13182 * libwget/random.c: Include process.h on Windows 13183 131842017-03-21 Tim Rühsen <tim.ruehsen@gmx.de> 13185 13186 Fix console colors for Windows 13187 13188 * include/wget/wget.h: Add WGET_CONSOLE_COLOR_MAGENTA 13189 * libwget/console.c: Add WGET_CONSOLE_COLOR_MAGENTA 13190 * src/log.c: Add colors to write functions 13191 13192 Reported-by: Gisle Vanem 13193 131942017-03-21 Tim Rühsen <tim.ruehsen@gmx.de> 13195 13196 * libwget/html_url.c (_html_get_url): Fix commented info_printf line 13197 131982017-03-21 Tim Rühsen <tim.ruehsen@gmx.de> 13199 13200 * src/options.c: Do not include wordexp.h 13201 132022017-03-21 Tim Rühsen <tim.ruehsen@gmx.de> 13203 13204 * libwget/console.c (wget_console_set_fg_color): Fix WIN32 code 13205 132062017-03-21 Tim Rühsen <tim.ruehsen@gmx.de> 13207 13208 NEWS: Mention brotli compression support 13209 132102017-03-20 Tim Rühsen <tim.ruehsen@gmx.de> 13211 13212 Use IDNA2008 + TR46 non-transitional for IRIs 13213 13214 * libwget/encoding.c: Fix unistring includes, 13215 (wget_str_to_ascii): Check for libidn2 version 13216 * src/options.c (init): Remove "unistring" output for --version 13217 132182017-03-13 Tim Rühsen <tim.ruehsen@gmx.de> 13219 13220 * tests/test-k.c: Test link within <script> tag 13221 132222017-03-10 Tim Rühsen <tim.ruehsen@gmx.de> 13223 13224 Update AUTHORS and NEWS 13225 132262017-03-10 Tim Rühsen <tim.ruehsen@gmx.de> 13227 13228 Check NULL value param in wget_iri_escape() 13229 13230 * include/wget/wget.h: Remove G_GNUC_WGET_NONNULL_ALL from wget_iri_escape 13231 * libwget/iri.c (wget_iri_escape): Check 'src' for NULL value 13232 132332017-03-10 Tim Rühsen <tim.ruehsen@gmx.de> 13234 13235 * examples/check_url_types.c (html_parse): Fix possible crash 13236 132372017-03-09 Tim Rühsen <tim.ruehsen@gmx.de> 13238 13239 Check for invalid 'BASE' URLs in HTML 13240 13241 * src/wget.c (html_parse): Check if 'base' parses correctly 13242 * tests/test-base.c: Add test with invalid base URL 13243 132442017-03-08 Tim Rühsen <tim.ruehsen@gmx.de> 13245 13246 * libwget/tls_session.c: Make code similar to hsts.c 13247 132482017-03-08 Tim Rühsen <tim.ruehsen@gmx.de> 13249 13250 * libwget/hpkp.c: Make code similar to hsts.c 13251 132522017-03-08 Tim Rühsen <tim.ruehsen@gmx.de> 13253 13254 * libwget/hsts.c: Be compliant with Wget 1.x 13255 132562017-03-08 Tim Rühsen <tim.ruehsen@gmx.de> 13257 13258 * libwget/hpkp.c (wget_hpkp_db_add): NULLify freed pointer 13259 132602017-03-07 Tim Rühsen <tim.ruehsen@gmx.de> 13261 13262 * libwget/ssl_gnutls.c: Improve msg for invalid OCSP stapling status 13263 132642017-03-07 Tim Rühsen <tim.ruehsen@gmx.de> 13265 13266 Fix .netrc parsing 13267 13268 * include/wget/wget.h (_wget_netrc_db_st): Rename .key to .host 13269 * libwget/netrc.c (wget_netrc_db_add): Fix parsing 13270 * tests/test.c: New function test_netrc() 13271 132722017-03-07 Tim Rühsen <tim.ruehsen@gmx.de> 13273 13274 * src/wget.c (process_response_header): Fix formatting 13275 132762017-03-05 Tim Rühsen <tim.ruehsen@gmx.de> 13277 13278 * libwget/ssl_gnutls.c (_verify_certificate_callback): Use GnuTLS error printing 13279 132802017-03-05 Tim Rühsen <tim.ruehsen@gmx.de> 13281 13282 * libwget/hpkp.c (_hpkp_db_load): Fix parsing host entries 13283 132842017-03-04 Tim Rühsen <tim.ruehsen@gmx.de> 13285 13286 * tests/test.c: Remove call of wget_hpkp_set_port() 13287 132882017-03-04 Tim Rühsen <tim.ruehsen@gmx.de> 13289 13290 Remove port from HPKP code 13291 13292 * include/wget/wget.h: Remove wget_hpkp_set_port() 13293 * libwget/hpkp.c (struct _wget_hpkp_st): Remove 'port' 13294 * src/wget.c (process_response_header): Do not call wget_hpkp_set_port() 13295 132962017-03-03 Tim Rühsen <tim.ruehsen@gmx.de> 13297 13298 Add examples/check_url_types.c 13299 13300 * examples/Makefile.am: Add rule for examples/check_url_types 13301 * examples/check_url_types.c: New file 13302 13303 This adds a Alexa top-X scanner to find out the numbers of 13304 http:// links in landing pages retrieved via https://. 13305 It follows and counts redirections separated by secure and insecure 13306 ones, flags if the landing page was completely secure, counts links 13307 in the landing HTML page (same-page, external, http, https). 13308 133092017-03-03 Tim Rühsen <tim.ruehsen@gmx.de> 13310 13311 * libwget/http_highlevel.c (wget_http_get): Do not loop forever on repeating 401 responses 13312 133132017-03-03 Tim Rühsen <tim.ruehsen@gmx.de> 13314 13315 * libwget/ssl_gnutls.c (_verify_certificate_callback): Fix #ifdefs 13316 133172017-03-03 Tim Rühsen <tim.ruehsen@gmx.de> 13318 13319 Fix crash on unexpected server PUSH PROMISE (http/2) 13320 13321 * libwget/http.c (_on_frame_recv_callback): Check for valid context, 13322 (_on_header_callback): Likewise 13323 133242017-03-03 Tim Rühsen <tim.ruehsen@gmx.de> 13325 13326 Allow new 'expires' format for Set-Cookie header 13327 13328 * libwget/http.c (wget_http_parse_full_date): Allow format 13329 '1 Mar 2027 09:23:12 GMT' 13330 * tests/test.c (test_cookies): Test new format 13331 133322017-03-01 Tim Rühsen <tim.ruehsen@gmx.de> 13333 13334 * libwget/http.c (_on_frame_recv_callback): Fix decompressor init 13335 133362017-03-01 Tim Rühsen <tim.ruehsen@gmx.de> 13337 13338 * libwget/init.c (wget_global_deinit): Free more resources 13339 133402017-03-01 Tim Rühsen <tim.ruehsen@gmx.de> 13341 13342 * gnulib: Update 13343 133442017-02-28 Tim Rühsen <tim.ruehsen@gmx.de> 13345 13346 Fix URL encoding issue in requests 13347 13348 * libwget/iri.c (wget_iri_escape_query): Do not escape ampersand, 13349 (wget_iri_get_escaped_resource): Use wget_iri_escape_query() 13350 * tests/test-base.c: Add test URLs with spacing in path, query and param 13351 133522017-02-28 Tim Rühsen <tim.ruehsen@gmx.de> 13353 13354 Fix URLs to HTTPS where possible 13355 133562017-02-28 Tim Rühsen <tim.ruehsen@gmx.de> 13357 13358 * examples/websequencediagram_high.c: Use https URLs 13359 133602017-02-28 Tim Rühsen <tim.ruehsen@gmx.de> 13361 13362 * libwget/http.c (wget_http_get_response): Check if body member is set 13363 133642017-02-28 Tim Rühsen <tim.ruehsen@gmx.de> 13365 13366 * examples/websequencediagram.c: Use HTTPS, fix functionality 13367 133682017-02-28 Tim Rühsen <tim.ruehsen@gmx.de> 13369 13370 Fix http to https 13371 13372 * README.md: Fix http to https 13373 * bootstrap.conf: Likewise 13374 * configure.ac: Likewise 13375 133762017-02-28 Tim Rühsen <tim.ruehsen@gmx.de> 13377 13378 Exclude some URLs from recursive download with -p. 13379 13380 * include/wget/wget.h: Add link_inline to WGET_HTML_PARSED_URL 13381 * libwget/html_url.c: Add link_inline to _html_context_t, 13382 (_html_get_url): Set ctx->link_inline 13383 * src/wget.c (html_parse): Exclude action and formaction URLs, 13384 exclude certain 'link' URLs from download 13385 133862017-02-24 Tim Rühsen <tim.ruehsen@gmx.de> 13387 13388 * README.md: Mention HPKP and brotli support 13389 133902017-02-24 Tim Rühsen <tim.ruehsen@gmx.de> 13391 13392 Add brotli decompression, Accept-Encoding 'br' 13393 133942017-02-24 Tim Rühsen <tim.ruehsen@gmx.de> 13395 13396 * wget.c (_css_parse_uri): Fix previous commit 13397 133982017-02-24 Tim Rühsen <tim.ruehsen@gmx.de> 13399 13400 * wget.c (_css_parse_uri): Fix charset conversion for CSS parsing 13401 134022017-02-23 Tim Rühsen <tim.ruehsen@gmx.de> 13403 13404 Fix charset conversion for HTML parsing 13405 13406 * src/wget.c: New helper function _normalize_uri() 13407 (sitemap_parse_text): Check size before allocating stack space 13408 * tests/Makefile.am: Add test-iri-subdir 13409 * tests/test-iri-subdir.c: Add new test 13410 134112017-02-23 Tim Rühsen <tim.ruehsen@gmx.de> 13412 13413 *src/wget.c,src/wget_main.h: Include wget.h in wget_main.h 13414 134152017-02-22 Tim Rühsen <tim.ruehsen@gmx.de> 13416 13417 Restore --config being a list of filenames 13418 13419 * src/options.c: New functions parse_stringlist_expand(), 13420 parse_filenames(). 13421 Use parse_filenames() for --config / --config-file. 13422 134232016-12-03 Darshit Shah <darnir@gnu.org> 13424 13425 Support tilde expansion of filenames from wgetrc 13426 13427 * src/options.c (_shell_expand): New function to perform tilde 13428 expansion on a given string 13429 (parse_filename): Parse the input string and perform shell expansion on 13430 it using _shell_expand 13431 (parse_string): Set the parser functions for various options that may be 13432 set from a config file to use parse_filename 13433 (wget_strnglob): Run glob() on only the specified part of the string 13434 134352017-02-22 Tim Rühsen <tim.ruehsen@gmx.de> 13436 13437 * src/wget.c: Print headers before body with -S 13438 134392017-02-21 Tim Rühsen <tim.ruehsen@gmx.de> 13440 13441 HPKP: Drop/reject expired entries on save/load 13442 13443 * libwget/hpkp.c: Check max_age on load/save. 13444 134452017-02-21 Tim Rühsen <tim.ruehsen@gmx.de> 13446 13447 Remove HPKP entries with zero PINs 13448 13449 * libwget/hpkp.c (wget_hpkp_db_check_pubkey): Fix subdomain default, 13450 (wget_hpkp_db_add): Remove entry on zero PINs 13451 * src/wget.c: Remove comment line 13452 * tests/test.c (test_hpkp): Test this feature 13453 134542017-02-20 Tim Rühsen <tim.ruehsen@gmx.de> 13455 13456 * libwget/ssl_gnutls.c (_cert_verify_hpkp): Fix for GnuTLS < 3.1.3 13457 134582017-02-20 Tim Rühsen <tim.ruehsen@gmx.de> 13459 13460 Fix memleak in HPKP 13461 13462 * include/wget/wget.h: Changed declaration of wget_hpkp_free() 13463 * libwget/hpkp.c: Use wget_hpkp_free() as destructor function 13464 * libwget/http.c (wget_http_free_hpkp_entries): Amended 13465 * tests/test.c: Fix typos 13466 134672017-02-20 Tim Rühsen <tim.ruehsen@gmx.de> 13468 13469 * tests/certs/README: Add info on how to create pin-sha256 values for HPKP 13470 134712017-02-20 Tim Rühsen <tim.ruehsen@gmx.de> 13472 13473 * tests/test.c: Add unit testing for HPKP 13474 134752017-02-20 Tim Rühsen <tim.ruehsen@gmx.de> 13476 13477 * libwget/hpkp.c (_wget_hpkp_compare_pins): Implement 'includeSubDomains' 13478 134792017-02-19 Tim Rühsen <tim.ruehsen@gmx.de> 13480 13481 * libwget/hpkp.c (wget_hpkp_set_host): Free host before assignment 13482 134832017-02-19 Tim Rühsen <tim.ruehsen@gmx.de> 13484 13485 Implement HPKP checking 13486 13487 * include/wget/wget.h: Add function wget_hpkp_db_check_pubkey(), 13488 add WGET_SSL_HPKP_CACHE 13489 * libwget/hpkp.c: Implement wget_hpkp_db_check_pubkey() 13490 * libwget/ssl_gnutls.c: Implement and use _cert_verify_hpkp() 13491 * src/options.c (init): Set WGET_SSL_HPKP_CACHE 13492 134932017-02-17 Tim Rühsen <tim.ruehsen@gmx.de> 13494 13495 HPKP API redesign 13496 134972017-01-18 Tim Rühsen <tim.ruehsen@gmx.de> 13498 13499 * src/options.c: Fix position of hpkp options in array 13500 135012017-01-18 Tim Rühsen <tim.ruehsen@gmx.de> 13502 13503 * libwget/hpkp.c (wget_hpkp_db_load): Fix -Wformat= 13504 135052017-01-18 Tim Rühsen <tim.ruehsen@gmx.de> 13506 13507 * src/options.c (init): Fix calls of wget_str_asprintf() 13508 135092017-01-18 Tim Rühsen <tim.ruehsen@gmx.de> 13510 13511 libwget/hpkp.c (wget_hpkp_db_load): Fix -Wsign-compare 13512 135132017-01-18 Tim Rühsen <tim.ruehsen@gmx.de> 13514 13515 * include/wget/wget.h: Fix HPKP function declarations 13516 135172017-01-18 Tim Rühsen <tim.ruehsen@gmx.de> 13518 13519 * libwget/hpkp.c: Fix signed/unsigned format warnings 13520 135212017-01-18 Tim Rühsen <tim.ruehsen@gmx.de> 13522 13523 * libwget/hpkp.c (wget_hpkp_new): Fix -Wold-style-definition 13524 135252017-01-18 Tim Rühsen <tim.ruehsen@gmx.de> 13526 13527 * include/wget/wget.h: Use WGETAPI for hpkp function declarations 13528 135292017-01-09 Ander Juaristi <ajuaristi@gmx.es> 13530 13531 HPKP: version the HPKP file, for the future 13532 13533 * libwget/hpkp.c (wget_hpkp_db_save): write the version number 13534 (wget_hpkp_db_load): check the version number == 1 135352017-01-09 Ander Juaristi <ajuaristi@gmx.es> 13536 13537 HPKP: Check file is regular or symlink 13538 13539 * libwget/hpkp.c (wget_hpkp_db_save): check if file is regular or symlink. If symlink, resolve it since unlink(2) does not follow symlinks. 135402017-01-08 Ander Juaristi <ajuaristi@gmx.es> 13541 13542 HPKP: Fix memory leaks 13543 13544 * src/wget.c (main, process_response_header): add debug traces 13545 * libwget/http.c (wget_http_parse_public_key_pins): fix memory leaks 13546 * libwget/hpkp.c (__wget_hpkp_free, wget_hpkp_db_load): fix memory 13547 leaks 13548 135492017-01-05 Ander Juaristi <ajuaristi@gmx.es> 13550 13551 HPKP: inline docs 13552 135532017-01-05 Ander Juaristi <ajuaristi@gmx.es> 13554 13555 HPKP: return WGET_HPKP_ENTRY_EXISTS 13556 135572017-01-04 Ander Juaristi <ajuaristi@gmx.es> 13558 13559 HPKP: Define return values. 13560 135612017-01-04 Ander Juaristi <ajuaristi@gmx.es> 13562 13563 HPKP: use vector rather than linked list for b64 pins 13564 135652016-12-28 Ander Juaristi <ajuaristi@gmx.es> 13566 13567 HPKP: add log traces + fix bugs 13568 13569 135702016-12-27 Ander Juaristi <ajuaristi@gmx.es> 13571 13572 HPKP: hpkp complete 13573 13574 135752016-12-13 Ander Juaristi <ajuaristi@gmx.es> 13576 13577 HPKP: fix wget_hpkp_db_save() 13578 13579 * src/wget.c (main): call wget_hpkp_db_save() at the end (params 13580 inverted). 13581 * include/wget/wget.h: export wget_hpkp_db_save(). 13582 * libwget/hpkp.c (__hashtable_browse_cb): fix fprintf format string. 13583 (wget_hpkp_db_save): check filename is not an empty string. 13584 (wget_hpkp_db_load): likewise. 13585 135862016-12-13 Ander Juaristi <ajuaristi@gmx.es> 13587 13588 HPKP: new option --hpkp-file 13589 13590 * src/wget_options.h (struct config): new string hpkp_file. 13591 * src/options.c (struct options): new command-line option --hpkp-file. 13592 (init): set --hpkp-file default to $HOME/.wget-hpkp. 13593 (deinit): free config.hpkp_file. 13594 * src/wget.c (main): call wget_hpkp_db_save() at the end. 13595 135962016-12-13 Ander Juaristi <ajuaristi@gmx.es> 13597 13598 HPKP: new option --hpkp-file 13599 13600 136012016-12-09 Ander Juaristi <ajuaristi@gmx.es> 13602 13603 HPKP: functions to load & save the database file 13604 13605 * libwget/hpkp.c (__wget_hpkp_new): new function. NO-OP, NEEDS 13606 IMPLEMENTATION. 13607 (__vector_browse_cb): new callback function to browse the vector. 13608 (__hashtable_browse_cb): new callback function to browse the hash 13609 table. 13610 (wget_hpkp_db_save): new function. 13611 (__wget_hpkp_parse_host_line): new function. 13612 (__wget_hpkp_parse_pin_line): new function. 13613 (wget_hpkp_db_load): new function. 13614 136152016-11-12 Ander Juaristi <ajuaristi@gmx.es> 13616 13617 Prototype HPKP functions 13618 13619 * include/wget/wget.h: new public function wget_hpkp_db_init(). 13620 * libwget/hpkp.c: new file. 13621 136222016-11-12 Ander Juaristi <ajuaristi@gmx.es> 13623 13624 Merge from upstream/master 13625 13626 Conflicts: libwget/Makefile.am 13627 136282016-11-12 Ander Juaristi <ajuaristi@gmx.es> 13629 13630 HPKP boilerplate 13631 13632 * libwget/Makefile.am: new file hpkp.c. 13633 * src/options.c (print_help, struct options): new command line option '--hpkp'. 13634 (init): initialize HPKP database with wget_hpkp_db_init(). 13635 * src/wget_options.h (struct config): new handle 'hpkp' to the HPKP 13636 database. 13637 136382016-10-25 Ander Juaristi <ajuaristi@gmx.es> 13639 13640 HPKP: initial commit 13641 136422017-02-21 Tim Rühsen <tim.ruehsen@gmx.de> 13643 13644 * tests/test.c (test_buffer): Add more tests 13645 136462017-02-21 Tim Rühsen <tim.ruehsen@gmx.de> 13647 13648 * libwget/buffer.c (wget_buffer_free_data): Set size to 0 13649 136502017-02-21 Tim Rühsen <tim.ruehsen@gmx.de> 13651 13652 * Makefile.am: Fix 'make check-coverage' 13653 136542017-02-21 Tim Rühsen <tim.ruehsen@gmx.de> 13655 13656 Fix memleak in cookie code 13657 13658 * examples/http_get2.c: Use wget_cookie_db_free() to free cookie db 13659 * libwget/cookie.c (wget_cookie_db_init): Fix #ifdef around PSL code 13660 * libwget/init.c (wget_global_deinit): Use wget_cookie_db_free() 13661 136622017-02-03 Tim Rühsen <tim.ruehsen@gmx.de> 13663 13664 * contrib/release: Update 13665 136662017-02-03 Tim Rühsen <tim.ruehsen@gmx.de> 13667 13668 * configure.ac: Add xz archive format 13669 136702017-02-01 Tim Rühsen <tim.ruehsen@gmx.de> 13671 13672 Fix possible file name truncation 13673 13674 * tests/test-parse-html.c: Increase buffer for filename 13675 * tests/test.c: Likewise 13676 136772017-01-23 Tim Rühsen <tim.ruehsen@gmx.de> 13678 13679 New function wget_logger_is_active() 13680 13681 * include/wget/wget.h: Add prototype 13682 * libwget/Makefile.am: Add logger.h 13683 * libwget/log.c: Include logger.h 13684 * libwget/logger.c: Include logger.h, add wget_logger_is_active() 13685 * libwget/net.c: Use wget_logger_is_active() 13686 * libwget/private.h: Remove struct _wget_logger_st 13687 136882017-01-23 Tim Rühsen <tim.ruehsen@gmx.de> 13689 13690 Use typedefs for function pointer arguments 13691 13692 * include/wget/wget.h: Add typedefs 13693 * libwget/cookie.c: Use typedefs 13694 * libwget/css.c: Likewise 13695 * libwget/css_url.c: Likewise 13696 * libwget/decompressor.c: Likewise 13697 * libwget/hashmap.c: Likewise 13698 * libwget/hsts.c: Likewise 13699 * libwget/http.c: Likewise 13700 * libwget/init.c: Likewise 13701 * libwget/io.c: Likewise 13702 * libwget/list.c: Likewise 13703 * libwget/logger.c: Likewise 13704 * libwget/metalink.c: Likewise 13705 * libwget/net.c: Likewise 13706 * libwget/netrc.c: Likewise 13707 * libwget/ocsp.c: Likewise 13708 * libwget/private.h: Likewise 13709 * libwget/robots.c: Likewise 13710 * libwget/stringmap.c: Likewise 13711 * libwget/tls_session.c: Likewise 13712 * libwget/vector.c: Likewise 13713 * libwget/xml.c: Likewise 13714 * src/blacklist.c: Likewise 13715 * src/host.c: Likewise 13716 * src/options.c: Likewise 13717 * src/wget.c: Likewise 13718 * tests/stringmap_perf.c: Likewise 13719 * tests/test.c: Likewise 13720 137212017-01-20 Tim Rühsen <tim.ruehsen@gmx.de> 13722 13723 base46: Use size_t as string length param 13724 137252017-01-20 Tim Rühsen <tim.ruehsen@gmx.de> 13726 13727 * src/wget.c (restrict_file_name): Fix clang warning 13728 137292017-01-19 Tim Rühsen <tim.ruehsen@gmx.de> 13730 13731 Add typedef for wget_vector_browse() callback function 13732 13733 * include/wget/wget.h: Add typedef wget_list_browse_cb_t 13734 * libwget/list.c: Use wget_list_browse_cb_t 13735 137362017-01-19 Tim Rühsen <tim.ruehsen@gmx.de> 13737 13738 Add typedef for wget_update() callback functions 13739 13740 * include/wget/wget.h: Add typedef wget_update_cb_t 13741 * libwget/cookie.c: Use wget_update_cb_t 13742 * libwget/hsts.c: Likewise 13743 * libwget/tls_session.c: Likewise 13744 137452017-01-18 Tim Rühsen <tim.ruehsen@gmx.de> 13746 13747 gnulib: Update 13748 137492017-01-18 Tim Rühsen <tim.ruehsen@gmx.de> 13750 13751 * libwget/io.c (wget_ready_2_transfer): Fix INF timeout for select() 13752 137532017-01-18 Tim Rühsen <tim.ruehsen@gmx.de> 13754 13755 Revert "* .travis_setup.sh: Install graphiz and libidn2 on OSX" 13756 13757 This reverts commit 31c287f2ce90593e493c25581b351d7b944b8ff4. 13758 137592017-01-18 Tim Rühsen <tim.ruehsen@gmx.de> 13760 13761 * .travis_setup.sh: Install graphiz and libidn2 on OSX 13762 137632017-01-18 Tim Rühsen <tim.ruehsen@gmx.de> 13764 13765 Fix search for '-e' commands 13766 13767 * src/options.c (set_long_option): Fallback to unsharp linear search, 13768 (opt_compare_execute): Amend params. 13769 137702017-01-18 Tim Rühsen <tim.ruehsen@gmx.de> 13771 13772 Fallback to select() if poll() not available 13773 13774 * bootstrap.conf: Add module select 13775 * libwget/io.c (wget_ready_2_transfer): Add fallback code 13776 137772017-01-18 Tim Rühsen <tim.ruehsen@gmx.de> 13778 13779 * src/wget.c (http_receive_response): Small code cleanup 13780 137812017-01-06 Tim Rühsen <tim.ruehsen@gmx.de> 13782 13783 Add console color abstraction 13784 13785 * docs/Makefile.am: Add libwget-console.3 13786 * include/wget/wget.h: Add console routines 13787 * libwget/Makefile.am: Add libwget/console.c 13788 * libwget/console.c: New file with console functions 13789 * src/log.c: Add WIN32 and console function calls 13790 137912017-01-06 Tim Rühsen <tim.ruehsen@gmx.de> 13792 13793 Add function wget_truncate() 13794 13795 * bootstrap.conf: Ad gnulib module ftruncate 13796 * include/wget/wget.h: Add wget_truncate 13797 * libwget/io.c: Add wget_truncate 13798 * src/job.c: Call wget_truncate instead of truncate 13799 13800 The truncate() function is not covered by gnulib. 13801 wget_truncate() is a wrapper around ftruncate(), which is covered 13802 by gnulib. 13803 138042017-01-06 Tim Rühsen <tim.ruehsen@gmx.de> 13805 13806 * tests/stringmap_perf.c: Use wget_malloc if mmap not available 13807 138082017-01-06 Tim Rühsen <tim.ruehsen@gmx.de> 13809 13810 * libwget/cookie.c (_cookie_db_save): Fix ferror() check 13811 13812 Reported-by: Gisle Vanem 13813 138142017-01-06 Tim Rühsen <tim.ruehsen@gmx.de> 13815 13816 * gnulib: Update 13817 138182017-01-06 Tim Rühsen <tim.ruehsen@gmx.de> 13819 13820 * libwget/Makefile.am: Add more libs to LDADD 13821 138222017-01-06 Tim Rühsen <tim.ruehsen@gmx.de> 13823 13824 * src/wget.c (downloader_thread): Slow down on connection errors 13825 138262017-01-05 Tim Rühsen <tim.ruehsen@gmx.de> 13827 13828 Let MSVC compile libwget/init.c (wget_global_init) 13829 13830 Reported-by: Gisle Vanem 13831 138322017-01-05 Tim Rühsen <tim.ruehsen@gmx.de> 13833 13834 * src/options.c (init): Call wget_net_init() 13835 138362017-01-05 Tim Rühsen <tim.ruehsen@gmx.de> 13837 13838 Remove redundant check for _WIN64 13839 138402017-01-05 Tim Rühsen <tim.ruehsen@gmx.de> 13841 13842 Add network init function to bootstrap sockets on Windows 13843 13844 * bootstrap.conf: Add gnulib module 'sockets' 13845 * examples/http_get2.c: Call wget_net_init() 13846 * include/wget/wget.h: Add wget_net_init() and wget_net_deinit() 13847 * libwget/init.c (wget_global_init): Call wget_net_init(), 13848 (wget_global_deinit): Call wget_net_deinit() 13849 * libwget/net.c: Add wget_net_init() and wget_net_deinit() 13850 138512016-12-17 Tim Rühsen <tim.ruehsen@gmx.de> 13852 13853 Rename wget_str_[v]asprintf to wget_[v]aprintf 13854 13855 * include/wget/wget.h: Rename wget_str_[v]asprintf to wget_[v]aprintf 13856 * libwget/http.c: Likewise 13857 * libwget/iri.c: Likewise 13858 * libwget/printf.c: Likewise 13859 * libwget/vector.c: Likewise 13860 * src/options.c: Likewise 13861 * tests/test-metalink.c: Likewise 13862 138632016-12-21 Tim Rühsen <tim.ruehsen@gmx.de> 13864 13865 Adjust GnuTLS priorities 13866 13867 * libwget/ssl_gnutls.c (wget_ssl_init): Use system defaults for 13868 secure_protocol "auto". 13869 (wget_ssl_open): Set compatibility mode for "auto". 13870 138712016-12-21 Tim Rühsen <tim.ruehsen@gmx.de> 13872 13873 * libwget/cookie.c (wget_cookie_db_init): Fix argument of psl_latest() 13874 138752016-12-16 Tim Rühsen <tim.ruehsen@gmx.de> 13876 13877 Reduce redundant code by using strchrnul() 13878 13879 * bootstrap.conf: Add gnulib module strchrnul 13880 * libwget/http.c (_parse_proxies): Remove redundant code 13881 * libwget/ssl_gnutls.c (wget_ssl_open): Likewise 13882 138832016-12-16 Tim Rühsen <tim.ruehsen@gmx.de> 13884 13885 * docs/wget2_manual.md: Add description for --config-file 13886 138872016-12-16 Tim Rühsen <tim.ruehsen@gmx.de> 13888 13889 Read $SYSTEM_WGET2RC, $WGET2RC and ~/.wget2rc as config file 13890 13891 This patch separates the config files of wget and wget2. 13892 Config files are read in the order they appear on the command line. 13893 13894 Fixes #132 13895 138962016-12-16 Tim Rühsen <tim.ruehsen@gmx.de> 13897 13898 * src/options.c (parse_stringlist): Remove redundant code 13899 139002016-12-15 Tim Rühsen <tim.ruehsen@gmx.de> 13901 13902 * libwget/thread.c: Return a value in dummy wget_thread_cancel() 13903 13904 Reported-by: Gisle Vanem 13905 139062016-12-14 Tim Rühsen <tim.ruehsen@gmx.de> 13907 13908 * src/wget.c (process_response): Ignore sitemaps with --page-requisites 13909 139102016-12-13 Tim Rühsen <tim.ruehsen@gmx.de> 13911 13912 * src/options.c (selftest_options): Clear config.headers before and after use 13913 139142016-12-13 Tim Rühsen <tim.ruehsen@gmx.de> 13915 13916 * src/options.c: Relax CLI and config file parser regarding spaces 13917 139182016-12-12 Tim Rühsen <tim.ruehsen@gmx.de> 13919 13920 Take advantage of libpsl 0.16+ 13921 13922 * libwget/cookie.c (wget_cookie_db_init): Use psl_latest() if possible 13923 139242016-12-03 Tim Rühsen <tim.ruehsen@gmx.de> 13925 13926 * tests/test-bad-chunk.c: Remove WGET_TEST_KEEP_TMPFILES 13927 139282016-12-02 Tim Rühsen <tim.ruehsen@gmx.de> 13929 13930 Add tests with bad chunk size in the HTTP response 13931 13932 * tests/Makefile.am: Add test-bad-chunk.c 13933 * tests/test-bad-chunk.c: New file with 3 tests 13934 139352016-12-02 Tim Rühsen <tim.ruehsen@gmx.de> 13936 13937 * libwget/http.c: Ignore Transfer-Encoding for HTTP/2 requests 13938 139392016-11-30 Tim Rühsen <tim.ruehsen@gmx.de> 13940 13941 * src/options.c: Respect WGETRC and SYSTEM_WGETRC env vars 13942 139432016-11-16 Darshit Shah <darnir@gnu.org> 13944 13945 * docs/wget2_manual.md: Update description of -O 13946 139472016-11-16 Darshit Shah <darnir@gnu.org> 13948 13949 Make the visibiity attribute preceed the prototype 13950 13951 * include/wget/wget.h: Make library symbol export attribute 13952 ((__visibility__)) preceed the function prototype to work on Windows 13953 with MSVC 13954 * tests/libtest.h: Same 13955 13956 Reported-by: Gisle Vanem 13957 139582016-11-16 Darshit Shah <darnir@gnu.org> 13959 13960 Rename LIBWGET_EXPORT to WGETAPI 13961 13962 * include/wget/wget.t: Rename LIBWGET_EXPORT to WGETAPI 13963 * tests/libtest.h: Same 13964 139652016-11-16 Darshit Shah <darnir@gnu.org> 13966 13967 Export symbols only from wget.h 13968 13969 * libwget/iri.c: Move exporting of symbol wget_iri_schemes from here 13970 * include/wget/wget.h: To here 13971 139722016-11-16 Darshit Shah <darnir@gnu.org> 13973 13974 Replace x{malloc,calloc} calls with wget_* methods 13975 13976 * include/wget/wget.h: Remove preprocessor definitions for xmalloc, 13977 xcalloc and xrealloc 13978 * src/job.c(job_validate_file): Replace xcalloc with wget_calloc 13979 * src/wget.c(main): Same 13980 (process_head_response): Same 13981 (_prepare_file): Same 13982 (http_send_request): Same 13983 139842016-11-15 Tim Rühsen <tim.ruehsen@gmx.de> 13985 13986 Fix integer overflow in ratio calculation 13987 13988 * libwget/bar.c (_bar_update_slot): Fix integer overflow in ratio calculation 13989 13990 Fixes #125 13991 139922016-11-15 Darshit Shah <darnir@gnu.org> 13993 13994 Fix timestamp in If-Modified-Since header 13995 13996 * src/wget.c(http_create_request): Use mtime instead of mtime+1 13997 13998 According to RFC 7238, section 3.3, an origin server may use exact 13999 timestamp matching to implement conditional requests. Hence, Wget must 14000 not modify the mtime at all 14001 140022016-11-15 Tim Rühsen <tim.ruehsen@gmx.de> 14003 14004 * src/bar.c (bar_init): Disable progress bar if threading is not available 14005 140062016-11-12 Darshit Shah <darnir@gnu.org> 14007 14008 * libwget/bar.c (_bar_set_progress): Typecast the right value to integer 14009 140102016-11-11 Tim Rühsen <tim.ruehsen@gmx.de> 14011 14012 Move m4 wget_ functions to m4/ 14013 14014 * .gitignore: Add exception m4/wget_manywarnings.m4 14015 * configure.ac: Remove manywarnings m4 code 14016 * m4/wget_manywarnings.m4: Add manywarnings m4 code here 14017 140182016-11-11 Tim Rühsen <tim.ruehsen@gmx.de> 14019 14020 * configure.ac: Define and use wget_MANYWARNINGS m4 macro 14021 140222016-11-11 Tim Rühsen <tim.ruehsen@gmx.de> 14023 14024 * libwget/ip.c: Fix syntax error in docs 14025 140262016-11-09 Tim Rühsen <tim.ruehsen@gmx.de> 14027 14028 * libwget/io.c: Use open() instead of creat() 14029 14030 open() is covered by gnulib, creat() not. 14031 140322016-11-09 Tim Rühsen <tim.ruehsen@gmx.de> 14033 14034 Use defines for O_CREAT perms instead 14035 14036 * src/log.c (_write_out): Use S_* defines instead of 0644 for perms 14037 * src/wget.c (_prepare_file): Likewise 14038 140392016-11-08 Tim Rühsen <tim.ruehsen@gmx.de> 14040 14041 * libwget/thread.c: Add missing wget_thread_cancel() dummy 14042 140432016-11-08 Tim Rühsen <tim.ruehsen@gmx.de> 14044 14045 * AUTHORS: Update 14046 140472016-11-08 Tim Rühsen <tim.ruehsen@gmx.de> 14048 14049 * libwget/net.c: Include sys/ioctl.h on Windows. 14050 (_set_async): Use ioctl() instead of ioctlsocket(). 14051 14052 Reported-by: Gisle Vanem 14053 140542016-11-08 Tim Rühsen <tim.ruehsen@gmx.de> 14055 14056 * include/wget.h: G_GNUC_WGET_PRINT_FORMAT -> G_GNUC_WGET_PRINTF_FORMAT 14057 140582016-11-06 Ander Juaristi <ajuaristi@gmx.es> 14059 14060 New function to check for literal IPv4/IPv6 addresses 14061 14062 * bootstrap.conf: Add gnulib module 'inet_pton' 14063 * docs/Makefile.am: Add man page libwget-ip.3 14064 * wget/wget.h (struct wget_iri_st): New field 'is_ip_address'. 14065 * libwget/Makefile.am: Add new file ip.c 14066 * libwget/ip.c: New file defining new function wget_ip_is_family() 14067 * libwget/iri.c (wget_iri_parse): Check for literal IP address 14068 * src/wget.c: Do not add to HSTS if literal IP address 14069 140702016-11-08 Tim Rühsen <tim.ruehsen@gmx.de> 14071 14072 * configure.ac: Remove old commented code 14073 140742016-11-08 Tim Rühsen <tim.ruehsen@gmx.de> 14075 14076 Update gnulib 14077 140782016-11-08 Tim Rühsen <tim.ruehsen@gmx.de> 14079 14080 Use gnulib basename 14081 14082 * bootstrap.conf: Add gnulib module 'dirname' 14083 * libwget/io.c: Use base_name() to get file basename 14084 140852016-11-07 Tim Rühsen <tim.ruehsen@gmx.de> 14086 14087 * include/wget/wget.h: Fix compilation error 14088 140892016-11-07 Tim Rühsen <tim.ruehsen@gmx.de> 14090 14091 * include/wget/wget.h: Define empty LIBWGET_EXPORT if LIBWGET_STATIC is defined 14092 140932016-11-07 Tim Rühsen <tim.ruehsen@gmx.de> 14094 14095 * libwget/xalloc.c (wget_realloc): Call OOM callback if size is 0 14096 140972016-11-07 Tim Rühsen <tim.ruehsen@gmx.de> 14098 14099 * configure.ac: Do not check for munmap() 14100 141012016-11-06 Ander Juaristi <ajuaristi@gmx.es> 14102 14103 New inline function to compute length of base64 decoded string 14104 14105 * include/wget/wget.h (wget_base64_get_decoded_length): new function 14106 * libwget/tls_session.c (_tls_session_db_load): use 14107 wget_base64_get_decoded_length(). 14108 141092016-11-03 Tim Rühsen <tim.ruehsen@gmx.de> 14110 14111 Use wget_strdup() instead of strdup() 14112 14113 * examples/getstream.c: Use wget_strdup(). 14114 * libwget/cookie.c: Likewise. 14115 * libwget/encoding.c: Likewise. 14116 * libwget/http.c: Likewise. 14117 * libwget/iri.c: Likewise. 14118 * libwget/netrc.c: Likewise. 14119 * src/options.c: Likewise. 14120 * src/wget.c: Likewise. 14121 * tests/test.c: Likewise. 14122 141232016-11-03 Tim Rühsen <tim.ruehsen@gmx.de> 14124 14125 * libwget/hashmap_old.c: Removed 14126 141272016-11-03 Tim Rühsen <tim.ruehsen@gmx.de> 14128 14129 * configure.ac: Understand 'Debian clang' and 'gcc-x.y' for 14130 141312016-11-02 Tim Rühsen <tim.ruehsen@gmx.de> 14132 14133 Fix gcc/clang warnings from the new manywarnings feature 14134 14135 * configure.ac: Suppress -Wunsuffixed-float-constants for gcc, 14136 add -Wno-disabled-macro-expansion to clang flags 14137 * examples/getstream.c: Removed 'unused' attributes from argc and argv. 14138 * include/wget/wget.h: Fix slot to int for bar functions. 14139 * libwget/bar.c: Fix slot to int for bar functions, cast to int, 14140 change type of bitfield 'redraw' to unsigned. 14141 * libwget/hsts.c (wget_hsts_new): Fix int to bitfield conversion. 14142 * libwget/http.c: Cast printf %p format to (void *). 14143 * src/wget.c: Cast printf %p format to (void *), 14144 remove ACTION_DONE from enum actions. 14145 * src/wget_host.h: Fix double declaration of host_remove_job() 14146 * tests/libtest.c (wget_test_check_filesystem): Fix type of 'rc'. 14147 * tests/test-idn-robots.c: Fix comma to semikolon at end of line. 14148 * tests/test.c (test_strcasecmp_ascii): Fix type of loop variable. 14149 141502016-11-02 Tim Rühsen <tim.ruehsen@gmx.de> 14151 14152 Replace manywarnings module by our own code 14153 14154 * bootstrap.conf: Remove manywarnings, add warnings 14155 * configure.ac: Replace manywarnings code 14156 14157 The new code works on recent gcc and clang with an overhead of 14158 ~100ms instead of ~9s here (without -C). 14159 This is meant for developers only and is activated by either 14160 --enable-gcc-warnings or by touching .manywarnings. 14161 141622016-10-23 Darshit Shah <darnir@gnu.org> 14163 14164 Fix parse_header() and add more tests 14165 14166 * src/options.c (parse_header): Fix bug where empty string did not clear 14167 out all the headers 14168 * src/options.c (selftest_options): Fix testcase for parse_header and 14169 add more tests 14170 141712016-10-16 Tim Rühsen <tim.ruehsen@gmx.de> 14172 14173 Check for gcrypt.h 14174 14175 * configure.ac: Check for gcrypt.h 14176 * libwget/hashfile.c: Check for HAVE_GCRYPT_H 14177 141782016-10-14 Tim Rühsen <tim.ruehsen@gmx.de> 14179 14180 Add gnulib digest hash fallback 14181 14182 * bootstrap.conf: Add md2, md5, sha1, sha256, sha512 modules 14183 * libwget/hashfile.c: Add code branch to use gnulib functions if needed 14184 141852016-10-16 Tim Rühsen <tim.ruehsen@gmx.de> 14186 14187 * tests/test-iri.c: Fix test to work on non-UTF-8 locales 14188 141892016-10-16 Tim Rühsen <tim.ruehsen@gmx.de> 14190 14191 * tests/test-iri-percent.c: Fix test to work on non-UTF-8 locales 14192 141932016-10-16 Tim Rühsen <tim.ruehsen@gmx.de> 14194 14195 * tests/test-restrict-ascii.c: Fix test to work on non-UTF-8 locales 14196 141972016-10-14 Tim Rühsen <tim.ruehsen@gmx.de> 14198 14199 * libwget/hashfile.c: Remove unused defines 14200 142012016-10-14 Tim Rühsen <tim.ruehsen@gmx.de> 14202 14203 Make --header replace wget's standard headers 14204 14205 * libwget/http.c (wget_http_create_request): Add 'Host' header 14206 to header list, 14207 (wget_http_send_request): Do not add 'Host' hard-coded, 14208 (wget_http_request_to_buffer): Special treatment of 'Content-Length' 14209 * src/wget.c (http_create_request): Replace wget's HTTP headers by 14210 user-provided headers, except 'Cookie' headers which will be appended. 14211 142122016-10-13 Darshit Shah <darnir@gnu.org> 14213 14214 Support --header option 14215 14216 * src/options.c: Add new --header option and a new parse_header() 14217 parsing function for that. Also add self tests for parsing 14218 * src/wget_options.h: Same 14219 * src/wget.c (http_create_request): Add the user added headers to the 14220 HTTP Request 14221 * src/test-wget-1.c: Add a test for the --header option 14222 142232016-10-13 Tim Rühsen <tim.ruehsen@gmx.de> 14224 14225 Separate progress bar logic into library and application parts 14226 14227 * include/wget/wget.h: Remove struct _wget_bar_ctx and wget_bat_ctx_t, 14228 amend prototypes of wget_bar functions, 14229 new function wget_bar_write_line() 14230 * libwget/bar.c: Bunch of cleanups and code rearrangements 14231 * src/wget_progress.h: Remove 14232 * src/Makefile.am: Remove src/wget_progress.h 14233 * src/bar.c: Remove mutex usage, 14234 (_error_write) call wget_bar_write_line 14235 * src/log.c: Remove redundant param checks 14236 * src/wget.c: Add struct _body_callback_context, 14237 always call bar_slot_begin() on begin of new download, 14238 use downloader->id as progress slot 14239 * src/wget_bar.h: Amend prototypes of bar_ functions 14240 142412016-10-12 Tim Rühsen <tim.ruehsen@gmx.de> 14242 14243 Call bar_update_slot() from main thread 14244 14245 * libwget/bar.c: Fix typos, 14246 (wget_bar_set_slots): Init mem only when needed, 14247 add comments describing Escape sequences 14248 * src/bar.c (bar_update_slots): Take nslots as param 14249 * src/wget.c: Move call to bar_update_slots() from worker to main thread 14250 * src/wget_bar.h: Amend prototype of bar_update_slots() 14251 142522016-10-12 Tim Rühsen <tim.ruehsen@gmx.de> 14253 14254 * docs/wget2_manual.md: More changes for Wget2 14255 142562016-10-11 Tim Rühsen <tim.ruehsen@gmx.de> 14257 14258 * src/wget.c: Fix quota calculation 14259 142602016-10-11 Tim Rühsen <tim.ruehsen@gmx.de> 14261 14262 * libwget/http.c: Fix update of downloaded bytes for progress bar 14263 142642016-10-11 Tim Rühsen <tim.ruehsen@gmx.de> 14265 14266 * libwget/ssl_gnutls.c: Print debug messages using debug_printf() 14267 142682016-10-11 Tim Rühsen <tim.ruehsen@gmx.de> 14269 14270 * src/options.c: Amend Wget2 banner string 14271 142722016-10-11 Tim Rühsen <tim.ruehsen@gmx.de> 14273 14274 * src/host.c (host_queue_free): Also free robots.txt job 14275 142762016-10-07 Darshit Shah <darnir@gnu.org> 14277 14278 * configure.ac: Ignore the Stack Protector warnings 14279 142802016-10-10 Tim Rühsen <tim.ruehsen@gmx.de> 14281 14282 * libwget/http.c: Support compression for HTTP/2 14283 142842016-10-07 Darshit Shah <darnir@gnu.org> 14285 14286 Improved testing on Travis 14287 14288 * .travis.sh: Rewrite for clarity and speed. Testing shows that valgrind 14289 and ASan don't play well together. So split their executions. 14290 * .travis.yml: Enable ccache for builds. Also try to update libc6 if 14291 possible 14292 * .travis.yml: Do not run on OSX with CC=gcc. This is because on OSX, 14293 gcc is only a wrapper around clang. 14294 * .travis_setup.sh: Cosmetic changes only 14295 * Makefile.am (check-coverage): Explcicitly disable valgrind tests when 14296 checking coverage 14297 * tests/libtest.c (wget_test): Use a provided suppressions file for 14298 valgrind. This is required since the valgrind version on Travis seems to 14299 be out of sync with libc. This causes valgrind to report a memory bug 14300 falsely. 14301 * tests/valgrind-suppressions: New file with some valgrind suppressions. 14302 Included suppressions are for a valgrind/libc bug and to suppress 14303 reachable memory messages from within gnutls 14304 143052016-10-06 Darshit Shah <darnir@gnu.org> 14306 14307 Revert "Test travis" 14308 14309 This reverts commit 75daf2cdc791d1d01892aae9138c103e405a1f53. 14310 I screwed up. Pushed to the wrong repository 14311 143122016-10-06 Darshit Shah <darnir@gnu.org> 14313 14314 Test travis 14315 143162016-10-05 Darshit Shah <darnir@gnu.org> 14317 14318 * src/wget.c (nop): Add ifddef guards around SIGWINCH 14319 143202016-10-05 Tim Rühsen <tim.ruehsen@gmx.de> 14321 14322 Fix progress bar details 14323 14324 * include/wget/wget.h: wget_get_screen_size() must not be pure 14325 * libwget/bar.c (_bar_get_width): Leave one space right to avoid linebreaks 14326 * libwget/utils.c (wget_human_readable): Align # of bytes 14327 * src/bar.c (wget_get_screen_size): Fix return value 14328 143292016-10-04 Darshit Shah <darnir@gnu.org> 14330 14331 Export a new function for determining screen dimensions 14332 14333 * include/wget/wget.h: New function wget_get_screen_size. Replaces old 14334 wget_determine_screen_width 14335 * libwget/bar.c (_bar_get_width): Use wget_get_screen_size instead of 14336 wget_determine_screen_width 14337 * libwget/utils.c: Replace function wget_determine_screen_width with a 14338 more generic wget_get_screen_size. 14339 143402016-10-04 Darshit Shah <darnir@gnu.org> 14341 14342 Handle SIGWINCH for progress bar 14343 14344 * include/wget/wget.h: New function wget_bar_screen_resized, as an 14345 indicator that the screen size may have changed. Also, wget_bar_update 14346 may now modify the *bar parameter 14347 * libwget/bar.c: Move detection code for screen size into a separate 14348 function called _bar_get_width. 14349 (wget_bar_update): Check if the screen width has changed and 14350 reallocate more space if necessary 14351 * src/wget.c: Install a new signal handler for SIGWINCH 14352 143532016-10-03 Darshit Shah <darnir@gnu.org> 14354 14355 Move window size detection to libwget 14356 14357 * include/wget/wget.h: Declare new function wget_determine_screen_width. 14358 Also change prototype of wget_bar_init to not accept a max_width 14359 parameter 14360 * src/utils.c: Move function determine_screen_width from here ... 14361 * libwget/utils.c: ... to here. 14362 * src/utils.{c,h}: Delete empty file 14363 * src/Makefile.am: Remove source files utils.{c,h} 14364 * src/bar.c: Move detection of screen width from here ... 14365 * libwget/bar.c: ... to here 14366 * tests/test.c: wget_bar_init() no longer takes a max_width parameter 14367 143682016-10-03 Darshit Shah <darnir@gnu.org> 14369 14370 Cleaner API for progress bar within libwget 14371 14372 * include/wget/wget.h (_wget_bar_ctx): Remove unused elements 14373 expected_size and filename. Rename slotpos to _slotpos to reflect that 14374 it should not be used by the client. 14375 * include/wget/wget.h: Remove declaration for old API functions 14376 bar_register and bar_deregister. Define declarations for 14377 wget_bar_slot_begin, wget_bar_slot_register and 14378 wget_bar_slot_deregister. 14379 * libwget/bar.c (_bar_slot_status_t): Define new enum to store the 14380 status of a slot of the progress bar. 14381 (_bar_slot_t): Remove unused element last_ctx. Also, define slot 14382 elements: filename, file_size, bytes_downloaded and status. 14383 (wget_bar_slot_begin): Define new function. Invoked when the client 14384 has started downloading a new file. 14385 (wget_bar_slot_register): New function to register a new file in a 14386 progress bar slot. 14387 (wget_bar_deregister): Remove old function 14388 (wget_bar_slot_deregister): New function, called after file has 14389 finished downloading. Successfully or unsuccessfully. 14390 (wget_bar_deregister): Remove old function 14391 (_bar_set_progress): last_ctx is no longer used. Instead data is 14392 stored within the slot struct itself 14393 (_bar_update_slot): Same 14394 (_bar_print_final): Same 14395 (wget_bar_deinit): Free the filename stored in the slot 14396 * src/bar.c: Edit to reflect the changes in libwget API 14397 * src/wget.c (_get_header): Same 14398 (http_send_request): Same 14399 (http_receive_response): Same 14400 * src/wget_bar.h: Same 14401 144022016-10-03 Darshit Shah <darnir@gnu.org> 14403 14404 * libwget/bar.c: Remove mutex stdout 14405 14406 The mutex stdout was meant to ensure that multiple routines don't write 14407 to the screen concurrently. However, this mutex is not required, since 14408 such syncronization should be handled by the client using the library. 14409 All other library methods for the progress avoid any form 14410 synchronization primitives for this reason 14411 144122016-10-03 Darshit Shah <darnir@gnu.org> 14413 14414 * src/bar.c: Rename mutex to bar_mutex 14415 144162016-10-02 Darshit Shah <darnir@gnu.org> 14417 14418 * libwget/http.c: Remove unused struct _body_callback_context 14419 144202016-09-30 Tim Rühsen <tim.ruehsen@gmx.de> 14421 14422 Better code coverage for HTML parsing 14423 14424 * tests/test-idn-meta.c: Add HTML5 meta charset 14425 * tests/test-meta-robots.c: Add meta robots 'all' and 'follow' 14426 144272016-09-30 Darshit Shah <darnir@gnu.org> 14428 14429 Mark some functions as pure 14430 14431 * libwget/cookie.c (_compare_cookie{,2}): Mark as pure 14432 * libwget/encoding.c (_utf8_is_valid): Same 14433 * libwget/hsts.c (_compare_hsts): Same 14434 * libwget/ocsp.c (_compare_ocsp): Same 14435 * libwget/netrc.c (_compare_netrc): Same 14436 * libwget/tls_session.c (_compare_tls_session): Same 14437 144382016-09-30 Tim Rühsen <tim.ruehsen@gmx.de> 14439 14440 Rename include/libwget.h to include/wget/wget.h+wgetver.h 14441 144422016-09-29 Tim Rühsen <tim.ruehsen@gmx.de> 14443 14444 Add tests for CSS parsing 14445 14446 * tests/Makefile.am: Add test-parse-css.c 14447 * tests/test-parse-css.c: New file including two tests 14448 144492016-09-29 Tim Rühsen <tim.ruehsen@gmx.de> 14450 14451 * Makefile.am: Remove unwanted stuff from coverage report 14452 144532016-09-29 Tim Rühsen <tim.ruehsen@gmx.de> 14454 14455 Reduce Travis OSX build overhead 14456 144572016-09-29 Tim Rühsen <tim.ruehsen@gmx.de> 14458 14459 * tests/test.c: Add wget_bar_* unit test 14460 144612016-09-29 Tim Rühsen <tim.ruehsen@gmx.de> 14462 14463 * libwget/bar.c: Cosmetics, param check for wget_bar_init() 14464 144652016-09-28 Darshit Shah <darnir@gnu.org> 14466 14467 Don't dereference NULL pointer when copying filename 14468 14469 * libwget/bar.c (wget_bar_deregister): Make sure filename is not NULL 14470 before calling strdup() on it 14471 144722016-09-28 Tim Rühsen <tim.ruehsen@gmx.de> 14473 14474 * libwget/http.c: Check WITH_LIBNGHTTP2 before referring nghttp2_nv 14475 144762016-09-28 Tim Rühsen <tim.ruehsen@gmx.de> 14477 14478 Fix race condition when pipelining reuqests 14479 14480 * libwget/http.c: Add streamid to debug messages 14481 * src/progress.h: Remove member downloader and head from _body_callback_context 14482 * src/wget.c (downloader_thread): Keep track of locking, 14483 (_get_header): Remove reference to downloader, 14484 (http_send_request): Replace downloader with job 14485 14486 With HTTP/2 pipelining (parallel streams per connection) is active. 14487 The bug fixed stops file descriptor leaks and writing data into wrong 14488 files. 14489 144902016-09-27 Dagobert Michelsen <dam@opencsw.org> 14491 14492 * README.md: Add build status for OpenCSW 14493 144942016-09-28 Tim Rühsen <tim.ruehsen@gmx.de> 14495 14496 * src/net.c (wget_tcp_resolve): Fix mutex unlocking 14497 144982016-09-28 Tim Rühsen <tim.ruehsen@gmx.de> 14499 14500 * src/wget.c (add_url, process_response): Fix NULL pointer dereference 14501 14502 Reported-by: Coverity 14503 145042016-09-26 Darshit Shah <darnir@gnu.org> 14505 14506 * src/wget.c (establish_coneection): Don't crash when no mirrors defined for metalink file 14507 145082016-09-26 Darshit Shah <darnir@gnu.org> 14509 14510 * libwget/net.c (wget_tcp_resolve): Don't sleep with an acquired mutex 14511 145122016-09-27 Darshit Shah <darnir@gnu.org> 14513 14514 Support dynamic thread allocation in progress bar 14515 14516 * include/libwget.h.in: Add new function wget_bar_set_slots 14517 * libwget/bar.c (_wget_bar_st): Add new struct member max_slots to store 14518 the maximum number of slots of the progress bar 14519 (wget_bar_init): Initialize the memory for all the possible 14520 progress_bars 14521 (wget_bar_set_slots): New function to modify the number of progress 14522 slots at runtime. Can only increase the number of slots, not decrease. 14523 * src/bar.c(bar_init): Remove unneeded variable lf. bar_init() is 14524 invoked before any threads are created, hence do not print the required 14525 newlines. This is now done by wget_bar_set_slots 14526 (bar_update_slots): Wget2 interface for libwget's wget_bar_set_slots 14527 (_error_write): Fix the position of acquiring the mutex. Don't make 14528 changes to the screen while some other progress bar function may be 14529 running 14530 * src/bar.h: New function bar_update_slots 14531 * src/wget.c: Create global variable nthreads. 14532 (downloader_thread): Update the number of progress bar slots 14533 * src/wget.h: New global variable nthreads 14534 145352016-09-27 Tim Rühsen <tim.ruehsen@gmx.de> 14536 14537 Simplify dynamic creation of threads 14538 14539 * src/bar.c (bar_init): Use config.max_threads 14540 * src/options.c: Remove config.num_threads 14541 * src/options.h: Remove config.num_threads 14542 * src/wget.c (main): Use config.max_threads, remove async_urls 14543 145442016-09-27 Tim Rühsen <tim.ruehsen@gmx.de> 14545 14546 * src/wget.c (main): Fix main loop 14547 14548 This also fixes the CTRL-C issue. 14549 145502016-09-27 Tim Rühsen <tim.ruehsen@gmx.de> 14551 14552 Fix unescaping of '+' in URL 14553 14554 * libwget/iri.c (wget_iri_unescape_inline): Do not touch '+'. 14555 (wget_iri_parse): Replace '+' by ' ' in query part. 14556 * tests/test.c (test_iri_parse): Add more tests 14557 145582016-09-26 Darshit Shah <darnir@gnu.org> 14559 14560 Make wget_bar_update update the entire progress 14561 145622016-09-26 Darshit Shah <darnir@gnu.org> 14563 14564 Draw animated progress bar for unknown file size 14565 14566 * libwget/bar.c: Use a tick counter and draw an animated progress bar, 14567 similar to Wget 1.x when the file size is unknown 14568 145692016-09-26 Darshit Shah <darnir@gnu.org> 14570 14571 * configure.ac: Enable support for disabling assertions 14572 145732016-09-26 Tim Rühsen <tim.ruehsen@gmx.de> 14574 14575 * README.md: Add Coverity and Coveralls.io badge 14576 145772016-09-25 Darshit Shah <darnir@gnu.org> 14578 14579 Update travis script to psuh to coveralls.io 14580 14581 * .travis.sh: Run `make check-coverage` when running with CC=gcc 14582 * .travis.yml: Use the newer trusty tahir builds for updated packages 14583 * .travis.yml: Refactor. Split out the OSX installation steps into 14584 .travis_setup.sh 14585 . .travis_setup.sh: Same 14586 * Makefile.am: Add --ignore-errors source to lcov command line 14587 145882016-09-25 Darshit Shah <darnir@gnu.org> 14589 14590 * Makefile.am: Add targets for checking code coverage 14591 145922016-09-23 Darshit Shah <darnir@gnu.org> 14593 14594 Improved progress bar functioning 14595 145962016-09-23 Darshit Shah <darnir@gnu.org> 14597 14598 Clean up progress bar code 14599 14600 Saving the max, cols and ratio to the slot structure was an optimization 14601 used to prevent unneeded refreshes of the progress bar on slow 14602 connections. However, with the asynchronous progress bar, this 14603 optimization is no longer necessary as we refresh the progress bar far 14604 fewer times already. Also, as other elements like the ETA are added to 14605 the progress bar, these checks will only cause more problems as the ETA 14606 would need to be updated even if no data has been downloaded in some 14607 time. 14608 14609 * libwget/bar.c: Remove ratio, max, cur, cols and first from the 14610 _wget_slot_st struct and eliminate all references to them. 14611 146122016-09-23 Darshit Shah <darnir@gnu.org> 14613 14614 Print a different progress bar when size is unknown 14615 14616 * libwget/bar.c(_wget_bar_st): New struct members known_size and 14617 unknown_size to denote the character with which the progress bar is 14618 filled in these two cases 14619 (wget_bar_init): Initialize the new struct members with the right data 14620 (wget_bar_update): Choose and print the right character based on 14621 whether the size is known or not. 14622 (_bar_print_final): Same 14623 (wget_bar_deinit): Free the struct members 14624 146252016-09-23 Darshit Shah <darnir@gnu.org> 14626 14627 * src/bar.c(_error_write): Fix another potential race condition 14628 14629 In this case, the lock acquisition and release is done around the for 14630 loop instead instead of around the call to wget_bar_update. By creating 14631 such a coarse critical section, we ensure that the entire screen has 14632 been redrawn for the user before any further changes to it are made. 14633 This is especially the case when error_printf() is invoked in quick 14634 succession which would cause multiple instances of wget_update_thread() 14635 to run simultaneously, greatly increasing the lock contention. 14636 146372016-09-23 Darshit Shah <darnir@gnu.org> 14638 14639 * src/bar.c (_bar_update_thread): Fix a potential race condition 14640 146412016-09-20 Darshit Shah <darnir@gnu.org> 14642 14643 Improve accuracy of wget_human_readable 14644 14645 * libwget/utils.c (wget_human_readable): Set acc to 1000 and print to 2 14646 decimal places. This is similar to the settings used in Wget 1.x. 14647 * libwget/bar.c (_bar_slot_t): Define element human_size to be as large 14648 as _BAR_DOWNBYTES_SIZE. 14649 146502016-09-20 Tim Rühsen <tim.ruehsen@gmx.de> 14651 14652 Use wget_human_readable() from Wget1.x 14653 14654 * bootstrap.conf: Remove module 'human' 14655 * include/libwget.h.in: Amend wget_human_readable() 14656 * libwget/bar.c: Use new function wget_human_readable() 14657 * libwget/utils.c: Replace wget_human_readable() 14658 * src/wget.c: Use new function wget_human_readable() 14659 146602016-09-20 Tim Rühsen <tim.ruehsen@gmx.de> 14661 14662 Print human readable total number of bytes in progress bar 14663 14664 * include/libwget.h.in: Add wget_human_readable_alloc() 14665 * libwget/utils.c: Add wget_human_readable_alloc() 14666 * libwget/bar.c: Use wget_human_readable_alloc() 14667 * src/bar.c (bar_init): Set log function after call to wget_bar_init() 14668 * src/wget.c (main): Use wget_human_readable() to print bottom line of bar 14669 146702016-09-20 Tim Rühsen <tim.ruehsen@gmx.de> 14671 14672 Use libwget alloc functions in CSS parser 14673 14674 * libwget/css.c: New wrapper functions yyalloc() and yyrealloc() 14675 * libwget/css_tokenizer.lex: Set options noyyalloc and noyyrealloc 14676 146772016-09-19 Tim Rühsen <tim.ruehsen@gmx.de> 14678 14679 * src/wget.c: Fix calculation of quota 14680 146812016-09-19 Darshit Shah <darnir@gmail.com> 14682 14683 * README.md: Fix typo 14684 146852016-09-17 Darshit Shah <darnir@gmail.com> 14686 14687 Retain a copy of download context for progress bar 14688 14689 When the screen is scrolled or resized, we often need to redraw the 14690 entire progress bar. However, when some threads have completed 14691 downloading, this can cause those progress slots to become blank since 14692 their contexts were deleted and hence lost. To prevent this, keep a copy 14693 of the last context in the slot, so we can access it later for printing 14694 the progress bar. 14695 14696 * libwget/bar.c (_bar_slot_t): New member, last_ctx 14697 (wget_bar_deregister): Create a copy of the context just before we 14698 deregister. This ensures that we copy the latest data for printing 14699 (wget_bar_update): If no context is registered, then try printing the 14700 last context available 14701 (_bar_print_final): Make the method signature similar to 14702 wget_bar_update for consistency 14703 147042016-09-19 Tim Rühsen <tim.ruehsen@gmx.de> 14705 14706 Fix Robots Exclusion Standard 14707 14708 * include/libwget.h.in: Add function wget_list_getnext(). 14709 * libwget/list.c: Add function wget_list_getnext(). 14710 * libwget/robots.c: Fix memory leak. 14711 * src/host.c (host_remove_job): Cleanup queue after downloading and 14712 scanning robots.txt. 14713 * src/job.h (struct JOB): Add flag 'requested_by_user'. 14714 * src/wget.c (add_url_to_queue): Set 'requested_by_user', 14715 (add_url): Fix checking for disallowed paths. 14716 * tests/Makefile.am: Add test 'test-robots'. 14717 * tests/test-robots.c: New test to prove robots functionality. 14718 14719 Special handling for automatic robots.txt jobs 14720 ============================================== 14721 What can happen with --recursive and --span-hosts is that a document from hostA 14722 has links to hostB. All these links might go into the hostB queue before robots.txt 14723 is downloaded and parsed. To avoid downloading of 'disallowed' documents, the queue 14724 for hostB has to be cleaned up right after downloading and parsing robots.txt. 14725 Any links links that have been explicitly requested by the user are still downloaded. 14726 147272016-09-14 Darshit Shah <darnir@gmail.com> 14728 14729 Use gnulib human module for human readable file size 14730 14731 * bootstrap.conf: Add the human module and its dependency unistd 14732 * include/libwget.h.in: Replace method signature for wget_human_readable 14733 * libwget/bar.c (_bar_slot_t): Add a new struct memeber for storing the 14734 human readable string that it printed on the progress bar 14735 (wget_bar_init): Initialise the new human_size struct member 14736 (wget_bar_update): Use the new wget_human_readable() method 14737 (_bar_print_final): Same 14738 (wget_bar_deinit): Free the allocated memory for each slot 14739 * libwget/utils.c (wget_human_readable): Replace the old function with a 14740 call to the human_readable() method from gnulib 14741 147422016-09-14 Darshit Shah <darnir@gmail.com> 14743 14744 Handle return value of wget_thread_create 14745 14746 * src/bar.c: Handle return value of wget_bar_create and fallback to 14747 quiet mode if progress bar cannot be drawn 14748 147492016-09-14 Darshit Shah <darnir@gmail.com> 14750 14751 Update gnulib module 14752 147532016-09-11 Darshit Shah <darnir@gmail.com> 14754 14755 Split logging functions into stdout and stderr 14756 147572016-09-10 Darshit Shah <darnir@gmail.com> 14758 14759 Fix location of error messages in progress bar 14760 14761 * src/bar.c (_error_write): New logging callback function for error 14762 messages which will print the messages to the top of the progress bars 14763 * src/log.c (log_write_error): New public method for writing error 14764 messages to screen 14765 * src/log.h: Same 14766 147672016-09-14 Darshit Shah <darnir@gmail.com> 14768 14769 Separate out the last update of the progress bar 14770 14771 When the progress bar is updated for the last time (whether exiting due 14772 to error, or download complete), we may want to print information not 14773 normally presented in the progress bar, like total time taken. To allow 14774 this, separate out the printing of the last update of the progress bar 14775 14776 * include/libwget.h.in (_wget_bar_ctx): Remove unused members, final and 14777 cond 14778 * libwget/bar.c: Separate out the bar slot selection for reuse. 14779 (_bar_print_final): New method for printing the last update of a 14780 progress bar 14781 147822016-08-08 Tim Rühsen <tim.ruehsen@gmx.de> 14783 14784 Fix wget_bar_free() 14785 147862016-08-07 Darshit Shah <darnir@gmail.com> 14787 14788 Better naming of functions 14789 147902016-08-08 Darshit Shah <darnir@gmail.com> 14791 14792 Separate out bar_deinit and free'ing memory 14793 14794 * libwget/bar.c (wget_bar_init): Invoke wget_bar_deinit() to free up the 14795 memory allocated to the various progress bar sections. Similarly, invoke 14796 wget_bar_free() to free up the memory allocated to the progress bar 14797 itself 14798 147992016-09-14 Darshit Shah <darnir@gmail.com> 14800 14801 Use xfree, xmalloc and xcalloc 14802 14803 * libwget/bar.c: Replace all calls to free(), malloc() and calloc() with 14804 xfree(), xmalloc() and xcalloc() respectively 14805 * libwget/hashmap.c: Same 14806 148072016-08-07 Darshit Shah <darnir@gmail.com> 14808 14809 Change tabs to spaces when not at Beginning of line 14810 148112016-08-07 Tim Ruehsen <tim.ruehsen@gmx.de> 14812 14813 Fix compiler warnings when IOCTL is not avaialble 14814 14815 * src/utils.c (determine_screen_width): Make sure there are no unused 14816 variables when IOCTL is not available 14817 148182016-08-07 Darshit Shah <darnir@gmail.com> 14819 14820 Make compiler happy about strict-prototypes and shadowed variables 14821 148222016-08-06 Darshit Shah <darnir@gmail.com> 14823 14824 Use pthread_cancel to kill a thread 14825 14826 * include/libwget.h.in: Export new function wget_thread_cancel to kill 14827 an existing thread nicely. 14828 * libwget/thread.c: Same 14829 * src/bar.c: Use the cleaner wget_thread_cancel() method to kill the 14830 progress bar instead of polling for a variable. 14831 148322016-07-28 Darshit Shah <darnir@gmail.com> 14833 14834 Create an asynchronous progress bar 14835 14836 Give the progress bar its own thread and let it update the entire 14837 display asynchronously at a specified time interval. The existing 14838 implementation refreshes the progress bar for each network packet 14839 downloaded. Over multiple downloader threads and a high speed network 14840 connection this can lead to far too many redrawings of the screen. Also, 14841 each of the downloader threads will block while trying to acquire the 14842 thread mutex because another thread just retrieved a packet. While I 14843 haven't profiled it, it seems like there would be extremely high lock 14844 contention in the existing implementation. Instead, with a separate 14845 thread, we can update all the progress bar slots simultaneously at 14846 regular intervals. 14847 14848 * bootstrap.conf: Include Gnulib module "ioctl" 14849 * include/libwget.h.in: Define always_inline, flatten and deprecated 14850 compiler attributes for both GCC and Clang 14851 * include/libwget.h.in: Export new functions wget_human_readable, 14852 wget_bar_register and wget_bar_deregister. 14853 * include/libwget.h.in (wget_http_response_t): Add new element 14854 "cur_downloaded" to struct. This element keeps a track of the raw 14855 number of bytes downloaded in the response 14856 (_wget_bar_ctx): Define new struct for storing the progress bar 14857 context. 14858 * libwget/bar.c: Fix display of downloaded ratio. Ensure it does not 14859 exceed 100% by comparing the raw downloaded bytes instead of 14860 uncompressed downloaded bytes. 14861 Add support for printing the filename and downloaded bytes to the 14862 progress bar. 14863 * libwget/http.c (wget_http_response_cb): Store the raw number of 14864 bytes downloaded from the network in the response data 14865 * libwget/utils.c (wget_human_readable): New function to convert an 14866 int value to a human readable string 14867 * src/bar.c: Use the entire screen width instead of just 70 columns 14868 for the progress bar. 14869 Provide methods to register and deregister a progress bar 14870 context 14871 (wget_bar_update_thread): New method for the progress bar thread 14872 to update the output periodically. 14873 * src/bar.h: Same 14874 * src/job.h: Move definition of struct DOWNLOADER from main.c to 14875 here 14876 * src/progress.h: Move definition of _body_callback_context from 14877 main.c to here 14878 * src/utils.c: Add new method to determine the width of the screen 14879 * src/utils.h: Same 14880 * src/wget.c: Use the new progress bar contexts. Update, register 14881 and deregister them 14882 (main): Deinit the progress bar only if it was enabled 14883 * src/Makefile.am: Add new files, progress.h, utils.c, utils.h 14884 148852016-09-16 Tim Rühsen <tim.ruehsen@gmx.de> 14886 14887 Fix following relative links 14888 14889 * src/wget.c (html_parse): Add only absolute URLs to 'known_urls'. 14890 * tests/test-base.c: Test that the changes work. 14891 14892 Reported-by: Jaaap@github.com 14893 148942016-09-16 Tim Rühsen <tim.ruehsen@gmx.de> 14895 14896 * libwget/iri.c (_normalize_path): Fix return value 14897 148982016-09-16 Tim Rühsen <tim.ruehsen@gmx.de> 14899 14900 * src/wget.c (add_url): Check pattern list for URL domain earlier. 14901 14902 This avoids wrong messages about why not following an URL. 14903 149042016-09-15 Tim Rühsen <tim.ruehsen@gmx.de> 14905 14906 * libwget/io.c (wget_update_file): Add comment regarding owner 14907 flags when using mkstemp(). 14908 149092016-09-14 Tim Rühsen <tim.ruehsen@gmx.de> 14910 14911 * src/wget.c (add_url): Avoid theoretical NULL ptr dereference 14912 14913 Reported-by: Coverity 14914 149152016-09-14 Tim Rühsen <tim.ruehsen@gmx.de> 14916 14917 * src/wget.c (process_response_part): Fix NULL pointer dereference 14918 14919 Reported-by: Coverity 14920 149212016-09-14 Tim Rühsen <tim.ruehsen@gmx.de> 14922 14923 * libwget/encoding.c (wget_memiconv): Fix memleak 14924 14925 Reported-by: Coverity 14926 149272016-09-14 Tim Rühsen <tim.ruehsen@gmx.de> 14928 14929 * examples/print_html_urls.c (html_parse_localfile): Fix memleak 14930 14931 Reported-by: Coverity 14932 149332016-09-10 Darshit Shah <darnir@gmail.com> 14934 14935 Fix segfault in case of Basic Authentication 14936 14937 * src/wget.c(downloader_thread): Remove job only if it exists 14938 149392016-09-09 Tim Rühsen <tim.ruehsen@gmx.de> 14940 14941 * libwget/encoding.c: Use ICONV_CONST to avoid cc warning 14942 149432016-09-09 Tim Rühsen <tim.ruehsen@gmx.de> 14944 14945 Fix fnmatch() on Solaris 14946 14947 * bootstrap.conf: Add fnmatch-gnu 14948 * configure.ac: Add AC_GNU_SOURCE 14949 149502016-09-09 Tim Rühsen <tim.ruehsen@gmx.de> 14951 14952 * examples/websequencediagram.c (main): Fix printf format string 14953 149542016-09-04 Tim Rühsen <tim.ruehsen@gmx.de> 14955 14956 * configure.ac: Enable color diagnostics with ccache 14957 149582016-08-28 Tim Rühsen <tim.ruehsen@gmx.de> 14959 14960 * tests/test.c: Fix cookie tests for when libpsl not available 14961 149622016-08-28 Tim Rühsen <tim.ruehsen@gmx.de> 14963 14964 Support cookie prefixes __Secure- and __Host- 14965 14966 * libwget/cookie.c (_wget_cookie_normalize_cookie): Add checks 14967 for __Secure- and __Host- prefixes. 14968 * tests/test.c (test_cookies): Add test cases for the prefixes. 14969 14970 This change implements proposals from draft-ietf-httpbis-cookie-prefixes-00 14971 as modern browsers do. 14972 149732016-08-07 Tim Rühsen <tim.ruehsen@gmx.de> 14974 14975 * include/libwget.h.in: Add attribute const to wget_hash_get_len() 14976 149772016-08-07 Tim Rühsen <tim.ruehsen@gmx.de> 14978 14979 Update gnulib submodule 14980 149812016-07-28 Darshit Shah <darnir@gmail.com> 14982 14983 Make compiler happy about using uninitialized vars 14984 14985 * tests/test.c(test_striconv): Explcitly initialize variables to 14986 NULL to make compiler happy. 14987 149882016-07-28 Darshit Shah <darnir@gmail.com> 14989 14990 Add configure support for Thread Sanitizer as well 14991 14992 * configure.ac: Add configure option to enable Thread Sanitizer. 14993 Enabling this option currently causes all tests to fil due to 14994 various data races. Some of the races can be fixed, while others are 14995 false positives. 14996 [ci skip] 14997 149982016-07-28 Darshit Shah <darnir@gmail.com> 14999 15000 Reduce the depth of git clone on travis to 3 15001 15002 * .travis.yml: We don't need any git operations on Travis. Reduce 15003 the clone depth. 15004 [ci skip] 15005 150062016-07-28 Darshit Shah <darnir@gmail.com> 15007 15008 Make ASan happy about dangling memory in test-metalink 15009 15010 * tests/test-metalink.c: Explicitly free() heap allocated memory 15011 150122016-07-23 Darshit Shah <darnir@gmail.com> 15013 15014 Enable fsanitize options when running on Travis 15015 15016 * .travis.sh: Enable UBSan and ASan sanitizers on Travis 15017 150182016-06-16 Darshit Shah <darnir@gmail.com> 15019 15020 Fix a ubsan warning due to zero length VLA 15021 150222016-07-23 Darshit Shah <darnir@gmail.com> 15023 15024 Add configure option to enable compiler sanitizers 15025 15026 Compiler sanitization options allow the code to be instrumented at 15027 compile time. They add instructions to detect various behaviours at 15028 runtime. These options usually cause significant slowdown and will 15029 often cause the program to crash. Hence, do *not* use them on 15030 production systems. They are meant to be used only by the developers 15031 for testing purposes. Three sanitization options are added to the 15032 configure options in this commit: 15033 1. Undefined Behaviour Sanitizer (ubsan): Detect issues in the code 15034 that are undefined behaviour according to the C specification 15035 2. Address Sanitizer (ASan): Detect addressing issues and memory 15036 leaks at runtime. Slightly similar to Valgrind, but using compiler 15037 added instrumentation 15038 3. Memory Sanitizer (MSan): Detect uninitialized memory reads. 15039 15040 The Address Sanitizer and Memory Sanitizer options are mutually 15041 exclusive, and hence a check for the same is added to the configure 15042 script. 15043 15044 MSan additionally requires that all libraries be instrumented too. 15045 Without that, MSan is nearly unusable due to various false 15046 positives. 15047 15048 * configure.ac: Add option to enable UBSan, ASan and MSan fsanitize 15049 options at compile time. 15050 150512016-07-22 Darshit Shah <darnir@gmail.com> 15052 15053 Update documentation to reflect actual behavior of -O 15054 15055 * docs/wget2_manual.md: Update documentation. -O does not act as a 15056 shell redirection. 15057 150582016-07-22 Darshit Shah <darnir@gmail.com> 15059 15060 Fix issue when -C and -O are passed together 15061 15062 * src/wget.c(http_create_request): When -c and -O are passed 15063 togther, ensure that the output_document is continued and not the 15064 local_filename 15065 150662016-07-22 Darshit Shah <darnir@gmail.com> 15067 15068 Add new test to check for continue and -O options 15069 15070 * tests/test-wget-1.c: Add new test. If the remote filename 15071 exists locally, then Wget2 tries to conitnue downloading that file 15072 despite being given an explicit output document. This test checks 15073 for such behaviour. 15074 150752016-07-22 Tim Rühsen <tim.ruehsen@gmx.de> 15076 15077 * src/options.c: Add linefeeds to --help output 15078 150792016-07-22 Tim Rühsen <tim.ruehsen@gmx.de> 15080 15081 Update README 15082 15083 * README.md: Update text to current status. 15084 * docs/mainpage.md: Likewise. 15085 150862016-07-21 Tim Rühsen <tim.ruehsen@gmx.de> 15087 15088 Add TLS Session Resumption with persistent cache 15089 15090 * include/libwget.h.in: Add wget_tls_session_* set of functions, 15091 add new define WGET_SSL_SESSION_CACHE 15092 * libwget/Makefile.am: Add tls_session.c to libwget 15093 * libwget/ssl_gnutls.c (struct _config): Add tls_session_cache. 15094 (struct _session_context): Add delayed_session_data. 15095 (wget_ssl_set_config_string): Handle WGET_SSL_SESSION_CACHE. 15096 (wget_ssl_open): Add False Start debug messages, 15097 Set session data if cound in cache, 15098 Write session data into cache. 15099 (wget_ssl_read_timeout): Write session data into cache when 15100 False Start has been activated. 15101 * libwget/tls_session.c: New file with session data cache implementation 15102 * src/options.c (print_help): Add new options --tls-resume and 15103 --tls-session-file. 15104 (config): Set tls_resume activated by default. 15105 (options[]): Add tls-resume and tls-session-file. 15106 (init): Create session file name, init session data cache, 15107 Set session cache for TLS layer. 15108 (deinit): Free session cache and session cache filename. 15109 * src/options.h (struct config): Add tls_session_db, tls_session_file, 15110 tls_resume. 15111 * src/wget.c (main): Save session cache if changed. 15112 15113 TLS Session Resumption speeds up TLS handshake by 1xRTT. 15114 Together with TCP Fast Open (enabled by default), we are down at 15115 1xRTT TLS handshake overhead. To get down to 0 RTT we need a different 15116 TLS protocol - TLS v1.3 will hopefully soon be standardized. 15117 151182016-07-20 Tim Rühsen <tim.ruehsen@gmx.de> 15119 15120 Beautify TLS certificate information printout 15121 15122 * libwget/ssl_gnutls.c (_print_x509_certificate_info): 15123 Beautify printout. 15124 (_print_info): Likewise. 15125 151262016-07-20 Tim Rühsen <tim.ruehsen@gmx.de> 15127 15128 * libwget/ssl_gnutls.c (wget_ssl_open): Fix #elif 15129 151302016-07-20 Tim Rühsen <tim.ruehsen@gmx.de> 15131 15132 Add support for TLS False Start 15133 15134 * include/libwget.h.in: New declaration wget_tcp_set_tls_false_start() 15135 and wget_tcp_get_tls_false_start() 15136 * libwget/net.c: New functions wget_tcp_set_tls_false_start() and 15137 wget_tcp_get_tls_false_start() 15138 * libwget/net.h: Add tls_false_start to struct wget_tcp_st 15139 * libwget/ssl_gnutls.c (_do_handshake): Print TLS False Start status. 15140 (wget_ssl_open): Enable TLS False Start for GnuTLS >= 3.5.0. 15141 * src/options.c: Add description for --tls-false-start. 15142 (struct option options): Add option --tls-false-start. 15143 (init): Call wget_tcp_set_tls_false_start(). 15144 * src/options.h (struct config): Add member tls_false_start. 15145 151462016-07-14 Tim Rühsen <tim.ruehsen@gmx.de> 15147 15148 * libwget/ssl_gnutls.c (wget_ssl_close): Retry TLS shutdown on error 15149 151502016-07-12 Tim Rühsen <tim.ruehsen@gmx.de> 15151 15152 * po/Makevars: Removed from git repo 15153 151542016-07-12 Tim Rühsen <tim.ruehsen@gmx.de> 15155 15156 Generate distributed ChangeLog from git log 15157 15158 * bootstrap.conf: Add gnulib module 'gitlog-to-changelog'. 15159 * Makefile.am: Generate the ChangeLog file from the git log. 15160 151612016-07-12 Tim Rühsen <tim.ruehsen@gmx.de> 15162 15163 * configure.ac: Add parallel-tests and gnu to automake options 15164 151652016-07-12 Tim Rühsen <tim.ruehsen@gmx.de> 15166 15167 Declare wget_iri_is(un)reserved() as const 15168 15169 * include/libwget.h.in: Declare wget_iri_isunreserved() and 15170 wget_iri_isunreserved_path() with attribute 'const' 15171 151722016-07-05 Tim Rühsen <tim.ruehsen@gmx.de> 15173 15174 Refactor downloader main loop into a state machine 15175 15176 * src/host.c (_search_queue_for_free_job): Set 'used_by' for 15177 allocated job. 15178 (_search_host_for_free_job): Same. 15179 New function _release_job(). 15180 New function host_release_jobs(). 15181 New function host_add_robotstxt_job(). 15182 (host_remove_job): Fix queue size calculation. 15183 Added several debug lines. 15184 * src/host.h: Declare host_add_robotstxt_job() and host_release_jobs() 15185 * src/job.h: New variable 'used_by' for PART, 15186 New variables 'used_by','downloader' for JOB. 15187 * src/options.c: Default config.http2_request_window to 30. 15188 Default config.http1_request_window to 10. 15189 (deinit): Free config.accept_patterns and config.reject_patterns. 15190 * src/options.h: Add 'http2_request_window' and 'http1_request_window' 15191 to 'struct config'. 15192 * src/wget.c (add_url_to_queue): Call host_add_robotstxt_job(). 15193 (add_url): Call host_add_robotstxt_job(). 15194 Refactor downloader_thread(), process_response_header(), 15195 process_head_response(), process_response_part(), process_response(). 15196 151972016-07-04 Tim Rühsen <tim.ruehsen@gmx.de> 15198 15199 Use TCP Fast Open (TFO) within TLS handshake 15200 15201 * include/libwget.h.in: New declaration wget_tcp_get_tcp_fastopen() 15202 * libwget/net.c: New function wget_tcp_get_tcp_fastopen(), 15203 (wget_tcp_connect): Support TFO 15204 * libwget/ssl_gnutls.c: New function _ssl_writev() 15205 (wget_ssl_open): Set _ssl_writev() as push function in TFO requested 15206 152072016-06-29 Tim Rühsen <tim.ruehsen@gmx.de> 15208 15209 Add benchmark scripts 15210 15211 * benchmarks/README: New file, short description 15212 * benchmarks/bench_https_http1: New file, HTTPS via HTTP/1.1 15213 * benchmarks/bench_https_http2: New file, HTTPS via HTTP/2.0 15214 152152016-06-24 Tim Rühsen <tim.ruehsen@gmx.de> 15216 15217 Refactoring to separate send, receive and HTTP state machine 15218 15219 * examples/websequencediagram.c (main): Call wget_http_request_set_body() 15220 and wget_http_send_request() instead of wget_http_send_request_with_body(). 15221 * include/libwget.h.in: Add WGET_HTTP_USER_DATA, wget_get_timemillis(), 15222 extend wget_thread_cond_wait(), add body, user_data, body_length to 15223 wget_http_request_t, remove wget_http_send_request_with_body(), 15224 add wget_http_request_get_int(), wget_http_request_set_ptr(), 15225 wget_http_request_get_ptr(), wget_http_request_set_body(). 15226 * libwget/http.c: Add wget_http_request_get_int(), 15227 wget_http_request_set_ptr(), wget_http_request_get_ptr(), 15228 wget_http_request_set_body(), 15229 remove wget_http_send_request_with_body(), 15230 (wget_http_request_to_buffer): add body to request buffer. 15231 * libwget/http_highlevel.c (wget_http_get): Replace 15232 wget_http_send_request_with_body() 15233 * libwget/iri.c: Use c-ctype.h instead of ctype.h 15234 (wget_iri_parse): Allow any numbers of / after scheme: 15235 (wget_iri_parse): Catch URIs without /after scheme: 15236 * libwget/list.c (wget_list_browse): Small code rearrangement 15237 * libwget/metalink.c (_add_mirror): Check mirror.iri for NULL 15238 * libwget/ssl_gnutls.c (send_ocsp_request): Replace 15239 wget_http_send_request_with_body() 15240 * libwget/thread.c (wget_thread_cond_signal): Add timeout param 15241 * libwget/utils.c: New function wget_get_timemillis() 15242 * src/blacklist.c: Include wget.h instead of log.h 15243 * src/blacklist.h: Fix indentation 15244 * src/host.c: Add queueing stuff 15245 * src/host.h: Reflect changes in host.c 15246 * src/job.c: Remove queueing stuff 15247 * src/job.h: Reflect changes in job.c 15248 * src/log.c: Sync stdout/stderr to correct output order 15249 * src/log.h: Remove shortcuts of print functions 15250 * src/wget.c: Remove download_part() and http_get(). 15251 Add http_send_request(), http_receive_response(), try_connection(), 15252 establish_connection(), add_statistics(), process_response_header(). 15253 Amend downloader_thread() to reflect the changes. 15254 * src/wget.h: Add shortcut defines for print functions. 15255 * tests/libtest.c (_http_server_thread): Fix compiler warning, 15256 fix debug message. 15257 New function _write_msg() to print server messages yellow. 15258 (wget_test) Add -d to wget command line. 15259 * tests/test-metalink.c (main): Add tests for V3 and V4 metalink 15260 files read from command line (-i, --force-metalink) 15261 * tests/test.c (test_iri_parse): Add test for slash-less mailto: URI 15262 152632016-06-22 Tim Rühsen <tim.ruehsen@gmx.de> 15264 15265 Use bitfields in structs where possible 15266 152672016-07-11 Tim Rühsen <tim.ruehsen@gmx.de> 15268 15269 * Makefile.am: Fix EXTRA_DIST config.rpath to build-aux/config.rpath 15270 152712016-07-08 Tim Rühsen <tim.ruehsen@gmx.de> 15272 15273 * README.md: Fix repo cloning instructions 15274 152752016-07-08 Tim Rühsen <tim.ruehsen@gmx.de> 15276 15277 Move ignored po/ files to po/.gitignore 15278 15279 * .gitignore: Remove po/ files 15280 * po/.gitignore: New file 15281 152822016-07-07 Ander Juaristi <ajuaristi@gmx.es> 15283 15284 Remove references to autogen.sh. Set SKIP_PO. 15285 15286 * bootstrap.conf: add SKIP_PO=1, so that we don't have to pass 15287 the --skip-po flag every time we run bootstrap. 15288 * README.md, contrib/check-hard, contrib/mingw, docs/mainpage.md, 15289 .travis.sh: amend references to autogen.sh. 15290 * autogen.sh: Removed 15291 * .gitignore: Add build-aux 15292 * po/Makevars: Remove auto-generated file from repo 15293 152942016-06-26 Ander Juaristi <ajuaristi@gmx.es> 15295 15296 Use bootstrap 15297 15298 * bootstrap, bootstrap.conf: new files. 15299 * configure.ac: invoke AC_CONFIG_MACRO_DIR and 15300 AC_CONFIG_AUX_DIR. 15301 153022016-06-16 Tim Rühsen <tim.ruehsen@gmx.de> 15303 15304 API changes for HTTP/2 parallel/async requests 15305 15306 * .gitignore: New entry examples/http_multi_get 15307 * Makefile.am: Move subdir 'examples' before 'src' 15308 * examples/Makefile.am: Add http_multi_get 15309 * examples/http_get2.c (main): Adapt code to API changes 15310 * examples/http_multi_get.c: New example to show async/parallel 15311 requests 15312 * examples/websequencediagram.c (main): Adapt code to API changes 15313 * include/libwget.h.in: New functions wget_http_request_set_header_cb, 15314 wget_http_request_set_body_cb, wget_http_request_set_int. 15315 Changed params of wget_http_get_response. 15316 Removed wget_http_get_response_func, wget_http_get_response_stream, 15317 wget_http_get_response_fd. 15318 Changed params of wget_http_get_response_cb. 15319 Add members pending_requests, received_http2_responses, 15320 pending_http2_requests to wget_http_connection_t. 15321 Add member req to wget_http_response_t. 15322 Add members header_callback, body_callback, header_user_data, 15323 body_user_data, response_keepheader to wget_http_request_t. 15324 New function types wget_http_header_callback_t and 15325 wget_http_body_callback_t. 15326 * libwget/http.c: Implementation of the changes in include/libwget.h.in. 15327 * libwget/http_highlevel.c: Adapt code to API changes 15328 * libwget/ssl_gnutls.c: Fixed defaults for SNI, OCSP and 15329 ALPN. 15330 Adapt code to API changes. 15331 * src/options.c: Reflect changes in libwget/ssl_gnutls.c 15332 * src/wget.c: Adapt code to API changes 15333 153342016-06-15 Tim Rühsen <tim.ruehsen@gmx.de> 15335 15336 Fix compiler warnings 15337 15338 * include/libwget.h.in: Declare wget_tcp_get_protocol as PURE 15339 * libwget/base64.c (wget_base64_decode, wget_base64_encode): Fix 15340 warning about missing switch() default 15341 * libwget/http.c (_on_header_callback): Add switch default case, 15342 (wget_http_request_to_buffer): Remove unused variable 'use_proxy' 15343 * libwget/ssl_gnutls.c (_print_info): Add switch default case 15344 * libwget/vector.c (wget_vector_findext): Replace switch by if/else 15345 * src/wget.c (_get_body): Check EAGAIN != EWOULDBLOCK via cpp 15346 153472016-06-15 Tim Rühsen <tim.ruehsen@gmx.de> 15348 15349 Fix compiler warnings in test suite 15350 15351 * tests/libtest.c (wget_test_check_filesystem): Fix printf 15352 format warning 15353 * tests/test-parse-html.c (html_dump): Add switch default case, 15354 fix printf format warning 15355 153562016-06-15 Tim Rühsen <tim.ruehsen@gmx.de> 15357 15358 Suppress warning in auto-generated css_tokenizer.c 15359 15360 * libwget/css_tokenizer.lex: Add GCC pragmas to suppress warnings 15361 when compiling libwget/css_tokenizer.c 15362 153632016-06-15 Tim Rühsen <tim.ruehsen@gmx.de> 15364 15365 Use gnutls_transport_[gs]et_int() in GnuTLS code if possible 15366 15367 * configure.ac: Check for gnutls_transport_get_int() 15368 * libwget/ssl_gnutls.c: Use gnutls_transport_[gs]et_int() if possible 15369 15370 Avoid int <-> pointer conversions 15371 153722016-06-15 Tim Rühsen <tim.ruehsen@gmx.de> 15373 15374 Use less warnings for gnulib compilation on --enable-gcc-warnings 15375 15376 * autogen.sh: Add option --makefile-name=gnulib.mk to gnulib-tool 15377 * configure.ac: Add 'subdir-objects' to AM_INIT_AUTOMAKE, 15378 add macro 'gl_GCC_VERSION_IFELSE' from coreutils project, 15379 enable extra gcc warnings by default when running from Git repo, 15380 disable several warnings for gnulib compilation 15381 * lib/Makefile.am: New file 15382 153832016-06-14 Tim Rühsen <tim.ruehsen@gmx.de> 15384 15385 Add colors to debug and error output 15386 15387 * src/log.c: Add _write_out(), _write_error(), _write_info() 15388 15389 Errors are printed red (if output is a TTY), debug output is 15390 magenta/purple. Not configurable yet. 15391 153922016-06-14 Tim Rühsen <tim.ruehsen@gmx.de> 15393 15394 Print blacklist entries as debug messages 15395 15396 * src/blacklist.c (_blacklist_print): Call debug_printf() 15397 153982016-06-14 Tim Rühsen <tim.ruehsen@gmx.de> 15399 15400 Fix printf format warnings 15401 15402 * tests/buffer_printf_perf.c: Fix printf format warnings 15403 * tests/stringmap_perf.c: Likewise 15404 * tests/test.c: Likewise 15405 154062016-06-14 Tim Rühsen <tim.ruehsen@gmx.de> 15407 15408 Fix printf format warnings 15409 15410 * libwget/http.c: Fix printf format warnings 15411 * libwget/http_highlevel.c: Likewise 15412 * libwget/io.c: Likewise 15413 * libwget/ssl_gnutls.c: Likewise 15414 * src/wget.c: Likewise 15415 154162016-06-14 Tim Rühsen <tim.ruehsen@gmx.de> 15417 15418 Remove warnings from gcc's -Wjump-misses-init 15419 15420 * libwget/ssl_gnutls.c (_verify_certificate_callback): 15421 Move variable initialization upwards 15422 * src/wget.c (html_parse): Move variable initialization upwards 15423 154242016-06-14 Tim Rühsen <tim.ruehsen@gmx.de> 15425 15426 Do not inline _no_memory() 15427 15428 * libwget/xalloc.c: Remove _GL_INLINE from _no_memory() 15429 154302016-06-14 Tim Rühsen <tim.ruehsen@gmx.de> 15431 15432 Add gnulib module 'manywarnings' 15433 15434 * autogen.sh: Add module manywarnings 15435 * configure.ac: Add ./configure option --enable-gcc-warnings to enable 15436 many warnings 15437 * examples/Makefile.am: Add WERROR_CFLAGS and WARN_CFLAGS to AM_CFLAGS 15438 * libwget/Makefile.am: Likewise 15439 * src/Makefile.am: Likewise 15440 * tests/Makefile.am: Likewise 15441 154422016-06-14 Tim Rühsen <tim.ruehsen@gmx.de> 15443 15444 Update gnulib to latest master 15445 15446 * gnulib: Sync with upstream 15447 154482016-06-06 Tim Rühsen <tim.ruehsen@gmx.de> 15449 15450 Fix FTP PASV listening in test suite 15451 15452 * tests/libtest.c: Fix FTP PASV listening 15453 154542016-05-20 Tim Rühsen <tim.ruehsen@gmx.de> 15455 15456 Revert "Support direct mpeg streams in examples/getstream.c" 15457 15458 This reverts commit d3d7342e8063be0428549ebe4df66560b030074c. 15459 154602016-05-20 Tim Rühsen <tim.ruehsen@gmx.de> 15461 15462 Support direct mpeg streams in examples/getstream.c 15463 15464 * examples/getstream.c: Support direct mpeg streams 15465 154662016-05-20 Tim Rühsen <tim.ruehsen@gmx.de> 15467 15468 Support audio/x-scpls in examples/getstream.c 15469 15470 * examples/getstream.c (main): Fix m3u parsing, Add audio/x-scpls 15471 154722016-05-19 Tim Rühsen <tim.ruehsen@gmx.de> 15473 15474 Let test suite survive on case-sensitive filesystems (e.g. HFS+) 15475 15476 * tests/libtest.c: New function wget_test_check_filesystem(), 15477 (_empty_directory, _remove_directory): Do not print 15478 errors about missing directories. 15479 * tests/libtest.h: Add define WGET_TEST_FS_CASEMATTERS 15480 * tests/test--accept.c: Renamed files to avoid casing problems 15481 * tests/test-wget-1.c: Skip casing tests on case-sensitive filesystem 15482 154832016-05-16 Tim Rühsen <tim.ruehsen@gmx.de> 15484 15485 Check value of --progress option 15486 15487 * src/options.c: New parse function parse_progress_type 15488 * src/options.h: Change type of config.progress to char 15489 154902016-05-15 Tim Rühsen <tim.ruehsen@gmx.de> 15491 15492 Fix and enhance examples/getstream.c 15493 15494 * autogen.sh: Add gnulib module 'c-strcasestr' 15495 * examples/getstream.c: Support several playlist formats 15496 15497 getstream.c now supports .m3u, .wax, .asx, .pls, xspf playlist formats. 15498 Playlist parsing is partly hackish - it is just an example after all. 15499 15500 The title information is displayed on stderr, the audio goes to stdout to 15501 allow piping to mpg321, sox, etc. For details see the top comment in the 15502 source file. 15503 155042016-05-15 Tim Rühsen <tim.ruehsen@gmx.de> 15505 15506 Support ICY response (shoutcast response) 15507 15508 * libwget/http.c(wget_http_parse_response_header): Check for ICY response 15509 155102016-05-14 Tim Rühsen <tim.ruehsen@gmx.de> 15511 15512 Add option --content-on-error 15513 15514 * src/options.c: Add --content-on-error to options and to help text 15515 * src/options.h: Add content_on_error to struct config 15516 * src/wget.c: Check config.content_on_error 15517 * tests/test-wget-1.c: Add tests for --content-on-error 15518 155192016-05-10 Tim Rühsen <tim.ruehsen@gmx.de> 15520 15521 Do not use Proxy-Connection header field (RFC 7230 A.1.2.) 15522 15523 * libwget/http.c (wget_http_request_to_buffer): Do not create 15524 Proxy-Connection header field for requests. 15525 155262016-05-10 Tim Rühsen <tim.ruehsen@gmx.de> 15527 15528 Add MinGW recipe/script 15529 15530 * contrib/mingw: New file 15531 155322016-05-08 Tim Rühsen <tim.ruehsen@gmx.de> 15533 15534 Adjust LDFLAGS for MinGW 15535 15536 * examples/Makefile.am: Add -no-install to AM_LDFLAGS 15537 * libwget/Makefile.am: Add -no-undefined to libwget_la_LDFLAGS 15538 155392016-05-08 Tim Rühsen <tim.ruehsen@gmx.de> 15540 15541 Add EXEEXT to test suite executables 15542 15543 * tests/Makefile.am: Add $(EXEEXT) to executable names 15544 * tests/libtest.c: Add EXEEXT to wget2 executable, 15545 add support for EMULATOR env variable - e.g. to test with wine 15546 155472016-05-08 Tim Rühsen <tim.ruehsen@gmx.de> 15548 15549 Determine home directory in a portable fashion 15550 15551 * src/options.c (get_home_dir): Use gnulib glob() to get home directory 15552 155532016-05-08 Tim Rühsen <tim.ruehsen@gmx.de> 15554 15555 Fix includes for Windows 15556 15557 * libwget/http.c: Include ws2tcpip.h instead of sys/socket.h when available 15558 * libwget/net.c: Likewise 15559 155602016-05-08 Tim Rühsen <tim.ruehsen@gmx.de> 15561 15562 Fix warnings 15563 15564 * libwget/http.c (wget_http_add_credentials): Fix snprintf format warnings 15565 155662016-05-08 Tim Rühsen <tim.ruehsen@gmx.de> 15567 15568 Fix async sockets for Windows 15569 15570 * libwget/net.c (_set_async): Add code path for Windows 15571 155722016-05-08 Tim Rühsen <tim.ruehsen@gmx.de> 15573 15574 Add missing gnulib modules 15575 15576 * autogen.sh: Add gnulib modules fsync, recv, recvfrom, socklen 15577 155782016-05-08 Tim Rühsen <tim.ruehsen@gmx.de> 15579 15580 Fix build for systems without getuid() 15581 15582 * configure.ac: Check for getuid() 15583 * libwget/io.c (wget_update_file): Check for HAVE_GETUID 15584 155852016-05-08 Tim Rühsen <tim.ruehsen@gmx.de> 15586 15587 Fix --enable-bzip2/--disable-bzip2 15588 15589 * configure.ac: Fix AC_ARG_WITH for bzip2 15590 155912016-05-08 Tim Rühsen <tim.ruehsen@gmx.de> 15592 15593 Fix wget_srandom() 15594 15595 * include/libwget.h.in: Adjust wget_random() return type to int 15596 * libwget/random.c (libwget/random.c): Use initstate_r() for seeding, 15597 (wget_srandom): Use initstate_r() for seeding 15598 155992016-05-08 Tim Rühsen <tim.ruehsen@gmx.de> 15600 15601 gnulib: sync from upstream 15602 156032016-05-03 Tim Rühsen <tim.ruehsen@gmx.de> 15604 15605 Add --force-* options to docs 15606 15607 * wget2_manual.md: Add description for --force-css, --force-sitemap, 15608 --force-atom, --force-rss, -force-metalink 15609 156102016-04-25 Tim Rühsen <tim.ruehsen@gmx.de> 15611 15612 Fix docs for wget_srandom() 15613 15614 * libwget/random.c: Fix param description 15615 156162016-04-25 Tim Rühsen <tim.ruehsen@gmx.de> 15617 15618 Add docs for robots.txt parsing 15619 15620 * libwget/robots.c: Add Doxygen docs 15621 * docs/Makefile.am: Add rule for man page 15622 156232016-04-18 Tim Rühsen <tim.ruehsen@gmx.de> 15624 15625 Support parsing of UTF-16 HTML documents 15626 15627 * examples/print_html_urls.c (html_parse_localfile): 15628 Detect BOM (Byte Order Mark), convert UTF-16 to UTF-8 before parsing. 15629 * include/libwget.h.in: Remove wget_charset_transcode(), 15630 add wget_memiconv() and wget_striconv(). 15631 * libwget/encoding.c: Implement wget_memiconv() and wget_striconv() 15632 * src/wget.c (html_parse): Add 'html_len' param, 15633 convert UTF-16 to UTF-8 before parsing. 15634 * tests/test.c: New test for wget_memiconv(). 15635 156362016-04-09 Tim Rühsen <tim.ruehsen@gmx.de> 15637 15638 Add docs for Atom and Sitemap URL extraction functions 15639 15640 * libwget/atom_url.c: Add Doxygen docs 15641 * libwget/sitemap_url.c: Add Doxygen docs 15642 * docs/Makefile.am: Add rules for man pages 15643 * libwget/base64.c: Fix text 15644 156452016-04-09 Tim Rühsen <tim.ruehsen@gmx.de> 15646 15647 Add docs for base64 functions 15648 15649 * libwget/base64.c: Add Doxygen docs 15650 * docs/Makefile.am: Add rule for man page 15651 156522016-04-06 Tim Rühsen <tim.ruehsen@gmx.de> 15653 15654 Add option --fsync-policy 15655 15656 * src/options.c (print_help): Add short description, 15657 (options): Add new option 15658 * src/options.h (struct config): Add fsync_policy 15659 * src/wget.c (http_get): Check config.fsync_policy before fsync() 15660 15661 --fsync-policy calls fsync() for each downloaded file. 15662 This effectively waits until all data is written to hard disk before 15663 wget continues. It slows down the performance - depending on the 15664 speed of your storage. 15665 156662016-04-06 Tim Rühsen <tim.ruehsen@gmx.de> 15667 15668 Write files non-blocking 15669 15670 * src/wget.c (_prepare_file): Use O_NONBLOCK for open(), 15671 (_get_header): Likewise, 15672 (_get_body): Wait for writability if needed, 15673 (http_get): Code cleanups 15674 156752016-04-06 Tim Rühsen <tim.ruehsen@gmx.de> 15676 15677 * libwget/net.c (wget_tcp_read): Use recvfrom() instead of write() 15678 156792016-04-04 Tim Rühsen <tim.ruehsen@gmx.de> 15680 15681 Fix error message 15682 15683 * libwget/http.c (wget_http_get_response_cb): Fix message about 15684 incomplete download 15685 156862016-04-03 Tim Rühsen <tim.ruehsen@gmx.de> 15687 15688 * po/POTFILES.in: libwget/compat.c -> libwget/strlcpy.c 15689 156902016-04-03 Tim Rühsen <tim.ruehsen@gmx.de> 15691 15692 Renamed libwget/compat.c -> libwget/strlcpy.c 15693 156942016-04-02 Tim Rühsen <tim.ruehsen@gmx.de> 15695 15696 Rename --follow-metalink to --metalink 15697 15698 * src/options.c, src/options.h, src/wget.c, tests/test-metalink.c: 15699 Rename --follow-metalink to --metalink, rename config.follow_metalink 15700 to config.metalink. 15701 157022016-04-02 Tim Rühsen <tim.ruehsen@gmx.de> 15703 15704 Share code for Metalink V3 and V4 15705 15706 * libwget/metalink.c: New functions _add_piece, _add_file_hash, 15707 _add_mirror called by metalink V3 + V4 code in _metalink_parse(). 15708 157092016-04-02 Tim Rühsen <tim.ruehsen@gmx.de> 15710 15711 Add tests for RFC 6249 Metalink in HTTP headers 15712 15713 * tests/test-metalink.c: Add tests 15714 157152016-04-02 Tim Rühsen <tim.ruehsen@gmx.de> 15716 15717 Fix memory leak in Metalink V3 parser 15718 15719 * libwget/metalink.c (_metalink_parse): Set destructor for mirror vector 15720 157212016-03-31 Tim Rühsen <tim.ruehsen@gmx.de> 15722 15723 Add tests for Metalink 15724 15725 * tests/Makefile.am: Add test-metalink 15726 * tests/test-metalink.c: New file 15727 15728 This new tests are 15729 - --no-follow-metalink 15730 - metalink v3, without pieces 15731 - metalink v4, without pieces 15732 - metalink v4, with pieces 15733 157342016-03-30 Tim Rühsen <tim.ruehsen@gmx.de> 15735 15736 Add --force-metalink 15737 15738 * libwget.h.in: Remove metalink3_parse, metalink4_parse, 15739 Add wget_metalink_parse 15740 * libwget/metalink.c: Merge metalink4_parse() and metalink3_parse() 15741 into wget_metalink_parse(), 15742 Only store HTTP and HTTPS mirrors 15743 * src/job.c: Adjust debug message 15744 * src/options.c: Add --force-options 15745 * src/options.h: Add config.force_metalink 15746 * src/wget.c: New function metalink_parse_localfile() 15747 157482016-03-29 Tim Rühsen <tim.ruehsen@gmx.de> 15749 15750 *src/options.c: Allow --(no-)follow-metalink without argument 15751 157522016-03-29 Tim Rühsen <tim.ruehsen@gmx.de> 15753 15754 Do not use hard-coded user-agent in robots library code 15755 15756 * include/libwget.h.in: Update prototype of wget_robots_parse() 15757 * libwget/robots.c (wget_robots_parse): Add client name as parameter 15758 * src/wget.c: Call wget_robots_parse() with PACKAGE_NAME as client name 15759 157602016-03-29 Tim Rühsen <tim.ruehsen@gmx.de> 15761 15762 Set default User-Agent: to PACKAGE_NAME"/"PACKAGE_VERSION 15763 15764 * src/options.c: Set PACKAGE_NAME"/"PACKAGE_VERSION as user agent 15765 157662016-03-28 Giuseppe Scrivano <gscrivan@redhat.com> 15767 15768 wget: new option --follow-metalink 15769 15770 * src/options.h (struct config): Define follow_metalink. 15771 * src/options.c (print_help): Add description for follow-metalink. 15772 (struct options): Add follow-metalink. 15773 (struct config): Initialize follow_metalink. 15774 (init): do not follow metalink files when --mirror is used. 15775 * src/wget.c (downloader_thread): Skip following metalinks when follow_metalink is off. 15776 (_get_header): Store the metalink file when follow_metalink is false. 15777 157782016-03-28 Tim Rühsen <tim.ruehsen@gmx.de> 15779 15780 Allow options and URLs in any order 15781 15782 * src/options.c (parse_command_line): Reorder URLs after options 15783 * src/options.h: Fix init() prototype 15784 * src/wget.c, tests/test-parse-html.c, tests/test.c: 15785 Fix main() argv argument 15786 157872016-03-27 Tim Rühsen <tim.ruehsen@gmx.de> 15788 15789 Fix metalink code to download files without pieces 15790 15791 * src/job.c (job_validate_file): Accept files without pieces 15792 157932016-03-27 Tim Rühsen <tim.ruehsen@gmx.de> 15794 15795 * libwget/metalink.c (_metalink4_parse): Set piece.position to 0 15796 157972016-03-26 Giuseppe Scrivano <gscrivan@redhat.com> 15798 15799 src/wget.c (_get_header): Do not store metalink files 15800 15801 Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com> 15802 158032016-03-22 Tim Rühsen <tim.ruehsen@gmx.de> 15804 15805 Add docs in markdown format 15806 15807 * DoxygenLayout.xml: Set mainpage title 15808 * libwget.doxy.in: Scan docs, add mainpage.md as main page 15809 * mainpage.md: New file 15810 * faq.md: New file 15811 * wget2_manual.md: New file, derived from wget.texi 15812 158132016-03-24 Giuseppe Scrivano <gscrivan@redhat.com> 15814 15815 http: fix multi part files 15816 15817 * src/wget.c (download_part): Read temp part for the temporary files. 15818 (_get_header): Write part file to the destination file. 15819 (http_get): Keep a temporary fd for the file parts. 15820 (struct _body_callback_context): Add 'head' and 'part'. 15821 15822 Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com> 15823 158242016-03-20 Giuseppe Scrivano <gscrivan@redhat.com> 15825 15826 Fix compiler warnings 15827 15828 * include/libwget.h.in (wget_bar_init, wget_bar_update, 15829 wget_bar_print): Change types to int and off_t. 15830 * libwget/bar.c (wget_bar_init, wget_bar_update, 15831 wget_bar_print): Change types to int and off_t. 15832 * src/wget.c (_prepare_file): Add prototype. Change type of rc to 15833 size_t. 15834 15835 Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com> 15836 158372016-03-19 Giuseppe Scrivano <gscrivan@redhat.com> 15838 15839 wget: use safe_write module from gnulib 15840 15841 * autogen.sh: Add module 'safe-write'. 15842 * src/wget.c (_prepare_file): Use safe_write instead of write. 15843 (_get_body): Likewise. 15844 15845 Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com> 15846 158472016-03-18 Giuseppe Scrivano <gscrivan@redhat.com> 15848 15849 Do not parse more than 10M and stream directly to disk 15850 15851 * src/wget.c (downloader_thread): drop code to save/append to file. 15852 (_prepare_file): New function based on _save_file. Open the fd and 15853 don't write any payload. 15854 (_body_callback_context): Add outfd, max_memory, length. 15855 (_get_header): Set the destination file here and keep the fd. 15856 (_get_body): Keep in memory only what was specified, stream the rest 15857 directly to file. 15858 (http_get): Always use wget_http_get_response_cb instead of 15859 wget_http_get_response. Close the file fd that was opened in 15860 _prepare_file. 15861 15862 Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com> 15863 158642016-03-16 Giuseppe Scrivano <gscrivan@redhat.com> 15865 15866 Use size_t instead of int for progress bar status 15867 15868 * include/libwget.h.in (wget_bar_init): Change type of nslots and max 15869 from int to size_t. 15870 (wget_bar_deinit): Likewise. 15871 (wget_bar_update): Likewise. 15872 (wget_bar_print): Likewise. 15873 (wget_bar_vprintf): Likewise. 15874 (wget_bar_printf): Likewise. 15875 * libwget/bar.c (wget_bar_init): Change type of nslots and max 15876 from int to size_t. 15877 (wget_bar_deinit): Likewise. 15878 (wget_bar_update): Likewise. 15879 (wget_bar_print): Likewise. 15880 (wget_bar_vprintf): Likewise. 15881 (wget_bar_printf): Likewise. 15882 * src/bar.h (bar_init): Change type of nslots and max from 15883 int to size_t. 15884 (bar_deinit): Likewise. 15885 (bar_update): Likewise. 15886 (bar_print): Likewise. 15887 (bar_vprintf): Likewise. 15888 (bar_printf): Likewise. 15889 * src/bar.c (bar_init): Change type of nslots and max from 15890 int to size_t. 15891 (bar_deinit): Likewise. 15892 (bar_update): Likewise. 15893 (bar_print): Likewise. 15894 (bar_vprintf): Likewise. 15895 (bar_printf): Likewise. 15896 15897 Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com> 15898 158992016-03-16 Giuseppe Scrivano <gscrivan@redhat.com> 15900 15901 libwget/http.c: Rename HTTP_CTYPE_SEPERATOR to HTTP_CTYPE_SEPARATOR 15902 15903 Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com> 15904 159052016-03-18 Tim Rühsen <tim.ruehsen@gmx.de> 15906 15907 Tune cookie parsing 15908 15909 * include/libwget.h.in: Add sort_age to struct wget_cookie_st 15910 * libwget/cookie.c: Many code enhancements 15911 * libwget/http.c (wget_http_parse_setcookie): Relax parsing, 15912 (wget_http_parse_setcookie): Allow \n and \r\n as EOL 15913 * libwget/private.h: Add missing #includes 15914 * tests/Makefile.am: Add disabled test-cookies-http_state 15915 * tests/test-cookies-http_state.c: New cookie test 15916 15917 There still 30 out of 220 tests failing, before this commit we had 15918 135 failing. The left over tests are mainly corner cases, but feel free 15919 to work on it. When all tests pass, we enable test-cookies-http_state 15920 in Makefile.am. 15921 159222016-03-14 Tim Rühsen <tim.ruehsen@gmx.de> 15923 15924 Update .gitignore 15925 15926 * .gitignore: Updated 15927 159282016-03-14 Tim Rühsen <tim.ruehsen@gmx.de> 15929 15930 Add new examples websequencediagram[_highlevel] 15931 15932 * examples/websequencediagram.c: New file 15933 * examples/websequencediagram_high.c: New file 15934 * examples/Makefile.am: Add websequencediagram[_highlevel] 15935 15936 These examples show how to do two requests on one connection, 15937 a POST and a GET, saving the downloaded body to disk. 15938 websequencediagram uses the low-level API. 15939 websequencediagram_highlevel uses the high-level API. 15940 159412016-03-14 Tim Rühsen <tim.ruehsen@gmx.de> 15942 15943 Add WGET_HTTP_SCHEME, WGET_HTTP_BODY, WGET_HTTP_BODY_SAVEAS for wget_http_get() 15944 15945 * include/libwget.h.in: Add WGET_HTTP_SCHEME, WGET_HTTP_BODY, 15946 WGET_HTTP_BODY_SAVEAS 15947 * src/http_highlevel.c: Implement WGET_HTTP_SCHEME, WGET_HTTP_BODY, 15948 WGET_HTTP_BODY_SAVEAS 15949 159502016-03-14 Tim Rühsen <tim.ruehsen@gmx.de> 15951 15952 Use wget2 without libtool wrapper for test suite 15953 15954 * src/Makefile.am: Add wget2_noinstall target 15955 * src/wget.c: On exit, only release memory within test suite 15956 * tests/libtest.c: Call wget2_noinstall for testing 15957 159582016-03-14 Tim Rühsen <tim.ruehsen@gmx.de> 15959 15960 Fix superfluous 'Unsupported cookie-av' message 15961 15962 * libwget/http.c (wget_http_parse_setcookie): Break on end-of-string 15963 159642016-03-12 Tim Rühsen <tim.ruehsen@gmx.de> 15965 15966 Add 'make check-valgrind' to simplify valgrind checking 15967 15968 * Makefile.am: Add rule 'check-valgrind' 15969 159702016-03-01 Tim Rühsen <tim.ruehsen@gmx.de> 15971 15972 Add support for HTML5 srcset attribute in IMG tags 15973 15974 * libwget/html_url.c: Add scanning srcset values 15975 * tests/test--page-requisites.c: Add srcset test cases 15976 159772016-03-01 Tim Rühsen <tim.ruehsen@gmx.de> 15978 15979 Use TravisCI .svg image 15980 15981 * README.md: Use TravisCI .svg image 15982 159832016-02-12 Tim Rühsen <tim.ruehsen@gmx.de> 15984 15985 Remove unneeded variable in options.c 15986 15987 * src/options.c (main): Remove varibale 'truncated' 15988 159892016-02-07 Tim Rühsen <tim.ruehsen@gmx.de> 15990 15991 Add docs for memory functions 15992 15993 * libwget/mem.c: Add docs 15994 * docs/Makefile.am: Add rule for man pages 15995 * include/libwget.h.in: Cosmetic adjustments 15996 159972016-02-07 Tim Rühsen <tim.ruehsen@gmx.de> 15998 15999 Add docs for MD5 convenience functions 16000 16001 * libwget/md5.c: Add docs 16002 * docs/Makefile.am: Add rule for man pages 16003 160042016-02-07 Tim Rühsen <tim.ruehsen@gmx.de> 16005 16006 * libwget/http.c: Remove #define MD5_DIGEST_LENGTH 16007 160082016-02-07 Tim Rühsen <tim.ruehsen@gmx.de> 16009 16010 * libwget/io.c: Remove bug introduced when fixing Coverity 16011 160122016-02-07 Tim Rühsen <tim.ruehsen@gmx.de> 16013 16014 Fix / silence some Coverity findings 16015 160162016-02-06 Tim Rühsen <tim.ruehsen@gmx.de> 16017 16018 * docs/Makefile.am: Remove redundant list of man files 16019 160202016-02-06 Tim Rühsen <tim.ruehsen@gmx.de> 16021 16022 * libwget/iri.c: Make iri_ports static 16023 160242016-02-06 Tim Rühsen <tim.ruehsen@gmx.de> 16025 16026 * docs/Makefile.am: Add rule for xalloc man page 16027 160282016-02-06 Tim Rühsen <tim.ruehsen@gmx.de> 16029 16030 * libwget/ssl_gnutls.c: Fix the fix of 48c1f0961ee566287543f4149dbfc7fb5ba2b7bf 16031 160322016-02-06 Tim Rühsen <tim.ruehsen@gmx.de> 16033 16034 * libwget/io.c: Fix some small glitches in Doxygen area 16035 160362016-02-06 Tim Rühsen <tim.ruehsen@gmx.de> 16037 16038 * libwget/encoding.c: Use '#ifdef WITH_LIBIDN' instead of '#if' 16039 160402016-02-06 Tim Rühsen <tim.ruehsen@gmx.de> 16041 16042 Add docs for printf functions 16043 16044 * libwget/printf.c: Convert GTK-DOC format into Doxygen 16045 * docs/Makefile.am: Add rule for man pages 16046 160472016-02-06 Tim Rühsen <tim.ruehsen@gmx.de> 16048 16049 * libwget/ssl_gnutls.c: Fix clang warnings 16050 160512016-02-06 Tim Rühsen <tim.ruehsen@gmx.de> 16052 16053 Add docs for memory functions 16054 16055 * libwget/xalloc.c: Convert GTK-DOC format into Doxygen 16056 * docs/Makefile.am: Add rule for man pages 16057 160582016-02-06 Tim Rühsen <tim.ruehsen@gmx.de> 16059 16060 * libwget/utils.c: Fix docs, rename function param 16061 160622016-02-06 Tim Rühsen <tim.ruehsen@gmx.de> 16063 16064 Fix argument to srandom() 16065 16066 * libwget/random.c: Cast argument to unsigned int 16067 160682016-02-06 Tim Rühsen <tim.ruehsen@gmx.de> 16069 16070 Fix docs for wget_srandom() 16071 16072 * libwget/random.c: Fix docs for wget_srandom() 16073 160742016-02-06 Tim Rühsen <tim.ruehsen@gmx.de> 16075 16076 Fix check for BUILDING_LIBWGET 16077 16078 * include/libwget.h.in: Use '#if defined' instead of '#if' 16079 160802016-02-03 Tim Rühsen <tim.ruehsen@gmx.de> 16081 16082 Cosmetics 16083 16084 * libwget/thread.c: Fix comment after #endif 16085 * src/wget.c (main): Remove unwanted spaces in if clause 16086 160872016-02-03 Giuseppe Scrivano <gscrivan@redhat.com> 16088 16089 autogen.sh: add 'stdbool' to libwget_gnulib_modules 16090 160912016-02-02 Giuseppe Scrivano <gscrivan@redhat.com> 16092 16093 Honor --disable-threads and support no threading 16094 16095 * include/libwget.h.in: Include <stdbool.h>. 16096 Define wget_thread_support(). 16097 * libwget/thread.c: Change condition to check 16098 for threading support. 16099 (wget_thread_support): New function. 16100 (wget_thread_start): [!USE_POSIX_THREADS && !USE_PTH_THREADS] 16101 Invoke directly the function. 16102 * src/wget.c (main): If no threads are supported then set the 16103 number of max threads to 1. If the queue is not empty, call again the 16104 downloader function. It will be used only in case no threads are 16105 available. 16106 (downloader_thread): Do not wait for new elements in the queue 16107 when there are no threads. 16108 * tests/libtest.c (wget_test_start_server): Skip the test if 16109 there is no threads support. 16110 161112016-02-02 Giuseppe Scrivano <gscrivan@redhat.com> 16112 16113 Fix build when threads are not used 16114 16115 * include/libwget.h.in: [! PTHREAD_MUTEX_INITIALIZER]: Define 16116 WGET_THREAD_COND_INITIALIZER. 16117 161182016-01-25 Tim Rühsen <tim.ruehsen@gmx.de> 16119 16120 Set default for --waitretry to 10s 16121 16122 src/options.c (struct config config): Init .waitretry with 16123 10000 milliseconds. 16124 161252016-01-25 Tim Rühsen <tim.ruehsen@gmx.de> 16126 16127 Check for CTRL-C in timer loops 16128 16129 * src/wget.c (downloader_thread, download_part): Abort on CTRL-C 16130 161312016-01-25 Tim Rühsen <tim.ruehsen@gmx.de> 16132 16133 Updated copyright year for all relevant files 16134 161352016-01-25 Tim Rühsen <tim.ruehsen@gmx.de> 16136 16137 Add helper script for updating copyright dates 16138 16139 contrib/update_copyright: New file 16140 161412016-01-24 Tim Rühsen <tim.ruehsen@gmx.de> 16142 16143 Disable valgrind tests on Travis CI for Mac OS X 16144 16145 * .travis.yml: Do not install valgrind in OS X 16146 * .travis.sh: Disable valgrind tests for OS X 16147 161482016-01-24 Tim Rühsen <tim.ruehsen@gmx.de> 16149 16150 Install valgrind for Travis CI on linux 16151 16152 * .travis.yml: Add valgrind to packages 16153 * .travis.sh: Output tests/test.log 16154 161552016-01-24 Tim Rühsen <tim.ruehsen@gmx.de> 16156 16157 Switch to Travis-CI valgrind testing 16158 16159 * .travis.sh: Add --enable-valgrind-tests to ./configure, 16160 export VALGRIND_TESTS=1 16161 * .travis.yml: Install valgridn on Mac OS X 16162 * tests/libtest.c: Add --max-threads=1 --prefer-family=ipv4 to wget2 command 16163 161642016-01-23 Tim Rühsen <tim.ruehsen@gmx.de> 16165 16166 Add $(LIB_PTHREAD) to makefiles 16167 16168 * examples/Makefile.am, libwget/Makefile.am, src/Makefile.am, 16169 tests/Makefile.am: Add $(LIB_PTHREAD) 16170 161712016-01-22 Tim Rühsen <tim.ruehsen@gmx.de> 16172 16173 Add thread-safe wrapper code around random() and srandom() 16174 16175 * docs/Makefile.am: Add wget_random and wget_srandom to docs 16176 * include/libwget.h.in: Add wget_random and wget_srandom 16177 * libwget/Makefile.am: Add random.c 16178 * libwget/http.c: Use wget_random() 16179 * libwget/random.c: New file with wget_random and wget_srandom 16180 * src/options.c: Remove call to srandom() 16181 161822016-01-22 Tim Rühsen <tim.ruehsen@gmx.de> 16183 16184 Fix Travis-CI files for Mac OS X 16185 16186 * .travis.sh: Remove 'allow_failures', Call .travis.sh script, 16187 Install needed packages via 'brew', Remove configuration, building, testing 16188 * .travis.sh: Add configuration, building, testing 16189 161902016-01-22 Tim Rühsen <tim.ruehsen@gmx.de> 16191 16192 Fix test suite for Mac OSX 16193 16194 * tests/libtest.c (_http_server_thread): Accept HTTP msg when chunked, 16195 Fix removing test directories, 16196 (wget_test_start_server) Remove stale test directories, 16197 Prefer IPv4, Start FTPS thread only if needed, 16198 (_scan_for_unexpected) Skip test for unexpected files on Mac OSX, 16199 (wget_test) Add --max-threads and --prefer-family=ipv4 to wget2 command, 16200 Remove MSWindows conditional code 16201 162022016-01-22 Tim Rühsen <tim.ruehsen@gmx.de> 16203 16204 Remove libpthread check from configure.ac 16205 16206 * configure.ac: Remove check for libpthread 16207 * include/libwget.h.in: Check HAVE_PTHREAD_H, 16208 Do not undefine gettext 16209 * libwget/thread.c: Check HAVE_PTHREAD_H 16210 16211 This check is done by gnulib 'pthread' module. 16212 162132016-01-22 Tim Rühsen <tim.ruehsen@gmx.de> 16214 16215 Use gnulib gettime() instead of clock_gettime() 16216 16217 * src/log.c, src/wget.c: Call gettime() instead of clock_gettime() 16218 162192016-01-22 Tim Rühsen <tim.ruehsen@gmx.de> 16220 16221 Add gnulib modules gettime and pthread 16222 16223 * autogen.sh: Add gnulib modules gettime and pthread 16224 162252016-01-22 Tim Rühsen <tim.ruehsen@gmx.de> 16226 16227 Fix DNS caching 16228 16229 * libwget/net.c (_wget_dns_cache_add): Allow NULL for port 16230 Remove several #ifdefs (should be handled by gnulib now) 16231 162322016-01-19 Tim Rühsen <tim.ruehsen@gmx.de> 16233 16234 Let mkdir() be handled by gnulib 16235 16236 * src/wget.c: Remove conditional around mkdir() 16237 162382016-01-19 Giuseppe Scrivano <gscrivan@redhat.com> 16239 16240 Fix the /dev/null usage 16241 16242 * src/wget.c: do not create the directory if the first character is 16243 '/'. 16244 * tests/test-base.c: add test for -O/dev/null. 16245 162462016-01-19 Giuseppe Scrivano <gscrivan@redhat.com> 16247 16248 Fix compiler warning 16249 16250 * libwget/ssl_gnutls.c (_print_info): Always consider GNUTLS_CRD_SRP 16251 162522016-01-19 Tim Rühsen <tim.ruehsen@gmx.de> 16253 16254 Add docs for utils functions 16255 16256 * docs/Makefile.am: Add libwget-utils.3 16257 * libwget/utils.c: Add utils function docs 16258 162592016-01-19 Tim Rühsen <tim.ruehsen@gmx.de> 16260 16261 Add docs for I/O functions 16262 16263 * docs/Makefile.am: Add libwget-io.3 16264 * libwget/io.c: Add I/O function docs 16265 162662016-01-18 Tim Rühsen <tim.ruehsen@gmx.de> 16267 16268 Add docs for hash functions 16269 16270 * docs/Makefile.am: Add libwget-hash.3 16271 * include/libwget.h.in: Remove hash function docs 16272 * libwget/hashfile.c: Add hash function docs 16273 162742016-01-18 Tim Rühsen <tim.ruehsen@gmx.de> 16275 16276 Do not sort document members 16277 16278 * docs/libwget.doxy.in: Set SORT_MEMBER_DOCS = NO 16279 162802016-01-18 Tim Rühsen <tim.ruehsen@gmx.de> 16281 16282 Enable reading of config.h for docs generation 16283 16284 * docs/libwget.doxy.in: Enable reading of config.h 16285 162862016-01-18 Tim Rühsen <tim.ruehsen@gmx.de> 16287 16288 Extend .gitignore 16289 16290 * .gitignore: Add entries and sort with LC_ALL=C 16291 162922016-01-18 Tim Rühsen <tim.ruehsen@gmx.de> 16293 16294 Add contrib/check-hard for maintainer testing 16295 16296 * contrib/check-hard: New file 16297 162982016-01-18 Tim Rühsen <tim.ruehsen@gmx.de> 16299 16300 Add logo to HTML docs 16301 16302 * docs/gen-logo.sh: Add script to generate logo via imagemagick 16303 * docs/wget-logo.png: Add generated logo 16304 * docs/libwget.doxy.in: Include logo into docs 16305 163062016-01-18 Tim Rühsen <tim.ruehsen@gmx.de> 16307 16308 Add wget_list_t to docs group libwget-list 16309 16310 * include/libwget.h.in: Add wget_list_t to docs group libwget-list 16311 163122016-01-18 Tim Rühsen <tim.ruehsen@gmx.de> 16313 16314 Remove NULL check in list code 16315 16316 * libwget/list.c (wget_list_remove): Remove checking first param for NULL. 16317 16318 Since the function is declared with the first param being NON-NULL, gcc will 16319 silently remove the check anyways. Clang even complains about the check. 16320 163212016-01-18 Tim Rühsen <tim.ruehsen@gmx.de> 16322 16323 Remove NULL check in vector code 16324 16325 * libwget/vector.c (wget_vector_add_str): Remove checking second param 16326 for NULL. 16327 16328 Since the function is declared with 's' being NON-NULL, gcc will silently 16329 remove the check anyways. Clang even complains about the check. 16330 163312016-01-18 Tim Rühsen <tim.ruehsen@gmx.de> 16332 16333 Fix resource leak when using libgcrypt for hashing 16334 16335 * libwget/hashfile.c (wget_hash_deinit): Close gcrypt context 16336 163372016-01-18 Tim Rühsen <tim.ruehsen@gmx.de> 16338 16339 Add error code WGET_E_TLS_DISABLED 16340 16341 * include/libwget.h.in: New define for WGET_E_TLS_DISABLED 16342 163432016-01-17 Tim Rühsen <tim.ruehsen@gmx.de> 16344 16345 Tweak doxygen config file 16346 16347 * docs/libwget.doxy.in: Hide absolute path in file names, 16348 exclude private header files of libwget/, 16349 exclude symbols starting with _ 16350 163512016-01-17 Tim Rühsen <tim.ruehsen@gmx.de> 16352 16353 Use README.md as main page in HTML docs 16354 16355 * docs/libwget.doxy.in: Add README.md to INPUT 16356 163572016-01-17 Tim Rühsen <tim.ruehsen@gmx.de> 16358 16359 Use doxygen instead of gtk-doc 16360 16361 * Removed all gtk-doc files and references. 16362 * Added doxygen files and rules 16363 163642016-01-15 Tim Rühsen <tim.ruehsen@gmx.de> 16365 16366 Fix double linkage finally 16367 16368 * tests/Makefile.am: Link only once per lib to avoid warnings 16369 163702016-01-15 Tim Rühsen <tim.ruehsen@gmx.de> 16371 16372 Fix wrong argument fetch in buffer printf routine 16373 16374 * libwget/buffer_printf.c (wget_buffer_vprintf_append): Fetch long value 16375 from stack instead of long long with %l[dioux] 16376 16377 Found on Solaris 11 SPARC 16378 163792016-01-15 Tim Rühsen <tim.ruehsen@gmx.de> 16380 16381 Fix Solaris issue in tests/Makefile.am 16382 16383 * tests/Makefile.am: Link only once per lib to avoid warnings 16384 163852016-01-15 Tim Rühsen <tim.ruehsen@gmx.de> 16386 16387 Fix libwget/Makefilea. for Solaris 16388 16389 * libwget:/Makefile.am: Add ../lib/libgnu.la to test_linking_LDADD 16390 163912016-01-15 Tim Rühsen <tim.ruehsen@gmx.de> 16392 16393 Add gnulib module progname 16394 16395 Without this we have an unresolved symbol 'program_name' on 16396 Solaris. 16397 163982016-01-15 Tim Rühsen <tim.ruehsen@gmx.de> 16399 16400 Include config.h on top in css_tokenizer.c 16401 16402 * libwget/Makefile.am: Add #include "config.h" to top of css_tokenizer.c 16403 16404 Found this issue on OpenSolaris 16405 164062016-01-15 Tim Rühsen <tim.ruehsen@gmx.de> 16407 16408 Add symbol visibility control to libwget 16409 16410 * autogen.sh: Add gnulib module lib-symbol-visibility, 16411 add --libtool to gnulib-tool invokation 16412 * examples/Makefile.am: Remove -static from AM_LDFLAGS, 16413 remove ../lib/libgnu.a from LDADD 16414 * include/libwget.h.in: Define LIBWGET_EXPORT, 16415 add LIBWGET_EXPORT to all visible symbols 16416 * libwget/Makefile.am: Remove AM_CPPFLAGS and LDADD, 16417 add libwget_la_CPPFLAGS and libwget_la_LIBADD, 16418 add test_linking_CPPFLAGS, fix test_linking_LDADD 16419 * libwget/iri.c: Add LIBWGET_EXPORT to wget_iri_schemes and iri_ports 16420 * src/Makefile.am: Remove wget2_LDFLAGS, fix wget2_LDADD 16421 * tests/Makefile.am: Fix LDADD, fix test_LDADD, fix test_parse_html_LDADD, 16422 fix libtest_la_CPPFLAGS and libtest_la_LIBADD 16423 * tests/libtest.h: Add LIBWGET_EXPORT to symbols 16424 164252016-01-15 Tim Rühsen <tim.ruehsen@gmx.de> 16426 16427 Exclude private header files from gtk-doc parsing 16428 16429 * docs/libwget/Makefile.am: Add net.h and css_tokenizer.h to IGNORE_HFILES 16430 164312016-01-13 Tim Rühsen <tim.ruehsen@gmx.de> 16432 16433 Remove vasprintf from configure.ac 16434 16435 * configure.ac: Remove vasprintf from AC_CHECK_FUNCS 16436 164372016-01-13 Tim Rühsen <tim.ruehsen@gmx.de> 16438 16439 Add more gnulib modules 16440 16441 * autogen.sh: Add more gnulib modules 16442 16443 What came across my eyes: 16444 closedir 16445 fclose 16446 fdopen 16447 fflush 16448 fopen 16449 fstat 16450 mkstemp 16451 opendir 16452 spawn-pipe 16453 popen 16454 random_r (change random() -> random_r() in a follow-up commit) 16455 readdir 16456 rename 16457 stat 16458 strtoll 16459 time_r 16460 unlink 16461 164622016-01-13 Tim Rühsen <tim.ruehsen@gmx.de> 16463 16464 Removed redundant buffer print routines 16465 16466 Removed wget_buffer_vprintf_append, wget_buffer_printf_append, 16467 wget_buffer_vprintf2 and wget_buffer_printf2. 16468 Renamed their *2 counterpart to their old names. 16469 164702016-01-13 Tim Rühsen <tim.ruehsen@gmx.de> 16471 16472 Added printf-style functions 16473 16474 * libwget/printf.c: New file 16475 * docs/libwget/Makefile.am: Add libwget-printf.3 16476 * docs/libwget/libwget-docs.sgml: Add printf section 16477 * docs/libwget/libwget-sections.txt: Add SECTION libwget-printf 16478 * include/libwget.h.in: Add function prototypes 16479 * libwget/Makefile.am: Add printf.c 16480 * libwget/base64.c, libwget/http.c, libwget/iri.c, libwget/logger.c, 16481 libwget/md5.c, libwget/vector.c, src/options.c: 16482 Use new functions instead of asprintf/vasprintf 16483 164842016-01-13 Tim Rühsen <tim.ruehsen@gmx.de> 16485 16486 Use c-ctype.h where possible 16487 16488 * libwget/atom_url.c, libwget/buffer_printf.c, libwget/css.c, 16489 libwget/html_url.c, libwget/http.c, libwget/rss_url.c, libwget/sitemap_url.c, 16490 src/options.c src/wget.c, tests/libtest.c, tests/test-parse-html.c: 16491 Use c-ctype.h where possible 16492 164932016-01-13 Tim Rühsen <tim.ruehsen@gmx.de> 16494 16495 Use ASCII comparison fpr file extensions 16496 16497 * src/wget.c (_save_file): Use wget_strcasecmp_ascii 16498 164992016-01-13 Tim Rühsen <tim.ruehsen@gmx.de> 16500 16501 Replace strcpy 16502 16503 * libwget/net.c (_wget_dns_cache_add, wget_tcp_set_bind_address): 16504 Replace strcpy by memcpy 16505 * src/wget.c (_convert_links): Replace strcpy by snprintf 16506 * src/wget.c (downloader_thread): Replace strcpy by C99 initializer 16507 * src/wget.c (_save_file): Replace strcpy by memcpy 16508 * tests/test-wget-1.c (main): Replace strcpy by memcpy 16509 165102016-01-13 Tim Rühsen <tim.ruehsen@gmx.de> 16511 16512 Remove redundant code from buufer routines 16513 16514 * libwget/buffer.c (wget_buffer_strcpy, wget_buffer_strcat): 16515 Remove redundant code 16516 165172016-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 16518 16519 Add gnulib modules memchr, memmove, memset, mkdir, strerror, strstr 16520 16521 * autogen.sh: Add gnulib modules memchr, memmove, memset, mkdir, strerror, strstr 16522 * configure.ac: Remove checks for memchr, memmove, memset, mkdir, 16523 strerror, strstr, strchr, strrchr 16524 165252016-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 16526 16527 Add gnulib module inline 16528 16529 * autogen.sh: Add gnulib module inline 16530 * configure.ac: Remove AC_C_INLINE 16531 * libwget/hashmap.c: Replace inline by _GL_INLINE 16532 * libwget/iri.c: Replace inline by _GL_INLINE 16533 * libwget/ssl_gnutls.c: Replace inline by _GL_INLINE 16534 * libwget/utils.c: Replace inline by _GL_INLINE 16535 * libwget/xalloc.c: Replace inline by _GL_INLINE, 16536 include config.h 16537 165382016-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 16539 16540 Add gnulib modules calloc-posix, malloc-posix, realloc-posix 16541 16542 * autogen.sh: Add gnulib modules calloc-posix, malloc-posix, realloc-posix 16543 * configure.ac: Remove two comment lines 16544 * libwget/xalloc.c: Remove rpl_malloc() and rpl_realloc() 16545 165462016-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 16547 16548 Add gnulib module setlocale 16549 16550 * autogen.sh: Add gnulib module setlocale 16551 * configure.ac: Remove searching for setlocale, locale.h, sys/time.h 16552 * src/wget.c: Move #include <locale.h> (cosmetics) 16553 * examples/Makefile.am: Add $(LIBTHREAD), @INTL_MACOSX_LIBS@ to LDADD 16554 * libwget/Makefile.am: Add to $(LTLIBTHREAD), @INTL_MACOSX_LIBS@ LDADD 16555 * src/Makefile.am: Add $(LIBTHREAD), @INTL_MACOSX_LIBS@ to LDADD 16556 * tests/Makefile.am: Add $(LIBTHREAD), @INTL_MACOSX_LIBS@ to LDADD 16557 165582016-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 16559 16560 Add gnulib module sys_stat, sys_file, sys_types 16561 16562 * autogen.sh: Add gnulib module sys_stat, sys_file, sys_types 16563 165642016-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 16565 16566 Add gnulib module sys_time 16567 16568 * autogen.sh: Add gnulib module sys_time 16569 165702016-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 16571 16572 Add gnulib module errno 16573 16574 * autogen.sh: Add gnulib module errno 16575 165762016-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 16577 16578 Add gnulib module langinfo 16579 16580 * autogen.sh: Add gnulib module langinfo 16581 * configure.ac: Remove searching for stringprep.h and langinfo.h 16582 * libwget/encoding.c: Remove conditional code 16583 165842016-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 16585 16586 Add gnulib module iconv 16587 16588 * autogen.sh: Add gnulib module iconv 16589 * configure.ac: Remove AM_ICONV 16590 * examples/Makefile.am: Add $(LIBICONV) to LDADD 16591 * libwget/Makefile.am: Add $(LIBICONV) to LDADD 16592 * src/Makefile.am: Add $(LIBICONV) to LDADD 16593 * tests/Makefile.am: Add $(LIBICONV) to LDADD 16594 165952016-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 16596 16597 Cover network functions with gnulib modules 16598 16599 * autogen.sh: Add accept, bind, close, connect, getaddrinfo, getsockname, 16600 listen, netdb, netinet_in, open, read, send, sendto, servent, setsockopt, 16601 socket, sys_socket, write to modules 16602 * configure.ac: Remove searching for ws2_32, libsocket, libnsl, netdb.h, 16603 netinet/in.h, sys/socket.h, socket. 16604 Add searching for netinet/tcp.h. 16605 * examples/Makefile.am: Add additional libs. 16606 * libwget/Makefile.am: Add additional libs. 16607 * src/Makefile.am: Add additional libs. 16608 * tests/Makefile.am: Add additional libs. 16609 * libwget/http.c: Remove conditional code. 16610 * libwget/net.c: Remove conditional code. Use c_isdgit(). 16611 * libwget/net.h: Remove conditional code. 16612 166132016-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 16614 16615 Use gnulib module strdup-posix instead of strdup 16616 16617 * autogen.sh: Replace strdup by strdup-posix 16618 166192016-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 16620 16621 Check if gcc __sync_fetch_and_add works with long long 16622 16623 * configure.ac: Check if gcc __sync_fetch_and_add works with long long 16624 * src/wget.c (_fetch_and_add_longlong): Check WITH_SYNC_FETCH_AND_ADD_LONGLONG 16625 166262016-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 16627 16628 Add compatibility to older flex versions 16629 16630 * libwget/Makefile.am: Remove space between -o and filename 16631 166322016-01-12 Tim Rühsen <tim.ruehsen@gmx.de> 16633 16634 Add header file gnulib modules 16635 16636 * autogen.sh: Add gettext-h, inttypes, stdarg, stddef, stdint 16637 * configure.ac: Remove check for inttypes.h, libintl.h, stddef.h 16638 Remove AC_TYPE_* checks 16639 * include/libwget.h.in: Include gnulib gettext.h 16640 * examples/Makefile.am: Fix AM_CPPFLAGS, add $(LIBINTL) to LDADD 16641 * libwget/Makefile.am: Fix LDADD and test_linking_LDADD 16642 * src/Makefile.am: Add $(LIBINTL) to wget2_LDADD 16643 * tests/Makefile.am: Fix AM_CPPFLAGS and libtest_la_CPPFLAGS, 16644 add $(LIBINTL) to LDADD, test_LDADD and test_parse_html_LDADD 16645 166462016-01-11 Tim Rühsen <tim.ruehsen@gmx.de> 16647 16648 Remove detection of select() from configure.ac 16649 16650 * configure.ac: Remove detection of select() 16651 * src/wget.c: Remove commented include directives 16652 166532016-01-11 Tim Rühsen <tim.ruehsen@gmx.de> 16654 16655 Add $(LIB_POLL) to *_LDADD 16656 16657 * examples/Makefile.am, src/Makefile.am, tests/Makefile.am: 16658 Add $(LIB_POLL) to *_LDADD 16659 166602016-01-11 Tim Rühsen <tim.ruehsen@gmx.de> 16661 16662 Add gnulib module poll 16663 16664 * autogen.sh: Add gnulib module poll 16665 * configure.ac: Remove searching for poll.h and sys/poll.h 16666 * libwget/io.c: Remove conditional code 16667 166682016-01-11 Tim Rühsen <tim.ruehsen@gmx.de> 16669 16670 Use stdlib.h and unistd.h from gnulib 16671 16672 * configure.ac: Remove searching for stdlib.h and unistd.h 16673 166742016-01-11 Tim Rühsen <tim.ruehsen@gmx.de> 16675 16676 Add gnulib module pwrite 16677 16678 * autogen.sh: Add gnulib module pwrite 16679 * configure.ac: Remove searching for pwrite 16680 * src/wget.c(download_part): Remove conditional code 16681 166822016-01-11 Tim Rühsen <tim.ruehsen@gmx.de> 16683 16684 Add gnulib module qsort_r 16685 16686 * autogen.sh: Add gnulib module qsort_r 16687 * configure.ac: Remove qsort_r code 16688 * libwget/vector.c: Remove conditional code 16689 166902016-01-11 Tim Rühsen <tim.ruehsen@gmx.de> 16691 16692 Call wget_str(n)casecmp_ascii instead of str(n)casecmp 16693 16694 * examples/print_css_urls2.c, libwget/cookie.c, libwget/css.c, 16695 libwget/html_url.c, libwget/http.c, libwget/iri.c, libwget/metalink.c, 16696 libwget/net.c, libwget/robots.c, libwget/ssl_gnutls.c, 16697 libwget/stringmap.c, libwget/xml.c, src/job.c, src/options.c, src/wget.c: 16698 Call wget_str(n)casecmp_ascii instead of str(n)casecmp 16699 167002016-01-11 Tim Rühsen <tim.ruehsen@gmx.de> 16701 16702 Add gnulib modules c-strcase, c-ctype and strcase 16703 16704 * autogen.sh: Add gnulib modules c-strcase, c-ctype and strcase 16705 * configure.ac: Remove search for string.h, strings.h, str(n)casecmp 16706 * libwget/utils.c: Use c_str(n)casecmp, c_isupper, c_isxdigit 16707 167082016-01-11 Tim Rühsen <tim.ruehsen@gmx.de> 16709 16710 Update po/POTFILES.in 16711 16712 * po/POTFILES.in: Add src/bar.c and src/options.c, 16713 Remove libwget/printf.c 16714 167152016-01-11 Tim Rühsen <tim.ruehsen@gmx.de> 16716 16717 Remove libwget/printf.c 16718 16719 * configure.ac: Remove check for dprintf 16720 * include/libwget.h.in: Remove dprintf/vdprintf prototypes 16721 * libwget/Makefile.am: Remove printf.c from file list 16722 * libwget/printf.c: Remove file 16723 167242016-01-11 Tim Rühsen <tim.ruehsen@gmx.de> 16725 16726 Use dup2 gnulib fallback 16727 16728 * autogen.sh: Add dup2 to gnulib modules 16729 * configure.ac: Remove searching for dup2() 16730 * libwget/pipe.c: Remove commented includes 16731 167322016-01-11 Tim Rühsen <tim.ruehsen@gmx.de> 16733 16734 Remove usage of alloca() 16735 16736 * libwget/hashfile.c (wget_hash_file_fd): Do not use alloca() 16737 * src/options.c (_read_config): Do not use alloca() 16738 167392016-01-11 Tim Rühsen <tim.ruehsen@gmx.de> 16740 16741 Add $(LIB_CLOCK_GETTIME) to tests 16742 16743 * tests/Makefile.am: Add $(LIB_CLOCK_GETTIME) 16744 167452016-01-11 Tim Rühsen <tim.ruehsen@gmx.de> 16746 16747 Use strndup gnulib fallback 16748 16749 * autogen.sh: Add strndup to gnulib modules 16750 * configure.ac: Remove searching for strndup() 16751 * include/libwget.h.in: Remove conditional code 16752 167532016-01-11 Tim Rühsen <tim.ruehsen@gmx.de> 16754 16755 Remove searching for usleep 16756 16757 * configure.ac: Remove searching for usleep() 16758 167592016-01-11 Tim Rühsen <tim.ruehsen@gmx.de> 16760 16761 Use glob gnulib fallback 16762 16763 * autogen.sh: Add glob to gnulib modules 16764 * configure.ac: Remove searching for glob() and glob.h 16765 * src/options.c: Remove conditional code 16766 167672016-01-11 Tim Rühsen <tim.ruehsen@gmx.de> 16768 16769 Use nanosleep gnulib fallback 16770 16771 * autogen.sh: Add nanosleep to gnulib modules 16772 * configure.ac: Remove searching for nanosleep 16773 * examples/Makefile.am: Add $(LIBSOCKET) $(LIB_NANOSLEEP) $(LIB_SELECT) 16774 * src/Makefile.am: Add $(LIBSOCKET) $(LIB_NANOSLEEP) $(LIB_SELECT) 16775 * tests/Makefile.am: Add $(LIBSOCKET) $(LIB_NANOSLEEP) $(LIB_SELECT) 16776 * libwget/utils.c: Remove conditional code 16777 167782016-01-11 Tim Rühsen <tim.ruehsen@gmx.de> 16779 16780 Use futimens gnulib fallback 16781 16782 * autogen.sh: Add futimens to gnulib modules 16783 * configure.ac: Remove searching for futimens 16784 * src/wget.c: Remove conditional code 16785 167862016-01-11 Tim Rühsen <tim.ruehsen@gmx.de> 16787 16788 Replace gettimeofday by clock_gettime 16789 16790 * configure.ac: Remove check for gettimeofday 16791 * src/log.c: Remove #include <sys/time> 16792 * src/log.c (_write_debug): Use clock_gettime instead of gettimeofday 16793 167942016-01-11 Tim Rühsen <tim.ruehsen@gmx.de> 16795 16796 Remove searching for fnmatch and fnmatch.h 16797 16798 * configure.ac: Remove searching for fnmatch and fnmatch.h 16799 168002016-01-11 Tim Rühsen <tim.ruehsen@gmx.de> 16801 16802 Remove searching for fcntl.h 16803 16804 * configure.ac: Remove searching for fcntl.h 16805 168062016-01-11 Tim Rühsen <tim.ruehsen@gmx.de> 16807 16808 Fix AC_CHECK_FUNCS for gnutls functions 16809 16810 * configure.ac: Remove 'gnutls' from AC_CHECK_FUNCS() 16811 168122016-01-11 Tim Rühsen <tim.ruehsen@gmx.de> 16813 16814 Add gnulib module clock-time 16815 16816 * autogen.sh: Add clock-time to gnulib modules 16817 * configure.ac: Remove searching for clock_gettime 16818 * src/Makefile.am: Add $(LIB_CLOCK_GETTIME) to wget2_LDADD 16819 * src/wget.c (set_file_mtime): Remove conditional code 16820 168212016-01-10 Tim Rühsen <tim.ruehsen@gmx.de> 16822 16823 Replace fnmatch function by gnulib fnmatch 16824 16825 * src/compat_fnmatch.c: Removed 16826 * src/compat_fnmatch.h: Removed 16827 * autogen.sh: Add fnmatch to gnulib modules 16828 * src/Makefile.am: Remove compat_fnmatch.[ch] 16829 * src/wget.c: Unconditionally include fnmatch.h 16830 168312016-01-10 Tim Rühsen <tim.ruehsen@gmx.de> 16832 16833 Remove test-ftp and test-ftps from test suite 16834 16835 * tests/Makefile.am: Remove test-ftp and test-ftps 16836 16837 These test were introduced as helpers for FTPS integration for 16838 Wget1.x (GSOC 2015 project). We disable them until Wget2 supports 16839 FTP/FTPS. 16840 168412016-01-09 Tim Rühsen <tim.ruehsen@gmx.de> 16842 16843 Fix branch name in Travis-CI icon URL 16844 168452016-01-09 Tim Rühsen <tim.ruehsen@gmx.de> 16846 16847 Add Travis-CI status icon 16848 168492016-01-09 Tim Rühsen <tim.ruehsen@gmx.de> 16850 16851 Really fix return code of wget_str(n)casecmp_ascii 16852 16853 * libwget/utils.c (wget_strcasecmp_ascii, wget_strncasecmp_ascii): 16854 Fix return value 16855 168562016-01-09 Tim Rühsen <tim.ruehsen@gmx.de> 16857 16858 Fix return code of wget_strcasecmp_ascii and wget_strncasecmp_ascii 16859 16860 * libwget/utils.c (wget_strcasecmp_ascii, wget_strncasecmp_ascii): 16861 Fix return value 16862 168632016-01-09 Tim Rühsen <tim.ruehsen@gmx.de> 16864 16865 Link with libgnu.a 16866 16867 * libwget/Makefile.am: Add lib/ to AM_CPPFLAGS, add libgnu.a to *_LDADD 16868 * src/Makefile.am: Same 16869 * tests/Makefile.am: Same, rename object files to link with tests 16870 168712016-01-09 Tim Rühsen <tim.ruehsen@gmx.de> 16872 16873 Fix OpenSolaris libidn include directory 16874 16875 * configure.ac: Search for idn/idna.h 16876 * libwget/encoding.c: Include idn/idna.h if found 16877 168782016-01-09 Tim Rühsen <tim.ruehsen@gmx.de> 16879 16880 Add flock to gnulib modules 16881 16882 * autogen.sh: Add flock to gnulib modules 16883 168842016-01-09 Tim Rühsen <tim.ruehsen@gmx.de> 16885 16886 Fix Name + Libs in pkg-config file 16887 16888 * libwget.pc.in: Set Name to libwget and change -llibwget to -lwget 16889 168902016-01-09 Tim Rühsen <tim.ruehsen@gmx.de> 16891 16892 Remove API version from library file names 16893 16894 * .gitignore, Makefile.am, configure.ac, examples/Makefile.am, 16895 libwget.pc.in, libwget/Makefile.am, src/Makefile.am, tests/Makefile.am: 16896 Remove API version from library file names 16897 168982016-01-09 Tim Rühsen <tim.ruehsen@gmx.de> 16899 16900 Build shared library by default 16901 16902 * configure.ac: Add disable-static to LT_INIT 16903 169042016-01-09 Tim Rühsen <tim.ruehsen@gmx.de> 16905 16906 Hook gnulib into project 16907 169082016-01-09 Tim Rühsen <tim.ruehsen@gmx.de> 16909 16910 Add gnulib as submodule 16911 169122016-01-08 Tim Rühsen <tim.ruehsen@gmx.de> 16913 16914 Add error code WGET_E_TLS_DISABLED 16915 16916 * libwget/ssl_gnutls.c: If TLS is not compiled in, return WGET_E_TLS_DISABLED 16917 from wget_ssl_open() and wget_ssl_server_open(). 16918 169192016-01-05 Darshit Shah <darnir@gmail.com> 16920 16921 Fix .travis.yml file for Linux systems 16922 16923 * .travis.yml: Container based architecture doesn't allow Sudo. 16924 Migrate file to support container based architecture 16925 * .travis.sh: Same 16926 169272016-01-08 Darshit Shah <darnir@gmail.com> 16928 16929 Do not print responses in tests 16930 16931 * tests/test.c (check_cookie): Do not print responses. We want 16932 this test to expose memory leaks, but printing the response of 16933 wget_cookie_create_request_header isn't needed. 16934 169352016-01-08 Darshit Shah <darnir@gmail.com> 16936 16937 Use absolute pathanme to find PSL data 16938 16939 * tests/Makefile.am: PSL DATADIR should be the absolute pathname to 16940 allow us to run tests from any directory. 16941 169422016-01-07 Tim Rühsen <tim.ruehsen@gmx.de> 16943 16944 Add support for gcrypt hashing 16945 16946 * configure.ac: Add libgcrypt as fallback for libnettle 16947 * libwget/hashfile.c: Add gcrypt hash functions 16948 169492016-01-07 Tim Rühsen <tim.ruehsen@gmx.de> 16950 16951 Fix hash functions for use with libnettle 16952 16953 * src/hashfile: Add needed includes (nettle 3.1.1 and 2.7) 16954 * src/hashfile (wget_hash_deinit): Call digest() instead of update() 16955 169562016-01-07 Tim Rühsen <tim.ruehsen@gmx.de> 16957 16958 Skip HTTPS tests when no HTTPS available 16959 16960 * tests/test-i-https.c: Skip test when no HTTPS available 16961 169622016-01-06 Tim Rühsen <tim.ruehsen@gmx.de> 16963 16964 Do not descend into subdomains if not requested 16965 16966 * src/wget.c (in_host_pattern_list): Fix arguments of wget_match_tail() 16967 169682016-01-06 Tim Rühsen <tim.ruehsen@gmx.de> 16969 16970 Auto-generate version defines for library header file 16971 16972 * include/libwget.h: Removed 16973 * include/libwget.h.in: Added 16974 169752016-01-06 Tim Rühsen <tim.ruehsen@gmx.de> 16976 16977 Rename LIBWGET_API_VERSION to LIBWGET_VERSION 16978 169792016-01-06 Tim Rühsen <tim.ruehsen@gmx.de> 16980 16981 Fix hashing with GnuTLS 16982 16983 * libwget/ssl_gnutls.c: Do not skip automatic library initialization 16984 * libwget/md5.c (wget_md5_printf_hex): Print message on error 16985 * tests/test.c: New tests for hashing functionality 16986 16987 GnuTLS automatically initializes on application startup. 16988 This wastes CPU cycles when not using HTTPS. 16989 Switched off, simple functionality like MD5 fail (needed for metalink and 16990 authorization). We have to implement hashing via -lcrypt or -lgcrypt 16991 later - and than we could use GNUTLS_SKIP_GLOBAL_INIT again. 16992 169932016-01-06 Tim Rühsen <tim.ruehsen@gmx.de> 16994 16995 Do not percent unescape query 16996 16997 * tests/test.c: Test query parsing in API 16998 * tests/test-base.c: Test query handling of wget2 16999 * include/libwget.h: Add flags to wget_iri_t, 17000 add function wget_iri_unescape_inline() 17001 * libwget/iri.c: Add function wget_iri_unescape_inline(), 17002 fix wget_iri_parse() to not percent unescape query 17003 do not add fragment in wget_iri_get_escaped_resource() 17004 170052015-12-15 Tim Rühsen <tim.ruehsen@gmx.de> 17006 17007 Fix iconv conversion 17008 17009 * libwget/encoding.c: Kick out the last character from iconv(). 17010 17011 Thanks to Eli Zaretskii <eliz@gnu.org> for suggesting the fix. 17012 Reported-by: "Andries E. Brouwer" <Andries.Brouwer@cwi.nl> 17013 170142015-12-13 Ander Juaristi <ajuaristi@gmx.es> 17015 17016 Fix error return value in I/O code 17017 17018 * libwget/io.c: fix return value of __read() in case of error 17019 170202015-11-30 Ander Juaristi <ajuaristi@gmx.es> 17021 17022 Complete docs in I/O API 17023 17024 * libwget/http.c (wget_http_get_response_cb): removed unused variable 17025 (compiler warning). 17026 * libwget/io.c 17027 (wget_fdgetline,wget_getline,wget_read_file,wget_update_file): added 17028 source docs. Refactor: avoid code repetition. 17029 (wget_ready_2_transfer): fixed HTML rendering of docs. 17030 * docs/libwget/libwget-sections.txt: added new functions to GTK-Doc. 17031 170322015-11-23 Tim Rühsen <tim.ruehsen@gmx.de> 17033 17034 Fix return value in HSTS and Cookie code 17035 17036 * libwget/cookie.c (wget_cookie_db_load, wget_cookie_db_save): 17037 Fix return value 17038 * libwget/hsts.c (wget_hsts_db_load, wget_hsts_db_save): 17039 Fix return value 17040 170412015-11-23 Tim Rühsen <tim.ruehsen@gmx.de> 17042 17043 Disable 'unused' warnings in CSS tokenizer 17044 17045 * libwget/css_tokenizer.lex: Disable GCC warnings unused-parameter 17046 and unused-function 17047 170482015-11-23 Tim Rühsen <tim.ruehsen@gmx.de> 17049 17050 Cleanup cookie code 17051 17052 Cookies: Add new function wget_cookie_set_keep_session_cookies() 17053 and adjust wget_cookie_db_load() and wget_cookie_db_save(). 17054 Use wget_update_file() for loading and saving. 17055 170562015-11-23 Tim Rühsen <tim.ruehsen@gmx.de> 17057 17058 Add check for function param in HSTS code 17059 17060 * libwget/hsts.c (wget_hsts_db_save): Check hsts_db for NULL, 17061 (wget_hsts_db_load): Fix typo in error message 17062 170632015-11-23 Tim Rühsen <tim.ruehsen@gmx.de> 17064 17065 Fix typo in OSCP error message 17066 17067 * libwget/ocsp.c (wget_ocsp_db_load): Fix typo 17068 170692015-11-23 Tim Rühsen <tim.ruehsen@gmx.de> 17070 17071 Adjust OCSP and HSTS default file names 17072 17073 * src/options.c (print_help, init): Use ~/.wget-hsts and ~/.wget-ocsp 17074 170752015-11-23 Tim Rühsen <tim.ruehsen@gmx.de> 17076 17077 Fix test suite for CygWin 17078 17079 * New CygWin specific code for removing/cleaning test directory 17080 170812015-11-23 Tim Rühsen <tim.ruehsen@gmx.de> 17082 17083 Fix tests/test.c for non-GNU standard C libraries 17084 17085 * tests/test.c (test_buffer_printf): Skip left zero padding strings 17086 170872015-11-18 Tim Rühsen <tim.ruehsen@gmx.de> 17088 17089 Avoid implicit gloabl initialization by GnuTLS 17090 17091 * libwget/ssl_gnutls.c: Use GNUTLS_SKIP_GLOBAL_INIT if defined 17092 170932015-11-18 Tim Rühsen <tim.ruehsen@gmx.de> 17094 17095 Fix basename in wget_update_file() 17096 17097 * libwget/io.c (wget_update_file): Fxi basename 17098 170992015-11-11 Tim Rühsen <tim.ruehsen@gmx.de> 17100 17101 Add new options --netrc and --netrc-file 17102 17103 * libwget/netrc.c: New file for netrc API functions 17104 * include/libwget.h: Add netrc function prototypes 17105 * libwget/Makefile.am: Add netrc.c 17106 * libwget/test_linking.c (main): Add call to wget_netrc_deinit() 17107 * src/options.c: Add --netrc and --netrc-file 17108 * src/options.h: Add config.netrc and config.netrc_file 17109 * src/wget.c (http_get): Get login/password from netrc data 17110 * tests/test-auth-basic.c (main): Add test for --netrc-file 17111 171122015-11-10 Tim Rühsen <tim.ruehsen@gmx.de> 17113 17114 Add define ascii_isspace and ascii_isalpha 17115 17116 * libwget/xml.c: Add and use defines here 17117 171182015-11-10 Tim Rühsen <tim.ruehsen@gmx.de> 17119 17120 Replace strlpcy by memcpy 17121 17122 * src/options.c (set_long_option): Replace strlcpy() 17123 171242015-11-10 Tim Rühsen <tim.ruehsen@gmx.de> 17125 17126 Replace calls to strncpy by memcpy 17127 17128 * libwget/xml.c (parseXML): Replace calls to strncpy() 17129 171302015-11-10 Tim Rühsen <tim.ruehsen@gmx.de> 17131 17132 Replaced strndup() by wget_strmemdup() 17133 17134 * examples/getstream.c, examples/print_css_urls2.c, libwget/cookie.c, 17135 libwget/css_url.c, libwget/encoding.c, libwget/hsts.c, 17136 libwget/html_url.c, libwget/http.c, libwget/metalink.c, 17137 libwget/ocsp.c, libwget/robots.c, libwget/ssl_gnutls.c, 17138 src/options.c, src/wget.c, tests/stringmap_perf.c, 17139 tests/test-wget-1.c 17140 17141 Strndup() calls an additional strlen() on the input string. 17142 This is normally not needed, and thus just consumes CPU cycles. 17143 All calls to strndup() could be replaced by wget_strmemdup, which 17144 basically allocates len+1 memory, calls memcpy and terminates with 17145 a 0 byte. 17146 171472015-11-09 Tim Rühsen <tim.ruehsen@gmx.de> 17148 17149 Add type of file for OCSP databases 17150 17151 * libwget/ocsp.c (_ocsp_db_save_hosts): Add type of file to database 17152 files. 17153 171542015-11-09 Tim Rühsen <tim.ruehsen@gmx.de> 17155 17156 Amend message when successfully updating files 17157 17158 * libwget/io.c (wget_update_file): Amend message 17159 171602015-11-09 Ander Juaristi <ajuaristi@gmx.es> 17161 17162 Avoid potential race condition in HSTS code 17163 17164 * libwget/hsts.c (_hsts_db_load): new internal function. 17165 (wget_hsts_db_load): moved code to _hsts_db_load() internal function. 17166 (wget_hsts_db_save): lock the file before saving, to avoid race 17167 conditions. Reload only if access time greater than last read time. 17168 171692015-11-06 Tim Rühsen <tim.ruehsen@gmx.de> 17170 17171 Use wget_update_file() in OCSP code 17172 17173 * libwget/ocsp.c: Rearranged code to use wget_update_file 17174 171752015-11-06 Tim Rühsen <tim.ruehsen@gmx.de> 17176 17177 Add new function wget_update_file() 17178 17179 * include/libwget.h: Add wget_update_file() 17180 * libwget/io.c: Add wget_update_file() 17181 17182 Add a function to care about locking, temp files, opening 17183 overhead for our typical updating file database procedure. 17184 Useful for HSTS, OCSP and Cookie file databases. 17185 171862015-11-08 Tim Rühsen <tim.ruehsen@gmx.de> 17187 17188 Close va_start() with va_end() 17189 17190 * tests/libtest.c (wget_test): Add va_end() 17191 171922015-11-06 Tim Rühsen <tim.ruehsen@gmx.de> 17193 17194 Adjust HSTS unit tests to latest changes 17195 17196 * tests/test.c (test_hsts): Adjust port 80 test, new port 8080 test 17197 171982015-11-04 Tim Rühsen <tim.ruehsen@gmx.de> 17199 17200 Use logic or instead of binary or 17201 17202 * libwget/atom_url.c (_atom_get_url): Use logic or 17203 172042015-10-31 Ander Juaristi <ajuaristi@gmx.es> 17205 17206 Fixed HSTS policy application 17207 17208 * include/libwget.h (wget_iri_set_scheme): new function. 17209 * libwget/hsts.c (wget_hsts_host_match): HTTP default port -> HTTPS 17210 default port 17211 * libwget/iri.c (wget_iri_set_scheme): new function. 17212 * src/wget.c (http_get): when changing the scheme, change the port 17213 number as well (call wget_iri_set_scheme). 17214 172152015-10-30 Tim Rühsen <tim.ruehsen@gmx.de> 17216 17217 Add function wget_global_get_func() 17218 17219 * include/libwget.h: Add wget_global_get_func() prototype 17220 * libwget/init.c: Add function wget_global_get_func() 17221 172222015-10-30 Tim Rühsen <tim.ruehsen@gmx.de> 17223 17224 Adjust package name and version 17225 17226 * configure.ac: Adjust package name and version 17227 172282015-10-28 Tim Rühsen <tim.ruehsen@gmx.de> 17229 17230 Fix HTTP2 in combination with --progress=bar 17231 17232 * src/wget.c (http_get): Call wget_http_get_response_cb() 17233 172342015-10-28 Tim Rühsen <tim.ruehsen@gmx.de> 17235 17236 Some cleanups 17237 17238 * src/options.c (read_config): Check for config.config_file 17239 (get_home_dir): Cleanup 17240 (init): Check for readability of config.config_file 17241 172422015-10-28 Tim Rühsen <tim.ruehsen@gmx.de> 17243 17244 Free config.config_file on exit 17245 17246 * src/options.c (deinit): Free config.config_file 17247 172482015-10-28 Tim Rühsen <tim.ruehsen@gmx.de> 17249 17250 Exit early on 0 URLs to process 17251 17252 * src/wget.c (main): Exit if no URLs found to process 17253 172542015-10-28 Tim Rühsen <tim.ruehsen@gmx.de> 17255 17256 Print error for unsupported CLI URLs 17257 17258 * src/wget.c (add_url_to_queue): Print error message 17259 172602015-10-27 Tim Rühsen <tim.ruehsen@gmx.de> 17261 17262 Rename --dns-cache to --dns-caching 17263 17264 * src/options.c: Rename --dns-cache to --dns-caching, 17265 Remove double entry from help text 17266 172672015-10-27 Tim Rühsen <tim.ruehsen@gmx.de> 17268 17269 Rename --continue-download to --continue 17270 17271 * src/options.c: Rename --continue-download to --continue 17272 172732015-10-26 Tim Rühsen <tim.ruehsen@gmx.de> 17274 17275 Fix default_page to default-page in help text 17276 17277 * src/options.c: Fix default_page to default-page 17278 172792015-10-25 Tim Rühsen <tim.ruehsen@gmx.de> 17280 17281 Fix HTML BASE with absolute path 17282 17283 * src/wget.c (html_parse): Fix HTML BASE with absolute path 17284 * tests/Makefile.am: Add test-base.c 17285 * tests/test-base.c: New file 17286 172872015-10-25 Tim Rühsen <tim.ruehsen@gmx.de> 17288 17289 Add download statistics 17290 17291 * src/wget.c: New structure _statistics_t, 17292 New function _fetch_and_add_longlong(), 17293 (main): Print stats 17294 (http_get): Collect stats 17295 172962015-10-24 Tim Rühsen <tim.ruehsen@gmx.de> 17297 17298 Remove unused argument argv from option parser functions 17299 17300 * src/options.c (struct option): Remove argv from parser() 17301 (print_help, parse_integer, parse_numbytes, parse_string, 17302 parse_stringset, parse_stringlist, parse_taglist, parse_bool, 17303 parse_mirror, parse_timeout, parse_cert_type, parse_restrict_names, 17304 parse_n_option, parse_prefer_family, parse_execute, parse_execute): 17305 Remove unused argument argv. 17306 * src/options.c (set_long_option): Adjust calls to parser functions. 17307 173082015-10-24 Tim Rühsen <tim.ruehsen@gmx.de> 17309 17310 Comment code for broken servers and document it 17311 17312 * libwget/src (wget_http_parse_response_header): Comment code 17313 for broken servers and document it. 17314 173152015-10-24 Darshit Shah <darnir@gmail.com> 17316 17317 Ensure atleast one downloader thread 17318 17319 * src/options.c (init): The check for the minimum number of downloader 17320 threads should be done on config.max_threads not config.num_threads. 17321 173222015-10-23 Tim Rühsen <tim.ruehsen@gmx.de> 17323 17324 Abort on SIGTERM or on 2x CTRL-C 17325 17326 i* src/wget.c (nop): Abort on SIGTERM or on 2x CTRL-C 17327 173282015-10-23 Tim Rühsen <tim.ruehsen@gmx.de> 17329 17330 Add --config option for backwards compatibility 17331 17332 * src/options.c: Add --config 17333 173342015-10-23 Giuseppe Scrivano <gscrivan@redhat.com> 17335 17336 Exit immediately if cannot set http_proxy or https_proxy 17337 17338 * src/wget.c (main): Exit immediately on an "init()" error. 17339 * src/options.c (init): Raise an error if cannot set http_proxy or https_proxy. 17340 * tests/test-parse-html.c (main): Check for "init" errors. 17341 * tests/test.c (main): Check for "init" errors. 17342 173432015-10-23 Giuseppe Scrivano <gscrivan@redhat.com> 17344 17345 set_http_proxy and set_https_proxy can return an error 17346 17347 * libwget/http.h (wget_http_set_http_proxy): change the return type to int. 17348 (wget_http_set_https_proxy): change the return type to int 17349 * libwget/http.c (wget_http_set_http_proxy): return an error if cannot set the proxies. 17350 (wget_http_set_https_proxy): return an error if cannot set the proxies. 17351 173522015-10-22 Giuseppe Scrivano <gscrivan@redhat.com> 17353 17354 Indent C preprocessor directives 17355 17356 * libwget/css_tokenizer.h: Indent C preprocessor directives. 17357 * libwget/net.h: Likewise. 17358 * libwget/private.h: Likewise. 17359 * src/bar.h: Likewise. 17360 * src/blacklist.h: Likewise. 17361 * src/compat_fnmatch.h: Likewise. 17362 * src/host.h: Likewise. 17363 * src/job.h: Likewise. 17364 * src/log.h: Likewise. 17365 * src/options.h: Likewise. 17366 * src/wget.h: Likewise. 17367 173682015-10-22 Giuseppe Scrivano <gscrivan@redhat.com> 17369 17370 .dir-locals.el: new file 17371 173722015-10-22 Giuseppe Scrivano <gscrivan@redhat.com> 17373 17374 Fix function prototypes 17375 17376 * src/bar.h: Fix function prototype. 17377 * src/blacklist.h: Fix function prototype. 17378 * src/compat_fnmatch.h: Fix function prototype. 17379 * src/host.h: Fix function prototype. 17380 * src/job.h: Fix function prototype. 17381 * src/log.h: Fix function prototype. 17382 * src/options.h: Fix function prototype. 17383 173842015-10-22 Giuseppe Scrivano <gscrivan@redhat.com> 17385 17386 Check for wget_iri_parse errors 17387 17388 * libwget/ssl_gnutls.c (send_ocsp_request): Check for wget_iri_parse errors. 17389 * libwget/http_highlevel.c (wget_http_get): Check for wget_iri_parse errors. 17390 * libwget/http.c (_parse_proxies): Check for wget_iri_parse errors. 17391 173922015-10-21 Ander Juaristi <ajuaristi@gmx.es> 17393 17394 Documented hashing functions 17395 173962015-10-20 Ander Juaristi <ajuaristi@gmx.es> 17397 17398 Typos 17399 174002015-10-20 Ander Juaristi <ajuaristi@gmx.es> 17401 17402 Initial docs for hashing utils 17403 174042015-10-23 Darshit Shah <darnir@gmail.com> 17405 17406 Fix compiler warning about unused return code 17407 17408 * src/options.c (init): Clang complains about an unused return code from 17409 asprintf. So, we check to ensure that asprintf() actually managed to 17410 allocate the said string. 17411 174122015-10-23 Darshit Shah <darnir@gmail.com> 17413 17414 Allow recursive downloads to be more concurrent 17415 17416 * src/wget.c (main): In cases where the queue_size is not known at 17417 startup, spawn the maximum allowed threads for the thread pool. 17418 174192015-10-22 Darshit Shah <darnir@gmail.com> 17420 17421 Add option to explicitly set path to wgetrc file 17422 17423 * src/options.c (print_help, config, init, options): Add new option 17424 --config-file. 17425 * src/options.h: Same as above 17426 * src.options.c (read_config): Use the config.config_file value instead 17427 of a hard coded file path for wgetrc 17428 174292015-10-22 Darshit Shah <darnir@gmail.com> 17430 17431 OCSP and HSTS files should be stored to ~/.wget_* 17432 17433 * src/options.c: Include the pwd.h file to get access to pwd routines 17434 * src/options.c (get_home_dir): New function that return strdup'ed 17435 string containing location of directory for storing config files 17436 * src/options.c (init): Initialize the config.hsts_file and 17437 config.ocsp_file values correctly using get_home_dir() 17438 * src/options.h (config): Move hsts_file and ocsp_file from being const 17439 char* storages to only char* storages. 17440 174412015-10-20 Tim Rühsen <tim.ruehsen@gmx.de> 17442 17443 Add new test tests/test-redirection.c 17444 174452015-10-20 Tim Rühsen <tim.ruehsen@gmx.de> 17446 17447 Add extension of test suite port variables in response headers 17448 17449 * tests/libtest.h: Add member header_alloc to wget_test_url_t 17450 * tests/libtest.c: Extend port vars in response headers 17451 174522015-10-19 Tim Rühsen <tim.ruehsen@gmx.de> 17453 17454 On CTRL-C save downloaded data before exit 17455 17456 * include/libwget.h: New declaration wget_http_abort_connection() 17457 * libwget/http.c: New function wget_http_abort_connection() 17458 * src/wget.c: Call wget_http_abort_connection() on CTRL-C 17459 174602015-10-19 Giuseppe Scrivano <gscrivan@redhat.com> 17461 17462 gnutls: check for gnutls_srp_server_get_username function 17463 174642015-10-18 Darshit Shah <darnir@gmail.com> 17465 17466 Rename option --num-threads to --max-threads 17467 17468 * src/options.[ch]: Rename the option --num-threads to --max-threads 17469 which better describes the content it holds. We keep the --num-threads 17470 config option around, since it will be used to hold the *actual* number 17471 of threads in this instance of Wget2. 17472 * src/wget.c (main): Initialize the value of config.num_threads. This 17473 value is atmost config.max_threads or the number of URLs to download, 17474 whichever is lower. 17475 174762015-10-18 Tim Rühsen <tim.ruehsen@gmx.de> 17477 17478 Change 'git branch' into 'git checkout' 17479 17480 * README.md: Change 'git branch' into 'git checkout' 17481 174822015-10-17 Tim Rühsen <tim.ruehsen@gmx.de> 17483 17484 Fix TLS read timeout issue with GnuTLS 3.4.x 17485 17486 * libwget/ssl_gnutls.c (wget_ssl_read_timeout): Comment out 17487 code path for GnuTLS >= 0x030107 17488 174892015-10-16 Darshit Shah <darnir@gmail.com> 17490 17491 Fix issue when --debug is the first option passed 17492 17493 * src/options.c (init): set_long_option() expects only a the option 17494 name without the preceeding --. Ensure that we remove those when 17495 passing the --debug flag. 17496 174972015-10-15 Tim Rühsen <tim.ruehsen@gmx.de> 17498 17499 Fix shell in contrib/gen_option_diff.sh 17500 17501 * contrib/gen_option_diff.sh: Explicitly use /bin/bash 17502 175032015-10-15 Tim Rühsen <tim.ruehsen@gmx.de> 17504 17505 Add contrib/gen_option_diff.sh 17506 17507 * contrib/gen_option_diff.sh: New script file 17508 175092015-10-11 Tim Rühsen <tim.ruehsen@gmx.de> 17510 17511 Remove mentioning SPDY from README.md 17512 17513 * README.md: Remove mentioning SPDY 17514 175152015-10-11 Tim Rühsen <tim.ruehsen@gmx.de> 17516 17517 Rename wget executable to wget2 17518 17519 * .gitignore: Replace src/wget by src/wget2 17520 * src/Makefile.am: Rename wget to wget2 17521 * tests/Makefile.am: Link wget2-* objects 17522 * tests/libtest.c: Execute wget2 instead of wget 17523 175242015-09-28 Tim Rühsen <tim.ruehsen@gmx.de> 17525 17526 Handle TLS rehandshakes 17527 17528 * libwget/ssl_gnutls.c: New static function _do_handshake() 17529 * libwget/ssl_gnutls.c (wget_ssl_open): Move handshake code to _do_handshake() 17530 * libwget/ssl_gnutls.c (wget_ssl_server_open): Use _do_handshake() 17531 * libwget/ssl_gnutls.c (wget_ssl_read_timeout): Handle rehandshake 17532 * libwget/ssl_gnutls.c (wget_ssl_write_timeout): Handle rehandshake 17533 175342015-09-23 Tim Rühsen <tim.ruehsen@gmx.de> 17535 17536 Add copyright notes to NEWS 17537 17538 * NEWS: Add copyright notes 17539 175402015-09-22 Tim Rühsen <tim.ruehsen@gmx.de> 17541 17542 Print number of downloaded files and bytes when done 17543 17544 * src/wget.c: Print number of downloaded files and bytes when done 17545 175462015-09-22 Tim Rühsen <tim.ruehsen@gmx.de> 17547 17548 Fix SPDY incompatibility 17549 17550 * src/options.c: Remove spdy/3.1 from ALPN offer 17551 175522015-09-22 Tim Rühsen <tim.ruehsen@gmx.de> 17553 17554 Fix README 17555 17556 * README: Fix to wget2 17557 175582015-09-22 Tim Rühsen <tim.ruehsen@gmx.de> 17559 17560 Fix README.md 17561 17562 * README.md: Fix to wget2 17563 175642015-09-22 Tim Rühsen <tim.ruehsen@gmx.de> 17565 17566 Transfer copyright to Free Software Foundation, Inc. 17567 175682015-09-22 Tim Rühsen <tim.ruehsen@gmx.de> 17569 17570 Fix mailing list and website in configure.ac 17571 17572 * configure.ac: Fix mailing list and website in AC_INIT 17573 175742015-09-21 Tim Rühsen <tim.ruehsen@gmx.de> 17575 17576 Add ABOUT-NLS and INSTALL to .gitignore 17577 17578 * .gitignore: Add ABOUT-NLS and INSTALL 17579 175802015-09-21 Tim Rühsen <tim.ruehsen@gmx.de> 17581 17582 Add fallback code for GnuTLS < 3.1.7 17583 17584 * libwget/ssl_gnutls.c (wget_ssl_read_timeout): Add fallback code for 17585 older versions of GnuTLS. 17586 175872015-09-19 Tim Rühsen <tim.ruehsen@gmx.de> 17588 17589 Transform Mget into Wget 17590 175912015-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 17592 17593 More HTTP/2 related code, new option --(no-)http2 17594 175952015-09-13 Tim Rühsen <tim.ruehsen@gmx.de> 17596 17597 Fixed cookie test routine 17598 175992015-09-12 Tim Rühsen <tim.ruehsen@gmx.de> 17600 17601 Added missing breaks to switch in libtest.c 17602 176032015-09-12 Tim Rühsen <tim.ruehsen@gmx.de> 17604 17605 Fix resource leak in new HTTP/2 code 17606 176072015-09-11 Tim Rühsen <tim.ruehsen@gmx.de> 17608 17609 Fix compilation without nghttp2 17610 176112015-09-11 Tim Rühsen <tim.ruehsen@gmx.de> 17612 17613 HTTP/2 download is working 17614 176152015-09-11 Tim Rühsen <tim.ruehsen@gmx.de> 17616 17617 Fix res->encoding in _html_get_url() 17618 176192015-09-10 Tim Rühsen <tim.ruehsen@gmx.de> 17620 17621 Fix typo in comment 17622 176232015-09-07 Tim Rühsen <tim.ruehsen@gmx.de> 17624 17625 Rearrange HTTP header API 17626 176272015-09-07 Tim Rühsen <tim.ruehsen@gmx.de> 17628 17629 Request HTTP/1.1 and HTTP/2.0 via ALPN 17630 176312015-08-31 Tim Rühsen <tim.ruehsen@gmx.de> 17632 17633 Fix Content-Disposition filename retrieval 17634 176352015-08-28 Tim Rühsen <tim.ruehsen@gmx.de> 17636 17637 Fix filename when charset conversion fails #2 17638 176392015-08-28 Tim Rühsen <tim.ruehsen@gmx.de> 17640 17641 Remove iconv() from AC_CHECK_FUNCS 17642 176432015-08-28 Tim Rühsen <tim.ruehsen@gmx.de> 17644 17645 Include sys/types.h in libmget.h 17646 176472015-08-28 Tim Rühsen <tim.ruehsen@gmx.de> 17648 17649 Fix filename when charset conversion fails 17650 176512015-07-12 Tim Rühsen <tim.ruehsen@gmx.de> 17652 17653 Unify mget_ssl_server_open and mget_ssl_open 17654 176552015-07-12 Tim Rühsen <tim.ruehsen@gmx.de> 17656 17657 Add AUTH command to FTP test suite 17658 176592015-07-12 Tim Rühsen <tim.ruehsen@gmx.de> 17660 17661 Add tests/test-ftps.c 17662 176632015-07-12 Tim Rühsen <tim.ruehsen@gmx.de> 17664 17665 Remove INSTALL from git 17666 176672015-07-12 Tim Rühsen <tim.ruehsen@gmx.de> 17668 17669 Add mget_tcp_tls_start() and mget_tcp_tls_stop() 17670 176712015-07-11 Tim Rühsen <tim.ruehsen@gmx.de> 17672 17673 Add FTPS server to test suite 17674 176752015-07-11 Tim Rühsen <tim.ruehsen@gmx.de> 17676 17677 Allow ordered and unordered I/O for FTP test suite 17678 176792015-07-10 Tim Rühsen <tim.ruehsen@gmx.de> 17680 17681 Add --inet4-only to tests/test-ftp.c 17682 176832015-07-10 Tim Rühsen <tim.ruehsen@gmx.de> 17684 17685 Added EPSV to tests/libtest.c 17686 176872015-07-10 Tim Rühsen <tim.ruehsen@gmx.de> 17688 17689 Include sys/wait.h for WIF* macros 17690 176912015-07-10 Tim Rühsen <tim.ruehsen@gmx.de> 17692 17693 Remove tests/.test_* with make clean 17694 176952015-07-10 Tim Rühsen <tim.ruehsen@gmx.de> 17696 17697 Remove unused variables from tests/libtest.c 17698 176992015-07-10 Tim Rühsen <tim.ruehsen@gmx.de> 17700 17701 Remove GNU make specialty from libmget/Makefile.am 17702 177032015-07-10 Tim Rühsen <tim.ruehsen@gmx.de> 17704 17705 Remove qsort_r trampoline version 17706 177072015-07-10 Tim Rühsen <tim.ruehsen@gmx.de> 17708 17709 Fix tests/libtest.c crash recently introduced 17710 177112015-07-09 Tim Rühsen <tim.ruehsen@gmx.de> 17712 17713 Add first FTP testing capability 17714 177152015-07-09 Tim Rühsen <tim.ruehsen@gmx.de> 17716 17717 Don't cache automatic server ports 17718 177192015-07-09 Tim Rühsen <tim.ruehsen@gmx.de> 17720 17721 Add Travis CI OSX check 17722 177232015-07-09 Tim Rühsen <tim.ruehsen@gmx.de> 17724 17725 Fix typo in libmget/encoding.c 17726 177272015-07-06 Tim Rühsen <tim.ruehsen@gmx.de> 17728 17729 Work around a libidn 1.30 vulnerability 17730 177312015-07-06 Tim Rühsen <tim.ruehsen@gmx.de> 17732 17733 Revert "Bump GETTEXT to version 0.19.1" 17734 17735 This reverts commit 469e501859c33ab0cb842eb5928698ed29ed9f9e. 17736 177372015-07-06 Tim Rühsen <tim.ruehsen@gmx.de> 17738 17739 Allow NULL for mget_http_parse_setcookie()i cookie param 17740 177412015-07-06 Tim Rühsen <tim.ruehsen@gmx.de> 17742 17743 Bump GETTEXT to version 0.19.1 17744 177452015-07-06 Tim Rühsen <tim.ruehsen@gmx.de> 17746 17747 Avoid tautological check warnings from clang 17748 177492015-07-06 Tim Rühsen <tim.ruehsen@gmx.de> 17750 17751 Avoid printf format warning 17752 177532015-07-06 Tim Rühsen <tim.ruehsen@gmx.de> 17754 17755 Add check and support for BSD style qsort_r 17756 177572015-07-05 Tim Rühsen <tim.ruehsen@gmx.de> 17758 17759 Fix check for HAVE_DPRINTF in libmget/printf.c 17760 177612015-05-04 Tim Ruehsen <tim.ruehsen@gmx.de> 17762 17763 Fix waste of CPU cycles in mget_iri_relative_to_abs() 17764 177652015-05-02 Tim Ruehsen <tim.ruehsen@gmx.de> 17766 17767 prepared for release 17768 177692015-03-22 Tim Ruehsen <tim.ruehsen@gmx.de> 17770 17771 use random/srandom instead weak functions rand/srand 17772 177732015-03-18 Tim Rühsen <tim.ruehsen@gmx.de> 17774 17775 added .gitignore 17776 177772015-03-13 Tim Rühsen <tim.ruehsen@gmx.de> 17778 17779 fixing two more Coverity issues 17780 177812015-03-12 Tim Ruehsen <tim.ruehsen@gmx.de> 17782 17783 fixing more Coverity issues 17784 177852015-03-09 Tim Rühsen <tim.ruehsen@gmx.de> 17786 17787 fixing more Coverity issues 17788 177892015-03-08 Tim Ruehsen <tim.ruehsen@gmx.de> 17790 17791 changes in hashmap handling 17792 177932015-03-07 Tim Ruehsen <tim.ruehsen@gmx.de> 17794 17795 fix several issues found by Coverity 17796 177972015-03-03 Tim Ruehsen <tim.ruehsen@gmx.de> 17798 17799 comment unused mget_bsprintf functions 17800 178012015-03-03 Tim Ruehsen <tim.ruehsen@gmx.de> 17802 17803 fix possible buffer overflow 17804 178052015-03-01 Tim Ruehsen <tim.ruehsen@gmx.de> 17806 17807 added Coverity Scan Status 17808 178092015-02-28 Tim Ruehsen <tim.ruehsen@gmx.de> 17810 17811 fix strndup() compat function 17812 178132015-02-27 Tim Rühsen <tim.ruehsen@gmx.de> 17814 17815 replace logger vsprintf, Solaris *printf can't handle NULL arguments 17816 178172015-02-27 Tim Rühsen <tim.ruehsen@gmx.de> 17818 17819 add comment regarding Solaris sprintf behaviour 17820 178212015-02-27 Tim Rühsen <tim.ruehsen@gmx.de> 17822 17823 add link to Solaris (p)thread docs 17824 178252015-02-26 Tim Rühsen <tim.ruehsen@gmx.de> 17826 17827 check for Solaris encoding '646' 17828 178292015-02-26 Tim Rühsen <tim.ruehsen@gmx.de> 17830 17831 convert pid to int 17832 178332015-02-26 Tim Rühsen <tim.ruehsen@gmx.de> 17834 17835 added %c to mget_buffer_vprintf_append2 17836 178372015-02-26 Tim Rühsen <tim.ruehsen@gmx.de> 17838 17839 add -pthread compiler option 17840 178412015-02-24 Tim Rühsen <tim.ruehsen@gmx.de> 17842 17843 use mget_buffer_vprintf2 in logger 17844 178452015-02-24 Tim Rühsen <tim.ruehsen@gmx.de> 17846 17847 make %s work with NULL values in mget_buffer_printf2()-like functions 17848 178492015-02-24 Tim Rühsen <tim.ruehsen@gmx.de> 17850 17851 added libmget/net.h to Makefile.am 17852 178532015-02-24 Tim Rühsen <tim.ruehsen@gmx.de> 17854 17855 fixed memleak in mget_http_parse_challenge() 17856 178572015-02-24 Tim Rühsen <tim.ruehsen@gmx.de> 17858 17859 fixed Mget return value for HTTPS failures 17860 178612015-02-22 Tim Ruehsen <tim.ruehsen@gmx.de> 17862 17863 fixed tests/Makefile.am 17864 178652015-02-22 Tim Ruehsen <tim.ruehsen@gmx.de> 17866 17867 updated tests/certs (old certs expired on 11.2.2015) 17868 178692015-02-20 Tim Rühsen <tim.ruehsen@gmx.de> 17870 17871 added ALPN for TLS sessions 17872 178732015-02-06 Tim Ruehsen <tim.ruehsen@gmx.de> 17874 17875 added missing files to src/Makefile.am 17876 178772015-02-06 Tim Rühsen <tim.ruehsen@gmx.de> 17878 17879 add @LTLIBICONV@ @LTLIBINTL@ to tests 17880 178812015-02-06 Tim Rühsen <tim.ruehsen@gmx.de> 17882 17883 add LTLIBICONV and LTLIBINTL to LDADD for Solaris 17884 178852015-02-06 Tim Rühsen <tim.ruehsen@gmx.de> 17886 17887 check for FNM_CASEFOLD 17888 178892015-02-06 Tim Rühsen <tim.ruehsen@gmx.de> 17890 17891 include alloca.h 17892 178932015-02-06 Tim Rühsen <tim.ruehsen@gmx.de> 17894 17895 check for libsocket and libnsl on Solaris 17896 178972015-02-05 Tim Rühsen <tim.ruehsen@gmx.de> 17898 17899 fix compiler warnings 17900 179012015-02-05 Tim Rühsen <tim.ruehsen@gmx.de> 17902 17903 include libintl.h before redefinition of gettext functions 17904 179052015-02-04 Tim Rühsen <tim.ruehsen@gmx.de> 17906 17907 added Resources in comment of libmget/ssl_gnutls.c 17908 179092015-01-30 Tim Rühsen <tim.ruehsen@gmx.de> 17910 17911 include alloca.h if available 17912 179132015-01-30 Tim Rühsen <tim.ruehsen@gmx.de> 17914 17915 require gettext 0.18.1 17916 179172015-01-30 Tim Rühsen <tim.ruehsen@gmx.de> 17918 17919 fix configure and doc stuff 17920 179212015-01-30 Tim Rühsen <tim.ruehsen@gmx.de> 17922 17923 fix compilation with older GnuTLS (without OCSP) 17924 179252015-01-29 Tim Rühsen <tim.ruehsen@gmx.de> 17926 17927 added full cert chain OCSP check 17928 179292015-01-22 Tim Rühsen <tim.ruehsen@gmx.de> 17930 17931 fix building man pages 17932 179332015-01-22 Tim Rühsen <tim.ruehsen@gmx.de> 17934 17935 fix conditional HAVE_PO in configure.ac 17936 179372015-01-16 Tim Rühsen <tim.ruehsen@gmx.de> 17938 17939 OCSP check the whole certificate chain 17940 179412015-01-15 Tim Rühsen <tim.ruehsen@gmx.de> 17942 17943 added OCSP fix from GnuTLS project 17944 17945 https://gitorious.org/gnutls/gnutls/commit/11eebe14b232ec198d1446a3720e6ed78d118c4b 17946 179472015-01-14 Tim Ruehsen <tim.ruehsen@gmx.de> 17948 17949 fix mget_tcp_set_tcp_fastopen() 17950 179512015-01-14 Tim Ruehsen <tim.ruehsen@gmx.de> 17952 17953 removed two indentations in configure.ac 17954 179552015-01-13 Tim Rühsen <tim.ruehsen@gmx.de> 17956 17957 added --tcp-fastopen to enable/disable TCP Fast Open 17958 179592015-01-09 Tim Rühsen <tim.ruehsen@gmx.de> 17960 17961 removed --load-hsts and --save-hsts 17962 179632015-01-09 Tim Rühsen <tim.ruehsen@gmx.de> 17964 17965 add creation time to OCSP entries 17966 179672015-01-09 Tim Rühsen <tim.ruehsen@gmx.de> 17968 17969 fix loading/saving OCSP cache 17970 179712015-01-08 Tim Rühsen <tim.ruehsen@gmx.de> 17972 17973 added OCSP response caching 17974 179752015-01-07 Tim Rühsen <tim.ruehsen@gmx.de> 17976 17977 OCSP code tuning 17978 179792015-01-07 Tim Rühsen <tim.ruehsen@gmx.de> 17980 17981 added linefeed in --help text 17982 179832015-01-05 Tim Rühsen <tim.ruehsen@gmx.de> 17984 17985 mention autopoint as build requisite 17986 179872015-01-05 Tim Rühsen <tim.ruehsen@gmx.de> 17988 17989 Skip po directory if GETTEXT not available 17990 179912014-12-31 Tim Rühsen <tim.ruehsen@gmx.de> 17992 17993 fix OCSP request condition 17994 179952014-12-30 Tim Rühsen <tim.ruehsen@gmx.de> 17996 17997 list pkg-config in Requirements 17998 179992014-12-21 Tim Ruehsen <tim.ruehsen@gmx.de> 18000 18001 added more tests for parsing challenges 18002 180032014-12-18 Tim Ruehsen <tim.ruehsen@gmx.de> 18004 18005 added test for WWW-Authenticate challenge parsing 18006 180072014-12-18 Tim Rühsen <tim.ruehsen@gmx.de> 18008 18009 new options --ocsp and --ocsp-stapling 18010 180112014-12-15 Tim Ruehsen <tim.ruehsen@gmx.de> 18012 18013 Check for gnutls/ocsp.h to compile on older systems 18014 180152014-12-14 Tim Ruehsen <tim.ruehsen@gmx.de> 18016 18017 First experimental commit with OCSP (stapling+non-stapling) support 18018 180192014-12-09 Tim Rühsen <tim.ruehsen@gmx.de> 18020 18021 tail match instead of full match for --domains/-D/--exclude-domains 18022 180232014-12-09 Tim Rühsen <tim.ruehsen@gmx.de> 18024 18025 Add wildcard support for -D/--domains and --exclude-domains 18026 180272014-11-23 Tim Ruehsen <tim.ruehsen@gmx.de> 18028 18029 add +/-psl to --version output 18030 180312014-11-14 Tim Rühsen <tim.ruehsen@gmx.de> 18032 18033 added pkg-config support for library searching 18034 180352014-11-12 Tim Rühsen <tim.ruehsen@gmx.de> 18036 18037 check GnuTLS version for OCSP functionality 18038 180392014-11-12 Tim Rühsen <tim.ruehsen@gmx.de> 18040 18041 fix compilation error, add OCSP stapling status report 18042 180432014-11-12 Tim Rühsen <tim.ruehsen@gmx.de> 18044 18045 Cert messages slightly amended 18046 180472014-11-10 Tim Rühsen <tim.ruehsen@gmx.de> 18048 18049 check for qsort_r() 18050 180512014-10-24 Tim Ruehsen <tim.ruehsen@gmx.de> 18052 18053 added --crl-file for CRL certificates 18054 180552014-10-18 Tim Ruehsen <tim.ruehsen@gmx.de> 18056 18057 moved basic progress bar routines to libmget 18058 180592014-10-13 Tim Rühsen <tim.ruehsen@gmx.de> 18060 18061 fixed race condition when having a filename / directory clash 18062 180632014-10-10 Tim Rühsen <tim.ruehsen@gmx.de> 18064 18065 added port to Referer: HTTP header 18066 180672014-10-10 Tim Rühsen <tim.ruehsen@gmx.de> 18068 18069 changed valgrind testing 18070 180712014-10-10 Tim Rühsen <tim.ruehsen@gmx.de> 18072 18073 better result code compatibility with Wget 18074 180752014-10-10 Tim Rühsen <tim.ruehsen@gmx.de> 18076 18077 more pedantic scheme check for IRI parsing 18078 180792014-10-07 Tim Ruehsen <tim.ruehsen@gmx.de> 18080 18081 removed css_tokenizer.c from po/POTFILES.in 18082 180832014-10-07 Tim Rühsen <tim.ruehsen@gmx.de> 18084 18085 use AM_TESTS_ENVIRONMENT for valgrind testing 18086 180872014-10-07 Tim Rühsen <tim.ruehsen@gmx.de> 18088 18089 suppress lex warnings 18090 180912014-10-07 Tim Rühsen <tim.ruehsen@gmx.de> 18092 18093 building docs with distcheck -jn randomly failed, now using .NOTPARALLEL 18094 180952014-10-07 Tim Rühsen <tim.ruehsen@gmx.de> 18096 18097 tuned makefiles 18098 180992014-09-23 Tim Rühsen <tim.ruehsen@gmx.de> 18100 18101 use ASCII-only string case comparison 18102 181032014-09-22 Tim Rühsen <tim.ruehsen@gmx.de> 18104 18105 added --post-data and --post-file 18106 181072014-09-22 Tim Rühsen <tim.ruehsen@gmx.de> 18108 18109 added --backups 18110 181112014-09-22 Tim Rühsen <tim.ruehsen@gmx.de> 18112 18113 removed debugging from test-directory-clash 18114 181152014-09-22 Tim Rühsen <tim.ruehsen@gmx.de> 18116 18117 fixed directory clashes and added test-directory-clash 18118 181192014-09-18 Tim Rühsen <tim.ruehsen@gmx.de> 18120 18121 added threaded progress bar (--progress=bar) 18122 181232014-09-12 Tim Rühsen <tim.ruehsen@gmx.de> 18124 18125 added progrsss bar code 18126 181272014-09-09 Tim Rühsen <tim.ruehsen@gmx.de> 18128 18129 added --follow-tags and --ignore-tags 18130 181312014-09-07 Tim Ruehsen <tim.ruehsen@gmx.de> 18132 18133 fix for 'unsigned char' architectures 18134 181352014-09-05 Tim Rühsen <tim.ruehsen@gmx.de> 18136 18137 fixed clang detections 18138 181392014-08-29 Tim Rühsen <tim.ruehsen@gmx.de> 18140 18141 rearranged some metalink code 18142 181432014-08-29 Tim Rühsen <tim.ruehsen@gmx.de> 18144 18145 make cross-compilable with MinGW on Linux 18146 181472014-08-28 Tim Rühsen <tim.ruehsen@gmx.de> 18148 18149 added some first MinGW compatibility code 18150 181512014-08-28 Tim Rühsen <tim.ruehsen@gmx.de> 18152 18153 updated PSL file effective_tld_names.dat 18154 181552014-08-27 Tim Rühsen <tim.ruehsen@gmx.de> 18156 18157 amended NEWS 18158 181592014-08-27 Tim Rühsen <tim.ruehsen@gmx.de> 18160 18161 prepared for release 18162 181632014-08-27 Tim Rühsen <tim.ruehsen@gmx.de> 18164 18165 added -m / --mirror 18166 181672014-08-27 Tim Rühsen <tim.ruehsen@gmx.de> 18168 18169 added link to Wikipedia comparison of file systems 18170 181712014-08-27 Tim Rühsen <tim.ruehsen@gmx.de> 18172 18173 added descriptions of options to --help 18174 181752014-08-20 Tim Rühsen <tim.ruehsen@gmx.de> 18176 18177 removed unneeded libpsl reference in src/options.h 18178 181792014-08-15 Tim Rühsen <tim.ruehsen@gmx.de> 18180 18181 increased version number in configure.ac 18182 181832014-08-15 Tim Rühsen <tim.ruehsen@gmx.de> 18184 18185 prepared for release 18186 181872014-07-17 Tim Rühsen <tim.ruehsen@gmx.de> 18188 18189 added -k/--convert-links and -K/--backup-converted 18190 181912014-07-14 Tim Rühsen <tim.ruehsen@gmx.de> 18192 18193 fix tests for when not having libpsl support 18194 181952014-07-11 Tim Rühsen <tim.ruehsen@gmx.de> 18196 18197 use libpsl for cookie checking against Public Suffix List 18198 181992014-07-09 Tim Rühsen <tim.ruehsen@gmx.de> 18200 18201 update PSL data 18202 182032014-07-09 Tim Rühsen <tim.ruehsen@gmx.de> 18204 18205 more cleanups to configure.ac 18206 182072014-07-08 Tim Rühsen <tim.ruehsen@gmx.de> 18208 18209 cleaned up configure.ac 18210 182112014-07-03 Tim Rühsen <tim.ruehsen@gmx.de> 18212 18213 added new test test--accept.c 18214 182152014-07-03 Tim Rühsen <tim.ruehsen@gmx.de> 18216 18217 added --accept, --reject, --ignore-case 18218 182192014-06-29 Tim Ruehsen <tim.ruehsen@gmx.de> 18220 18221 fixed race-condition on 'known_urls' variable 18222 182232014-06-25 Tim Ruehsen <tim.ruehsen@gmx.de> 18224 18225 make distcheck without -j4 18226 182272014-06-25 Tim Ruehsen <tim.ruehsen@gmx.de> 18228 18229 check for HTTP/HTTPS in add_url() 18230 182312014-06-24 Tim Ruehsen <tim.ruehsen@gmx.de> 18232 18233 removed two lines of debugging output 18234 182352014-06-24 Tim Ruehsen <tim.ruehsen@gmx.de> 18236 18237 fixed HTML parsing of uppercase attributes (fixes issue #21) 18238 182392014-05-27 Tim Ruehsen <tim.ruehsen@gmx.de> 18240 18241 do not keep tmpfiles in test--page-requisites.c 18242 182432014-05-27 Tim Ruehsen <tim.ruehsen@gmx.de> 18244 18245 added test--page-requisites and fixed -p/--page-requisites 18246 182472014-04-04 Tim Ruehsen <tim.ruehsen@gmx.de> 18248 18249 fix some clang warnings 18250 182512014-03-21 Tim Ruehsen <tim.ruehsen@gmx.de> 18252 18253 removed psl.c from examples 18254 182552014-03-20 Tim Ruehsen <tim.ruehsen@gmx.de> 18256 18257 changes on psl.c 18258 182592014-03-19 Tim Ruehsen <tim.ruehsen@gmx.de> 18260 18261 make cookies and tests working with new PSL 18262 182632014-03-19 Tim Ruehsen <tim.ruehsen@gmx.de> 18264 18265 working on example/psl.c 18266 182672014-03-19 Tim Ruehsen <tim.ruehsen@gmx.de> 18268 18269 fixed up cookie code 18270 182712014-03-19 Tim Ruehsen <tim.ruehsen@gmx.de> 18272 18273 added experimental PSL code 18274 182752014-03-19 Tim Ruehsen <tim.ruehsen@gmx.de> 18276 18277 updated public suffixes list 18278 182792014-03-08 Tim Ruehsen <tim.ruehsen@gmx.de> 18280 18281 fix sigfault in cookie functions 18282 182832014-03-02 Tim Ruehsen <tim.ruehsen@gmx.de> 18284 18285 added --gnutls-options to NEWS file 18286 182872014-03-02 Tim Ruehsen <tim.ruehsen@gmx.de> 18288 18289 added --gnutls-otpions to directly set a GnuTLS priority string 18290 182912014-03-02 Tim Ruehsen <tim.ruehsen@gmx.de> 18292 18293 added error messages if requested CAs or keys are not found 18294 182952014-02-26 Tim Ruehsen <tim.ruehsen@gmx.de> 18296 18297 improved cookie API 18298 182992014-02-20 Tim Ruehsen <tim.ruehsen@gmx.de> 18300 18301 tuned HSTS API 18302 183032014-02-19 Tim Ruehsen <tim.ruehsen@gmx.de> 18304 18305 added support for RFC 6266 Content-Disposition 18306 183072014-02-17 Tim Ruehsen <tim.ruehsen@gmx.de> 18308 18309 fixed two threading race-conditions 18310 183112014-02-16 Tim Ruehsen <tim.ruehsen@gmx.de> 18312 18313 make HTTPS tests work with GnuTLS 2.12 18314 183152014-02-14 Tim Ruehsen <tim.ruehsen@gmx.de> 18316 18317 fix system ca_directory for GnuTLS < 3 18318 183192014-02-14 Tim Ruehsen <tim.ruehsen@gmx.de> 18320 18321 fixed HTTPS testing to succeed distcheck 18322 183232014-02-12 Tim Ruehsen <tim.ruehsen@gmx.de> 18324 18325 added HTTPS server code for the test suite 18326 183272014-02-11 Tim Ruehsen <tim.ruehsen@gmx.de> 18328 18329 added i/o helper routines to documentation 18330 183312014-02-08 Tim Ruehsen <tim.ruehsen@gmx.de> 18332 18333 added make distcheck to .travis.yml 18334 183352014-02-08 Tim Ruehsen <tim.ruehsen@gmx.de> 18336 18337 fix docs/libmget/Makefile.am again 18338 183392014-02-07 Tim Ruehsen <tim.ruehsen@gmx.de> 18340 18341 fixed man page generation and make distcheck 18342 183432014-02-06 Tim Ruehsen <tim.ruehsen@gmx.de> 18344 18345 fixed generating man pages, added some documentation 18346 183472014-02-05 Tim Ruehsen <tim.ruehsen@gmx.de> 18348 18349 small docs changes 18350 183512014-02-05 Tim Ruehsen <tim.ruehsen@gmx.de> 18352 18353 added plg-config, brushed up configure.ac and Makefiles 18354 183552014-02-05 Tim Ruehsen <tim.ruehsen@gmx.de> 18356 18357 fix type naming to mget type naming convention 18358 183592014-02-03 Tim Ruehsen <tim.ruehsen@gmx.de> 18360 18361 updated gettext 18362 183632014-02-02 Tim Ruehsen <tim.ruehsen@gmx.de> 18364 18365 fixed minor clang warnings 18366 183672014-02-02 Tim Ruehsen <tim.ruehsen@gmx.de> 18368 18369 fixed some minor warnings 18370 183712014-02-02 Tim Ruehsen <tim.ruehsen@gmx.de> 18372 18373 added Travis CI .travis.yml 18374 183752014-02-02 Tim Ruehsen <tim.ruehsen@gmx.de> 18376 18377 fixed minor clang warnings 18378 183792014-02-02 Tim Ruehsen <tim.ruehsen@gmx.de> 18380 18381 fixed some minor warnings 18382 183832014-02-02 Tim Ruehsen <tim.ruehsen@gmx.de> 18384 18385 extended .travis.yml 18386 183872014-02-02 Tim Ruehsen <tim.ruehsen@gmx.de> 18388 18389 fix .travis.yml, typo in configure.ac string 18390 183912014-02-02 Tim Ruehsen <tim.ruehsen@gmx.de> 18392 18393 fix .travis.yml 18394 183952014-02-02 Tim Ruehsen <tim.ruehsen@gmx.de> 18396 18397 fix .travis.yml 18398 183992014-02-02 Tim Ruehsen <tim.ruehsen@gmx.de> 18400 18401 fix .travis.yml 18402 184032014-02-02 Tim Ruehsen <tim.ruehsen@gmx.de> 18404 18405 added Travis CI .travis.yml 18406 184072014-02-02 Tim Ruehsen <tim.ruehsen@gmx.de> 18408 18409 added test routine for HSTS feature 18410 184112014-02-02 Tim Ruehsen <tim.ruehsen@gmx.de> 18412 18413 fix possible endless loop in http_parse_param() 18414 184152014-02-01 Tim Ruehsen <tim.ruehsen@gmx.de> 18416 18417 added support for RFC 6797 HTTP Strict Transport Security (HSTS) 18418 184192014-02-01 Tim Ruehsen <tim.ruehsen@gmx.de> 18420 18421 Do not download robots.txt twice for HTTP and HTTPS if --protocol-directories is not given 18422 184232014-01-31 Tim Ruehsen <tim.ruehsen@gmx.de> 18424 18425 working on RFC 6797 HSTS (HTTP Strict Transport Security) 18426 184272014-01-24 Tim Ruehsen <tim.ruehsen@gmx.de> 18428 18429 removed failing tests of not yet implemented options 18430 184312014-01-24 Tim Ruehsen <tim.ruehsen@gmx.de> 18432 18433 compile check for available hash functions in libnettle 18434 184352014-01-24 Tim Ruehsen <tim.ruehsen@gmx.de> 18436 18437 use libnettle for checksumming if libgnutls not available or too old 18438 184392014-01-24 Tim Ruehsen <tim.ruehsen@gmx.de> 18440 18441 fixed check for libunistring 18442 184432014-01-24 Tim Ruehsen <tim.ruehsen@gmx.de> 18444 18445 fixed warning in ssl_gnutls.c 18446 184472014-01-21 Tim Ruehsen <tim.ruehsen@gmx.de> 18448 18449 gtk-doc optional, project tested on Cygwin 18450 184512014-01-17 Tim Ruehsen <tim.ruehsen@gmx.de> 18452 18453 edited AUTHORS and NEWS 18454 184552014-01-16 Tim Ruehsen <tim.ruehsen@gmx.de> 18456 18457 brushed up README.md 18458 184592014-01-16 Tim Ruehsen <tim.ruehsen@gmx.de> 18460 18461 added Contacts to README.md 18462 184632014-01-13 Tim Ruehsen <tim.ruehsen@gmx.de> 18464 18465 put mailing list address into configure.ac 18466 184672014-01-12 Tim Ruehsen <tim.ruehsen@gmx.de> 18468 18469 fixed 'make distcheck' 18470 184712014-01-11 Tim Ruehsen <tim.ruehsen@gmx.de> 18472 18473 fixed some clang 3.4 warnings 18474 184752014-01-03 Tim Ruehsen <tim.ruehsen@gmx.de> 18476 18477 added example print_html_url.c (scanning and printing URLs from HTML files) 18478 184792014-01-02 Tim Ruehsen <tim.ruehsen@gmx.de> 18480 18481 fix mailing list address in README.md 2nd 18482 184832014-01-02 Tim Ruehsen <tim.ruehsen@gmx.de> 18484 18485 fix mailing list address in README.md 18486 184872014-01-02 Tim Ruehsen <tim.ruehsen@gmx.de> 18488 18489 added support for bzip2 Content-Encoding / Accept-Encoding type 18490 184912014-01-02 Tim Ruehsen <tim.ruehsen@gmx.de> 18492 18493 added 'lzma' to Content-Encoding 18494 184952013-12-31 Tim Ruehsen <tim.ruehsen@gmx.de> 18496 18497 added support for XZ Content-Encoding / Accept-Encoding type 18498 184992013-12-30 Tim Ruehsen <tim.ruehsen@gmx.de> 18500 18501 extended --adjust-extension to attach .rss and .atom 18502 185032013-12-30 Tim Ruehsen <tim.ruehsen@gmx.de> 18504 18505 added --waitretry, new function mget_millisleep() 18506 185072013-12-30 Tim Ruehsen <tim.ruehsen@gmx.de> 18508 18509 added --wait/-w, --random-wait and -tries/-t 18510 185112013-12-30 Tim Ruehsen <tim.ruehsen@gmx.de> 18512 18513 allow m, h and d modifiers for timeout options 18514 185152013-12-30 Tim Ruehsen <tim.ruehsen@gmx.de> 18516 18517 disable valgrind testing by default, just needed by developers 18518 185192013-12-30 Tim Ruehsen <tim.ruehsen@gmx.de> 18520 18521 use valgrind to check invocations of mget in test suite (and not the test suite itself, as before) 18522 185232013-12-30 Tim Ruehsen <tim.ruehsen@gmx.de> 18524 18525 add IRI that triggers robots.txt to blacklist, create local filename for --continue-download 18526 185272013-12-28 Tim Ruehsen <tim.ruehsen@gmx.de> 18528 18529 fixed test-iri-forced-remote 18530 185312013-12-27 Tim Ruehsen <tim.ruehsen@gmx.de> 18532 18533 fixed test-iri-list 18534 185352013-12-27 Tim Ruehsen <tim.ruehsen@gmx.de> 18536 18537 added new option --input-encoding 18538 185392013-12-25 Tim Ruehsen <tim.ruehsen@gmx.de> 18540 18541 added RSS parsing test 18542 185432013-12-21 Tim Ruehsen <tim.ruehsen@gmx.de> 18544 18545 added parsing RSS 2.0 feeds 18546 185472013-12-16 Tim Ruehsen <tim.ruehsen@gmx.de> 18548 18549 fixed compilation error in atom_url.c 18550 185512013-12-15 Tim Ruehsen <tim.ruehsen@gmx.de> 18552 18553 added parsing Atom 1.0 feeds 18554 185552013-12-14 Tim Ruehsen <tim.ruehsen@gmx.de> 18556 18557 refactored basic sitemap parsing into libmget 18558 185592013-11-30 Tim Ruehsen <tim.ruehsen@gmx.de> 18560 18561 new option --force-sitemap to scan URLs from a local Sitemap XML file 18562 185632013-11-30 Tim Ruehsen <tim.ruehsen@gmx.de> 18564 18565 fix: added query twice if query contained slash(es) 18566 185672013-11-25 Tim Ruehsen <tim.ruehsen@gmx.de> 18568 18569 fixed two more tests 18570 185712013-11-25 Tim Ruehsen <tim.ruehsen@gmx.de> 18572 18573 fixed proxy destruction 18574 185752013-11-24 Tim Ruehsen <tim.ruehsen@gmx.de> 18576 18577 added sitemap parsing 18578 185792013-11-03 Tim Ruehsen <tim.ruehsen@gmx.de> 18580 18581 fix some compiler warnings 18582 185832013-11-02 Tim Ruehsen <tim.ruehsen@gmx.de> 18584 18585 Support arbitrary number of proxies for parallel downloads 18586 185872013-11-02 Tim Ruehsen <tim.ruehsen@gmx.de> 18588 18589 fixed some warnings of clang 3.4 18590 185912013-10-31 Tim Ruehsen <tim.ruehsen@gmx.de> 18592 18593 added --chunk-size to allow multithreaded downloads of single files 18594 185952013-10-27 Tim Ruehsen <tim.ruehsen@gmx.de> 18596 18597 added --(no-)check-hostname to disable certificate hostname checking only 18598 185992013-10-22 Tim Ruehsen <tim.ruehsen@gmx.de> 18600 18601 fix po/POTFILES.in 18602 186032013-10-22 Tim Ruehsen <tim.ruehsen@gmx.de> 18604 18605 update po/POTFILES.in 18606 186072013-10-22 magemore <alex@magemore.com> 18608 18609 fix help: wget replaced with mget 186102013-10-22 Tim Ruehsen <tim.ruehsen@gmx.de> 18611 18612 mention package name zlibg1 in README.md 18613 186142013-10-07 Tim Ruehsen <tim.ruehsen@gmx.de> 18615 18616 updated README.md 18617 186182013-10-06 Tim Ruehsen <tim.ruehsen@gmx.de> 18619 18620 small cleanups regarding use of buffer functions 18621 186222013-10-05 Tim Ruehsen <tim.ruehsen@gmx.de> 18623 18624 check for NULL iri in add_url() 18625 186262013-10-04 Tim Ruehsen <tim.ruehsen@gmx.de> 18627 18628 pull in libunistring if using libidn2 18629 186302013-10-04 Tim Ruehsen <tim.ruehsen@gmx.de> 18631 18632 removed including stringprep.h from examples 18633 186342013-10-04 Tim Ruehsen <tim.ruehsen@gmx.de> 18635 18636 fixed clang 3.4 analyzer issues 18637 186382013-10-03 Tim Ruehsen <tim.ruehsen@gmx.de> 18639 18640 fixed double free in mget.c 18641 186422013-10-03 Tim Ruehsen <tim.ruehsen@gmx.de> 18643 18644 fixed memory leak in hashmap_put_noalloc 18645 186462013-10-02 Tim Ruehsen <tim.ruehsen@gmx.de> 18647 18648 Use Etag in spider mode to prevent double downloading 18649 186502013-10-02 Tim Ruehsen <tim.ruehsen@gmx.de> 18651 18652 use HEAD request in spider mode 18653 186542013-10-02 Tim Ruehsen <tim.ruehsen@gmx.de> 18655 18656 added support for IDNA2008 using Libidn2 18657 186582013-10-01 Tim Ruehsen <tim.ruehsen@gmx.de> 18659 18660 started libidn2 usage 18661 186622013-10-01 Tim Ruehsen <tim.ruehsen@gmx.de> 18663 18664 convert / to %2F instead of %2f 18665 186662013-10-01 Tim Ruehsen <tim.ruehsen@gmx.de> 18667 18668 check if url needs utf-8 encoding 18669 186702013-10-01 Tim Ruehsen <tim.ruehsen@gmx.de> 18671 18672 fixed --restrict-file-names=uppercase 18673 186742013-09-30 Tim Ruehsen <tim.ruehsen@gmx.de> 18675 18676 added --restrict-file-names 18677 186782013-09-28 Tim Ruehsen <tim.ruehsen@gmx.de> 18679 18680 fixed crash on non-valid cookie names 18681 186822013-09-28 Tim Ruehsen <tim.ruehsen@gmx.de> 18683 18684 new file host.c, refactored from mget.c 18685 186862013-09-28 Tim Ruehsen <tim.ruehsen@gmx.de> 18687 18688 moved robots routines to new file robots.c 18689 186902013-09-27 Tim Ruehsen <tim.ruehsen@gmx.de> 18691 18692 fixed up ROBOTS/META 18693 186942013-09-25 Tim Ruehsen <tim.ruehsen@gmx.de> 18695 18696 fine tuning on some library functions 18697 186982013-09-24 Tim Ruehsen <tim.ruehsen@gmx.de> 18699 18700 added --trust-server-names and --restrict-file-names 18701 187022013-09-24 Tim Ruehsen <tim.ruehsen@gmx.de> 18703 18704 preparing for utf-16 support 18705 187062013-09-23 Tim Ruehsen <tim.ruehsen@gmx.de> 18707 18708 recognize 'none' keyword in META/ROBOTS 18709 187102013-09-23 Tim Ruehsen <tim.ruehsen@gmx.de> 18711 18712 added support for name=ROBOTS in META tag 18713 187142013-09-23 Tim Ruehsen <tim.ruehsen@gmx.de> 18715 18716 added src/host.h 18717 187182013-09-22 Tim Ruehsen <tim.ruehsen@gmx.de> 18719 18720 added support for robots.txt Robots Exclusion Standard 18721 187222013-09-20 Tim Ruehsen <tim.ruehsen@gmx.de> 18723 18724 added option --(no-)parent 18725 187262013-09-19 Tim Ruehsen <tim.ruehsen@gmx.de> 18727 18728 more work on the test suite 18729 187302013-09-17 Tim Ruehsen <tim.ruehsen@gmx.de> 18731 18732 added --https-only 18733 187342013-09-17 Tim Ruehsen <tim.ruehsen@gmx.de> 18735 18736 added -e/--execute 18737 187382013-09-16 Tim Ruehsen <tim.ruehsen@gmx.de> 18739 18740 test code tweaking 18741 187422013-09-16 Tim Ruehsen <tim.ruehsen@gmx.de> 18743 18744 fixed test suite issues 18745 187462013-09-16 Tim Ruehsen <tim.ruehsen@gmx.de> 18747 18748 some tweaks on encoding 18749 187502013-09-15 Tim Ruehsen <tim.ruehsen@gmx.de> 18751 18752 better handling of non-ASCII URLs and filenames 18753 187542013-09-14 Tim Ruehsen <tim.ruehsen@gmx.de> 18755 18756 adjust README/README.md 18757 187582013-09-13 Tim Ruehsen <tim.ruehsen@gmx.de> 18759 18760 prepared for listing/scanning directories 18761 187622013-09-13 Tim Ruehsen <tim.ruehsen@gmx.de> 18763 18764 fix memleak in cookie handling 18765 187662013-09-12 Tim Ruehsen <tim.ruehsen@gmx.de> 18767 18768 more work done 18769 187702013-09-10 Tim Ruehsen <tim.ruehsen@gmx.de> 18771 18772 moved metalink stuff to library code 18773 187742013-09-09 Tim Ruehsen <tim.ruehsen@gmx.de> 18775 18776 reenabled metalink3 18777 187782013-09-09 Tim Ruehsen <tim.ruehsen@gmx.de> 18779 18780 threading model reimplemented to put more load onto the workers 18781 187822013-08-18 Tim Ruehsen <tim.ruehsen@gmx.de> 18783 18784 tune xml.c 18785 187862013-08-16 Tim Ruehsen <tim.ruehsen@gmx.de> 18787 18788 mention --secure-protocol=SECURE in help text 18789 187902013-08-16 Tim Ruehsen <tim.ruehsen@gmx.de> 18791 18792 xml parser rewritten to output len and pos of values 18793 187942013-08-13 Tim Ruehsen <tim.ruehsen@gmx.de> 18795 18796 simplified some calls to mget_buffer_init() using C99 18797 187982013-08-13 Tim Ruehsen <tim.ruehsen@gmx.de> 18799 18800 fix GnuTLS crash on handshake errors 18801 188022013-08-13 Tim Ruehsen <tim.ruehsen@gmx.de> 18803 18804 added --secure-protocol=secure to force Perfect Forward Secrecy 18805 188062013-08-02 Tim Ruehsen <tim.ruehsen@gmx.de> 18807 18808 small corrections in ssl_gnutls.c 18809 188102013-07-30 Tim Ruehsen <tim.ruehsen@gmx.de> 18811 18812 prefer Digest over Basic authentication if server offers both 18813 188142013-07-30 Tim Ruehsen <tim.ruehsen@gmx.de> 18815 18816 add -fPIC to CFLAGS, remove private path from tests 18817 188182013-07-28 Tim Ruehsen <tim.ruehsen@gmx.de> 18819 18820 added test-auth-basic.c 18821 188222013-07-27 Tim Ruehsen <tim.ruehsen@gmx.de> 18823 18824 more tests 18825 188262013-05-12 Tim Ruehsen <tim.ruehsen@gmx.de> 18827 18828 use TCP Fastopen if available 18829 188302013-05-02 Tim Ruehsen <tim.ruehsen@gmx.de> 18831 18832 fix bug in hashmap.c 18833 188342013-04-24 Tim Ruehsen <tim.ruehsen@gmx.de> 18835 18836 highlevel improvement 18837 188382013-04-24 Tim Ruehsen <tim.ruehsen@gmx.de> 18839 18840 escape / in query for filename generation 18841 188422013-04-21 Tim Ruehsen <tim.ruehsen@gmx.de> 18843 18844 tuned getstream.c example 18845 188462013-04-16 Tim Ruehsen <tim.ruehsen@gmx.de> 18847 18848 added support for metalink3 18849 188502013-04-13 Tim Ruehsen <tim.ruehsen@gmx.de> 18851 18852 updated Requirements in README.rst 18853 188542013-04-13 Tim Ruehsen <tim.ruehsen@gmx.de> 18855 18856 handle metalink mirror redirections 18857 188582013-04-13 Tim Ruehsen <tim.ruehsen@gmx.de> 18859 18860 changed part download message 18861 188622013-04-12 Tim Ruehsen <tim.ruehsen@gmx.de> 18863 18864 renamed option --base-url to --base 18865 188662013-04-09 Tim Ruehsen <tim.ruehsen@gmx.de> 18867 18868 fixed stringmap/hashmap usage in mget.c and blacklist.c 18869 188702013-04-07 Tim Ruehsen <tim.ruehsen@gmx.de> 18871 18872 getstream.c example now handles Shoutcast metainfo 18873 188742013-03-29 Tim Ruehsen <tim.ruehsen@gmx.de> 18875 18876 cleaned up hashmap/stringmap API 18877 188782013-03-28 Tim Ruehsen <tim.ruehsen@gmx.de> 18879 18880 let HTTP test server understand Range headers 18881 188822013-03-21 Tim Ruehsen <tim.ruehsen@gmx.de> 18883 18884 converted more tests from Perl to C IV 18885 188862013-03-21 Tim Ruehsen <tim.ruehsen@gmx.de> 18887 18888 converted more tests from Perl to C III 18889 188902013-03-19 Tim Ruehsen <tim.ruehsen@gmx.de> 18891 18892 converted more tests from Perl to C II 18893 188942013-03-17 Tim Ruehsen <tim.ruehsen@gmx.de> 18895 18896 converted more tests from Perl to C 18897 188982013-03-13 Tim Ruehsen <tim.ruehsen@gmx.de> 18899 18900 work on test suite 18901 189022013-03-12 Tim Ruehsen <tim.ruehsen@gmx.de> 18903 18904 added --content-disposition 18905 189062013-03-10 Tim Ruehsen <tim.ruehsen@gmx.de> 18907 18908 new C testsuite 18909 189102013-03-03 Tim Ruehsen <tim.ruehsen@gmx.de> 18911 18912 fixed double free in blacklist.c 18913 189142013-03-03 Tim Ruehsen <tim.ruehsen@gmx.de> 18915 18916 added option -p and -l 18917 189182013-02-06 Benoit Goudreault-Emond <bgoudreault@webmd.net> 18919 18920 Ensure the m4 directory is created, or builds won't work out of the box. 18921 189222013-02-03 Tim Ruehsen <tim.ruehsen@gmx.de> 18923 18924 new example getting a stream from a .m3u URL 18925 189262013-02-02 Tim Ruehsen <tim.ruehsen@gmx.de> 18927 18928 new abstract thread functions 18929 189302013-01-30 Benoit Goudreault-Emond <bgoudreault@webmd.net> 18931 18932 Fix errors in potfile.in that made makefile fail 18933 189342013-01-29 Tim Ruehsen <tim.ruehsen@gmx.de> 18935 18936 put work into high level example http_get.c 18937 189382013-01-21 Tim Ruehsen <tim.ruehsen@gmx.de> 18939 18940 added libmget/md5.c 18941 189422013-01-18 Tim Ruehsen <tim.ruehsen@gmx.de> 18943 18944 Updated README.rst 18945 189462013-01-18 Tim Ruehsen <tim.ruehsen@gmx.de> 18947 18948 moved http.c and md5.c into library 18949 189502013-01-18 rockdaboot <tim.ruehsen@gmx.de> 18951 18952 Update README.rst 189532013-01-18 rockdaboot <tim.ruehsen@gmx.de> 18954 18955 Update README.rst 189562013-01-17 Tim Ruehsen <tim.ruehsen@gmx.de> 18957 18958 fix more stuff 18959 189602013-01-16 Tim Ruehsen <tim.ruehsen@gmx.de> 18961 18962 more basic work on libmget 18963 189642013-01-15 Tim Ruehsen <tim.ruehsen@gmx.de> 18965 18966 new examples folder 18967 189682013-01-13 Tim Ruehsen <tim.ruehsen@gmx.de> 18969 18970 fix make distcheck 18971 189722013-01-11 Tim Ruehsen <tim.ruehsen@gmx.de> 18973 18974 more stuff moved into libmget 18975 189762013-01-10 Tim Ruehsen <tim.ruehsen@gmx.de> 18977 18978 more stuff moved into libmget 18979 189802013-01-07 Tim Ruehsen <tim.ruehsen@gmx.de> 18981 18982 added two doc files to git 18983 189842013-01-04 Tim Ruehsen <tim.ruehsen@gmx.de> 18985 18986 more documentation stuff 18987 189882013-01-03 Tim Ruehsen <tim.ruehsen@gmx.de> 18989 18990 started gtk-docs 18991 189922013-01-03 Tim Ruehsen <tim.ruehsen@gmx.de> 18993 18994 updated README.rst 18995 189962013-01-03 Tim Ruehsen <tim.ruehsen@gmx.de> 18997 18998 more auto* stuff 18999 190002012-12-31 Tim Ruehsen <tim.ruehsen@gmx.de> 19001 19002 use LGPL for libmget 19003 190042012-12-28 Tim Ruehsen <tim.ruehsen@gmx.de> 19005 19006 step forward to libmget 19007 190082012-12-26 Tim Ruehsen <tim.ruehsen@gmx.de> 19009 19010 HTTP basic/digest authentication, send Referer HTTP header 19011 190122012-12-21 Tim Ruehsen <tim.ruehsen@gmx.de> 19013 19014 started Authentication 19015 190162012-12-20 Tim Ruehsen <tim.ruehsen@gmx.de> 19017 19018 use gcc -Wsign-compare option 19019 190202012-12-20 Tim Ruehsen <tim.ruehsen@gmx.de> 19021 19022 fixed --secure-protocol=SSLv2/SSLv3 19023 190242012-12-17 Tim Ruehsen <tim.ruehsen@gmx.de> 19025 19026 added -D/--domains and --exclude-domains 19027 190282012-12-17 Tim Ruehsen <tim.ruehsen@gmx.de> 19029 19030 added 'deflate' Content-Encoding 19031 190322012-12-14 Tim Ruehsen <tim.ruehsen@gmx.de> 19033 19034 IDN / international domain support finished 19035 190362012-12-11 Tim Ruehsen <tim.ruehsen@gmx.de> 19037 19038 removed an URI test that had no host host part 19039 190402012-12-10 Tim Ruehsen <tim.ruehsen@gmx.de> 19041 19042 added IDN conversion for locally provided URIs 19043 190442012-12-09 Tim Ruehsen <tim.ruehsen@gmx.de> 19045 19046 started with IDN / URI encoding 19047 190482012-12-08 Tim Ruehsen <tim.ruehsen@gmx.de> 19049 19050 added --bind-address, fixed parsing IPv6 numeric addresses 19051 190522012-12-03 Tim Ruehsen <tim.ruehsen@gmx.de> 19053 19054 added -Q/--quota, added configure script 19055 190562012-11-30 Tim Ruehsen <tim.ruehsen@gmx.de> 19057 19058 started with -Q 19059 190602012-11-30 Tim Ruehsen <tim.ruehsen@gmx.de> 19061 19062 added -i, -F, -B, --force-css 19063 190642012-11-28 Tim Ruehsen <tim.ruehsen@gmx.de> 19065 19066 added --default_page 19067 190682012-11-28 Tim Ruehsen <tim.ruehsen@gmx.de> 19069 19070 added -E/--adjust-extension/--html-extension, C89 NONNULL macro 19071 190722012-11-28 Tim Ruehsen <tim.ruehsen@gmx.de> 19073 19074 removed variadic macros 19075 190762012-11-24 Tim Ruehsen <tim.ruehsen@gmx.de> 19077 19078 updated README.rst 19079 190802012-11-24 Tim Ruehsen <tim.ruehsen@gmx.de> 19081 19082 using autotools 19083 190842012-11-21 Tim Ruehsen <tim.ruehsen@gmx.de> 19085 19086 directory structure changes 19087 190882012-11-21 Tim Ruehsen <tim.ruehsen@gmx.de> 19089 19090 some hashmap optimization 19091 190922012-11-20 Tim Ruehsen <tim.ruehsen@gmx.de> 19093 19094 fixed double free in hashmap_put_noalloc for key/value identity 19095 190962012-11-19 Tim Ruehsen <tim.ruehsen@gmx.de> 19097 19098 added --referer 19099 191002012-11-18 Tim Ruehsen <tim.ruehsen@gmx.de> 19101 19102 added --save-headers 19103 191042012-11-18 Tim Ruehsen <tim.ruehsen@gmx.de> 19105 19106 check for gnutls version number when using *ECDH* stuff 19107 191082012-11-16 Tim Ruehsen <tim.ruehsen@gmx.de> 19109 19110 updated BSD compatibility 19111 191122012-11-16 Tim Ruehsen <tim.ruehsen@gmx.de> 19113 19114 added --clobber / -nc 19115 191162012-11-16 Tim Ruehsen <tim.ruehsen@gmx.de> 19117 19118 added --cache to enable/disable server cache 19119 191202012-11-16 Tim Ruehsen <tim.ruehsen@gmx.de> 19121 19122 added --inet4-only, --inet6-only, --prefer-family 19123 191242012-11-15 Tim Ruehsen <tim.ruehsen@gmx.de> 19125 19126 added --delete-after 19127 191282012-11-15 Tim Ruehsen <tim.ruehsen@gmx.de> 19129 19130 added -n options 19131 191322012-11-15 Tim Ruehsen <tim.ruehsen@gmx.de> 19133 19134 added --strict-comments as dummy option 19135 191362012-11-15 Tim Ruehsen <tim.ruehsen@gmx.de> 19137 19138 added directory options and timestamping 19139 191402012-11-12 Tim Ruehsen <tim.ruehsen@gmx.de> 19141 19142 added --continue / -c 19143 191442012-11-12 Tim Ruehsen <tim.ruehsen@gmx.de> 19145 19146 added --server-response / -S 19147 191482012-11-12 Tim Ruehsen <tim.ruehsen@gmx.de> 19149 19150 added proxy support 19151 191522012-11-09 Tim Ruehsen <tim.ruehsen@gmx.de> 19153 19154 added blacklist.(c|h) and stringmap.(c|h) 19155 191562012-11-08 Tim Ruehsen <tim.ruehsen@gmx.de> 19157 19158 added hashmap functions 19159 191602012-11-06 Tim Ruehsen <tim.ruehsen@gmx.de> 19161 19162 cookie support incl. Mozilla Public Suffix List 19163 191642012-10-05 Tim Ruehsen <tim.ruehsen@gmx.de> 19165 19166 url escaping 19167 191682012-09-27 Tim Ruehsen <tim.ruehsen@gmx.de> 19169 19170 buffer_printf routines 19171 191722012-09-27 Tim Ruehsen <tim.ruehsen@gmx.de> 19173 19174 more internal work 19175 191762012-08-29 Tim Ruehsen <tim.ruehsen@gmx.de> 19177 19178 more gnutls debugging output 19179 191802012-08-27 Tim Ruehsen <tim.ruehsen@gmx.de> 19181 19182 HTTPS options to achieve wget compatibility 19183 191842012-08-24 Tim Ruehsen <tim.ruehsen@gmx.de> 19185 19186 more test functions 19187 191882012-08-22 Tim Ruehsen <tim.ruehsen@gmx.de> 19189 19190 added buffer functions 19191 191922012-08-21 Tim Ruehsen <tim.ruehsen@gmx.de> 19193 19194 more tests, some fixes 19195 191962012-08-17 Tim Ruehsen <tim.ruehsen@gmx.de> 19197 19198 added options -o and -a 19199 192002012-08-16 Tim Ruehsen <tim.ruehsen@gmx.de> 19201 19202 added option -q 19203 192042012-08-15 Tim Ruehsen <tim.ruehsen@gmx.de> 19205 19206 fix gnutls 19207 192082012-08-14 Tim Ruehsen <tim.ruehsen@gmx.de> 19209 19210 * fixed vector.c / vec_insert_sorted_noalloc() 19211 * added test for vec_insert_sorted_noalloc() 19212 * fixed css.c / css_parse_file() 19213 192142012-08-14 Tim Ruehsen <tim.ruehsen@gmx.de> 19215 19216 implemented DNS lookup cache, --dns-cache=on|off 19217 192182012-08-13 Ant Bryan <anthonybryan@gmail.com> 19219 19220 README.rst typos 19221 192222012-08-10 Tim Ruehsen <tim.ruehsen@gmx.de> 19223 19224 some refactoring, handle relative Location: 19225 192262012-08-10 Tim Ruehsen <tim.ruehsen@gmx.de> 19227 19228 updated README.rst 19229 192302012-08-10 Tim Ruehsen <tim.ruehsen@gmx.de> 19231 19232 updated README.rst 19233 192342012-08-10 Tim Ruehsen <tim.ruehsen@gmx.de> 19235 19236 new README.rst 19237 192382012-08-10 Tim Ruehsen <tim.ruehsen@gmx.de> 19239 19240 * HTTPS via gnutls 19241 * Many bug fixes and enhancements 19242 192432012-08-03 Tim Ruehsen <tim.ruehsen@gmx.de> 19244 19245 Updated README 19246 192472012-08-03 Tim Ruehsen <tim.ruehsen@gmx.de> 19248 19249 Repository created 19250