diff options
author | Werner Koch <[email protected]> | 2017-05-25 18:26:54 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2017-05-25 18:26:54 +0000 |
commit | de3a0988ef9addccd6b5c7950fb8797afbc3978d (patch) | |
tree | 419adb2a59ad71f82002294b09e52ebd82c5fd8d /dirmngr/dns-stuff.c | |
parent | dirmngr: Re-init libdns resolver on towel change of resolv.conf (diff) | |
download | gnupg-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.c | 10 |
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 } |