include $(TOPDIR)/rules.mk
PKG_NAME:=dnsmasq
-PKG_VERSION:=2.73
+PKG_VERSION:=2.74
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq
-PKG_MD5SUM:=b8bfe96d22945c8cf4466826ba9b21bd
+PKG_MD5SUM:=f48cd0fe26a55617a375ffc95b71e3c3
PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=COPYING
struct iface_param parm;
#ifdef HAVE_LINUX_NETWORK
struct arpreq arp_req;
-@@ -272,11 +272,9 @@ void dhcp_packet(time_t now, int pxe_fd)
+@@ -275,11 +275,9 @@ void dhcp_packet(time_t now, int pxe_fd)
{
ifr.ifr_addr.sa_family = AF_INET;
if (ioctl(daemon->dhcpfd, SIOCGIFADDR, &ifr) != -1 )
}
for (tmp = daemon->dhcp_except; tmp; tmp = tmp->next)
-@@ -295,7 +293,7 @@ void dhcp_packet(time_t now, int pxe_fd)
+@@ -298,7 +296,7 @@ void dhcp_packet(time_t now, int pxe_fd)
parm.relay_local.s_addr = 0;
parm.ind = iface_index;
{
/* If we failed to match the primary address of the interface, see if we've got a --listen-address
for a secondary */
-@@ -315,6 +313,12 @@ void dhcp_packet(time_t now, int pxe_fd)
+@@ -318,6 +316,12 @@ void dhcp_packet(time_t now, int pxe_fd)
complete_context(match.addr, iface_index, NULL, match.netmask, match.broadcast, &parm);
}
--- 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);