#
-# Copyright (C) 2006-2012 OpenWrt.org
+# Copyright (C) 2006-2013 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
include $(TOPDIR)/rules.mk
PKG_NAME:=dnsmasq
-PKG_VERSION:=2.62
-PKG_RELEASE:=3
+PKG_VERSION:=2.66
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq
-PKG_MD5SUM:=f47e5cb8f5bac6343f24b2dbe317ab40
+PKG_MD5SUM:=c5eb8fb88847a5e9bf18db67c74efd47
+
+PKG_LICENSE:=GPLv2
+PKG_LICENSE_FILES:=COPYING
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
TARGET_CFLAGS += \
-ffunction-sections -fdata-sections \
- $(if $(CONFIG_IPV6),,-DNO_IPV6)
+ $(if $(CONFIG_IPV6),,-DNO_IPV6) -DNO_IPSET -DNO_AUTH
ifeq ($(BUILD_VARIANT),nodhcpv6)
TARGET_CFLAGS += -DNO_DHCP6
append_bool "$cfg" enable_tftp "--enable-tftp"
append_bool "$cfg" nonwildcard "--bind-interfaces"
append_bool "$cfg" fqdn "--dhcp-fqdn"
+ append_bool "$cfg" proxydnssec "--proxy-dnssec"
append_parm "$cfg" dhcpscript "--dhcp-script"
append_parm "$cfg" cachesize "--cache-size"
config_get ip "$cfg" ip
[ -n "$ip" -o -n "$name" ] || return 0
- macs=""
config_get mac "$cfg" mac
+ [ -z "$mac" ] && {
+ [ -n "$name" ] || return 0
+ mac="$name"
+ name=""
+ }
+
+ macs=""
for m in $mac; do append macs "$m" ","; done
- [ -n "$macs" ] || return 0
config_get tag "$cfg" tag
+++ /dev/null
-From fd05f127909bbf4f6983a4de2dcb611947488dee Mon Sep 17 00:00:00 2001
-From: Simon Kelley <simon@thekelleys.org.uk>
-Date: Sun, 12 Aug 2012 17:48:50 +0100
-Subject: [PATCH] Set prefix on-link bit in RAs
-
----
- CHANGELOG | 3 +++
- src/radv.c | 4 ++--
- 2 files changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/CHANGELOG b/CHANGELOG
-index 8828694..e1daeef 100644
---- a/CHANGELOG
-+++ b/CHANGELOG
-@@ -45,6 +45,9 @@ version 2.63
- uk.org.thekelleys.dnsmasq. Thanks to Mathieu
- Trudel-Lapierre for the patch.
-
-+ Set the "prefix on-link" bit in Router
-+ Advertisements. Thanks to Gui Iribarren for the patch.
-+
-
- version 2.62
- Update German translation. Thanks to Conrad Kostecki.
-diff --git a/src/radv.c b/src/radv.c
-index a3e691a..d1f5268 100644
---- a/src/radv.c
-+++ b/src/radv.c
-@@ -412,8 +412,8 @@ static int add_prefixes(struct in6_addr *local, int prefix,
- opt->type = ICMP6_OPT_PREFIX;
- opt->len = 4;
- opt->prefix_len = prefix;
-- /* autonomous only if we're not doing dhcp */
-- opt->flags = do_slaac ? 0x40 : 0x00;
-+ /* autonomous only if we're not doing dhcp, always set "on-link" */
-+ opt->flags = do_slaac ? 0xC0 : 0x80;
- opt->valid_lifetime = htonl(time);
- opt->preferred_lifetime = htonl(deprecate ? 0 : time);
- opt->reserved = 0;
---
-1.7.10.GIT
-
---- a/src/dhcp.c
-+++ b/src/dhcp.c
-@@ -134,7 +134,7 @@ void dhcp_packet(time_t now, int pxe_fd)
+Index: dnsmasq-2.66/src/dhcp.c
+===================================================================
+--- dnsmasq-2.66.orig/src/dhcp.c 2013-04-17 14:52:49.000000000 +0200
++++ dnsmasq-2.66/src/dhcp.c 2013-04-24 08:24:20.393711625 +0200
+@@ -140,7 +140,7 @@
struct iovec iov;
ssize_t sz;
int iface_index = 0, unicast_dest = 0, is_inform = 0;
struct iface_param parm;
#ifdef HAVE_LINUX_NETWORK
struct arpreq arp_req;
-@@ -246,11 +246,9 @@ void dhcp_packet(time_t now, int pxe_fd)
+@@ -252,11 +252,9 @@
ifr.ifr_addr.sa_family = AF_INET;
if (ioctl(daemon->dhcpfd, SIOCGIFADDR, &ifr) != -1 )
}
for (tmp = daemon->dhcp_except; tmp; tmp = tmp->next)
-@@ -272,7 +270,7 @@ void dhcp_packet(time_t now, int pxe_fd)
+@@ -270,7 +268,7 @@
parm.current = NULL;
parm.ind = iface_index;
-- if (!iface_check(AF_INET, (struct all_addr *)&iface_addr, ifr.ifr_name))
-+ if (!iface_check(AF_INET, (struct all_addr *)addrp, ifr.ifr_name))
+- if (!iface_check(AF_INET, (struct all_addr *)&iface_addr, ifr.ifr_name, NULL))
++ if (!iface_check(AF_INET, (struct all_addr *)addrp, ifr.ifr_name, NULL))
{
/* If we failed to match the primary address of the interface, see if we've got a --listen-address
for a secondary */
-@@ -291,7 +289,13 @@ void dhcp_packet(time_t now, int pxe_fd)
+@@ -289,7 +287,13 @@
there is more than one address on the interface in the same subnet */
complete_context(match.addr, iface_index, match.netmask, match.broadcast, &parm);
}
--- /dev/null
+Index: dnsmasq-2.66/src/ipset.c
+===================================================================
+--- dnsmasq-2.66.orig/src/ipset.c 2013-04-17 14:52:49.000000000 +0200
++++ dnsmasq-2.66/src/ipset.c 2013-04-24 08:25:05.905712707 +0200
+@@ -110,7 +110,7 @@
+ return -1;
+ }
+
+- memset(buffer, 0, sizeof(buffer));
++ memset(buffer, 0, BUFF_SZ);
+
+ nlh = (struct nlmsghdr *)buffer;
+ nlh->nlmsg_len = NL_ALIGN(sizeof(struct nlmsghdr));