dirmngr: This towel should better detect a changed resolv.conf.
authorWerner Koch <wk@gnupg.org>
Thu, 25 May 2017 18:26:54 +0000 (20:26 +0200)
committerWerner Koch <wk@gnupg.org>
Thu, 25 May 2017 18:26:54 +0000 (20:26 +0200)
* dirmngr/dns-stuff.c (resolv_conf_changed_p): Fix initialization time
issue.
--

Fixes-commit: b5f356e9fba2d99909f8f54d7b7e6836bed87b68
Signed-off-by: Werner Koch <wk@gnupg.org>
dirmngr/dns-stuff.c

index a8ddbc6..7324aae 100644 (file)
@@ -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
 }