From 6df56349ef49dbcfb41842c8b9978d80b6ce144c Mon Sep 17 00:00:00 2001 From: Tomas Hozza Date: Dec 05 2012 15:00:56 +0000 Subject: New version 2.64 - Merged patches dropped Signed-off-by: Tomas Hozza --- diff --git a/.gitignore b/.gitignore index c531789..46e1f08 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ dnsmasq-2.52.tar.lzma /dnsmasq-2.58.tar.lzma /dnsmasq-2.59.tar.lzma /dnsmasq-2.63.tar.gz +/dnsmasq-2.64.tar.gz diff --git a/dnsmasq-2.63-dhcp6-access-control.patch b/dnsmasq-2.63-dhcp6-access-control.patch deleted file mode 100644 index 87e900d..0000000 --- a/dnsmasq-2.63-dhcp6-access-control.patch +++ /dev/null @@ -1,91 +0,0 @@ -diff --git a/src/dhcp6.c b/src/dhcp6.c -index 718a262..5525ca5 100644 ---- a/src/dhcp6.c -+++ b/src/dhcp6.c -@@ -21,7 +21,7 @@ - struct iface_param { - struct dhcp_context *current; - struct in6_addr fallback; -- int ind; -+ int ind, addr_match; - }; - - static int complete_context6(struct in6_addr *local, int prefix, -@@ -87,7 +87,6 @@ void dhcp6_packet(time_t now) - char control6[CMSG_SPACE(sizeof(struct in6_pktinfo))]; - } control_u; - struct sockaddr_in6 from; -- struct all_addr dest; - ssize_t sz; - struct ifreq ifr; - struct iname *tmp; -@@ -114,15 +113,15 @@ void dhcp6_packet(time_t now) - p.c = CMSG_DATA(cmptr); - - if_index = p.p->ipi6_ifindex; -- dest.addr.addr6 = p.p->ipi6_addr; - } - - if (!indextoname(daemon->dhcp6fd, if_index, ifr.ifr_name)) - return; - -- if (!iface_check(AF_INET6, (struct all_addr *)&dest, ifr.ifr_name)) -- return; -- -+ for (tmp = daemon->if_except; tmp; tmp = tmp->next) -+ if (tmp->name && (strcmp(tmp->name, ifr.ifr_name) == 0)) -+ return; -+ - for (tmp = daemon->dhcp_except; tmp; tmp = tmp->next) - if (tmp->name && (strcmp(tmp->name, ifr.ifr_name) == 0)) - return; -@@ -136,11 +135,23 @@ void dhcp6_packet(time_t now) - - parm.current = NULL; - parm.ind = if_index; -+ parm.addr_match = 0; - memset(&parm.fallback, 0, IN6ADDRSZ); - - if (!iface_enumerate(AF_INET6, &parm, complete_context6)) - return; - -+ if (daemon->if_names || daemon->if_addrs) -+ { -+ -+ for (tmp = daemon->if_names; tmp; tmp = tmp->next) -+ if (tmp->name && (strcmp(tmp->name, ifr.ifr_name) == 0)) -+ break; -+ -+ if (!tmp && !parm.addr_match) -+ return; -+ } -+ - lease_prune(NULL, now); /* lose any expired leases */ - - port = dhcp6_reply(parm.current, if_index, ifr.ifr_name, &parm.fallback, -@@ -167,15 +178,23 @@ static int complete_context6(struct in6_addr *local, int prefix, - { - struct dhcp_context *context; - struct iface_param *param = vparam; -- -+ struct iname *tmp; -+ - (void)scope; /* warning */ - (void)dad; -- -+ - if (if_index == param->ind && - !IN6_IS_ADDR_LOOPBACK(local) && - !IN6_IS_ADDR_LINKLOCAL(local) && - !IN6_IS_ADDR_MULTICAST(local)) - { -+ /* if we have --listen-address config, see if the -+ arrival interface has a matching address. */ -+ for (tmp = daemon->if_addrs; tmp; tmp = tmp->next) -+ if (tmp->addr.sa.sa_family == AF_INET6 && -+ IN6_ARE_ADDR_EQUAL(&tmp->addr.in6.sin6_addr, local)) -+ param->addr_match = 1; -+ - /* Determine a globally address on the arrival interface, even - if we have no matching dhcp-context, because we're only - allocating on remote subnets via relays. This diff --git a/dnsmasq-2.63-ip6-reuseaddr.patch b/dnsmasq-2.63-ip6-reuseaddr.patch deleted file mode 100644 index af2f043..0000000 --- a/dnsmasq-2.63-ip6-reuseaddr.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff -urp dnsmasq-2.63-orig/src/dhcp6.c dnsmasq-2.63/src/dhcp6.c ---- dnsmasq-2.63-orig/src/dhcp6.c 2012-08-16 09:04:05.000000000 -0400 -+++ dnsmasq-2.63/src/dhcp6.c 2012-11-03 07:55:39.293006824 -0400 -@@ -36,15 +36,31 @@ void dhcp6_init(void) - #if defined(IPV6_TCLASS) && defined(IPTOS_CLASS_CS6) - int class = IPTOS_CLASS_CS6; - #endif -- -+ int oneopt = 1; -+ - if ((fd = socket(PF_INET6, SOCK_DGRAM, IPPROTO_UDP)) == -1 || - #if defined(IPV6_TCLASS) && defined(IPTOS_CLASS_CS6) - setsockopt(fd, IPPROTO_IPV6, IPV6_TCLASS, &class, sizeof(class)) == -1 || - #endif -+ setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, &oneopt, sizeof(oneopt)) == -1 || - !fix_fd(fd) || - !set_ipv6pktinfo(fd)) - die (_("cannot create DHCPv6 socket: %s"), NULL, EC_BADNET); - -+ /* When bind-interfaces is set, there might be more than one dnmsasq -+ instance binding port 547. That's OK if they serve different networks. -+ Need to set REUSEADDR to make this posible, or REUSEPORT on *BSD. */ -+ if (option_bool(OPT_NOWILD) || option_bool(OPT_CLEVERBIND)) -+ { -+#ifdef SO_REUSEPORT -+ int rc = setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &oneopt, sizeof(oneopt)); -+#else -+ int rc = setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &oneopt, sizeof(oneopt)); -+#endif -+ if (rc == -1) -+ die(_("failed to set SO_REUSE{ADDR|PORT} on DHCPv6 socket: %s"), NULL, EC_BADNET); -+ } -+ - memset(&saddr, 0, sizeof(saddr)); - #ifdef HAVE_SOCKADDR_SA_LEN - saddr.sin6_len = sizeof(struct sockaddr_in6); diff --git a/dnsmasq.spec b/dnsmasq.spec index 56a839c..a156d4b 100644 --- a/dnsmasq.spec +++ b/dnsmasq.spec @@ -10,8 +10,8 @@ %endif Name: dnsmasq -Version: 2.63 -Release: 4%{?extraversion}%{?dist} +Version: 2.64 +Release: 1%{?extraversion}%{?dist} Summary: A lightweight DHCP/caching DNS server Group: System Environment/Daemons @@ -20,9 +20,6 @@ URL: http://www.thekelleys.org.uk/dnsmasq/ Source0: http://www.thekelleys.org.uk/dnsmasq/%{?extrapath}%{name}-%{version}%{?extraversion}.tar.gz Source1: %{name}.service -Patch0: dnsmasq-2.63-ip6-reuseaddr.patch -Patch1: dnsmasq-2.63-dhcp6-access-control.patch - BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: dbus-devel @@ -56,9 +53,6 @@ query/remove a DHCP server's leases. %prep %setup -q -n %{name}-%{version}%{?extraversion} -%patch0 -p1 -b .ip6_reuseaddr -%patch1 -p1 -b .dhcp6_access_ctrl - # use /var/lib/dnsmasq instead of /var/lib/misc for file in dnsmasq.conf.example man/dnsmasq.8 man/es/dnsmasq.8 src/config.h; do sed -i 's|/var/lib/misc/dnsmasq.leases|/var/lib/dnsmasq/dnsmasq.leases|g' "$file" @@ -137,6 +131,10 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man1/dhcp_* %changelog +* Wed Dec 05 2012 Tomas Hozza - 2.64-1 +- New version 2.64 +- Merged patches dropped + * Tue Nov 20 2012 Tomas Hozza - 2.63-4 - Remove EnvironmentFile from service file (#878343) diff --git a/sources b/sources index caa61a2..99abe27 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -43e771997615ebcd8f6c6ffa60c3e40b dnsmasq-2.63.tar.gz +60adb8e01960a41ce67e0422c4cf9ab3 dnsmasq-2.64.tar.gz