aboutsummaryrefslogtreecommitdiffstats
path: root/dirmngr/dns-stuff.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2017-05-25 18:26:54 +0000
committerWerner Koch <[email protected]>2017-05-25 18:26:54 +0000
commitde3a0988ef9addccd6b5c7950fb8797afbc3978d (patch)
tree419adb2a59ad71f82002294b09e52ebd82c5fd8d /dirmngr/dns-stuff.c
parentdirmngr: Re-init libdns resolver on towel change of resolv.conf (diff)
downloadgnupg-de3a0988ef9addccd6b5c7950fb8797afbc3978d.tar.gz
gnupg-de3a0988ef9addccd6b5c7950fb8797afbc3978d.zip
dirmngr: This towel should better detect a changed resolv.conf.
* dirmngr/dns-stuff.c (resolv_conf_changed_p): Fix initialization time issue. -- Fixes-commit: b5f356e9fba2d99909f8f54d7b7e6836bed87b68 Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'dirmngr/dns-stuff.c')
-rw-r--r--dirmngr/dns-stuff.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/dirmngr/dns-stuff.c b/dirmngr/dns-stuff.c
index a8ddbc64e..7324aae46 100644
--- a/dirmngr/dns-stuff.c
+++ b/dirmngr/dns-stuff.c
@@ -407,21 +407,23 @@ resolv_conf_changed_p (void)
static time_t last_mtime;
const char *fname = RESOLV_CONF_NAME;
struct stat statbuf;
- int changed;
+ int changed = 0;
if (stat (fname, &statbuf))
{
log_error ("stat'ing '%s' failed: %s\n",
fname, gpg_strerror (gpg_error_from_syserror ()));
- changed = 0;
last_mtime = 1; /* Force a "changed" result the next time stat
* works. */
}
- else
+ else if (!last_mtime)
+ last_mtime = statbuf.st_mtime;
+ else if (last_mtime != statbuf.st_mtime)
{
- changed = last_mtime && (last_mtime != statbuf.st_mtime);
+ changed = 1;
last_mtime = statbuf.st_mtime;
}
+
return changed;
#endif
}