2025-12-30 Tim Rühsen <tim.ruehsen@gmx.de>

     Release v2.2.1

2025-12-30 Tim Rühsen <tim.ruehsen@gmx.de>

     * gnulib: Update

2025-12-30 Tim Rühsen <tim.ruehsen@gmx.de>

     Fix redirect/mirror regression from 400713ca (#698)
     
     * src/wget.c (process_response_header): Delegate link handling to process_response().
     * tests/Makefile.am: Add test-link-location.c.
     * tests/test-link-location.c: New test file.

2025-12-30 Tim Rühsen <tim.ruehsen@gmx.de>

     * docs/libwget.doxy.in: Skip building graphs because too complex

2025-12-30 Tim Rühsen <tim.ruehsen@gmx.de>

     * docs/wget2.md: Fix html examples in text

2025-12-30 Tim Rühsen <tim.ruehsen@gmx.de>

     * README.md: Fix anchor links for Gitlab

2025-12-30 Tim Rühsen <tim.ruehsen@gmx.de>

     Fix --server-response for HTTP/1.1 (#705)
     
     * libwget/http.c (wget_http_get_response_cb): Clone header memory.

2025-12-30 Tim Rühsen <tim.ruehsen@gmx.de>

     Fix convert-links (#709)
     
     * src/wget.c (convert_links): process URL the same way as in normalize_uri().
     * tests/Makefile.am: Add new test file test-k-percent-encoding.c.
     * tests/test-k-percent-encoding.c: New file.

2025-12-29 Tim Rühsen <tim.ruehsen@gmx.de>

     * src/wget.c: Set exit status 8 on 403

2025-12-29 Tim Rühsen <tim.ruehsen@gmx.de>

     * libwget/ssl_openssl.c (wget_ssl_set_config_int): Ignore WGET_SSL_DANE

2025-12-29 Tim Rühsen <tim.ruehsen@gmx.de>

     * .gitlab-ci.yml (Sanitizers/Debian): Fetch fuzzer corpora from git

2025-12-29 Tim Rühsen <tim.ruehsen@gmx.de>

     tests/test-limit-rate-http2.c: Increase timeout variance for valgrind tests

2025-12-29 Tim Rühsen <tim.ruehsen@gmx.de>

     * tests/test-ocsp-server.c: Silence syntax-check

2025-12-29 Tim Rühsen <tim.ruehsen@gmx.de>

     * tests/test-ocsp-server.c: Skip some tests for OpenSSL

2025-12-29 Tim Rühsen <tim.ruehsen@gmx.de>

     * .gitlab-ci.yml: Fix artifacts for Scan-Build/Debian

2025-12-29 Tim Rühsen <tim.ruehsen@gmx.de>

     * src/wget.c (set_file_metadata): Explicitly set errno to 0

2025-12-29 Tim Rühsen <tim.ruehsen@gmx.de>

     src/options.c (preload_dns_cache): Simplify fopen/fclose logic to calm scan-build

2025-12-29 Tim Rühsen <tim.ruehsen@gmx.de>

     * configure.ac: Disable several clang warnings for gnulib code

2025-12-29 Tim Rühsen <tim.ruehsen@gmx.de>

     * tests/libtest.c: Use wget lib functions instead of select()

2025-12-29 Tim Rühsen <tim.ruehsen@gmx.de>

     * configure.ac: Disable UBSAN flag 'function'

2025-12-26 Tim Rühsen <tim.ruehsen@gmx.de>

     Fix file overwrite issue with metalink
     
     Fix a remotely triggered arbitrary file write/overwrite abusing
     metalink <file name="…"> path traversal.
     
     Reported-by: Arkadi <arkadva8@gmail.com>

2025-12-26 Tim Rühsen <tim.ruehsen@gmx.de>

     Fix remote buffer overflow in get_local_filename_real()
     
     In src/blacklist.c:get_local_filename_real(), the stack/heap selection for
     fname_esc was inverted, so the code used `char tmp[1024]` exactly when the
     required size is >1024, leading to stack corruption when
     wget_restrict_file_name() writes into it.
     
     This was introduced by commit 3dc30f5f0c6f8feae97f866c537324f821ea05d.
     
     Reported-by: Arkadi <arkadva8@gmail.com>

2025-12-26 Tim Rühsen <tim.ruehsen@gmx.de>

     * .gitlab-ci.yml: Drop -Werror for Sanitizer runner

2025-12-26 Tim Rühsen <tim.ruehsen@gmx.de>

     Fix WolfSSL build
     
     * Makefile.am: Run tests of GnuTLS is available.
     * configure.ac: Add conditional WITH_GNUTLS_IN_TESTSUITE,
       add check for SSLv2_client_method().
     * libwget/ssl_wolfssl.c (wget_ssl_init): Silently fall back to
       SSLv3 if SSLv2 is requested but not available.

2025-12-26 Tim Rühsen <tim.ruehsen@gmx.de>

     * libwget/ssl_wolfssl.c (ShowX509): Fix -Wzero-as-null-pointer-constant

2025-12-26 Tim Rühsen <tim.ruehsen@gmx.de>

     * .gitlab-ci.yml: Drop i386 CI runner

2025-12-26 Tim Rühsen <tim.ruehsen@gmx.de>

     * .gitlab-ci.yml: Drop HTTP2 CI runner

2025-12-26 Tim Rühsen <tim.ruehsen@gmx.de>

     Add comprehensive HTTP/2 testing infrastructure with libnghttp2
     
     This adds extensive HTTP/2 test coverage using libnghttp2 as the test
     server, covering multiplexing, stream error handling, connection
     management, and settings negotiation.
     
     * tests/libtest.h (wget_test_url_t): Add h2_delay_response and
       h2_rst_stream_error fields for HTTP/2 test control.
       (WGET_TEST_H2_MIN_CONCURRENT_STREAMS): New test flag.
       (wget_test_get_h2_server_port): Declare function.
     
     * tests/libtest.c: Remove HAVE_MICROHTTPD_HTTP2_H infrastructure,
       (h2_session_data, h2_server_t): New structures for libnghttp2 server,
       (h2_send_callback, h2_recv_callback): Implement nghttp2 I/O callbacks,
       (h2_on_frame_recv_callback): Handle HTTP/2 frames,
       (h2_on_header_callback): Process request headers,
       (h2_data_read_callback): Stream response body with 8KB chunk limit,
       (h2_on_stream_close_callback): Clean up stream resources,
       (h2_session_data_new, h2_session_data_free): Manage session lifecycle,
       (h2_server_thread): Main server loop with TLS and ALPN support,
       (h2_server_start, h2_server_stop): Control server lifecycle,
       (_http_server_stop): Remove gnutls_global_deinit() call to fix
       server restart issues,
       (wget_test_start_server_handler): Default start_h2 to 0 (opt-in),
       enable HTTP/2 with WGET_TEST_H2_ONLY flag,
       (wget_test): Skip H2_PASS when libnghttp2 unavailable,
       (wget_test_get_h2_server_port): Return HTTP/2 server port.
     
     * tests/Makefile.am (WGET_TESTS): Add test-http2-multiplexing,
       test-http2-stream-errors, test-http2-connection-errors,
       test-http2-settings.
     
     * tests/test-http2-multiplexing.c: New file testing concurrent
       downloads over single HTTP/2 connection with multiplexing.
     
     * tests/test-http2-stream-errors.c: New file testing stream error
       isolation with RST_STREAM frames.
     
     * tests/test-http2-connection-errors.c: New file testing connection
       recovery after server restart.
     
     * tests/test-http2-settings.c: New file testing SETTINGS frame
       exchange, header compression, and large headers.
     
     * tests/test-limit-rate-http2.c (main): Skip 3-file multiplexed
       download test when running with HTTP/2 due to rate limiting
       limitations in test server.
     
     The HTTP/2 test server uses libnghttp2 with GnuTLS for TLS and ALPN
     negotiation. Tests verify protocol-specific features like multiplexing,
     stream independence, and proper SETTINGS exchange. HTTP/2 is now opt-in
     via WGET_TEST_H2_ONLY to avoid breaking existing tests.

2025-12-14 Tim Rühsen <tim.ruehsen@gmx.de>

     Fix checks for errno
     
     * libwget/ssl_gnutls.c (ssl_writev): Only check errno on error.
     * src/job.c (job_validate_file): Set errno explicitly to 0.
     * src/utils.c (mkdir_path): Check a secure value of errno.
     * src/wget.c (prepare_file): Likewise.

2025-12-07 Tim Rühsen <tim.ruehsen@gmx.de>

     * src/options.c (set_long_option): Allow 'no_' prefix in config options

2025-12-07 Tim Rühsen <tim.ruehsen@gmx.de>

     * html_url (html_get_url): Remove dead code (Coverity #209327)

2025-12-07 Tim Rühsen <tim.ruehsen@gmx.de>

     * README.md: Remove OpenCSW badges (build pipeline isn't maintained since a while)

2025-11-09 Tim Rühsen <tim.ruehsen@gmx.de>

     Fix gcc 15 -Wunterminated-string-initialization
     
     * libwget/base64.c (base64_encode): Drop explicit error length.
     * libwget/buffer_printf.c (convert_pointer): Likewise.
     
     Just cosmetics - allows to build with -Werror.

2025-11-09 Tim Rühsen <tim.ruehsen@gmx.de>

     Fix gcc 15 -Wzero-as-null-pointer-constant
     
     * libwget/logger.c (wget_logger_is_active): Fix warning.
     * libwget/ssl_gnutls.c (verify_certificate_callback): Likewise.
     * src/host.c (_search_host_for_free_job): Likewise.
     * src/wget.c (main, input_thread): Likewise.
     
     Just cosmetics - allows to build with -Werror.

2025-11-09 Bruno Haible <bruno@clisp.org>

     * configure.ac: Hide m4_ifdef from autopoint

2025-11-09 Tim Rühsen <tim.ruehsen@gmx.de>

     * gnulib: Update

2025-10-14 Darshit Shah <darnir@gnu.org>

     bootstrap: Sync with gnulib

2025-10-14 Darshit Shah <darnir@gnu.org>

     gnulib: Pull forward

2025-08-03 Tim Rühsen <tim.ruehsen@gmx.de>

     * contrib:Dockerfile.win32.static: Update and fix build

2025-07-12 Tim Rühsen <tim.ruehsen@gmx.de>

     * contrib/Dockerfile.win32.static: Use upstream gnulib with git

2025-02-02 Tim Rühsen <tim.ruehsen@gmx.de>

     Fix redirect regression
     
     * src/wget.c (process_response_header): Follow location header.
     
     Fixes https://gitlab.com/gnuwget/wget2/-/issues/689
     Reported-by: https://gitlab.com/omos

2025-01-26 Tim Rühsen <tim.ruehsen@gmx.de>

     Drop iri->uri_allocated
     
     * include/wget/wget.h (struct wget_iri_st): Remove uri_allocated.
     * libwget/iri.c (wget_iri_free_content): Do not free iri->uri,
       (wget_iri_clone): Simplify code and do not heap-allocate iri->uri.

2025-01-26 Tim Rühsen <tim.ruehsen@gmx.de>

     Fix buffer overflow in wget_iri_clone() after wget_iri_set_scheme()
     
     * fuzz/libwget_iri_fuzzer.c: Call wget_iri_clone() after wget_iri_set_scheme().
     * libwget/iri.c (wget_iri_parse): Increase value of iri->msize,
       (wget_iri_clone): Use wget_memdup() instead of malloc+memcpy,
       (wget_iri_set_scheme): Tiny code cleanup.
     
     Fixes: https://gitlab.com/gnuwget/wget2/-/issues/687
     Reported-by: https://gitlab.com/gleurent

2025-01-27 CaitCatDev <caitlynrosestewart@gmail.com>

     Add --show-progress
     
     * src/options.c (struct optionw options): Add show-progress item.
     
     Copyright-paperwork-exempt: Yes

2025-01-01 Tim Rühsen <tim.ruehsen@gmx.de>

     * src/wget.c: use _() to translate info and error strings

2024-12-08 Tim Rühsen <tim.ruehsen@gmx.de>

     Fix sorting of metalink mirrors by priority
     
     * libwget/metalink.c (compare_mirror): Fix implementation.
     
     Reported-by: Aidan Harris (https://gitlab.com/aidanharris)

2024-12-08 Tim Rühsen <tim.ruehsen@gmx.de>

     Fix metalink with -O/--output-document
     
     * src/wget.c (process_response): Handle config.output_document.
     
     Reported-by: Aidan Harris (https://gitlab.com/aidanharris)

2024-12-01 Tim Rühsen <tim.ruehsen@gmx.de>

     Fix chunk_size conversion on 32bit arch
     
     * src/wget.c (process_head_response): Cast size_t to long long.
     * src/wget_options.h (struct config): Change type of chunk_size from size_t to long long.
     
     Reported-by: https://gitlab.com/uhle

2024-12-01 Tim Rühsen <tim.ruehsen@gmx.de>

     * src/wget.c (queue_url_from_remote): Make messages consistent

2024-12-01 Tim Rühsen <tim.ruehsen@gmx.de>

     * src/wget.c (in_pattern_list): Change return type from int to boolean

2024-11-26 Michal Ruprich <mruprich@redhat.com>

     Prevent file truncation with --no-clobber
     
     * src/options.c (init): Check config.clobber.

2024-11-27 Michal Ruprich <mruprich@redhat.com>

     Use the local system timestamp when requested via --no-use-server-timestamps.
     
     * src/wget.c (http_receive_response): Check config.use_server_timestamps.

2024-11-30 Michal Ruprich <mruprich@redhat.com>

     * src/utils.c (wget_restrict_file_name): Explicitly use signed char
     
     Fix test--restrict-ascii failures on aarch64, s390x and ppc64le.

2024-11-24 Tim Rühsen <tim.ruehsen@gmx.de>

     * src/wget.c (http_receive_response): Check conn param for non-NULL

2024-11-24 Tim Rühsen <tim.ruehsen@gmx.de>

     * .gitlab-ci.yml (pages): add apt-get update

2024-11-24 Tim Rühsen <tim.ruehsen@gmx.de>

     Prepare release v2.2.0

2024-11-18 Michal Ruprich <mruprich@redhat.com>

     * src/options.c: do not truncate when -c is used
     
     Copyright-paperwork-exempt: Yes

2024-11-17 Tim Rühsen <tim.ruehsen@gmx.de>

     * Makefile.am: Don't try to build tests/ without GnuTLS

2024-11-17 Tim Rühsen <tim.ruehsen@gmx.de>

     * src/bar.c: Make var terminate_thread volatile

2024-11-17 Tim Rühsen <tim.ruehsen@gmx.de>

     * configure.ac: Improve summary output for pandoc and doxygen

2024-11-01 Tim Rühsen <tim.ruehsen@gmx.de>

     * libwget/iri.c (wget_iri_parse): Check for port number validity

2024-11-01 Tim Rühsen <tim.ruehsen@gmx.de>

     * configure.ac: Avoid -Wc11-c2x-compat (issue in config.h)

2024-11-01 Tim Rühsen <tim.ruehsen@gmx.de>

     * README.md: Amend license section (fix syntax-check)

2024-11-01 Tim Rühsen <tim.ruehsen@gmx.de>

     * src/wget.c: Fix safe_write, safe_read return types

2024-11-01 Tim Rühsen <tim.ruehsen@gmx.de>

     * configure.ac: Suppress several warnings coming with gnulib 01.11.2024

2024-11-01 Tim Rühsen <tim.ruehsen@gmx.de>

     * libwget/ssl_wolfssl.c (ShowX509): Add semicolon to end of XFREE()
     
     Fixes https://github.com/rockdaboot/wget2/issues/351

2024-11-01 Tim Rühsen <tim.ruehsen@gmx.de>

     Update gnulib
     
     * gnulib: Update git module.
     * bootstrap: Update from gnulib.

2024-10-31 Tim Rühsen <tim.ruehsen@gmx.de>

     * src/wget.c (program_deinit): Minor cleanup

2024-10-27 Tim Rühsen <tim.ruehsen@gmx.de>

     * src/wget.c: Fix parameter names in function prototypes

2024-10-03 Michael Weiser <michael.weiser@gmx.de>

     Wake the main thread on downloader shutdown
     
     * src/wget.c (downloader_thread): Signal main() on exit.
     
     Without this, the main thread may get stuck waiting for signals from
     downloaders while those have already exited and will never signal it.
     Observed with --wait.
     
     Fixes: https://github.com/rockdaboot/wget2/issues/348
     
     Copyright-paperwork-exempt: Yes

2024-10-03 Tim Rühsen <tim.ruehsen@gmx.de>

     * src/wget.c: Wait for progress thread during test runs

2024-10-03 Tim Rühsen <tim.ruehsen@gmx.de>

     * tests/valgrind-suppressions: Suppress libc6 2.40 getaddrinfo/memmove

2024-02-27 harshmohan07 <code.harshmohan@gmail.com>

     Don't log URI userinfo to logs
     
     * include/wget/wget.h (struct wget_iri_st): Add safe_uri member.
     * libwget/iri.c: New function create_safe_uri(),
       (wget_iri_unescape_url_inline): Check iri->userinfo,
       (wget_iri_parse): Likewise,
       (wget_iri_clone): Likewise,
       (wget_iri_relative_to_abs): Remove debug logs,
       (wget_iri_set_scheme): Check iri->userinfo.
     * src/blacklist.c: Log safe_uri instead of uri.
     * src/host.c: Likewise.
     * src/options.c: Likewise.
     * src/stats_site.c: Likewise.
     * src/wget.c: Likewise,
       (queue_url_from_remote): Move redirection check further down.
     * unit-tests/test.c (test_iri_parse): Add checks for safe_uri,
       (test_iri_parse): Add safe_uri to IRI comparison,
       Print safe_uri and password.
     
     Co-authored-by: Tim Rühsen <tim.ruehsen@gmx.de>

2024-09-22 Tim Rühsen <tim.ruehsen@gmx.de>

     Count 0 as an error for SSL_read and SSL_write, per documentation
     
     * libwget/ssl_openssl.c (ssl_transfer): Take 0 as error,
       slightly refactor code.
     
     Fixes https://github.com/rockdaboot/wget2/issues/342
     
     Reported-by: Tobias Brick (he/him) <tobiasb@microsoft.com>
     Co-authored-by: Tobias Brick (he/him) <tobiasb@microsoft.com>

2024-09-22 Tim Rühsen <tim.ruehsen@gmx.de>

     Fix error message for unknown --compression types
     
     * src/options.c (parse_compression): Fix error messages.
     
     Fixes https://github.com/rockdaboot/wget2/issues/346

2024-09-21 Tim Rühsen <tim.ruehsen@gmx.de>

     Add empty line after header with --save-headers
     
     * libwget/http.c (wget_http_get_response_cb): Remove adding empty line.
     * src/wget.c (prepare_file): Add empty line to headers.
     
     Fixes https://github.com/rockdaboot/wget2/issues/347

2024-09-16 Tobias Brick (he/him) <tobiasb@microsoft.com>

     set debug_skip_body for OCSP requests in openssl tls provider

2024-09-11 Tim Rühsen <tim.ruehsen@gmx.de>

     Fix downloading multiple files via HTTP/2
     
     * include/wget/wget.h: New function declaration wget_http_connection_receive_only().
     * libwget/http.c: New function definition wget_http_connection_receive_only().
     * libwget/http.h (struct wget_http_connection_st): Add member goaway.
     * libwget/http2.c (struct http2_stream_context): Add member conn,
       (on_frame_recv_callback): Handle NGHTTP2_GOAWAY,
       (wget_http2_send_request): Initialize conn member.
     * src/host.c (_release_job): Don't release parts if in 'done' state.
     * src/wget.c (process_response_header): Remove handling of LINK headers,
       (process_response): Add handling of LINK headers,
       (downloader_thread): Handle pending responses correctly.
     
     This patch fixes two related issues:
     1. With HTTP/2, servers sometimes limit the number of requests per connection.
        Beforethis patch, the connection was closed too early after GOAWAY and pending
        responses weren't received.
     2. In _release_job(), already downloaded parts of a file were erroneous released.
        This caused successful metalink and chunked downloads to fail in combination with
        a GOAWAY or a remotely closed connection.

2024-09-06 Tim Rühsen <tim.ruehsen@gmx.de>

     Update progress report line every second
     
     * src/wget.c: Add new function progress_report(),
       add new declaration progress_report().
     * src/wget.c (main): Start thread progress_report().
     * src/bar.c: Increase BAR_THREAD_SLEEP_DURATION from 125 to 1000 millseconds.
     * libwget/bar.c (bar_update_slot): Limit ratio to 100%, add TODO.

2024-09-05 Tim Rühsen <tim.ruehsen@gmx.de>

     Do not overwrite wget-log for 2+ instances
     
     * src/wget.c: Add new function create_unique(),
       (fork_to_background): Make use of create_unique().
     
     Fixes https://github.com/rockdaboot/wget2/issues/330

2024-09-05 Tim Rühsen <tim.ruehsen@gmx.de>

     Fix redirections with --no-parent
     
     * src/wget.c: Add new functions add_parent(), is_parent(), matches_parent().
     * src/wget.c (queue_url_from_remote): Add redirected URL to parents if
       origin is a parent.
     * src/wget.c (queue_url_from_remote): Do not apply robots.txt to redirected
       URL if origin was requested by user.
     
     Fixes https://github.com/rockdaboot/wget2/issues/331

2024-09-05 Tim Rühsen <tim.ruehsen@gmx.de>

     Support connecting with HTTP/1.0 proxies
     
     * libwget/http.c (establish_proxy_connect): Allow HTTP/1.0 responses
     
     Fixes https://gitlab.com/gnuwget/wget2/-/issues/666

2024-09-04 Tim Rühsen <tim.ruehsen@gmx.de>

     Ignore 1xx HTTP responses
     
     * libwget/http.c (wget_http_get_response_cb): Ignore 1xx responses.
     
     Fixes https://github.com/rockdaboot/wget2/issues/340

2024-09-04 Tim Rühsen <tim.ruehsen@gmx.de>

     Do not spell-check NEWS and bootstrap.conf

2024-08-29 Tim Rühsen <tim.ruehsen@gmx.de>

     Fix status 8 for failed redirection of robots.txt
     
     * src/wget.c (queue_url_from_remote): Copy job->robotstxt flag for redirections"
     * tests/test-redirection.c: Add test for correct status code after robots redirection fails"
     
     Fixes https://gitlab.com/gnuwget/wget2/-/issues/677

2024-08-16 Tim Rühsen <tim.ruehsen@gmx.de>

     Fix confusing error message on Win32 "No CAs were found in ..."
     
     * libwget/ssl.c (wget_ssl_default_ca_bundle_path): Check if file exists

2024-08-10 Tim Rühsen <tim.ruehsen@gmx.de>

     * src/wget.c (program_init): Move console and signal handler setup up

2024-07-21 Tim Rühsen <tim.ruehsen@gmx.de>

     Fix buffer overflow in progress bar
     
     * libwget/bar.c (bar_set_progress): Check for minimum bar size.

2024-07-13 Roger Marco Hernandez <bluntun@gmail.com>

     Consider connect timeout only when set
     
     * libwget/net.c (set_socket_options): Skip SO_SNDTIMEO if connect timeout is <= 0.
     
     Copyright-paperwork-exempt: Yes

2024-07-07 Tim Rühsen <tim.ruehsen@gmx.de>

     Fix ignoring connect timeout (regression)
     
     * libwget/net.c (set_socket_options): Set SO_SNDTIMEO for socket
     
     Reported-by: https://gitlab.com/plvalerio
     Co-authored-by: https://gitlab.com/RogerMarcoHernandez

2024-07-07 Tim Rühsen <tim.ruehsen@gmx.de>

     * contrib/Dockerfile.win32.static: Remove brotli

2024-06-30 Tim Rühsen <tim.ruehsen@gmx.de>

     Disable TCP Fast Open by default
     
     * docs/wget2.md: Amended description of --tcp-fastopen.
     * src/options.c (struct config config): Disabled TFO.

2024-06-30 Tim Rühsen <tim.ruehsen@gmx.de>

     Connect using synchronous socket
     
     * libwget/dns.c (getaddrinfo_merging, resolve): Code cleanup.
     * libwget/net.c (wget_tcp_connect): Connect first, then set socket to async.
     
     Connecting asynchronously prevented wget2 to fallback to the next IP address
     of a host when a connect error occurred.
     
     Reported at https://github.com/rockdaboot/wget2/issues/325

2024-06-29 Tim Rühsen <tim.ruehsen@gmx.de>

     Fix --dns-cache-preload for IPv6
     
     * src/options.c (preload_dns_cache): Fix parsing IPv6 addresses

2024-06-01 Tim Rühsen <tim.ruehsen@gmx.de>

     * src/wget.c (main): Disable progress bar for non-verbose and debug mode

2024-06-01 Tim Rühsen <tim.ruehsen@gmx.de>

     * src/bar.c (bar_init): Write info text above progress bar

2024-06-01 Tim Rühsen <tim.ruehsen@gmx.de>

     * libwget/bar.c: Add new function wget_bar_write_line_ext()

2024-06-01 Tim Rühsen <tim.ruehsen@gmx.de>

     * src/wget.c (main): Do not switch off info text when progress is enabled

2024-05-24 Tim Rühsen <tim.ruehsen@gmx.de>

     * fuzz/Makefile.am (oss-fuzz): Add -lgmp

2024-05-21 Tim Rühsen <tim.ruehsen@gmx.de>

     .gitlab-ci.yml (pages): Install pandoc, doxygen, texinfo

2024-05-21 Tim Rühsen <tim.ruehsen@gmx.de>

     * .gitlab-ci.yml (pages): Explicitly clean docs (required to build HTML)

2024-05-21 Tim Rühsen <tim.ruehsen@gmx.de>

     * .gitlab-ci.yml (pages): Explicitly create HTML docs

2024-05-21 Tim Rühsen <tim.ruehsen@gmx.de>

     * .gitlab-ci.yml (pages): Use make-coverage-badge from git source tree

2023-08-04 Tim Rühsen <tim.ruehsen@gmx.de>

     * .gitlab-ci.yml: Restructuring

2024-05-21 Tim Rühsen <tim.ruehsen@gmx.de>

     * tests/valgrind-suppressions: Drop libgpgme version from suppression

2024-05-21 Tim Rühsen <tim.ruehsen@gmx.de>

     * tests/Makefile.am: Add suppression files

2024-05-20 Tim Rühsen <tim.ruehsen@gmx.de>

     * fuzz/Makefile.am: Add valgrind-suppressions to EXTRA_DIST

2024-05-20 Tim Rühsen <tim.ruehsen@gmx.de>

     * libwget/io.c (getline_internal): Clear memory to not trigger valgrind

2024-05-20 Tim Rühsen <tim.ruehsen@gmx.de>

     Accept --progress=dot:... for backwards compatibility
     
     * src/options.c (parse_progress_type): Fix checking dot options.
     * tests/test-wget-1.c: Add check for --progress variants.

2024-05-19 Tim Rühsen <tim.ruehsen@gmx.de>

     * Makefile.am: Ignore geninfo errors

2024-05-19 Tim Rühsen <tim.ruehsen@gmx.de>

     * libwget/ssl_gnutls.c (verify_certificate_callback): Fix gcc warning -Wjump-misses-init

2024-05-19 Tim Rühsen <tim.ruehsen@gmx.de>

     Move Win32 console save/restore from libwget into wget.c.
     
     * libwget/init.c: Remove Win32 console code.
     * src/wget.c: Add Win32 console code.

2024-05-19 Tim Rühsen <tim.ruehsen@gmx.de>

     * libwget/ssl_gnutls.c (verify_certificate_callback): Fix 'do not translate debug strings'

2024-05-19 Tim Rühsen <tim.ruehsen@gmx.de>

     * libwget/ssl_gnutls.c (verify_certificate_callback): Warn about OCSP privacy leak

2024-04-18 Taylan Gökkaya <insomnimus@proton.me>

     Windows: handle ctrl+break to restore console modes
     
     * libwget/init.c: Add HandleCtrlEvent(),
       (global_exit): Restore console modes,
       (global_init): Save console modes.
     
     Copyright-paperwork-exempt: Yes

2024-05-19 Tim Rühsen <tim.ruehsen@gmx.de>

     * .gitlab-ci.yml: Let Valgrind runners use more cores

2024-05-19 Tim Rühsen <tim.ruehsen@gmx.de>

     * tests/libtest.c: Fix two memleaks

2024-05-19 Tim Rühsen <tim.ruehsen@gmx.de>

     * libwget/ssl_openssl.c (verify_ocsp): Fix segfault when OCSP response is missing

2024-05-19 Tim Rühsen <tim.ruehsen@gmx.de>

     Disable explicit OCSP requests by default for TLS library functions
     
     * libwget/ssl_openssl: Disable explicit OCSP requests by default.
     * libwget/ssl_gnutls: Likewise.
     * libwget/ssl_wolfssl.c: Likewise.

2024-05-18 Tim Rühsen <tim.ruehsen@gmx.de>

     * .gitlab-ci.yml: Use faster CI runners for MinGW builds

2024-05-18 Tim Rühsen <tim.ruehsen@gmx.de>

     * configure.ac: Remove -Wuseless-cast (gcc 14) from manywarnings

2024-05-18 Tim Rühsen <tim.ruehsen@gmx.de>

     * tests/libtest.c: Remove superfluous casts

2024-05-18 Tim Rühsen <tim.ruehsen@gmx.de>

     * .gitlab-ci.yml: Remove 'tags' (breaking changes in Gitlab 1.7)

2024-05-18 Tim Rühsen <tim.ruehsen@gmx.de>

     * libwget/ssl_gnutls.c: Improve messages for OCSP stapling

2024-05-18 Tim Rühsen <tim.ruehsen@gmx.de>

     Disable explicit OCSP requests by default
     
     * docs/wget2.md: Document --ocsp default value as 'off'.
     * src/options.c (struct config): Disable .ocsp by default.
     
     OCSP validation of the server certificate implies privacy issues:
       - The OCSP request tells the CA which web service the client tries to reach.
       - The OCSP requests are sent via unencrypted HTTP, so every "listener in the
         middle" can see which web service the client tries to connect.
     Additionally, the OCSP requests slow down operation and may cause unexpected
     network traffic, which may trigger security alarms unnecessarily.
     
     Due to these issues we explicitly disable OCSP by default.

2024-05-12 Tim Rühsen <tim.ruehsen@gmx.de>

     Fix tests/test-ocsp-server
     
     * tests/libtest.c: Handle > 1 OCSP responses.
     * tests/libtest.h: Rename WGET_TEST_OCSP_RESP_FILE to WGET_TEST_OCSP_RESP_FILES.
     * tests/test-ocsp-server.c: Make use of WGET_TEST_OCSP_RESP_FILES.

2024-05-12 Tim Rühsen <tim.ruehsen@gmx.de>

     -* libwget/ssl_gnutls.c (cert_verify_ocsp): Fix segfault when OCSP response is missing

2024-05-12 Tim Rühsen <tim.ruehsen@gmx.de>

     Fix OCSP verification of first intermediate certificate.
     
     * libwget/ssl_gnutls.c (verify_certificate_callback): Fix off-by-one check.
     
     See https://gitlab.com/gnuwget/wget2/-/issues/664#note_1901610438

2024-05-10 Romain Geissler <romain.geissler@amadeus.com>

     Allow option --no-tcp-fastopen to work on Linux kernels >= 4.11.
     
     * libwget/net.c (set_socket_options): Add check for tcp->tcp_fastopen.
     
     Copyright-paperwork-exempt: Yes

2024-05-05 harshmohan07 <code.harshmohan@gmail.com>

     * src/wget.c (add_statistics): Don't account already downloaded files as error
     
     Co-authored-by: Tim Rühsen <tim.ruehsen@gmx.de>

2024-04-29 Darshit Shah <git@darnir.net>

     * src/wget.c: Remove trailing space

2024-04-29 Darshit Shah <git@darnir.net>

     Limit cases where methods are redirected to GET
     
     * tests/test-spider-r.c: Add new test for redirections with spider
     * src/wget.c(process_response_header): Prevent changing the request
       method during a redirection to GET.
     
     Fixes: #660

2024-04-29 Darshit Shah <git@darnir.net>

     * contrib/check_options: Replace deprecated use of egrep

2024-04-28 Tim Rühsen <tim.ruehsen@gmx.de>

     * libwget/cookie.c (cookie_db_load): Fix return value

2024-04-28 Tim Rühsen <tim.ruehsen@gmx.de>

     * libwget/io.c (wget_update_load_fn): Fix parameter name

2024-04-28 Tim Rühsen <tim.ruehsen@gmx.de>

     Fix --no-clobber + --no-parent including a possible deadlock
     
     * src/wget.c (queue_url_from_local): Move parents handling further up,
       (queue_url_from_remote): Fix check for parse_localfile(),
       (html_parse): Fix locking for known_urls,
       (sitemap_parse_xml): Fix locking for known_urls,
       (add_urls): Fix locking for known_urls.

2024-04-28 Tim Rühsen <tim.ruehsen@gmx.de>

     * src/wget.c (set_file_metadata): Fix http:// to https:// in comment

2024-04-28 Tim Rühsen <tim.ruehsen@gmx.de>

     * src/wget.c (parse_localfile): Fix xattr reading of user.mime_type

2024-04-27 Tim Rühsen <tim.ruehsen@gmx.de>

     * src/options.c (struct config): Use 'Wget' as user-agent
     
     Some websites use browser sniffing, and a 'Wget' user agent header
     is likely to be more compatible than 'Wget2'.
     
     See https://github.com/rockdaboot/wget2/issues/314

2024-04-27 Tim Rühsen <tim.ruehsen@gmx.de>

     * .gitlab-ci.yml: Remove FreeBSD runner

2024-04-27 Tim Rühsen <tim.ruehsen@gmx.de>

     * gnulib: Update

2024-04-01 Tim Rühsen <tim.ruehsen@gmx.de>

     Fix progress bar for multiple downloads
     
     * libwget/bar.c (wget_bar_slot_begin): Remove numfiles handling,
       (struct bar_slot): Remove member 'numfiles'.
     
     Report: https://github.com/rockdaboot/wget2/issues/307

2024-04-01 Tim Rühsen <tim.ruehsen@gmx.de>

     * libwget/net.c (wget_tcp_connect): Fix return code on resolve failure

2024-03-29 Tim Rühsen <tim.ruehsen@gmx.de>

     Switch some variables from int to bool
     
     * src/plugin.c: Use bool for global variables "initialized" and
       "plugin_help_forwarded".
     * src/wget_plugin.h (plugin_db_help_forwarded): Use bool for return type.

2024-03-29 Tim Rühsen <tim.ruehsen@gmx.de>

     * libwget/xml.c (xml_context): Add docs to member fields

2024-03-28 Tim Rühsen <tim.ruehsen@gmx.de>

     Fix --no-parent for denormalized paths
     
     * libwget/iri.c (wget_iri_parse): Normalize path part of URL.
     * unit-tests/test.c (test_iri_parse): Add test with denormalized path.

2024-03-24 Tim Rühsen <tim.ruehsen@gmx.de>

     Update gnulib link libraries
     
     * fuzz/Makefile.am: Update gnulib link libraries.
     * libwget/Makefile.am: Likewise.
     * src/Makefile.am: Likewise.
     * tests/Makefile.am: Likewise.
     * unit-tests/Makefile.am: Likewise.

2024-03-23 Tim Rühsen <tim.ruehsen@gmx.de>

     Skip failing OCSP tests with WolfSSL
     
     * tests/test-ocsp-server.c: Skip failing tests.
     * tests/test-ocsp-stap.c: Likewise.

2024-03-23 Tim Rühsen <tim.ruehsen@gmx.de>

     gnulib: Update

2024-03-23 Tim Rühsen <tim.ruehsen@gmx.de>

     * src/options.c (version_text): Fix copyright year

2024-03-17 Tim Rühsen <tim.ruehsen@gmx.de>

     * unit-tests/test.c (test_robots): Fix memory leak

2022-04-20 Avinash Sonawane <rootkea@gmail.com>

     * configure.ac: Remove redundant sanitizer warnings

2024-01-10 Avinash Sonawane <rootkea@gmail.com>

     * .gitignore: Ignore generated files in VPATH builds

2022-06-25 Avinash Sonawane <rootkea@gmail.com>

     * libwget/robots.c: Fix robots.txt parser
     
     Co-authored-by: Tim Rühsen <tim.ruehsen@gmx.de>

2022-07-28 Avinash Sonawane <rootkea@gmail.com>

     * unit-tests/test.c (test_robots): Add new tests

2024-01-12 Avinash Sonawane <rootkea@gmail.com>

     * bootstrap.conf: Replace `\e` with portable `\033`

2024-01-10 Avinash Sonawane <rootkea@gmail.com>

     * bootstrap: Do not edit auto-generated file

2024-02-18 Tim Rühsen <tim.ruehsen@gmx.de>

     Add SECURITY.md [skip ci]

2024-01-27 Tim Rühsen <tim.ruehsen@gmx.de>

     tests/test-page-requisites.c: Add HTML source/srcset to tests

2024-01-13 Avinash Sonawane <rootkea@gmail.com>

     * tests/test-timestamping.c: Pass correct type to variadic function

2024-01-14 Tim Rühsen <tim.ruehsen@gmx.de>

     * src/log.c (log_init): Redirect INFO logs to stderr with -O-

2024-01-07 Tim Rühsen <tim.ruehsen@gmx.de>

     * libwget/cookie.c (cookie_db_load): Fix EOL removal

2024-01-07 Tim Rühsen <tim.ruehsen@gmx.de>

