dnsmasq: Bump to dnsmasq2.74
[openwrt/openwrt.git] / package / network / services / dnsmasq / patches / 210-dnssec-improve-timestamp-heuristic.patch
index 97dfe3bdbff4330f7ee3bfe484c8f9b526f9224b..81fbf185b109752bfe877d45879eac8001754a09 100644 (file)
@@ -10,35 +10,33 @@ Signed-off-by: Steven Barth <steven@midlink.org>
 
 --- a/src/dnssec.c
 +++ b/src/dnssec.c
-@@ -432,17 +432,24 @@ static int back_to_the_future;
+@@ -429,17 +429,24 @@ static time_t timestamp_time;
  int setup_timestamp(void)
  {
    struct stat statbuf;
--  
 +  time_t now;
 +  time_t base = 1420070400; /* 1-1-2015 */
-+
-   back_to_the_future = 0;
+   
+   daemon->back_to_the_future = 0;
    
    if (!daemon->timestamp_file)
      return 0;
--  
 +
 +  now = time(NULL);
 +
 +  if (!stat("/proc/self/exe", &statbuf) && difftime(statbuf.st_mtime, base) > 0)
 +    base = statbuf.st_mtime;
-+
+   
    if (stat(daemon->timestamp_file, &statbuf) != -1)
      {
        timestamp_time = statbuf.st_mtime;
      check_and_exit:
 -      if (difftime(timestamp_time, time(0)) <=  0)
-+      if (difftime(now, base) >= 0 && difftime(timestamp_time, now) <=  0)
++      if (difftime(now, base) >= 0 && difftime(timestamp_time, now) <= 0)
        {
          /* time already OK, update timestamp, and do key checking from the start. */
          if (utime(daemon->timestamp_file, NULL) == -1)
-@@ -463,7 +470,7 @@ int setup_timestamp(void)
+@@ -460,7 +467,7 @@ int setup_timestamp(void)
  
          close(fd);