* bootstrap.conf: Add canonicalize module.
* cfg.mk: Added exclusions to no new line at EOF for binary files used in tests.
* configure.ac: Check for libgpgme
* docs/wget2_manual.md: Added manual entries for --verify-sig, --gnupg-homedir, and new exit codes.
* fuzz/Makefile.am: Amend linker options
* include/wget/wget.h: Add error codes for GPG signature verification.
* po/POTFILES.in: Add new files.
* src/Makefile.am: Add src/gpgme.c and src/wget_gpgme.h
* src/gpgme.c: Using new error codes, and better signature verification failure detection.
* src/job.c (job_free): Free sig_filename
* src/options.c: Add new options --gnupg-homedir and --verify-sig
* src/wget.c: Verify the signature if possible, exit with the proper status code,
print error messages
* src/wget_gpgme.h: Add documentation.
* src/wget_job.h: Extend struct JOB
* src/wget_options.h: Add new status codes, add new members to struct config
* tests/Makefile.am: Added new tests.
* tests/gpg-test-util.h: Common GPG testing functionality (tries to verify a signature, expects exit code ... etc).
* tests/gpg/helloworld.txt: Text that has been signed in the .sig files.
* tests/gpg/helloworld.txt.{invalid,no-pub,missing,trusted}.sig: Signatures on helloworld.txt with properties described by their names.
* tests/gpg/openpgp-revocs.d/*: Revocation certs for the fake "homedir"
* tests/gpg/private-keys-v1.d/*: The not-so-private private keys used to sign the test file.
* tests/gpg/pubring.kbx: Fake gnupg homedir public key ring.
* tests/gpg/test-gpg-*.c: Tests.
* tests/valgrind-supressions: Supress failures due to oddness with GPGME.
* unit-tests/Makefile.am: Add src/gpgme.o to BASE_OBJS
* include/wget/wget.h: Use enum for WGET_REPORT_SPEED_*
* libwget/bar.c: Add ringbuffer for smoother speed calculations
* src/wget.c (main): Replace call to print_progress_report() by
call to bar_printf()
* bootstrap.conf: Add modules cond, lock and thread,
remove module pthread
* include/wget/wget.h: Remove pthread code,
add new wget_thread_* functions,
amend params of wget_thread_* functions,
add init and exit functions for mutex initialization
* */*.[ch]: Amend threading to new API
This change let libwget work with different kinds of
threading libraries incl. pthreads and windows threads.
* docs/wget2_manual.md: Add documentation for the --report-speed switch
* include/wget/wget.h: Define the report speed types, add reference to wget_bar_set_speed_type()
* libwget/bar.c: Modify the wget2 progress bar to print speed information
* src/bar.c: Add code to set the type of speed reporting
* src/options.c: Add the --report-speed switch and a function to parse the legal types
* src/wget_options.h: Add 'report_speed' in the config structure
* src/wget.c: Print speed reports at the end of a download thread
* include/wget/wget.h: first_data_back field added to represent the time of first bytes received back.
* libwget/http.c: Assigning first_data_back at the appropriate time.
* stc/wget_host.h: Added response_time field to DOC, holds response time for document.
* src/stats.c: Logic to calculate response_time for DOCs, and stat printing.
* include/wget/wget.h: Added request_start, and response_end to wget_http_request_t, and wget_http_response_t respectively.
* libwget/http.c: New fields initialized/set with their corresponding values at the right time.
* stc/wget_host.h: Added timestamps to DOC for request timeframes.
* src/stats.c: Logic to calculate request_start and response_end for DOCs. Stats writing.
* configure.ac: Added detection of libpcre and libpcre2
* include/wget/wget.h: Added regex_type defines
* src/options.c: Added the new options
* src/wget.c: Added regex code
* src/wget_options.h: Added the new options
* tests/test--accept.c: Added tests for the new options
This commit hasn't been copyright-assigned to the FSF.
* examples/*.c: Use 0 instead of NULL as terminating param
* fuzz/main.c: Likewise
* include/wget/wget.h: Remove G_GNUC_WGET_NULL_TERMINATED from
wget_global_init() and wget_http_get().
* include/wget/wget.h: Add WGET_STATS_FORMAT_TREE to wget_stats_format_t enum
* src/options.c (parse_stats): Accept format 'tree' for --stats-site switch
* src/stats.c (stats_print_tree): Print tree-ish o/p for format WGET_STATS_FORMAT_TREE
* src/wget.c (wget_tcp_set_stats_site): Set 'stats-site' flag
* src/wget.c (add_statistics): Collect Site stats only if `stats_site` is set
* src/stats.c (stats_init): Call wget_tcp_set_stats_site if --stats-site is supplied
* include/wget/wget.h: Add wget_tcp_set_stats_site() prototype declaration
* include/wget/wget.h: Add WGET_STAST_DNS_PORT to wget_stats_dns_t enum
* libwget/netc. (wget_tcp_resolve): store port in _stats_data_t struct
* src/wget_stats.h: Add 'port' to dns_stats_t struct
* src/stats.c (stats_callback): Collect port into dns_stats_t struct
* src/stats.c (stats_print_*): Print port
* include/wget/wget.h: Add WGET_STATS_HPKP_ERROR to wget_hpkp_stats_t enum
* src/wget_stats.h (server_stats_t struct): Change datatype of 'hpkp' from char to wget_hpkp_stats_t
* libwget/ssl_gnutls.c (_cert_verify_hpkp): Store WGET_STATS_HPKP_ERROR for error
* src/stats.c (stats_server_hpkp): Return appropriate message depending on 'hpkp' value
* include/wget/wget.h: Add new function wget_ssl_set_config_object()
* libwget/ssl_gnutls.c: Likewise
* src/options.c: Use wget_ssl_set_config_object()
* libwget/ssl_gnutls.c (wget_ssl_write_timeout): Remove unreachable code
not required by syntax
* src/wget.c (downloader_thread): Likewise
* unit-tests/test.c (test_hpkp): Remove unnecessary variable with same
name
* include/wget/wget.h: Add plugin API declarations
* libwget/hsts.c: Make wget_hsts_db_t extensible
* libwget/hpkp.c: Make wget_hpkp_db_t extensible
* libwget/ocsp.c: Make wget_ocsp_db_t extensible
* libwget/plugin.c: Add virtual functions for plugin API
* src/plugin.c: Add plugin API implementation
* src/wget_plugin.h: Likewise
* src/option.c: Add code to call the implementation
* src/wget.c: Likewise
* tests/test-plugin-dummy: Add plugin with dummy databases for testing
* tests/Makefile.am: Add target libplugindb.la
* tests/test-plugin.c: Add tests for custom databases
* unit-tests/test.c: Add tests for new HPKP functions
* libwget/ssl_gnutls.c: Adapt to API changes
* examples/http_multi_get.c: Likewise
* fuzz/libwget_hpkp_fuzzer.c: Likewise
* fuzz/libwget_hsts_fuzzer.c: Likewise
* fuzz/libwget_ocsp_fuzzer.c: Likewise
This feature implemented as per the specifications at
https://gitlab.com/akash_rawal/wget2/wikis/Stage-4
Merged from branch tmp-akash_rawal-stage3 into master
* include/wget/wget.h: Add function declarations
* libwget/plugin.c: Add virtual functions
* configure.ac: Check for fmemopen()
* src/plugin.c: Add implementation
* src/wget_plugin.h: Likewise
* src/wget.c: Add code that calls the implementation
* tests/test-plugin-dummy.c (pluginapi): Add option 'parse-rot13',
'only-rot13' and 'test-pp'
* tests/test-plugin.c: Add tests
* tests/libtest.c: Load files into dynamic memory instead of stack,
enables testing with large files.
Plugin APIs for intercepting downloaded files have been implemented
as per specifications at https://gitlab.com/akash_rawal/wget2/wikis/Stage-3
* include/wget/wget.h: Add 'debug_skip_body' flag to 'wget_http_request_t'
* libwget/ssl_gnutls.c: set 'debug_skip_body' flag if it's an OCSP request
* libwget/http.c: Do not print 'req->body' if 'debug_skip_body' is set
This reverts commit 2d7fe3e9fc.
With the above patch, a tiny memory allocation is avoided, but in doing
so, it misses an important case. The glob(3) call never returns a
success when the file does not already exist at the given path.