dirmngr: Register hkp-cacert even if the file doesn't exist yet
authorDaniel Kahn Gillmor <dkg@fifthhorseman.net>
Thu, 27 Oct 2016 22:30:57 +0000 (18:30 -0400)
committerWerner Koch <wk@gnupg.org>
Thu, 17 Nov 2016 14:29:35 +0000 (15:29 +0100)
commitc4e02a3b7ad6ee1da6bfc439921378bdbd5c029c
treeb848f775a60bc78bc7948db5791e6a98927e2669
parent5210ff70bc79673d14f346297798d8d7bafc8215
dirmngr: Register hkp-cacert even if the file doesn't exist yet

* dirmngr/dirmngr.c (parse_readable_options): If we're unable to turn
an argument for hkp-cacert into an absolute filename, terminate
completely.
* dirmngr/http.c (http_register_tls_ca): Show a warning if file is not
immediately accessible, but register it anyway.

--

Without this changeset, the condition of the filesystem when dirmngr
is initialized will have an effect on later activities of dirmngr.

For example, if a file identified by a hkp-cacert directive doesn't
exist when dirmngr starts, dirmngr will behave as though it simply
didn't have the hkp-cacert directive set at all, even if the file
should appear later.

dirmngr currently behaves differently if no hkp-cacert directives have
been set then it does when at least one hkp-cacert directive has been
set.  For example, its choice of CA cert for
hkps://hkps.pool.sks-keyservers.net depends on whether a TLS CA file
has been registered.  That behavior shouldn't additionally depend on
the state of the filesystem at the time of dirmngr launch.

Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
dirmngr/dirmngr.c
dirmngr/http.c