dnsmasq: bump to dnsmasq v2.77test4
--bogus-priv now applies to IPv6 prefixes as specified in RFC6303 - this is significantly friendlier to upstream servers. CNAME fix in auth mode - A domain can only have a CNAME if it has no other records Drop 2 patches now included upstream. Compile & run tested Archer C7 v2 Signed-off-by: Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk>
This commit is contained in:
parent
19720a6f03
commit
2c8cb0c572
3 changed files with 2 additions and 217 deletions
|
@ -8,12 +8,12 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=dnsmasq
|
PKG_NAME:=dnsmasq
|
||||||
PKG_VERSION:=2.77test3
|
PKG_VERSION:=2.77test4
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||||
PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq/test-releases
|
PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq/test-releases
|
||||||
PKG_HASH:=a5cd2b78048c0b16a9cbd2486430039c7d91b958c395edf3233cd9ae1a9eb8c1
|
PKG_HASH:=d71f52b54b876f8b30418cd9c8d5926a2f294aa8347ee41992da3762d14b3c51
|
||||||
|
|
||||||
PKG_LICENSE:=GPL-2.0
|
PKG_LICENSE:=GPL-2.0
|
||||||
PKG_LICENSE_FILES:=COPYING
|
PKG_LICENSE_FILES:=COPYING
|
||||||
|
|
|
@ -1,83 +0,0 @@
|
||||||
From 3e2496fb16fb78cb95fffdac80f967310a34b1fa Mon Sep 17 00:00:00 2001
|
|
||||||
From: Hannu Nyman <hannu.nyman@iki.fi>
|
|
||||||
Date: Sat, 11 Feb 2017 13:44:08 +0000
|
|
||||||
Subject: [PATCH] Decrease the number of individual sites listed in log.
|
|
||||||
|
|
||||||
By default 30 first servers are listed individually to system log, and
|
|
||||||
then a count of the remaining items. With e.g. a NXDOMAIN based adblock
|
|
||||||
service, dnsmasq lists 30 unnecessary ad sites every time when dnsmasq
|
|
||||||
evaluates the list. But the actual nameservers in use are evaluated last
|
|
||||||
and are not displayed as they get included in the "remaining items" total.
|
|
||||||
|
|
||||||
Handle the "local addresses only" separately and list only a few of them.
|
|
||||||
Remove the "local addresses only" from the general count.
|
|
||||||
---
|
|
||||||
CHANGELOG | 4 ++++
|
|
||||||
src/config.h | 1 +
|
|
||||||
src/network.c | 9 ++++++++-
|
|
||||||
3 files changed, 13 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/CHANGELOG b/CHANGELOG
|
|
||||||
index 788aaf9..f7f5125 100644
|
|
||||||
--- a/CHANGELOG
|
|
||||||
+++ b/CHANGELOG
|
|
||||||
@@ -69,6 +69,10 @@ version 2.77
|
|
||||||
servers. Specifically, be prepared to open a new TCP
|
|
||||||
connection when we want to make multiple queries
|
|
||||||
but the upstream server accepts fewer queries per connection.
|
|
||||||
+
|
|
||||||
+ Improve logging of upstream servers when there are a lot
|
|
||||||
+ of "local addresses only" entries. Thanks to Hannu Nyman for
|
|
||||||
+ the patch.
|
|
||||||
|
|
||||||
|
|
||||||
version 2.76
|
|
||||||
diff --git a/src/config.h b/src/config.h
|
|
||||||
index be9cf05..cf527b3 100644
|
|
||||||
--- a/src/config.h
|
|
||||||
+++ b/src/config.h
|
|
||||||
@@ -27,6 +27,7 @@
|
|
||||||
#define FORWARD_TEST 50 /* try all servers every 50 queries */
|
|
||||||
#define FORWARD_TIME 20 /* or 20 seconds */
|
|
||||||
#define SERVERS_LOGGED 30 /* Only log this many servers when logging state */
|
|
||||||
+#define LOCALS_LOGGED 8 /* Only log this many local addresses when logging state */
|
|
||||||
#define RANDOM_SOCKS 64 /* max simultaneous random ports */
|
|
||||||
#define LEASE_RETRY 60 /* on error, retry writing leasefile after LEASE_RETRY seconds */
|
|
||||||
#define CACHESIZ 150 /* default cache size */
|
|
||||||
diff --git a/src/network.c b/src/network.c
|
|
||||||
index 770558a..eb41624 100644
|
|
||||||
--- a/src/network.c
|
|
||||||
+++ b/src/network.c
|
|
||||||
@@ -1438,6 +1438,7 @@ void check_servers(void)
|
|
||||||
struct server *serv;
|
|
||||||
struct serverfd *sfd, *tmp, **up;
|
|
||||||
int port = 0, count;
|
|
||||||
+ int locals = 0;
|
|
||||||
|
|
||||||
/* interface may be new since startup */
|
|
||||||
if (!option_bool(OPT_NOWILD))
|
|
||||||
@@ -1541,7 +1542,11 @@ void check_servers(void)
|
|
||||||
s1 = _("domain"), s2 = serv->domain;
|
|
||||||
|
|
||||||
if (serv->flags & SERV_NO_ADDR)
|
|
||||||
- my_syslog(LOG_INFO, _("using local addresses only for %s %s"), s1, s2);
|
|
||||||
+ {
|
|
||||||
+ count--;
|
|
||||||
+ if (++locals <= LOCALS_LOGGED)
|
|
||||||
+ my_syslog(LOG_INFO, _("using local addresses only for %s %s"), s1, s2);
|
|
||||||
+ }
|
|
||||||
else if (serv->flags & SERV_USE_RESOLV)
|
|
||||||
my_syslog(LOG_INFO, _("using standard nameservers for %s %s"), s1, s2);
|
|
||||||
else
|
|
||||||
@@ -1558,6 +1563,8 @@ void check_servers(void)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if (locals > LOCALS_LOGGED)
|
|
||||||
+ my_syslog(LOG_INFO, _("using %d more local addresses"), locals - LOCALS_LOGGED);
|
|
||||||
if (count - 1 > SERVERS_LOGGED)
|
|
||||||
my_syslog(LOG_INFO, _("using %d more nameservers"), count - SERVERS_LOGGED - 1);
|
|
||||||
|
|
||||||
--
|
|
||||||
1.7.10.4
|
|
||||||
|
|
|
@ -1,132 +0,0 @@
|
||||||
From 88a77a78ad27adc3ed87b7ee603643d26cb896ee Mon Sep 17 00:00:00 2001
|
|
||||||
From: Simon Kelley <simon@thekelleys.org.uk>
|
|
||||||
Date: Sat, 11 Feb 2017 17:02:02 +0000
|
|
||||||
Subject: [PATCH] Implement RFC-6842 (Client-ids in DHCP replies.)
|
|
||||||
|
|
||||||
---
|
|
||||||
CHANGELOG | 5 ++++-
|
|
||||||
src/rfc2131.c | 33 ++++++++++++++++++++++-----------
|
|
||||||
2 files changed, 26 insertions(+), 12 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/CHANGELOG b/CHANGELOG
|
|
||||||
index f7f5125..a4ee280 100644
|
|
||||||
--- a/CHANGELOG
|
|
||||||
+++ b/CHANGELOG
|
|
||||||
@@ -74,7 +74,10 @@ version 2.77
|
|
||||||
of "local addresses only" entries. Thanks to Hannu Nyman for
|
|
||||||
the patch.
|
|
||||||
|
|
||||||
-
|
|
||||||
+ Implement RFC 6842. Thanks to Reddeiah Raju Konduru for
|
|
||||||
+ pointing out that this was missing.
|
|
||||||
+
|
|
||||||
+
|
|
||||||
version 2.76
|
|
||||||
Include 0.0.0.0/8 in DNS rebind checks. This range
|
|
||||||
translates to hosts on the local network, or, at
|
|
||||||
diff --git a/src/rfc2131.c b/src/rfc2131.c
|
|
||||||
index 978c8dc..3e97402 100644
|
|
||||||
--- a/src/rfc2131.c
|
|
||||||
+++ b/src/rfc2131.c
|
|
||||||
@@ -38,7 +38,7 @@ static void log_packet(char *type, void *addr, unsigned char *ext_mac,
|
|
||||||
static unsigned char *option_find(struct dhcp_packet *mess, size_t size, int opt_type, int minsize);
|
|
||||||
static unsigned char *option_find1(unsigned char *p, unsigned char *end, int opt, int minsize);
|
|
||||||
static size_t dhcp_packet_size(struct dhcp_packet *mess, unsigned char *agent_id, unsigned char *real_end);
|
|
||||||
-static void clear_packet(struct dhcp_packet *mess, unsigned char *end);
|
|
||||||
+static void clear_packet(struct dhcp_packet *mess, unsigned char *end, unsigned int sz);
|
|
||||||
static int in_list(unsigned char *list, int opt);
|
|
||||||
static void do_options(struct dhcp_context *context,
|
|
||||||
struct dhcp_packet *mess,
|
|
||||||
@@ -611,7 +611,7 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
|
|
||||||
now);
|
|
||||||
lease_set_interface(lease, int_index, now);
|
|
||||||
|
|
||||||
- clear_packet(mess, end);
|
|
||||||
+ clear_packet(mess, end, 0);
|
|
||||||
do_options(context, mess, end, NULL, hostname, get_domain(mess->yiaddr),
|
|
||||||
netid, subnet_addr, 0, 0, -1, NULL, vendor_class_len, now, 0xffffffff, 0);
|
|
||||||
}
|
|
||||||
@@ -814,7 +814,7 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
|
|
||||||
if (!service || !service->basename || !context)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
- clear_packet(mess, end);
|
|
||||||
+ clear_packet(mess, end, sz);
|
|
||||||
|
|
||||||
mess->yiaddr = mess->ciaddr;
|
|
||||||
mess->ciaddr.s_addr = 0;
|
|
||||||
@@ -882,7 +882,7 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
|
|
||||||
mess->flags |= htons(0x8000); /* broadcast */
|
|
||||||
}
|
|
||||||
|
|
||||||
- clear_packet(mess, end);
|
|
||||||
+ clear_packet(mess, end, sz);
|
|
||||||
|
|
||||||
/* Redirect EFI clients to port 4011 */
|
|
||||||
if (pxearch >= 6)
|
|
||||||
@@ -1062,7 +1062,7 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
|
|
||||||
log_packet("DHCPOFFER" , &mess->yiaddr, emac, emac_len, iface_name, NULL, NULL, mess->xid);
|
|
||||||
|
|
||||||
time = calc_time(context, config, option_find(mess, sz, OPTION_LEASE_TIME, 4));
|
|
||||||
- clear_packet(mess, end);
|
|
||||||
+ clear_packet(mess, end, sz);
|
|
||||||
option_put(mess, end, OPTION_MESSAGE_TYPE, 1, DHCPOFFER);
|
|
||||||
option_put(mess, end, OPTION_SERVER_IDENTIFIER, INADDRSZ, ntohl(server_id(context, override, fallback).s_addr));
|
|
||||||
option_put(mess, end, OPTION_LEASE_TIME, 4, time);
|
|
||||||
@@ -1245,7 +1245,7 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
|
|
||||||
log_packet("DHCPNAK", &mess->yiaddr, emac, emac_len, iface_name, NULL, message, mess->xid);
|
|
||||||
|
|
||||||
mess->yiaddr.s_addr = 0;
|
|
||||||
- clear_packet(mess, end);
|
|
||||||
+ clear_packet(mess, end, sz);
|
|
||||||
option_put(mess, end, OPTION_MESSAGE_TYPE, 1, DHCPNAK);
|
|
||||||
option_put(mess, end, OPTION_SERVER_IDENTIFIER, INADDRSZ, ntohl(server_id(context, override, fallback).s_addr));
|
|
||||||
option_put_string(mess, end, OPTION_MESSAGE, message, borken_opt);
|
|
||||||
@@ -1401,7 +1401,7 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
|
|
||||||
|
|
||||||
log_packet("DHCPACK", &mess->yiaddr, emac, emac_len, iface_name, hostname, NULL, mess->xid);
|
|
||||||
|
|
||||||
- clear_packet(mess, end);
|
|
||||||
+ clear_packet(mess, end, sz);
|
|
||||||
option_put(mess, end, OPTION_MESSAGE_TYPE, 1, DHCPACK);
|
|
||||||
option_put(mess, end, OPTION_SERVER_IDENTIFIER, INADDRSZ, ntohl(server_id(context, override, fallback).s_addr));
|
|
||||||
option_put(mess, end, OPTION_LEASE_TIME, 4, time);
|
|
||||||
@@ -1452,7 +1452,7 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
|
|
||||||
override = lease->override;
|
|
||||||
}
|
|
||||||
|
|
||||||
- clear_packet(mess, end);
|
|
||||||
+ clear_packet(mess, end, sz);
|
|
||||||
option_put(mess, end, OPTION_MESSAGE_TYPE, 1, DHCPACK);
|
|
||||||
option_put(mess, end, OPTION_SERVER_IDENTIFIER, INADDRSZ, ntohl(server_id(context, override, fallback).s_addr));
|
|
||||||
|
|
||||||
@@ -2180,12 +2180,23 @@ static struct dhcp_opt *pxe_opts(int pxe_arch, struct dhcp_netid *netid, struct
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
-
|
|
||||||
-static void clear_packet(struct dhcp_packet *mess, unsigned char *end)
|
|
||||||
+
|
|
||||||
+static void clear_packet(struct dhcp_packet *mess, unsigned char *end, unsigned int sz)
|
|
||||||
{
|
|
||||||
+ unsigned char *opt;
|
|
||||||
+ unsigned int clid_tot = 0;
|
|
||||||
+
|
|
||||||
+ /* If sz is non-zero, save any client-id option by copying it as the first
|
|
||||||
+ option in the new packet */
|
|
||||||
+ if (sz != 0 && (opt = option_find(mess, sz, OPTION_CLIENT_ID, 1)))
|
|
||||||
+ {
|
|
||||||
+ clid_tot = option_len(opt) + 2u;
|
|
||||||
+ memmove(&mess->options[0] + sizeof(u32), opt, clid_tot);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
memset(mess->sname, 0, sizeof(mess->sname));
|
|
||||||
memset(mess->file, 0, sizeof(mess->file));
|
|
||||||
- memset(&mess->options[0] + sizeof(u32), 0, end - (&mess->options[0] + sizeof(u32)));
|
|
||||||
+ memset(&mess->options[0] + sizeof(u32) + clid_tot, 0, end - (&mess->options[0] + sizeof(u32) + clid_tot));
|
|
||||||
mess->siaddr.s_addr = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
--
|
|
||||||
1.7.10.4
|
|
||||||
|
|
Loading…
Reference in a new issue