Commit Graph

1250 Commits

Author SHA1 Message Date
b9accafecb * libwget/io.c (getline_internal): Clear memory to not trigger valgrind 2024-05-21 13:55:38 +02:00
de294c8ddf * libwget/ssl_gnutls.c (verify_certificate_callback): Fix gcc warning -Wjump-misses-init 2024-05-19 20:02:31 +02:00
81cf05e1da 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 19:58:29 +02:00
f4e7c46073 * libwget/ssl_gnutls.c (verify_certificate_callback): Fix 'do not translate debug strings' 2024-05-19 19:36:59 +02:00
543e1f2708 * libwget/ssl_gnutls.c (verify_certificate_callback): Warn about OCSP privacy leak 2024-05-19 19:29:32 +02:00
2b6bd2e190 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 13:34:30 +02:00
c556a3226a * libwget/ssl_openssl.c (verify_ocsp): Fix segfault when OCSP response is missing 2024-05-19 13:05:11 +02:00
c341fcd1df 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-19 12:46:40 +02:00
0895f92308 * libwget/ssl_gnutls.c: Improve messages for OCSP stapling 2024-05-18 14:46:07 +02:00
a96f88a054 -* libwget/ssl_gnutls.c (cert_verify_ocsp): Fix segfault when OCSP response is missing 2024-05-12 19:51:03 +02:00
53a8a88e84 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-12 15:14:36 +02:00
7929bf887c 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-11 18:55:49 +02:00
761ae5082d * libwget/cookie.c (cookie_db_load): Fix return value 2024-04-28 17:37:14 +02:00
235df6545e * libwget/io.c (wget_update_load_fn): Fix parameter name 2024-04-28 17:36:29 +02:00
62ba66116c 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 18:10:58 +02:00
fbfa096506 * libwget/net.c (wget_tcp_connect): Fix return code on resolve failure 2024-04-01 15:43:45 +02:00
25b28e2c1a * libwget/xml.c (xml_context): Add docs to member fields 2024-03-29 12:01:32 +01:00
9aeab55d09 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-28 18:17:26 +01:00
d55ecc7113 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-24 15:58:27 +01:00
07b15e71f4 * libwget/robots.c: Fix robots.txt parser
Co-authored-by: Tim Rühsen <tim.ruehsen@gmx.de>
2024-03-15 19:33:13 +01:00
a033e97ac0 * libwget/cookie.c (cookie_db_load): Fix EOL removal 2024-01-07 12:47:24 +01:00
188989e067 Update copyright year 2024-01-07 12:41:02 +01:00
c51cc7d7e2 Fix double free in cookie_db_load().
Fixes #650

* libwget/cookie.c (cookie_db_load): Call wget_cookie_init() at top of read loop.
2024-01-07 12:09:01 +01:00
7975ef485c libwget/ssl_wolfssl.c (wget_ssl_init): Combine CA cert directory and file 2024-01-07 10:57:17 +01:00
fb69b5d280 libwget/ssl_wolfssl.c (wget_ssl_init): Use wolfSSL_CTX_load_system_CA_certs() 2024-01-06 19:18:20 +01:00
1bab5454f9 Fix IPv6 address representation
* libwget/dns.c (resolve): Fix IPv6 in debug message,
  (wget_dns_cache_ip): Fix IPv6 in error message,
  (wget_dns_resolve): Fix IPv6 in debug message.
* libwget/dns_cache.c (wget_dns_cache_get): Fix IPv6 in debug message.
* libwget/hsts.c (hsts_db_add_entry): Fix IPv6 in debug message.
* libwget/http.c (wget_http_create_request): Fix IPv6 in Host header,
  (establish_proxy_connect): Fix IPv6 in CONNECT and in Host header.
* libwget/ip.c (wget_ip_is_family): Cosmetic change.
* libwget/iri.c (wget_iri_get_connection_part): Fix IPv6 in URL creation.
* libwget/net.c (debug_addr): Fix IPv6 in debug message.
* src/options.c (stats_callback_dns): Fix IPv6 in output.
* src/wget.c (test_modify_hsts): Fix IPv6 in console output,
  (http_create_request): Fix IPv6 in Referer header.
* unit-tests/test.c (test_iri_parse): Add two IPv6 parsing tests.
* libwget/Makefile.am (libwget_dnscache.la): Link with libwget_ip.la,
  (libwget_hsts.la): Link with libwget_ip.la.
2023-12-17 18:52:27 +01:00
ae24f83fd0 * libwget/netrc.c (wget_netrc_db_load): Add fetchmail compatibility (user and passwd) 2023-11-26 19:01:30 +01:00
8271687e29 Rename internal functions 2023-11-18 18:45:35 +00:00
b23c934422 Rename internal functions 2023-11-18 18:45:35 +00:00
a6ab8a1d0c Remove empty guard 2023-11-18 18:45:35 +00:00
0aa23dfc79 Fix NULLABLES 2023-11-18 18:45:35 +00:00
829528217c Extract common HTTP functions
* libwget/http.h: new functions wget_http_connection_is_aborted,
   wget_http_fix_broken_server_encoding,
   wget_decompress_get_body_cb, wget_decompress_error_handler_cb,
   wget_http2_open, wget_http2_close, wget_http2_send_request,
   wget_http2_get_response_cb
 * libwget/http2.c: new file
2023-11-18 18:45:35 +00:00
ec77b3ebf0 * libwget/http_parse.c: Make http_isseparator an inline function 2023-11-17 20:00:00 +01:00
7014ef7a51 * unit-tests/test.c: Add tests for wget_http_parse_full_date() 2023-11-17 19:40:51 +01:00
7bf93ff6c6 Add support for another non-standard cookie timstamp format
- example: Sun Nov 26 2023 21:24:47

* libwget/http_parse.c (wget_http_parse_full_date): Parse additional format.
2023-11-17 19:39:25 +01:00
1a886595e6 Add libproxy support
Add support for libproxy, which is capable to extract desktop
environment proxy configurations from dozens of systems and platforms.
This also enables wget to handle pac/wpad proxy server.

* configure.ac: Add check for libbproxy.
* libwget/http.c (wget_http_open): Retrieve proxy via libproxy.

Copyright-paperwork-exempt: Yes
2023-11-04 16:02:45 +00:00
0415d036b3 Fix minor typos in comments 2023-11-04 14:36:43 +01:00
75775a77e9 * libwget/ssl_openssl.c (tls_exit): Fix syntax-check 2023-10-03 18:10:39 +02:00
c569c7f4f8 * libwget/http.c: Fix NULLABLE issues 2023-10-03 18:03:00 +02:00
d7afffb981 * libwget/cookie.c: Fix NULLABLE issues 2023-10-03 17:53:08 +02:00
56d77a8a30 * libwget/metalink.c (add_mirror): Fix NULLABLE issue 2023-10-03 17:51:03 +02:00
75dc1467e0 * libwget/cookie_parse.c: Fix NULLABLE issues 2023-10-03 17:49:26 +02:00
4f85f69837 * libwget/html_url.c (html_get_url): Fix NULLABLE issue 2023-10-03 17:46:58 +02:00
c9d57f0577 * libwget/hpkp_db.c: Fix NULLABLE issues 2023-10-03 17:44:53 +02:00
61ba540ea6 * libwget/hpkp.c: Fix NULLABLE issues 2023-10-03 17:42:08 +02:00
2156dca17e * libwget/css_url.c (urls_to_absolute): Silence clang nullability checks 2023-10-03 17:34:01 +02:00
0b5be69ecd * libwget/ssl_gnutls.c (wget_ssl_open): Check ctx for NULL 2023-10-03 17:28:28 +02:00
6836b7d873 * libwget/ssl_openssl.c (tls_exit): Don't call CRYPTO_free_ex_index() when build with LibreSSL 2023-09-30 20:02:23 +02:00
4b872ad601 dns: Merge SOCK_STREAM and SOCK_DGRAM addrinfo lists
We want resolve() to return both, TCP and UDP sockets.

On Linux, we could set .ai_socktype = 0 on the getaddrinfo() hints which
would return us all the socket types available. However, that is not
accepted on Windows. Instead, we ask for TCP and UDP sockets separately
and then merge the two lists.
2023-09-07 19:55:49 +02:00
15ba1db248 Update copyrights 2023-08-31 12:57:30 +02:00