2022-11-01  Aaron Merey  <amerey@redhat.com>

	* debuginfod-client.c (path_escape): Add early return.

2022-10-31  Aaron Merey  <amerey@redhat.com>

	* Makefile.am (libdebuginfod_so_LDLIBS): Add libelf.
	* debuginfod-client.c (debuginfod_find_section): New function.
	(path_escape): New function.
	(extract_section): New function.
	(cache_find_section): New function.
	(debuginfod_query_server): Add support for section queries.
	* debuginfod-find.c (main): Add support for section queries.
	* debuginfod.cxx (extract_section): New function.
	(handle_buildid_f_match): Add section parameter.  When non-empty,
	try to create response from section contents.
	(handle_buildid_r_match): Add section parameter.  When non-empty,
	try to create response from section contents.
	(handle_buildid_match): Add section parameter. Pass to
	handle_buildid_{f,r}_match.
	(handle_buildid): Handle section name when artifacttype is set to
	"section".  Query upstream servers via debuginfod_find_section
	when necessary.
	(debuginfod.h.in): Add declaration for debuginfod_find_section.
	(libdebuginfod.map): Add debuginfod_find_section.

2022-10-18  Daniel Thornburgh <dthorn@google.com>

  * debuginfod-client.c (debuginfod_query_server): Add DEBUGINFOD_HEADERS_FILE
  setting to supply outgoing HTTP headers.

2022-10-17  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod.cxx (main): Report libmicrohttpd version.

2022-09-28  Aaron Merey  <amerey@redhat.com>

	* debuginfod-client.c (debuginfod_query_server): Switch sign of some
	error codes from positive to negative.

2022-09-08  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod-client.c (debuginfod_query_server): Clear
	->winning_headers along with ->url at the start of any new query.

2022-09-08  Martin Liska  <mliska@suse.cz>

	* debuginfod-client.c (debuginfod_get_headers): Add to DUMMY_LIBDEBUGINFOD.

2022-09-06  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod-client.c (header_callback): Don't copy \r in x-d headers.
	Print all headers in verbose_fd mode.
	* debuginfod-find.c (parse_opt): Set verbose_fd only at verbosity >= 2.
	* debuginfod.cxx (handle_buildid): Clean up header forwarding
	string processing.
	* debuginfod.h.in: (debuginfod_get_headers): Tweak wording.
	* libdebuginfod.map: Use ELFUTILS_0.188 for new function.

2022-07-15  Noah Sanci  <nsanci@redhat.com>

	* debuginfod-client.c (header_callback): Ignore headers without
	X-DEBUGINFOD prefix.
	(debuginfod_query_server): Removed verbose printing headers when
	undesired.
	(debuginfod_get_headers): Created.
	* debuginfod-find.c (main): Verbose printing headers.
	* debuginfod.cxx (handle_buildid): Add headers prefixed with
	X-DEBUGINFOD from federated servers to this server's response
	headers.
	* debuginfod.h.in (debuginfod_get_headers): Created.
	* libdebuginfod.map: New elfutils version added.

2022-09-02  Aaron Merey  <amerey@redhat.com>

	* debuginfod.cxx (parse_opt): If '-C' is given with no arg, do not
	update connection_pool since it will be done at a later point.
	(main): Use auto-sized connection_pool if '-C' isn't given with an
	arg. Do not use MHD_USE_THREAD_PER_CONNECTION.

2022-08-17  Martin Liska  <mliska@suse.cz>

	* debuginfod.cxx (handle_buildid): Update HTTP statistics only if
	it comes from HTTP request.

2022-08-17  Martin Liska  <mliska@suse.cz>

	* debuginfod.cxx: Print filename for "cannot open archive".

2022-08-15  Frank Ch. Eigler <fche@redhat.com>

	PR29474
	* debuginfod.cxx (handle_buildid_r_match): Don't trigger false-404's
	for concurrently prefetched target files.

2022-08-02  Josef Cejka <jcejka@suse.de>

	* debuginfod.cxx (groom): Don't evaluate regex unless needed.

2022-07-29  Josef Cejka <jcejka@suse.de>

	* debuginfod.cxx: Create db indexes for fast delete while grooming.

2022-06-03  Michael Trapp <michael.trapp@sap.com>

	* debuginfod.cxx (scan_source_info): New global.
	(parse_opt, elf_classify): Use it.

2022-05-09  Mark Wielaard  <mark@klomp.org>

	* debuginfod-client.c (debuginfod_clean_cache): Move utime call to
	before fts traversal.

2022-05-09  Mark Wielaard  <mark@klomp.org>

	* debuginfod-client.c (debuginfod_init_cache): Remove.
	(debuginfod_query_server): Don't call debuginfod_init_cache, call
	mkdir then debuginfod_clean_cache.

2022-05-09  Mark Wielaard  <mark@klomp.org>

	* debuginfod-client.c (debuginfod_config_cache): Always open with
	O_CREATE first, then use fstat, only write the cache_config_default_s
	value if st_size == 0, otherwise read value from file.

2022-05-09  Mark Wielaard  <mark@klomp.org>

	* debuginfod.cxx (conninfo): Always provide servname to getnameinfo.

2022-05-09  Mark Wielaard  <mark@klomp.org>

	* debuginfod-client.c (debuginfod_query_server): Add
	curl_easy_setopt_ck macro, use it for all curl_easy_setopt calls.

2022-05-09  Mark Wielaard  <mark@klomp.org>

	* debuginfod-client.c (debuginfod_write_callback): Check result
	of curl_easy_getinfo.

2022-05-05  Mark Wielaard  <mark@klomp.org>

	* debuginfod.cxx (main): Define use_epoll. Set to MHD_USE_EPOLL
	based on MHD_VERSION. Don't use MHD_USE_THREAD_PER_CONNECTION
	when use_poll is set.

2022-05-05  Mark Wielaard  <mark@klomp.org>

	* debuginfod.cxx (main): Define mhd_flags. Use mhd_flags for
	MHD_start_daemon. Try again with MHD_USE_DUAL_STACK removed if
	that fails. Update clog to say either IPV4 or IPV4 and IPV6.
	stop either ithe d46 or d4 daemonr.

2022-05-09  Noah Sanci  <nsanci@redhat.com>

	* debuginfod.cxx (main): Set nonzero defaults for fdcache.

2022-05-04  Frank Ch. Eigler <fche@redhat.com>
	    Mark Wielaard  <mark@klomp.org>

	* debuginfod-client.c (debuginfod_query_server): Correct fd leak
	for cache negative-hit unlink case.
	(debuginfod_config_cache, debuginfod_init_cache): Correct
	minor fd leaks.
	* debuginfod-find.c  (main): Ditto.

2022-04-22  Mark Wielaard  <mark@klomp.org>

	* Makefile.am (libdebuginfod): Add -lpthread.
	(libdebuginfod_so_LDLIBS): Likewise.
	* debuginfod-client.c (init_control): New static pthread_once_t.
	(libcurl_init): New static function.
	(debuginfod_begin): Use ptrace_once to call libcurl_init.
	(libdebuginfod_ctor): Removed.
	(libdebuginfod_dtor): Likewise.

2022-04-24  Mark Wielaard  <mark@klomp.org>

	* debuginfod.cxx (main): Add MHD_USE_ITC to MHD_start_daemon flags.

2022-04-13  Aaron Merey  <amerey@redhat.com>

	* debuginfod-client.c (debuginfod_query_server):
	Drop st_mode check. Add st_size > 0 check.
	Save target_mtime before calling
	debuginfod_config_cache. unlink target_cache_path
	on EACCESS. Create target_cache_path with DEFFILEMODE.

2022-04-03  Frank Ch. Eigler <fche@redhat.com>

	* debuginfod.cxx (main): Use single dual-stack daemon setup,
	rather than duplicate ipv4 and ipv6.
	(conninfo, handle_buildid): Represent ipv4-mapped ipv6 addresses
	in their native ipv4 form for logging and X-F-F: purposes.
	* debuginfod-client.c (debuginfod_add_http_header): Tolerate
	colons in http header values.

2022-04-03  Frank Ch. Eigler <fche@redhat.com>

	* debuginfod.cxx (main): Use MHD_USE_EPOLL for libmicrohttpd, to
	encourage more round-robin dispatch of incoming connections.

2021-12-09  Alexander Kanavin <alex@linutronix.de>

	* debuginfod-client.c (cache_clean_default_interval_s): Change type to
	long from time_t.
	(cache_miss_default_s): Likewise.
	(cache_default_max_unused_age_s): Likewise.

2021-12-09  Mark Wielaard  <mark@klomp.org>

	* debuginfod.cxx (database_stats_report): Don't format clog
	using 'right' and 'setw(20)'.

2021-12-08  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod.cxx (connection_pool): New global.
	(parse_opt): Parse & check -C option to set it.
	(error_cb): New callback for libmicrohttpd error counting.
	(main): Activate MHD_OPTION_THREAD_POOL_SIZE if appropriate.
	Activate error_cb.

2021-12-04  Mark Wielaard  <mark@klomp.org>

	* debuginfod.cxx (main): Call debuginfod_pool_groom before exit.

2021-12-08  Mark Wielaard  <mark@klomp.org>

	* debuginfod.cxx (add_mhd_response_header): New function.
	(reportable_exception::mhd_send_response): Call
	MHD_add_response_header.
	(add_mhd_last_modified): Likewise.
	(handle_buildid_f_match): Likewise.
	(handle_buildid_r_match): Likewise.
	(handle_metrics): Likewise. And check MHD_Response was actually
	created.
	(handle_root): Likewise.

2021-12-08  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod.cxx (intern): Call set_metrics() holding the fdcache mutex.

2021-12-04  Mark Wielaard  <mark@klomp.org>

	* debuginfod-client.c (debuginfod_query_server): Free winning_headers.
	Reset response_data_size when clearing response_data.

2021-12-01  Mark Wielaard  <mark@klomp.org>

	* debuginfod-client.c (debuginfod_query_server): Free tmp_url on
	realloc error. curl_free escaped_string on error. Fix error out
	goto on curl_easy_init failure. Only cleanup data[i] handle and
	response_data if it was initialized.

2021-12-01  Mark Wielaard  <mark@klomp.org>

	* debuginfod-client.c (timestamp): Use gmtime_r instead of gmtime.
	(add_mhd_last_modified): Likewise.

2021-11-10  Érico N. Rolim  <erico.erc@gmail.com>

	* debuginfod.cxx: include "system.h" under 'extern "C"' block.

2021-11-05  Frank Ch. Eigler  <fche@redhat.com>

	PR28430
	* debuginfod.cxx (parse_opt): Add "--passive" flag.  Complain
	about inconsistent flags.
	(main): In passive mode, suppress scan/groom/traverse threads and
	other read-write database ops.

2021-11-04  Frank Ch. Eigler  <fche@redhat.com>

	PR28514
	* debuginfod.cxx (groom): Rework into separate decision/action
	phases.  Add new metrics to monitor progress.  Limit indefinite
	operation times to avoid starving rescan.

2021-10-23  Frank Ch. Eigler  <fche@redhat.com>

	PR28240
	* debuginfod-client.c (debuginfod_query_server): Correct
	negative-hit cache check sequence for root user.

2021-10-15  Mark Wielaard  <mark@klomp.org>

	* debuginfod-client.c (debuginfod_query_server): Set
	CURLOPT_PROTOCOLS.

2021-10-06  Di Chen <dichen@redhat.com>

	PR28242
	* debuginfod.cxx (inc_metrics, add_metrics): Add two-tag variants.
	(handler_cb): Call it with artifacttype for http_responses_* metrics.
	(handle_buildid): Sanitize artifacttype if necessary.
	(dwarf_extract_source_path): Pass sanitizable string param.

2021-09-17  Noah Sanci  <nsanci@redhat.com>

	* debuginfod-client.c (debuginfod_query_server): curl_multi_perform
	now occurs before checking if response headers have arrived.

2021-09-14  Frank Ch. Eigler <fche@redhat.com>

	PRPR28339
	* debuginfod.cxx (waitq::fronters): New field.
	(waitq::wait_idle): Respect it.
	(waitq::done_front): New function.
	(thread_main_scanner): Call it to match wait_front().

2021-09-12  Mark Wielaard  <mark@klomp.org>

	* debuginfod.cxx (libarchive_fdcache::lookup): Add endl after
	obatched(clog) line.
2021-09-13  Noah Sanci  <nsanci@redhat.com>

	* debuginfod-client.c (debuginfod_query_server): Removed constant
	operations from a loop. curl_free memory.

2021-09-06  Dmitry V. Levin  <ldv@altlinux.org>

	* debuginfod-client.c (debuginfod_begin): Remove cast of calloc return
	value.

2021-08-28  Mark Wielaard  <mjw@redhat.com>

	* debuginfod.cxx (parse_opt): Turn the -d arg ":memory:" into
	"file::memory:?cache=shared" for the db_path.

2021-08-20  Di Chen  <dichen@redhat.com>

	* debuginfod.cxx (options): Add ARGP_KEY_FORWARDED_TTL_LIMIT.
	(forwarded_ttl_limit): New static unsigned.
	(parse_opt): Handle ARGP_KEY_FORWARDED_TTL_LIMIT.
	(handle_buildid): Check forwarded_ttl_limit.
	(main): Log forwarded ttl limit.

2021-08-20  Saleem Abdulrasool  <abdulras@google.com>

	* debuginfod.cxx: Remove error.h include.

2021-08-19  Frank Ch. Eigler  <fche@redhat.com>

	PR28249
	* debuginfod.cxx (handler_cb): Fix after_you unique_set key
	to the entire incoming URL.

2021-08-02  Noah Sanci  <nsanci@redhat.com>

	PR27277
	* debuginfod-client.c (struct debuginfod_client): New field
	winning_headers.
	(struct handle_data): New field response_data, response_data_size.
	(header_callback): Store received headers in response_data.
	(debuginfod_query_server): Activate CURLOPT_HEADERFUNCTION.
	Save winning response_data.
	(debuginfod_end): free client winning headers.
	* debuginfod.cxx (handle_buildid_f_match): remove X-DEBUGINFOD-FILE
	path. Add X-DEBUGINFOD-FILE and X-DEBUGINFOD-SIZE headers.
	(handle_buildid_r_match): remove X-DEBUGINFOD-FILE path. Add
	X-DEBUGINFOD-FILE, X-DEBUGINFOD-SIZE
	headers, and X-ARCHIVE headers.

2021-07-26  Noah Sanci  <nsanci@redhat.com>

	PR27982
	* debuginfod-client.c (globals): added default_maxsize and
	default_maxtime.
	(debuginfod_query_server): Added DEBUGINFOD_MAXSIZE and
	DEBUGINFOD_MAXTIME envvar processing.
	* debuginfod.cxx (handler_cb): If the requested file exceeds
	maxsize return code 406.
	* debuginfod.h.in: Added DEBUGINFOD_MAXSIZE_ENV_VAR and
	DEBUGINFOD_MAXTIME_ENV_VAR.

2021-07-16  Noah Sanci  <nsanci@redhat.com>

	PR28034
	* debuginfod-client.c (debuginfod_query_server): % escape filename
	so the completed url is processed properly.

2021-06-28 Noah Sanci <nsanci@redhat.com>

	PR25978
	* debuginfod.cxx (options): Added --fdcache-prefetch-fds/mbs options.
	(set_metric): Added a condition for fdcache_mintmp to ensure no
	negative percentages or percentages larger than 100% are given.
	(globals): Added fdcache_prefetch_mbs/fdcache_prefetch_fds.
	(set_metrics): Differentiate between lru and prefetch metrics.
	(intern): Added prefetch functionality for nuking preexisting copies
	and incrementing prefetch metrics.
	(lookup): Search prefetch cache and increment associated metrics. Upon
	finding in the prefetch cache move the element to the lru cache.
	(limit): Arguments updated. Update size of prefetch cache.
	(main): Log prefetch and cache fds/mbs

2021-07-06  Alice Zhang  <alizhang@redhat.com>

	PR27531
	* debuginfod-client.c (debuginfod_query_server): Retry failed queries
	if error code is not ENOENT.
	* debuginfod.h.in: Introduce DEBUGINFOD_RETRY_LIMIT_ENV_VAR.

2021-07-01  Noah Sanci <nsanci@redhat.com>

	PR27711
	* debuginfod.cxx (options): Add --regex-groom, -r option.
	(regex_groom): New static bool defaults to false.
	(parse_opt): Handle 'r' option by setting regex_groom to true.
	(groom): Introduce and use reg_include and reg_exclude.

2021-07-09  Noah Sanci  <nsanci@redhat.com>

	PR27983
	* debuginfod-client.c (debuginfod_query_server): As full-length
	urls are generated with standardized formats, ignore duplicates.
	Created out1 and changed out2 error gotos. Updated url creation print
	statements.
	(globals): Removed url_delim_char, as it was no longer used.

2021-06-18  Mark Wielaard  <mark@klomp.org>

	* debuginfod-client.c (debuginfod_begin): Don't use client if
	calloc call failed.

2021-06-03  Frank Ch. Eigler <fche@redhat.com>

	PR27863
	* debuginfod.cxx (unique_set, unique_set_reserver): New classes.
	(handler_cb): Use them to implement "after-you" queueing.

2021-05-14  Frank Ch. Eigler <fche@redhat.com>

	PR27859
	* debuginfod-client.c (debuginfod_client): Retain only
	long-lived multi handle from PR27701 work.
	(debuginfo_begin,debuginfod_end): ctor/dtor for surviving field only.
	(debuginfod_query_server): Rework to reuse multi handle only.

2021-04-19  Martin Liska  <mliska@suse.cz>

	* debuginfod-client.c (debuginfod_query_server): Use startswith.
	(debuginfod_add_http_header): Likewise.
	* debuginfod.cxx: Likewise.

2021-05-04  Alice Zhang <alizhang@redhat.com>

	* debuginfod-client.c (cache_miss_default_s): New static time_t,
	defaults to 600 (10 minutes).
	(cache_miss_filename): New static char pointer.
	(debuginfod_config_cache): New static function.
	(debuginfod_clean_cache): Use debuginfod_config_cache for
	interval_path and max_unused_path.
	(debuginfod_query_server): Check whether target_cache_path exists
	as negative cache file and create target_cache_path when the server
	returns ENOENT. Check cache_miss_path fir cache miss time.

2021-04-26  Frank Ch. Eigler <fche@redhat.com>

	PR27571
	* debuginfod-client.c (debuginfod_query_server): Chmod 0400 files
	delivered into the cache to prevent accidental modification.

2021-04-26  Frank Ch. Eigler <fche@redhat.com>

	PR26125
	* debuginfod-client.c (debuginfod_clean_cache): For directory
	rmdir, check mtime first.
	(debuginfod_query_server): Try mkdir / mkstemp up to twice,
	in case of race.

2021-04-23  Frank Ch. Eigler <fche@redhat.com>

	PR27701
	* debuginfod-client.c (struct debuginfod_client): Add long-lived
	CURL easy and multi handles.
	(debuginfo_begin,debuginfod_end): ctor/dtor for these.
	(debuginfod_query_server): Rework to reuse easy & multi handles.
	(*_envvar): Just use the DEBUGINFOD_*_ENV_VAR directly instead.

	* debuginfod.cxx (dc_pool): New pile of reusable debuginfod_client
	objects for upstream federation connections.
	(debuginfod_pool_{begin,end,groom}): New functions.
	(handle_buildid): Use them.
	(handler_cb): Fix keep-alive given libmicrohttpd convention of multiple
	callbacks.

2021-04-15  Frank Ch. Eigler <fche@redhat.com>

	* debuginfod.cxx (groom): Only update database stats once.

2021-04-15  Frank Ch. Eigler <fche@redhat.com>

	* debuginfod.cxx (elf_classify): Recognize symtab-only stripped files
	like fedora's libicudata as debuginfo files.

2021-03-30  Frank Ch. Eigler <fche@redhat.com>

	* debuginfod.cxx (main): Set child thread names.

2021-03-07  Timm Bäder <tbaeder@redhat.com>

	* debuginfod-client.c (debuginfod_query_server): Tweak
	double/long clamping arithmetic to avoid UB and warnings.

2021-02-25  Frank Ch. Eigler <fche@redhat.com>

	* debuginfod.cxx (handler_cb): Filter webapi for bad
	artifacttype keywords early for metric hygiene.

2021-02-14  Frank Ch. Eigler <fche@redhat.com>

	* debuginfod.cxx (main -U): Use bsdtar unconditionally.  Also map
	the debian-compatible .ipk (openembedded distro family) to same.

2021-02-04  Frank Ch. Eigler <fche@redhat.com>

	PR27092 low-memory handling
	* debuginfod.cxx (fdcache_mintmp): New parameter, with cmd-line option.
	(parse_opt): Parse it.
	(main): Default it.
	(statfs_free_enough_p): New function.
	(libarchive_fdcache::*): Call it to trigger emergency fdcache flush.
	(thread_main_scanner): Call it to report filesystem fullness metrics.
	(groom): Ditto.
	(set/add_metric): Take double rather than int64_t values.
	(archive_exception): Propagate suberror to metric label.
	(main): Detect pthread creation fatal errors properly.

2021-02-02  Frank Ch. Eigler <fche@redhat.com>

	PR27323
	* debuginfod.cxx (dbq): New read-only database connection for queries
	only.
	(signal_handler): Interrupt it.
	(main): Open / close it.
	(handle_buildid): Use it for webapi queries only.
	(database_stats_report): Make more interruptible.  Report sqlite3
	operation times to the prometheus metrics.
	(groom): Make more interruptible.
	(thread_main_fts_source_paths, thread_main_groom): Ensure
	state/progress metrics are fresh even in case of exceptions.

2020-12-20  Dmitry V. Levin  <ldv@altlinux.org>

	* .gitignore: New file.

2020-12-12  Dmitry V. Levin  <ldv@altlinux.org>

	* debuginfod-client.c (debuginfod_query_server): Fix spelling typos in
	comments.
	* debuginfod.cxx: Likewise.
	(parse_opt): Fix spelling typos in error diagnostics.

2020-12-08  Dmitry V. Levin  <ldv@altlinux.org>

	* Makefile.am [LIBDEBUGINFOD]: Create libdebuginfod.so.1 first, turn
	libdebuginfod.so into symlink.

2020-11-30  Dmitry V. Levin  <ldv@altlinux.org>

	* Makefile.am (libdebuginfod.so): Replace $@.$(VERSION) with
	$(LIBDEBUGINFOD_SONAME).
	(install, uninstall, MOSTLYCLEANFILES): Replace
	libdebuginfod.so.$(VERSION) with $(LIBDEBUGINFOD_SONAME).
	(VERSION): Remove.
	* debuginfod.h: Rename to ...
	* debuginfod.h.in ... this.
	(DEBUGINFOD_SONAME): New macro.

2020-11-30  Dmitry V. Levin  <ldv@altlinux.org>

	* Makefile.am (libdebuginfod.so$(EXEEXT)): Drop $(EXEEXT) suffix.

2020-11-25  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod.cxx (step_ok_done): Correct typo in prom metric label.

2020-11-25  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod.cxx (tmp_ms_metric): Switch from gettimeofday to
	clock_gettime(CLOCK_MONOTONIC) for time-interval measurements.
	(handler_cb, scan_source_paths, groom): Ditto.

2020-11-23  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod.cxx (tmp_ms_metric): New class for RAII timing metrics.
	(sqlite_ps::reset, step*): Call it to track sqlite3 performance.
	(sqlite_exception ctor): Increment sqlite3 error_count.

2020-11-23  Mark Wielaard  <mark@klomp.org>

	* debuginfod-client.c (debuginfod_query_server): Initialize
	struct handle_data errbuf to the empty string.

2020-11-11  Mark Wielaard  <mark@klomp.org>

	* debuginfod-client.c (debuginfod_set_verbose_fd): New function.
	(struct debuginfod_client): Add verbose_fd.
	(struct handle_data): Add errbuf.
	(debuginfod_query_server): Produce verbose output when
	debuginfod_client verbose_fd is set. Only clear old data and set
	default_headers when any work is done. Always goto out when setting
	rc to an error value. Use CURLOPT_ERRORBUFFER to get more error
	output when verbose output is requested.
	* debuginfod.h (DEBUGINFOD_VERBOSE_ENV_VAR): New.
	(debuginfod_set_verbose_fd): Added.
	* debuginfod-find.c (parse_opt): Set debuginfod_set_verbose_fd on -v.
	* bdebuginfod.map (ELFUTILS_0.183): New section, add
	debuginfod_set_verbose_fd.

2020-11-21  Mark Wielaard  <mark@klomp.org>

	* debuginfod.cxx (handle_root): New function.
	(handler_cb): Handle "/" and report url1 in webapi error.

2020-11-11  Mark Wielaard  <mark@klomp.org>

	* debuginfod-find.c (progressfn): Use clock_gettime to print Progress
	at most 5 times a second.

2020-11-19  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod.cxx (tmp_inc_metric): New class.
	(handler_cb): Use it to track webapi operations.

2020-11-01  Érico N. Rolim  <erico.erc@gmail.com>

	* debuginfod-client.c (debuginfod_init_cache): Use ACCESSPERMS for
	mkdir, DEFFILEMODE for open with O_CREAT.

2020-11-01  Érico N. Rolim  <erico.erc@gmail.com>

	* debuginfod.cxx: include libintl.h.

2020-11-01  Érico N. Rolim  <erico.erc@gmail.com>

	* Makefile.am (debuginfod_LDADD): Add argp_LDADD and fts_LIBS.
	(debuginfod_find_LDADD): Likewise.
	(libdebuginfod_so_LDLIBS): Add fts_LIBS.

2020-10-31  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod.cxx (scan_source_file, scan_archive_file): Add new scanned_bytes_total,
	scanned_files_total metrics.
	(archive_classify): Exit early if interrupted.
	(scan_source_paths): Perform realpath/regex checks only on FTS_F files.
	Tweak metrics.

2020-10-30  Frank Ch. Eigler  <fche@redhat.com>

	PR26775 cont'd.
	* debuginfod.cxx (thread_main_scanner): Ensure control doesn't
	leave infinite loop until program exit, even if SIGUSR2.
	(scan_source_paths): Have traverser clean scanq on
	SIGUSR2.  Emit additional traversed_total metrics.
	(groom): Emit additional groomed_total metrics.
	(thread_main_groom): Restore previous thread_work_total
	metric.

2020-10-29  Frank Ch. Eigler  <fche@redhat.com>

	PR26775
	* debuginfod.cxx (forced_*_count): Make these global.
	(runq::clear): New function.
	(thread_main_scanner): Check for pending SIGUSR2; interrupt.
	(scan_source_paths): Check for pending SIGUSR2; interrupt.
	(groom): Report prometheus stats before groom also.  Check for
	pending SIGUSR1; interrupt.  Increment thread_work_total for
	each file scanned, not the entire cycle.

2020-10-29  Frank Ch. Eigler  <fche@redhat.com>

	PR26810
	* debuginfod.cxx (handle_buildid_*_match): Throw exceptions for
	more lower level libc errors.
	(handle_buildid_match): Catch & report exceptions but return 0
	for continued iteration in the caller.

2020-10-25  Mark Wielaard  <mark@klomp.org>

	* debuginfod-client.c (debuginfod_query_server): Translate
	CURLE_PEER_FAILED_VERIFICATION to ECONNREFUSED.

2020-10-20  Frank Ch. Eigler  <fche@redhat.com>

	PR26756: more prometheus metrics
	* debuginfod.cxx (*_exception): Add counters for error occurrences.
	(fdcache::*): Add counters for fdcache operations and status.
	(fdcache::set_metric): New fn for overall stat counts.
	(fdcache::limit): ... allow metric-less use from dtors.

2020-10-20  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod.cxx (handle_buildid*): Add a parameter for detecting
	internally-originated lookups for dwz resolution.

2020-09-18  Frank Ch. Eigler <fche@redhat.com>

	* debuginfod.cxx (scan_source_file, archive_classify): Store only
	canonicalized file names in sdef & sref records in the database.

2020-09-08  Mark Wielaard  <mark@klomp.org>

	* Makefile.am (BUILD_STATIC): Include libcurl_LIBS in libdebuginfod
	when NOT DUMMY_LIBDEBUGINFOD.

2020-09-16  Mark Wielaard  <mark@klomp.org>

	* debuginfod-find.c: Fix license block comment.

2020-09-15  Mark Wielaard  <mark@klomp.org>

	* debuginfod-find.c (main): Use dwelf_elf_begin.

2020-07-03  Alice Zhang <alizhang@redhat.com>

	* debuginfod-client.c (debuginfod_query_server): Use strncasecmp
	to compare effective_url. Try CURLINFO_SCHEME as fallback.

2020-06-19  Mark Wielaard  <mark@klomp.org>

	* Makefile.am (bin_PROGRAMS): Guard with DEBUGINFOD and
	LIBDEBUGINFOD.
	(debuginfod_LDADD): Remove libcurl.
	(libdebuginfod): When static and DUMMY_LIBDEBUGINFO remove libcurl.
	(noinst_LIBRARIES): Guard with LIBDEBUGINFOD.
	(AM_CPPFLAGS): Add -Wno-unused-parameter when DUMMY_LIBDEBUGINFOD.
	(pkginclude_headers): Guard with LIBDEBUGINFOD
	(libdebuginfod_so_LIBS): Likewise.
	(+libdebuginfod_so_LDLIBS): Likewise.
	(install): Likewise.
	(uninstall): Likewise.
	* debuginfod-client.c: Include dummy functions when
	DUMMY_LIBDEBUGINFOD.
	* debuginfod.cxx: Remove curl.h include.

2020-06-16  Mark Wielaard  <mark@klomp.org>

	* debuginfod-client.c (debuginfod_query_server): Check malloc.
	Move curl_multi_init call before handle_data malloc call.

2020-06-16  Mark Wielaard  <mark@klomp.org>

	* debuginfod-client.c (debuginfod_query_server): Replace sizeof
	build_id_bytes check with strlen build_id check.

2020-06-16  Mark Wielaard  <mark@klomp.org>

	* debuginfod-client.c (debuginfod_query_server): Increase suffix
	array and prepare having to escape 1 character with 2.

2020-06-16  Mark Wielaard  <mark@klomp.org>

	* debuginfod-client.c (debuginfod_clean_cache): Handle failing
	fopen (interval_path).

2020-03-29  Mark Wielaard  <mark@klomp.org>

	* debuginfod-client.c (debuginfod_add_http_header): Check header
	contains precisely one colon that isn't the first or last char.

2020-03-29  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod-client.c (struct debuginfod_client): Add a flag field
	for progressfn printing.
	(default_progressfn): Set it if printing \rsomething.
	(debuginfod_end): Terminate with \n if flag set, i.e., only if the
	default_progressfn was actually called.

2020-03-27  Mark Wielaard  <mark@klomp.org>

	* debuginfod.cxx (parse_opt): Check port is not zero.

2020-03-28  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod.cxx (handle_buildid_r_match): During archive
	extraction / fdcache prefetching, set the mtime of each
	file in the cache.

2020-03-27  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod-find.c (main): Extract buildid from /binary/ if
	given instead of hex string.
	* Makefile.am: Add elfutils library prereqs for debuginfod-find.

2020-03-24  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod.h, libdebuginfod.map: New functions for _add_url_header.
	* debuginfod-client.c (struct debuginfod_client): Add headers fields.
	(debuginfod_add_http_header): New client api to add outgoing headers.
	(add_default_headers): Renamed from add_extra_headers, skip if flag.
	(debuginfod_query_server): Pass accumulated headers to libcurl.
	(debuginfod_end): Clean accumulated headers.
	(debuginfod_find_*): Add default headers at this point.
	* debuginfod.cxx (handle_buildid): Add conn pointer.  Use it to relay
	incoming UA and XFF headers to federated upstream debuginfods.

2020-03-26  Frank Ch. Eigler <fche@redhat.com>

	* debuginfod.cxx (handler_cb): Export two families of metrics for
	prometheus traffic analysis: response times and data amounts.

2020-03-26  Frank Ch. Eigler <fche@redhat.com>

	* debuginfod.cxx (parse_opt): For -U, prefer dpkg-deb
	after all if access(3)-able, fallback to bsdtar.

2020-03-25  Frank Ch. Eigler <fche@redhat.com>

	* debuginfod.cxx (parse_opt): Associate a bsdtar subshell with
	the .deb & .ddeb extensions, instead of dpkg-deb.

2020-03-26  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod-client.c (debuginfod_query_server): Don't
	set CURLOPT_PATH_AS_IS on old curl.  Mostly harmless.

2020-03-24  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod-client.c (debuginfod_query_server): Set
	CURLOPT_PATH_AS_IS, to propagate file names verbatim.
	* debuginfod.cxx (canon_pathname): Implement RFC3986
	style pathname canonicalization.
	(handle_buildid): Canonicalize incoming webapi source
	paths, accept either one.
	(scan_source_file, archive_classify): Store both
	original and canonicalized dwarf-source file names.

2020-03-24  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod.cxx (handle_buildid): In case of federated fallback
	queries, handle errors analogously to local ENOENT/404.
	(handle_metrics): Return a size-of-response value.
	(handler_cb): Add code to time entire application-side processing
	stage + response sizes + http codes, so as to emit a complete
	httpd-flavoured log line for each webapi request.

2020-03-24  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod-client.c (debuginfod_query_server): Print the
	default_progressfn terminating \n message only if that progressfn
	is actually set.

2020-03-24  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod-find.c (main): Correct /source full-pathness check for
	"debuginfod-find -v source deadbeef /pathname" case.

2020-03-22  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod-client.c (struct debuginfod_client): Add url field.
	(struct handle_data): Add client field as backpointer.
	(debuginfod_write_callback): Compute & save URL.
	(default_progressfn): Print front pieces of the URL.
	(debuginfod_query_server): Clear URL and cleanup after progressfn.
	* debuginfod-find.c (main): Print URL at transfer conclusion.

2020-03-22  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod.h, libdebuginfod.map: New functions for _get/set_user().
	* debuginfod-client.c: Implement them.
	* debuginfod-find.c: Include a token call just for testing them.

2020-03-03  Aaron Merey  <amerey@redhat.com>

	* debuginfod-client.c (debuginfod_query_server): Update
	cache_path even when new default path already exists.

2020-02-27  Aaron Merey  <amerey@redhat.com>

	* debuginfod-client.c (xalloc_str): New macro. Call
	asprintf with error checking.
	(debuginfod_query_server): Use XDG_CACHE_HOME as a default
	cache location if it is set. Replace snprintf with xalloc_str.

2020-02-26  Konrad Kleine <kkleine@redhat.com>

	* debuginfod-client.c (debuginfod_query_server): Handle curl's
	response code correctly when DEBUGINFOD_URLS begin with file://

2020-02-25  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod.cxx (parse_opt): Treat -R as if -Z.rpm .

2020-02-25  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod.cxx (fdcache_prefetch): New parameter.
	(parse_opt): Parse it.
	(main): Default it.
	(fdcache::fd_size_mb): Change to double for accuracy.
	(fdcache::probe): New function.
	(fdcache::intern): New option to intern at end of LRU.
	(fdcache::lookup): Clean fdcache.
	(handle_buildid_r_match): Implement multi-stage archive
	parsing, with optional prefetching of extracted contents
	into the fdcache.

2020-02-19  Aaron Merey  <amerey@redhat.com>

	* debuginfod-client.c (debuginfod_clean_cache): Restrict
	cleanup to client-pattern files.

2020-02-05  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod.cxx (argp options): Add -Z option.
	(canonicalized_archive_entry_pathname): New function for
	distro-agnostic file name matching/storage.

2020-01-22  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod.cxx (dwarf_extract_source_paths): Don't print
	"skipping hat" messages at verbosity <=3, too noisy.

2020-01-19  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod.cxx (scanq): Rework to let groomer/fts threads
	synchronize with an empty workqueue, and lock out workqueue
	consumers.
	(thread_groom): Adopt new scanq idle APIs to lock out scanners.
	(thread_main_fts_source_paths): Adopt new scanq idler API to
	avoid being restarted while scanners haven't even finished yet.
	(thread_main_*): Increment thread_work_total metric only after
	a work cycle is completed, not when it begins.

2020-01-18  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod.cxx (thread_main_scanner): Handle empty source_paths[].

2020-01-11  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod.cxx (libarchive_fdcache): New class/facility to own a
	cache of temporary files that were previously extracted from an
	archive.  If only it could store just unlinked fd's instead of
	filenames.
	(handle_buildid_r_match): Use it to answer dwz/altdebug and webapi
	requests.
	(groom): Clean it.
	(main): Initialize the cache control parameters from heuristics.
	Use a consistent tmpdir for these and tmp files elsewhere.

2020-01-11  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod.cxx (conninfo): Print User-Agent and X-Forwarded-For
	request headers, after mild safety-censorship (for easier machine
	processing).

2020-01-11  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod.cxx: Rework threading model.
	(workq): New class for concurrent work-queue.
	(semaphore): Removed class, now unused.
	(scan_source_file_path): Rework into ...
	(scan_source_file): New function.
	(thread_main_scan_source_file_path): Nuke.
	(scan_source_archive_path): Rework into ...
	(scan_archive_file): New function.
	(thread_main_scanner): New function for scanner threads.
	(thread_main_fts_source_paths): New function for traversal thread.
	(scan_source_paths): ... doing this.
	(thread_groom): Tweak metrics for consistency.
	(main): Start 1 traversal and N scanner threads if needed.

2019-01-02  Mark Wielaard  <mark@klomp.org>

	* debuginfod.cxx (default_connect_timeout): Removed.
	(default_transfer_timeout): Removed.
	(default_timeout): New. Default to 90 seconds.
	(debuginfod_query_server): Parse server_timeout_envvar as one number.
	Set as CURLOPT_LOW_SPEED_TIME, with CURL_OPT_LOW_SPEED_LIMITE as 100K.

2020-01-09  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod-client.c (add_extra_headers): New function,
	based on mjw's draft.
	(debuginfod_query_server): Call it.

2019-12-22  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod.cxx (*_rpm_*): Rename to *_archive_* throughout.
	(scan_archives): New read-mostly global to identify archive
	file extensions and corresponding extractor commands.
	(parse_opt): Handle new -U flag.

2019-12-19  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod-client.c (default_progressfn): New function.
	(debuginfod_begin): Use it if $DEBUGINFOD_PROGRESS set.
	(server_timeout): Bump to 30 seconds.
	(debuginfod_query_server): Call progressfn -after- rather than
	before curl ops, to make it likely that a successful transfer
	results in final a=b call.  Tweak cleanup sequence.
	* debuginfod.h: Document $DEBUGINFOD_PROGRESS name.

2019-12-09  Mark Wielaard  <mark@klomp.org>

	* debuginfod-client.c (debuginfod_query_server): Check
	server_urls_envvar early.

2019-12-03  Mark Wielaard  <mark@klomp.org>

	* debuginfod-client.c (debuginfod_query_server): Use separate
	local variables for CURLcode curl_res and CURLMcode curlm_res.

2019-11-26  Mark Wielaard  <mark@klomp.org>

	* Makefile.am (BUILD_STATIC): Add needed libraries for libdw and
	libdebuginfod.

2019-11-25  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod.cxx (groom): Add a sqlite3_db_release_memory()
	at the end of periodic grooming to try to shrink the process.

2019-11-24  Mark Wielaard  <mark@klomp.org>

	* debuginfod.cxx (test_webapi_sleep): Removed.
	(handler_cb): Don't check test_webapi_sleep and sleep.
	(main): Don't set test_webapi_sleep.

2019-11-24  Mark Wielaard  <mark@klomp.org>

	* debuginfod.cxx (add_metric): New function.
	(scan_source_file_path): Record metrics for
	found_executable_total, found_debuginfo_total and
	found_sourcerefs_total.
	(scan_source_rpm_path): Likewise.

2019-11-07  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod.cxx: Add /metrics endpoint.  Add numerous
	calls to new functions inc_metric/set_metric to populate
	threadsafe map containing stats.  Add http content-type
	response headers throughout.
	(thread_main_*): Simplify counter/timer flow.
	(main): Reorder web service shutdown to leave http running
	as long as possible.
	* debuginfod.8: Document it, add security caution.

2019-11-06  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod.cxx: Add new -L (symlink-following) mode.
	* debuginfod.8: Document it.

2019-11-04  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfo-client.c (debuginfod_set_progressfn): New function
	for progress/interrupt callback.
	(debuginfod_clean_cache, debuginfod_query_server): Call it.
	* debuginfo.h: Declare it.
	* debuginfod_set_progressfn.3, *_find_debuginfo.3: Document it.
	* Makefile.am: Install it.
	* libdebuginfod.map: Export it all under ELFUTILS_0.178 symversion.

	* debuginfod-find.c: Add -v option to activate progress cb.
	* debuginfod-find.1: Document it.
	* debuginfod.cxx: Add $DEBUGINFOD_TEST_WEBAPI_SLEEP env var
	to insert sleep in webapi callbacks, to help manual testing.

2019-10-28  Frank Ch. Eigler  <fche@redhat.com>

	* debuginfod.cxx: New file: debuginfod server.
	* debuginfod.8: New file: man page.
	* Makefile.am: Build it.

2019-10-28  Aaron Merey  <amerey@redhat.com>

	* debuginfod-client.c: New file: debuginfod client library.
	* debuginfod.h: New file: header for same.
	* libdebuginfod.map: New file: govern its solib exports.
	* debuginfod-find.c: New file: command line frontend.
	* debuginfod-find.1, debuginfod_find_source.3,
	debuginfod_find_executable.3, debuginfod_find_debuginfo.3:
	New man pages.
