Date: Thursday, June 1, 2017 @ 19:03:12 Author: eworm Revision: 297329
upgpkg: dnsmasq 2.77-1 new upstream release Modified: dnsmasq/trunk/PKGBUILD Deleted: dnsmasq/trunk/0001-Handle-binding-upstream-servers-to-an-interface.patch ------------------------------------------------------------+ 0001-Handle-binding-upstream-servers-to-an-interface.patch | 123 ----------- PKGBUILD | 23 -- 2 files changed, 7 insertions(+), 139 deletions(-) Deleted: 0001-Handle-binding-upstream-servers-to-an-interface.patch =================================================================== --- 0001-Handle-binding-upstream-servers-to-an-interface.patch 2017-06-01 18:59:30 UTC (rev 297328) +++ 0001-Handle-binding-upstream-servers-to-an-interface.patch 2017-06-01 19:03:12 UTC (rev 297329) @@ -1,123 +0,0 @@ -From f7fcfebdbc3c57570d2f6de35f38c72ce6c80143 Mon Sep 17 00:00:00 2001 -From: Christian Hesse <[email protected]> -Date: Wed, 31 Aug 2016 18:42:22 +0200 -Subject: [PATCH 1/1] Handle binding upstream servers to an interface - -upstream commits: - -* 2675f2061525bc954be14988d64384b74aa7bf8b -* 16800ea072dd0cdf14d951c4bb8d2808b3dfe53d - -Signed-off-by: Christian Hesse <[email protected]> ---- - src/dnsmasq.h | 1 + - src/network.c | 32 ++++++++++++++++++++++++++++++-- - 2 files changed, 31 insertions(+), 2 deletions(-) - -diff --git a/src/dnsmasq.h b/src/dnsmasq.h -index 1896a64..aa5ec84 100644 ---- a/src/dnsmasq.h -+++ b/src/dnsmasq.h -@@ -487,6 +487,7 @@ struct serverfd { - int fd; - union mysockaddr source_addr; - char interface[IF_NAMESIZE+1]; -+ unsigned int ifindex, used; - struct serverfd *next; - }; - -diff --git a/src/network.c b/src/network.c -index e7722fd..d87d08f 100644 ---- a/src/network.c -+++ b/src/network.c -@@ -1204,6 +1204,7 @@ int local_bind(int fd, union mysockaddr *addr, char *intname, int is_tcp) - static struct serverfd *allocate_sfd(union mysockaddr *addr, char *intname) - { - struct serverfd *sfd; -+ unsigned int ifindex = 0; - int errsave; - - /* when using random ports, servers which would otherwise use -@@ -1224,11 +1225,15 @@ static struct serverfd *allocate_sfd(union mysockaddr *addr, char *intname) - return NULL; - #endif - } -+ -+ if (intname && strlen(intname) != 0) -+ ifindex = if_nametoindex(intname); /* index == 0 when not binding to an interface */ - - /* may have a suitable one already */ - for (sfd = daemon->sfds; sfd; sfd = sfd->next ) - if (sockaddr_isequal(&sfd->source_addr, addr) && -- strcmp(intname, sfd->interface) == 0) -+ strcmp(intname, sfd->interface) == 0 && -+ ifindex == sfd->ifindex) - return sfd; - - /* need to make a new one. */ -@@ -1250,11 +1255,13 @@ static struct serverfd *allocate_sfd(union mysockaddr *addr, char *intname) - errno = errsave; - return NULL; - } -- -+ - strcpy(sfd->interface, intname); - sfd->source_addr = *addr; - sfd->next = daemon->sfds; -+ sfd->ifindex = ifindex; - daemon->sfds = sfd; -+ - return sfd; - } - -@@ -1429,12 +1436,16 @@ void check_servers(void) - { - struct irec *iface; - struct server *serv; -+ struct serverfd *sfd, *tmp, **up; - int port = 0, count; - - /* interface may be new since startup */ - if (!option_bool(OPT_NOWILD)) - enumerate_interfaces(0); - -+ for (sfd = daemon->sfds; sfd; sfd = sfd->next) -+ sfd->used = 0; -+ - #ifdef HAVE_DNSSEC - /* Disable DNSSEC validation when using server=/domain/.... servers - unless there's a configured trust anchor. */ -@@ -1505,6 +1516,9 @@ void check_servers(void) - serv->flags |= SERV_MARK; - continue; - } -+ -+ if (serv->sfd) -+ serv->sfd->used = 1; - } - - if (!(serv->flags & SERV_NO_REBIND) && !(serv->flags & SERV_LITERAL_ADDRESS)) -@@ -1547,6 +1561,20 @@ void check_servers(void) - if (count - 1 > SERVERS_LOGGED) - my_syslog(LOG_INFO, _("using %d more nameservers"), count - SERVERS_LOGGED - 1); - -+ /* Remove unused sfds */ -+ for (sfd = daemon->sfds, up = &daemon->sfds; sfd; sfd = tmp) -+ { -+ tmp = sfd->next; -+ if (!sfd->used) -+ { -+ *up = sfd->next; -+ close(sfd->fd); -+ free(sfd); -+ } -+ else -+ up = &sfd->next; -+ } -+ - cleanup_servers(); - } - --- -2.9.3 - Modified: PKGBUILD =================================================================== --- PKGBUILD 2017-06-01 18:59:30 UTC (rev 297328) +++ PKGBUILD 2017-06-01 19:03:12 UTC (rev 297329) @@ -4,8 +4,8 @@ # Contributor: Tom Newsom <[email protected]> pkgname=dnsmasq -pkgver=2.76 -pkgrel=4 +pkgver=2.77 +pkgrel=1 pkgdesc="Lightweight, easy to configure DNS forwarder and DHCP server" url="http://www.thekelleys.org.uk/dnsmasq/doc.html" arch=('i686' 'x86_64') @@ -12,26 +12,17 @@ license=('GPL') depends=('glibc' 'gmp' 'libidn' 'libdbus' 'libnetfilter_conntrack' 'nettle') backup=('etc/dnsmasq.conf') +validpgpkeys=('D6EACBD6EE46B834248D111215CDDA6AE19135A2') # Simon Kelley <[email protected]> source=("http://www.thekelleys.org.uk/$pkgname/$pkgname-$pkgver.tar.xz"{,.asc} - '0001-Handle-binding-upstream-servers-to-an-interface.patch' 'dnsmasq-sysusers.conf' 'dnsmasq.service') -md5sums=('00f5ee66b4e4b7f14538bf62ae3c9461' - 'SKIP' - '2d64212b5e69696fc61948f9b86d6999' - '8d07ccf412c107d068ec5cc6964788aa' - 'b87f68013c3e8b4bb37117de968d4603') -validpgpkeys=('269322E7D9255916E0394DD628FC869A289B82B7') # Simon Kelley +sha256sums=('6eac3b1c50ae25170e3ff8c96ddb55236cf45007633fdb8a35b1f3e02f5f8b8a' + 'SKIP' + '7f6ff6a709038ae580758f4b6a754451d7f7ce22957b88a36b97f7b643d3c2ab' + '983a3c7a68ce114cf7b44f0d9c59b74c266647a9e5ac34c1d1d5161610bc57fe') _build_copts="-DHAVE_DNSSEC -DHAVE_DBUS -DHAVE_IDN -DHAVE_CONNTRACK" -prepare() { - cd "$pkgname-$pkgver" - - # Handle binding upstream servers to an interface - patch -Np1 < "$srcdir/0001-Handle-binding-upstream-servers-to-an-interface.patch" -} - build() { cd "$pkgname-$pkgver"
