]> git.ipfire.org Git - ipfire-2.x.git/commitdiff
dnsmasq: Import patches from upstream
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 20 May 2015 21:35:38 +0000 (23:35 +0200)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 20 May 2015 21:35:38 +0000 (23:35 +0200)
98 files changed:
src/patches/dnsmasq/0001-Add-newline-at-the-end-of-example-config-file.patch
src/patches/dnsmasq/0002-crash-at-startup-when-an-empty-suffix-is-supplied-to.patch
src/patches/dnsmasq/0003-Debian-build-fixes-for-kFreeBSD.patch
src/patches/dnsmasq/0004-Set-conntrack-mark-before-connect-call.patch
src/patches/dnsmasq/0005-Fix-typo-in-new-Dbus-code.patch
src/patches/dnsmasq/0006-Fit-example-conf-file-typo.patch
src/patches/dnsmasq/0007-Improve-RFC-compliance-when-unable-to-supply-address.patch
src/patches/dnsmasq/0008-Fix-conntrack-with-bind-interfaces.patch
src/patches/dnsmasq/0009-Use-inotify-instead-of-polling-on-Linux.patch
src/patches/dnsmasq/0010-Teach-the-new-inotify-code-about-symlinks.patch
src/patches/dnsmasq/0011-Remove-floor-on-EDNS0-packet-size-with-DNSSEC.patch
src/patches/dnsmasq/0012-CHANGELOG-re.-inotify.patch
src/patches/dnsmasq/0013-Fix-breakage-of-domain-domain-subnet-local.patch
src/patches/dnsmasq/0014-Remove-redundant-IN6_IS_ADDR_ULA-a-macro-defn.patch
src/patches/dnsmasq/0015-Eliminate-IPv6-privacy-addresses-from-interface-name.patch
src/patches/dnsmasq/0016-Tweak-field-width-in-cache-dump-to-avoid-truncating-.patch
src/patches/dnsmasq/0017-Fix-crash-in-DNSSEC-code-when-attempting-to-verify-l.patch
src/patches/dnsmasq/0018-Make-caching-work-for-CNAMEs-pointing-to-A-AAAA-reco.patch
src/patches/dnsmasq/0019-Fix-problems-validating-NSEC3-and-wildcards.patch
src/patches/dnsmasq/0020-Initialise-return-value.patch
src/patches/dnsmasq/0021-Add-ignore-address-option.patch
src/patches/dnsmasq/0022-Bad-packet-protection.patch
src/patches/dnsmasq/0023-Fix-build-failure-in-new-inotify-code-on-BSD.patch
src/patches/dnsmasq/0024-Implement-makefile-dependencies-on-COPTS-variable.patch
src/patches/dnsmasq/0025-Fix-race-condition-issue-in-makefile.patch
src/patches/dnsmasq/0026-DNSSEC-do-top-down-search-for-limit-of-secure-delega.patch
src/patches/dnsmasq/0027-Add-log-queries-extra-option-for-more-complete-loggi.patch
src/patches/dnsmasq/0028-Add-min-cache-ttl-option.patch
src/patches/dnsmasq/0029-Log-port-of-requestor-when-doing-extra-logging.patch
src/patches/dnsmasq/0030-Don-t-answer-from-cache-RRsets-from-wildcards-as-we-.patch
src/patches/dnsmasq/0031-Logs-for-DS-records-consistent.patch
src/patches/dnsmasq/0032-Cope-with-multiple-interfaces-with-the-same-LL-addre.patch
src/patches/dnsmasq/0033-Don-t-treat-SERVFAIL-as-a-recoverable-error.patch
src/patches/dnsmasq/0034-Add-dhcp-hostsdir-config-option.patch
src/patches/dnsmasq/0035-Update-German-translation.patch
src/patches/dnsmasq/0036-Don-t-reply-to-DHCPv6-SOLICIT-messages-when-not-conf.patch
src/patches/dnsmasq/0037-Allow-inotify-to-be-disabled-at-compile-time-on-Linu.patch
src/patches/dnsmasq/0038-Expand-inotify-code-to-dhcp-hostsdir-dhcp-optsdir-an.patch
src/patches/dnsmasq/0039-Update-copyrights-for-dawn-of-2015.patch
src/patches/dnsmasq/0040-inotify-documentation-updates.patch
src/patches/dnsmasq/0041-Fix-broken-ECDSA-DNSSEC-signatures.patch
src/patches/dnsmasq/0042-BSD-make-support.patch
src/patches/dnsmasq/0043-Fix-build-failure-on-openBSD.patch
src/patches/dnsmasq/0044-Manpage-typo-fix.patch
src/patches/dnsmasq/0045-Fixup-dhcp-configs-after-reading-extra-hostfiles-wit.patch
src/patches/dnsmasq/0046-Extra-logging-for-inotify-code.patch
src/patches/dnsmasq/0047-man-page-typo.patch
src/patches/dnsmasq/0048-Fix-get-version-script-which-returned-wrong-tag-in-s.patch
src/patches/dnsmasq/0049-Typos.patch
src/patches/dnsmasq/0050-Make-dynamic-hosts-files-work-when-no-hosts-set.patch
src/patches/dnsmasq/0051-Fix-trivial-memory-leaks-to-quieten-valgrind.patch
src/patches/dnsmasq/0052-Fix-uninitialized-value-used-in-get_client_mac.patch
src/patches/dnsmasq/0053-Log-parsing-utils-in-contrib-reverse-dns.patch
src/patches/dnsmasq/0054-Add-dnssec-timestamp-option-and-facility.patch
src/patches/dnsmasq/0055-Fix-last-commit-to-not-crash-if-uid-changing-not-con.patch
src/patches/dnsmasq/0056-New-version-of-contrib-reverse-dns.patch
src/patches/dnsmasq/0057-Tweak-DNSSEC-timestamp-code-to-create-file-later-rem.patch
src/patches/dnsmasq/0058-Fix-boilerplate-code-for-re-running-system-calls-on-.patch
src/patches/dnsmasq/0059-Make-address-example.com-equivalent-to-server-exampl.patch
src/patches/dnsmasq/0060-dhcp-set-outbound-interface-via-cmsg-in-unicast-repl.patch
src/patches/dnsmasq/0061-Don-t-fail-DNSSEC-when-a-signed-CNAME-dangles-into-a.patch
src/patches/dnsmasq/0062-Return-SERVFAIL-when-validation-abandoned.patch
src/patches/dnsmasq/0063-Protect-against-broken-DNSSEC-upstreams.patch
src/patches/dnsmasq/0064-DNSSEC-fix-for-non-ascii-characters-in-labels.patch
src/patches/dnsmasq/0065-Allow-control-characters-in-names-in-the-cache-handl.patch
src/patches/dnsmasq/0066-Fix-crash-in-last-commit.patch
src/patches/dnsmasq/0067-Merge-message-translations.patch
src/patches/dnsmasq/0068-add-tftp-no-fail-to-ignore-missing-tftp-root.patch
src/patches/dnsmasq/0069-Whitespace-fixes.patch
src/patches/dnsmasq/0070-Return-INSECURE-rather-than-BOGUS-when-DS-proved-not.patch
src/patches/dnsmasq/0071-Fix-compiler-warning-when-not-including-DNSSEC.patch
src/patches/dnsmasq/0072-Fix-crash-caused-by-looking-up-servers.bind-when-man.patch
src/patches/dnsmasq/0073-Fix-crash-on-receipt-of-certain-malformed-DNS-reques.patch
src/patches/dnsmasq/0074-Fix-crash-in-auth-code-with-odd-configuration.patch
src/patches/dnsmasq/0075-Auth-correct-replies-to-NS-and-SOA-in-.arpa-zones.patch
src/patches/dnsmasq/0076-Fix-srk-induced-crash-in-new-tftp_no_fail-code.patch
src/patches/dnsmasq/0077-Note-CVE-2015-3294.patch
src/patches/dnsmasq/0078-Log-domain-when-reporting-DNSSEC-validation-failure.patch
src/patches/dnsmasq/0079-Check-IP-address-command-line-arg-in-dhcp_release.c.patch
src/patches/dnsmasq/0080-Revert-61b838dd574c51d96fef100285a0d225824534f9-and-.patch
src/patches/dnsmasq/0081-Handle-domain-names-with-.-or-000-within-labels.patch
src/patches/dnsmasq/0082-Tweaks-to-previous-DNS-label-charset-commit.patch
src/patches/dnsmasq/0083-Logs-in-DHCPv6-not-suppressed-by-dhcp6-quiet.patch
src/patches/dnsmasq/0084-Make-get-version-work-when-repo-is-a-git-submodule.patch
src/patches/dnsmasq/0085-Fix-argument-order-botch-which-broke-DNSSEC-for-TCP-.patch
src/patches/dnsmasq/0086-Don-t-remove-RRSIG-RR-from-answers-to-ANY-queries-wh.patch
src/patches/dnsmasq/0087-Constify-some-DHCP-lease-management-functions.patch
src/patches/dnsmasq/0088-Handle-UDP-packet-loss-when-fragmentation-of-large-p.patch [new file with mode: 0644]
src/patches/dnsmasq/0089-Check-IPv4-mapped-IPv6-addresses-with-stop-rebind.patch [new file with mode: 0644]
src/patches/dnsmasq/0090-Tweak-EDNS-timeout-code.patch [new file with mode: 0644]
src/patches/dnsmasq/0091-Pointer-to-mail-archive-mailing-list-mirror-in-doc.h.patch [new file with mode: 0644]
src/patches/dnsmasq/0092-Allow-T1-and-T2-DHCPv4-options-to-be-set.patch [new file with mode: 0644]
src/patches/dnsmasq/0093-Tweak-last-commit.patch [new file with mode: 0644]
src/patches/dnsmasq/0094-Use-correct-DHCP-context-for-PXE-proxy-server-id.patch [new file with mode: 0644]
src/patches/dnsmasq/0095-Fix-buffer-overflow-introduced-in-2.73rc6.patch [new file with mode: 0644]
src/patches/dnsmasq/0096-Remove-support-for-DNS-Extended-Label-Types.patch [new file with mode: 0644]
src/patches/dnsmasq/0097-Select-correct-DHCP-context-when-in-PXE-bootserver-m.patch [new file with mode: 0644]
src/patches/dnsmasq/0098-Tweak-immediately-previous-patch.patch [new file with mode: 0644]

index 1d6a657831c7e34f7d1cdedea0d1bfdffcb1daee..57c9ff13fcf76f45e5d45a3163289d721355ea89 100644 (file)
@@ -1,7 +1,7 @@
 From f2658275b25ebfe691cdcb9fede85a3088cca168 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Thu, 25 Sep 2014 21:51:25 +0100
 From f2658275b25ebfe691cdcb9fede85a3088cca168 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Thu, 25 Sep 2014 21:51:25 +0100
-Subject: [PATCH 01/87] Add newline at the end of example config file.
+Subject: [PATCH 01/98] Add newline at the end of example config file.
 
 ---
  dnsmasq.conf.example | 2 +-
 
 ---
  dnsmasq.conf.example | 2 +-
index 54a36a7329c5e6f700ff8de4ea72be4c17fb1115..86eb603ae796817552cef15f3cdeb353fa11e6b1 100644 (file)
@@ -1,7 +1,7 @@
 From 00cd9d551998307225312fd21f761cfa8868bd2c Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Thu, 2 Oct 2014 21:44:21 +0100
 From 00cd9d551998307225312fd21f761cfa8868bd2c Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Thu, 2 Oct 2014 21:44:21 +0100
-Subject: [PATCH 02/87] crash at startup when an empty suffix is supplied to
+Subject: [PATCH 02/98] crash at startup when an empty suffix is supplied to
  --conf-dir
 
 ---
  --conf-dir
 
 ---
index eda96854290add1c70e3d821a533966fbf5029d7..b0badb1f00f9658b0aaef24b2451ef3a998c2a8a 100644 (file)
@@ -1,7 +1,7 @@
 From 6ac3bc0452a74e16e3d620a0757b0f8caab182ec Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Fri, 3 Oct 2014 08:48:11 +0100
 From 6ac3bc0452a74e16e3d620a0757b0f8caab182ec Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Fri, 3 Oct 2014 08:48:11 +0100
-Subject: [PATCH 03/87] Debian build fixes for kFreeBSD
+Subject: [PATCH 03/98] Debian build fixes for kFreeBSD
 
 ---
  src/tables.c | 6 +++++-
 
 ---
  src/tables.c | 6 +++++-
index 6374fefbd382c5c1b1b16e04fb8be65d9c4c00a4..b2725d4a27a74133d590135813beeae7126bf7cf 100644 (file)
@@ -1,7 +1,7 @@
 From e9828b6f66b22ce8873f8d30a773137d1aef1b92 Mon Sep 17 00:00:00 2001
 From: Karl Vogel <karl.vogel@gmail.com>
 Date: Fri, 3 Oct 2014 21:45:15 +0100
 From e9828b6f66b22ce8873f8d30a773137d1aef1b92 Mon Sep 17 00:00:00 2001
 From: Karl Vogel <karl.vogel@gmail.com>
 Date: Fri, 3 Oct 2014 21:45:15 +0100
-Subject: [PATCH 04/87] Set conntrack mark before connect() call.
+Subject: [PATCH 04/98] Set conntrack mark before connect() call.
 
 SO_MARK has to be done before issuing the connect() call on the
 TCP socket.
 
 SO_MARK has to be done before issuing the connect() call on the
 TCP socket.
index 6052d454f4ae520a13020f2be93c9aea72a09df0..84be7de37a06dacc0f016b325ef211ee5743f938 100644 (file)
@@ -1,7 +1,7 @@
 From 17b475912f6a4e72797a543dad59d4d5dde6bb1b Mon Sep 17 00:00:00 2001
 From: Daniel Collins <daniel.collins@smoothwall.net>
 Date: Fri, 3 Oct 2014 21:58:43 +0100
 From 17b475912f6a4e72797a543dad59d4d5dde6bb1b Mon Sep 17 00:00:00 2001
 From: Daniel Collins <daniel.collins@smoothwall.net>
 Date: Fri, 3 Oct 2014 21:58:43 +0100
-Subject: [PATCH 05/87] Fix typo in new Dbus code.
+Subject: [PATCH 05/98] Fix typo in new Dbus code.
 
 Simon's fault.
 ---
 
 Simon's fault.
 ---
index d7a0207b74c6863d356d0a46f93221eab714985b..0cb139f8164e96a2f51de99e8edc2c06090a1712 100644 (file)
@@ -1,7 +1,7 @@
 From 3d9d2dd0018603a2ae4b9cd65ac6ff959f4fd8c7 Mon Sep 17 00:00:00 2001
 From: Tomas Hozza <thozza@redhat.com>
 Date: Mon, 6 Oct 2014 10:46:48 +0100
 From 3d9d2dd0018603a2ae4b9cd65ac6ff959f4fd8c7 Mon Sep 17 00:00:00 2001
 From: Tomas Hozza <thozza@redhat.com>
 Date: Mon, 6 Oct 2014 10:46:48 +0100
-Subject: [PATCH 06/87] Fit example conf file typo.
+Subject: [PATCH 06/98] Fit example conf file typo.
 
 ---
  dnsmasq.conf.example | 2 +-
 
 ---
  dnsmasq.conf.example | 2 +-
index 81e67b1a084b8ae6658444bcea8c073d4a7b5167..286ddcf682bbba43b5a30b2b8cc7ee0a733bd78b 100644 (file)
@@ -1,7 +1,7 @@
 From b9ff5c8f435173cfa616e3c398bdc089ef690a07 Mon Sep 17 00:00:00 2001
 From: Vladislav Grishenko <themiron@mail.ru>
 Date: Mon, 6 Oct 2014 14:34:24 +0100
 From b9ff5c8f435173cfa616e3c398bdc089ef690a07 Mon Sep 17 00:00:00 2001
 From: Vladislav Grishenko <themiron@mail.ru>
 Date: Mon, 6 Oct 2014 14:34:24 +0100
-Subject: [PATCH 07/87] Improve RFC-compliance when unable to supply addresses
+Subject: [PATCH 07/98] Improve RFC-compliance when unable to supply addresses
  in DHCPv6
 
 While testing https://github.com/sbyx/odhcp6c client I have noticed it
  in DHCPv6
 
 While testing https://github.com/sbyx/odhcp6c client I have noticed it
index a0706ba6e2bdf949d625bce031d16ea7a4160a7f..f667cf3cedbb24ee37be6069da42270524ede29b 100644 (file)
@@ -1,7 +1,7 @@
 From 98906275a02ae260fe3f82133bd79054f8315f06 Mon Sep 17 00:00:00 2001
 From: Hans Dedecker <dedeckeh@gmail.com>
 Date: Tue, 9 Dec 2014 22:22:53 +0000
 From 98906275a02ae260fe3f82133bd79054f8315f06 Mon Sep 17 00:00:00 2001
 From: Hans Dedecker <dedeckeh@gmail.com>
 Date: Tue, 9 Dec 2014 22:22:53 +0000
-Subject: [PATCH 08/87] Fix conntrack with --bind-interfaces
+Subject: [PATCH 08/98] Fix conntrack with --bind-interfaces
 
 Make sure dst_addr is assigned the correct address in receive_query when OPTNOWILD is
 enabled so the assigned mark can be correctly retrieved and set in forward_query when
 
 Make sure dst_addr is assigned the correct address in receive_query when OPTNOWILD is
 enabled so the assigned mark can be correctly retrieved and set in forward_query when
index 28dae8c2db27dede2e5017b0b77b80013b85bde9..3d6654068a3c15ae3d298e2b576826787a98715e 100644 (file)
@@ -1,7 +1,7 @@
 From 193de4abf59e49c6b70d54cfe9720fcb95ca2f71 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Wed, 10 Dec 2014 17:32:16 +0000
 From 193de4abf59e49c6b70d54cfe9720fcb95ca2f71 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Wed, 10 Dec 2014 17:32:16 +0000
-Subject: [PATCH 09/87] Use inotify instead of polling on Linux.
+Subject: [PATCH 09/98] Use inotify instead of polling on Linux.
 
 This should solve problems people are seeing when a file changes
 twice within a second and thus is missed for polling.
 
 This should solve problems people are seeing when a file changes
 twice within a second and thus is missed for polling.
index 34dbf3a144164b7c765f9240d4da8a3b7ff154ee..2ddef28b6969d92a417fcabe9bc7fe7ae768d12d 100644 (file)
@@ -1,7 +1,7 @@
 From 857973e6f7e0a3d03535a9df7f9373fd7a0b65cc Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Mon, 15 Dec 2014 15:58:13 +0000
 From 857973e6f7e0a3d03535a9df7f9373fd7a0b65cc Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Mon, 15 Dec 2014 15:58:13 +0000
-Subject: [PATCH 10/87] Teach the new inotify code about symlinks.
+Subject: [PATCH 10/98] Teach the new inotify code about symlinks.
 
 ---
  src/inotify.c | 43 +++++++++++++++++++++++++++----------------
 
 ---
  src/inotify.c | 43 +++++++++++++++++++++++++++----------------
index b7c670fca1cc57a093f52b874382134343cb2cd1..c4dd777cbbf79c39f47fe8172e22609b98fb9ca6 100644 (file)
@@ -1,7 +1,7 @@
 From 800c5cc1e7438818fd80f08c2d472df249a6942d Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Mon, 15 Dec 2014 17:50:15 +0000
 From 800c5cc1e7438818fd80f08c2d472df249a6942d Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Mon, 15 Dec 2014 17:50:15 +0000
-Subject: [PATCH 11/87] Remove floor on EDNS0 packet size with DNSSEC.
+Subject: [PATCH 11/98] Remove floor on EDNS0 packet size with DNSSEC.
 
 ---
  CHANGELOG     | 6 +++++-
 
 ---
  CHANGELOG     | 6 +++++-
index 8dbf7bdc9012b4198c52004df55eb72bb5899f00..0044a39a2972b891ad1897aa32609780801ef58a 100644 (file)
@@ -1,7 +1,7 @@
 From ad946d555dce44eb690c7699933b6ff40ab85bb6 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Mon, 15 Dec 2014 17:52:22 +0000
 From ad946d555dce44eb690c7699933b6ff40ab85bb6 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Mon, 15 Dec 2014 17:52:22 +0000
-Subject: [PATCH 12/87] CHANGELOG re. inotify.
+Subject: [PATCH 12/98] CHANGELOG re. inotify.
 
 ---
  CHANGELOG | 4 ++++
 
 ---
  CHANGELOG | 4 ++++
index c102b72f7317b8df994df016261b86e6d3ed9990..8f67d2a81e8f2e19ba7e8dfc99c583aa59111982 100644 (file)
@@ -1,7 +1,7 @@
 From 3ad3f3bbd4ee716a7d2fb1e115cf89bd1b1a5de9 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Tue, 16 Dec 2014 18:25:17 +0000
 From 3ad3f3bbd4ee716a7d2fb1e115cf89bd1b1a5de9 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Tue, 16 Dec 2014 18:25:17 +0000
-Subject: [PATCH 13/87] Fix breakage of --domain=<domain>,<subnet>,local
+Subject: [PATCH 13/98] Fix breakage of --domain=<domain>,<subnet>,local
 
 ---
  CHANGELOG    |  4 ++++
 
 ---
  CHANGELOG    |  4 ++++
index 8d818256965585074ae9c7bc600d39285490b180..19f03225dcb6df1e243337821b64ec8b42109442 100644 (file)
@@ -1,7 +1,7 @@
 From bd9520b7ade7098ee423acc38965376aa57feb07 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Tue, 16 Dec 2014 20:41:29 +0000
 From bd9520b7ade7098ee423acc38965376aa57feb07 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Tue, 16 Dec 2014 20:41:29 +0000
-Subject: [PATCH 14/87] Remove redundant IN6_IS_ADDR_ULA(a) macro defn.
+Subject: [PATCH 14/98] Remove redundant IN6_IS_ADDR_ULA(a) macro defn.
 
 ---
  src/network.c | 4 ----
 
 ---
  src/network.c | 4 ----
index 9544a167d144165254356e8bf8aac0d7dd8c64f0..2c9c2a64a863d2535555b74883c6ebbd46471f38 100644 (file)
@@ -1,7 +1,7 @@
 From 476693678e778886b64d0b56e27eb7695cbcca99 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Wed, 17 Dec 2014 12:41:56 +0000
 From 476693678e778886b64d0b56e27eb7695cbcca99 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Wed, 17 Dec 2014 12:41:56 +0000
-Subject: [PATCH 15/87] Eliminate IPv6 privacy addresses from --interface-name
+Subject: [PATCH 15/98] Eliminate IPv6 privacy addresses from --interface-name
  answers.
 
 ---
  answers.
 
 ---
index 9fb6efb83c6ff87b03fdf2a2643dda367a962256..3b984f34f9e0f567834bcb1b32efe0df82e93109 100644 (file)
@@ -1,7 +1,7 @@
 From 3267804598047bd1781cab91508d1bc516e5ddbb Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Wed, 17 Dec 2014 20:38:20 +0000
 From 3267804598047bd1781cab91508d1bc516e5ddbb Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Wed, 17 Dec 2014 20:38:20 +0000
-Subject: [PATCH 16/87] Tweak field width in cache dump to avoid truncating
+Subject: [PATCH 16/98] Tweak field width in cache dump to avoid truncating
  IPv6 addresses.
 
 ---
  IPv6 addresses.
 
 ---
index 45370a6fe9787f0481d8c57a14e8bf51fbf30fb3..0aa4fe912dbe5051a975fad2da1b99deb3ee8e0f 100644 (file)
@@ -1,7 +1,7 @@
 From 094b5c3d904bae9aeb3206d9f3b8348926b84975 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sun, 21 Dec 2014 16:11:52 +0000
 From 094b5c3d904bae9aeb3206d9f3b8348926b84975 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sun, 21 Dec 2014 16:11:52 +0000
-Subject: [PATCH 17/87] Fix crash in DNSSEC code when attempting to verify
+Subject: [PATCH 17/98] Fix crash in DNSSEC code when attempting to verify
  large RRs.
 
 ---
  large RRs.
 
 ---
index 11e517853563fb027ab711d3ec4f07fd0d056378..e80f0e3957bd7c6f3034d9df8db533ba58e5a833 100644 (file)
@@ -1,7 +1,7 @@
 From cbc652423403e3cef00e00240f6beef713142246 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sun, 21 Dec 2014 21:21:53 +0000
 From cbc652423403e3cef00e00240f6beef713142246 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sun, 21 Dec 2014 21:21:53 +0000
-Subject: [PATCH 18/87] Make caching work for CNAMEs pointing to A/AAAA records
+Subject: [PATCH 18/98] Make caching work for CNAMEs pointing to A/AAAA records
  shadowed in /etc/hosts
 
 If the answer to an upstream query is a CNAME which points to an
  shadowed in /etc/hosts
 
 If the answer to an upstream query is a CNAME which points to an
index 4fe15f0939205981d37efcf12949541e4795b7f9..7bd143ede6656ff4803f5ee8c5d3df45e4a46300 100644 (file)
@@ -1,7 +1,7 @@
 From fbc5205702c7f6f431d9f1043c553d7fb62ddfdb Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Tue, 23 Dec 2014 15:46:08 +0000
 From fbc5205702c7f6f431d9f1043c553d7fb62ddfdb Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Tue, 23 Dec 2014 15:46:08 +0000
-Subject: [PATCH 19/87] Fix problems validating NSEC3 and wildcards.
+Subject: [PATCH 19/98] Fix problems validating NSEC3 and wildcards.
 
 ---
  src/dnssec.c | 253 ++++++++++++++++++++++++++++++-----------------------------
 
 ---
  src/dnssec.c | 253 ++++++++++++++++++++++++++++++-----------------------------
index cfa39ce27d74e20e5d261f48a128420a384623f3..27d121710b7ec6f1d01fa97f0cfe968c93e63768 100644 (file)
@@ -1,7 +1,7 @@
 From 83d2ed09fc0216b567d7fb2197e4ff3eae150b0d Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Tue, 23 Dec 2014 18:42:38 +0000
 From 83d2ed09fc0216b567d7fb2197e4ff3eae150b0d Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Tue, 23 Dec 2014 18:42:38 +0000
-Subject: [PATCH 20/87] Initialise return value.
+Subject: [PATCH 20/98] Initialise return value.
 
 ---
  src/dnssec.c | 7 +++++--
 
 ---
  src/dnssec.c | 7 +++++--
index d3fda4b7ed883279e137eef2923b76e446c5d666..ab6e7a514c711b8bd25443244e9d3dfc6eb6d2f6 100644 (file)
@@ -1,7 +1,7 @@
 From 32fc6dbe03569d70dd394420ceb73532cf303c33 Mon Sep 17 00:00:00 2001
 From: Glen Huang <curvedmark@gmail.com>
 Date: Sat, 27 Dec 2014 15:28:12 +0000
 From 32fc6dbe03569d70dd394420ceb73532cf303c33 Mon Sep 17 00:00:00 2001
 From: Glen Huang <curvedmark@gmail.com>
 Date: Sat, 27 Dec 2014 15:28:12 +0000
-Subject: [PATCH 21/87] Add --ignore-address option.
+Subject: [PATCH 21/98] Add --ignore-address option.
 
 ---
  CHANGELOG     |  8 ++++++++
 
 ---
  CHANGELOG     |  8 ++++++++
index 58ac5eb06c90ee25f70f3fdea2c6cc9bc35274aa..0c8250614385f97f7c5f610dfe269e095ae93876 100644 (file)
@@ -1,7 +1,7 @@
 From 0b1008d367d44e77352134a4c5178f896f0db3e7 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sat, 27 Dec 2014 15:33:32 +0000
 From 0b1008d367d44e77352134a4c5178f896f0db3e7 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sat, 27 Dec 2014 15:33:32 +0000
-Subject: [PATCH 22/87] Bad packet protection.
+Subject: [PATCH 22/98] Bad packet protection.
 
 ---
  src/dnssec.c | 2 +-
 
 ---
  src/dnssec.c | 2 +-
index ebfa6b15b5a2a1e777200860daa24997e3ca7c63..5bf7d6300eb84abd581061418552e4dee1fef202 100644 (file)
@@ -1,7 +1,7 @@
 From d310ab7ecbffce79d3d90debba621e0222f9bced Mon Sep 17 00:00:00 2001
 From: Matthias Andree <matthias.andree@gmx.de>
 Date: Sat, 27 Dec 2014 15:36:38 +0000
 From d310ab7ecbffce79d3d90debba621e0222f9bced Mon Sep 17 00:00:00 2001
 From: Matthias Andree <matthias.andree@gmx.de>
 Date: Sat, 27 Dec 2014 15:36:38 +0000
-Subject: [PATCH 23/87] Fix build failure in new inotify code on BSD.
+Subject: [PATCH 23/98] Fix build failure in new inotify code on BSD.
 
 ---
  src/inotify.c | 4 ++--
 
 ---
  src/inotify.c | 4 ++--
index 64219ff260a17b32bb3dcd8efbef2eccf60ee2ef..41662b7e3ce7506a5cc3fe17af0b20dc2c900e6e 100644 (file)
@@ -1,7 +1,7 @@
 From 81c538efcebfce2ce4a1d3a420b6c885b8f08df9 Mon Sep 17 00:00:00 2001
 From: Yousong Zhou <yszhou4tech@gmail.com>
 Date: Sat, 3 Jan 2015 16:36:14 +0000
 From 81c538efcebfce2ce4a1d3a420b6c885b8f08df9 Mon Sep 17 00:00:00 2001
 From: Yousong Zhou <yszhou4tech@gmail.com>
 Date: Sat, 3 Jan 2015 16:36:14 +0000
-Subject: [PATCH 24/87] Implement makefile dependencies on COPTS variable.
+Subject: [PATCH 24/98] Implement makefile dependencies on COPTS variable.
 
 ---
  .gitignore |  2 +-
 
 ---
  .gitignore |  2 +-
index 2297e6f2c5821e14b68f5f4adb8f29ab47b70abc..4de48837e344c4f0edb69d8fe0bf16314adcb0f2 100644 (file)
@@ -1,7 +1,7 @@
 From d8dbd903d024f84a149dac2f8a674a68dfed47a3 Mon Sep 17 00:00:00 2001
 From: Yousong Zhou <yszhou4tech@gmail.com>
 Date: Mon, 5 Jan 2015 17:03:35 +0000
 From d8dbd903d024f84a149dac2f8a674a68dfed47a3 Mon Sep 17 00:00:00 2001
 From: Yousong Zhou <yszhou4tech@gmail.com>
 Date: Mon, 5 Jan 2015 17:03:35 +0000
-Subject: [PATCH 25/87] Fix race condition issue in makefile.
+Subject: [PATCH 25/98] Fix race condition issue in makefile.
 
 ---
  Makefile | 4 +++-
 
 ---
  Makefile | 4 +++-
index 6fb5db1246f2df0470964a8a4d68aaedc66ac8d5..cb9c925ecca63b54489202eafb409319ebe35302 100644 (file)
@@ -1,7 +1,7 @@
 From 97e618a0e3f29465acc689d87288596b006f197e Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Wed, 7 Jan 2015 21:55:43 +0000
 From 97e618a0e3f29465acc689d87288596b006f197e Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Wed, 7 Jan 2015 21:55:43 +0000
-Subject: [PATCH 26/87] DNSSEC: do top-down search for limit of secure
+Subject: [PATCH 26/98] DNSSEC: do top-down search for limit of secure
  delegation.
 
 ---
  delegation.
 
 ---
index 41e3649f5cabee5862263aa1bc8ec6a78dd77e49..6b752538b0b8b00b13bcf01315260fc90429e295 100644 (file)
@@ -1,7 +1,7 @@
 From 25cf5e373eb41c088d4ee5e625209c4cf6a5659e Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Fri, 9 Jan 2015 15:53:03 +0000
 From 25cf5e373eb41c088d4ee5e625209c4cf6a5659e Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Fri, 9 Jan 2015 15:53:03 +0000
-Subject: [PATCH 27/87] Add --log-queries=extra option for more complete
+Subject: [PATCH 27/98] Add --log-queries=extra option for more complete
  logging.
 
 ---
  logging.
 
 ---
index 85de912de2ec869f081873630c35c81cabb71f35..6bb1c97fbb8d37c211f7e792bb8642eb8161016b 100644 (file)
@@ -1,7 +1,7 @@
 From 28de38768e2c7d763b9aa5b7a4d251d5e56bab0b Mon Sep 17 00:00:00 2001
 From: RinSatsuki <aa65535@live.com>
 Date: Sat, 10 Jan 2015 15:22:21 +0000
 From 28de38768e2c7d763b9aa5b7a4d251d5e56bab0b Mon Sep 17 00:00:00 2001
 From: RinSatsuki <aa65535@live.com>
 Date: Sat, 10 Jan 2015 15:22:21 +0000
-Subject: [PATCH 28/87] Add --min-cache-ttl option.
+Subject: [PATCH 28/98] Add --min-cache-ttl option.
 
 ---
  CHANGELOG     |  7 +++++++
 
 ---
  CHANGELOG     |  7 +++++++
index afbece3a6c037fbedd288e4c911c693892db11f0..0e63180c2d5a65031134ff2f0b4ad379b0016f7a 100644 (file)
@@ -1,7 +1,7 @@
 From 9f79ee4ae34886c0319f06d8f162b81ef79d62fb Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Mon, 12 Jan 2015 20:18:18 +0000
 From 9f79ee4ae34886c0319f06d8f162b81ef79d62fb Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Mon, 12 Jan 2015 20:18:18 +0000
-Subject: [PATCH 29/87] Log port of requestor when doing extra logging.
+Subject: [PATCH 29/98] Log port of requestor when doing extra logging.
 
 ---
  src/cache.c | 6 +++---
 
 ---
  src/cache.c | 6 +++---
index ac206e386fd8240de194b6f918d1c315552bcaa6..6817da140b901f925610a4670fd74b5dd590f192 100644 (file)
@@ -1,7 +1,7 @@
 From 5e321739db381a1d7b5964d76e9c81471d2564c9 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Mon, 12 Jan 2015 23:16:56 +0000
 From 5e321739db381a1d7b5964d76e9c81471d2564c9 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Mon, 12 Jan 2015 23:16:56 +0000
-Subject: [PATCH 30/87] Don't answer from cache RRsets from wildcards, as we
+Subject: [PATCH 30/98] Don't answer from cache RRsets from wildcards, as we
  don't have NSECs.
 
 ---
  don't have NSECs.
 
 ---
index 20a0e4ba005e25fa08f9f88805ebfc0f6d8ce5be..2b86121b1fcd3fb3be1fd259ee3c7e484eb1e362 100644 (file)
@@ -1,7 +1,7 @@
 From ae4624bf46b5e37ff1a9a2ba3c927e0dede95adb Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Mon, 12 Jan 2015 23:22:08 +0000
 From ae4624bf46b5e37ff1a9a2ba3c927e0dede95adb Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Mon, 12 Jan 2015 23:22:08 +0000
-Subject: [PATCH 31/87] Logs for DS records consistent.
+Subject: [PATCH 31/98] Logs for DS records consistent.
 
 ---
  src/rfc1035.c | 2 +-
 
 ---
  src/rfc1035.c | 2 +-
index 5b5fc07ffa0ec0dde23647a764865ab4e3e87733..d3d1277fc49b6b80711534ddecb0e99d938ef9f5 100644 (file)
@@ -1,7 +1,7 @@
 From 393415597c8b5b09558b789ab9ac238dbe3db65d Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sun, 18 Jan 2015 22:11:10 +0000
 From 393415597c8b5b09558b789ab9ac238dbe3db65d Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sun, 18 Jan 2015 22:11:10 +0000
-Subject: [PATCH 32/87] Cope with multiple interfaces with the same LL address.
+Subject: [PATCH 32/98] Cope with multiple interfaces with the same LL address.
 
 ---
  CHANGELOG  | 4 ++++
 
 ---
  CHANGELOG  | 4 ++++
index 926885f322f0362e72c28395c6f0c3a5c39d006c..07cc0804b24c0496b2e67656e9efe111da96fbee 100644 (file)
@@ -1,7 +1,7 @@
 From 2ae195f5a71f7c5a75717845de1bd72fc7dd67f3 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sun, 18 Jan 2015 22:20:48 +0000
 From 2ae195f5a71f7c5a75717845de1bd72fc7dd67f3 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sun, 18 Jan 2015 22:20:48 +0000
-Subject: [PATCH 33/87] Don't treat SERVFAIL as a recoverable error.....
+Subject: [PATCH 33/98] Don't treat SERVFAIL as a recoverable error.....
 
 ---
  src/forward.c | 2 +-
 
 ---
  src/forward.c | 2 +-
index 4ca8cc5d0399b78b14ca25ed91982ad2d98923fb..b93d9cce5c8116eaa5dc03afd3642463c5c93cba 100644 (file)
@@ -1,7 +1,7 @@
 From 5f4dc5c6ca50655ab14f572c7e30815ed74cd51a Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Tue, 20 Jan 2015 20:51:02 +0000
 From 5f4dc5c6ca50655ab14f572c7e30815ed74cd51a Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Tue, 20 Jan 2015 20:51:02 +0000
-Subject: [PATCH 34/87] Add --dhcp-hostsdir config option.
+Subject: [PATCH 34/98] Add --dhcp-hostsdir config option.
 
 ---
  CHANGELOG     |   5 +++
 
 ---
  CHANGELOG     |   5 +++
index 23f1a5fae55eab7bed96d6615044a9078eb2c408..820bce138eb4d89ad3f4263ddaa535df8063e285 100644 (file)
@@ -1,7 +1,7 @@
 From fbf01f7046e75f9aa73fd4aab2a94e43386d9052 Mon Sep 17 00:00:00 2001
 From: Conrad Kostecki <ck@conrad-kostecki.de>
 Date: Tue, 20 Jan 2015 21:07:56 +0000
 From fbf01f7046e75f9aa73fd4aab2a94e43386d9052 Mon Sep 17 00:00:00 2001
 From: Conrad Kostecki <ck@conrad-kostecki.de>
 Date: Tue, 20 Jan 2015 21:07:56 +0000
-Subject: [PATCH 35/87] Update German translation.
+Subject: [PATCH 35/98] Update German translation.
 
 ---
  po/de.po | 101 +++++++++++++++++++++++++++++----------------------------------
 
 ---
  po/de.po | 101 +++++++++++++++++++++++++++++----------------------------------
index c89b6788dc9803fcb6d4ac458f801d946a081fbc..88562363e15bb4013fe60af7a73f1c848084fa6b 100644 (file)
@@ -1,7 +1,7 @@
 From 61b838dd574c51d96fef100285a0d225824534f9 Mon Sep 17 00:00:00 2001
 From: Win King Wan <pinwing+dnsmasq@gmail.com>
 Date: Wed, 21 Jan 2015 20:41:48 +0000
 From 61b838dd574c51d96fef100285a0d225824534f9 Mon Sep 17 00:00:00 2001
 From: Win King Wan <pinwing+dnsmasq@gmail.com>
 Date: Wed, 21 Jan 2015 20:41:48 +0000
-Subject: [PATCH 36/87] Don't reply to DHCPv6 SOLICIT messages when not
+Subject: [PATCH 36/98] Don't reply to DHCPv6 SOLICIT messages when not
  configured for statefull DHCPv6.
 
 ---
  configured for statefull DHCPv6.
 
 ---
index 16170959375f4ce299ad8d6f6ad04eff54817839..2a4df45c0531e70077473c33a8f0047451cd84bd 100644 (file)
@@ -1,7 +1,7 @@
 From 0491805d2ff6e7727f0272c94fd97d9897d1e22c Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Mon, 26 Jan 2015 11:23:43 +0000
 From 0491805d2ff6e7727f0272c94fd97d9897d1e22c Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Mon, 26 Jan 2015 11:23:43 +0000
-Subject: [PATCH 37/87] Allow inotify to be disabled at compile time on Linux.
+Subject: [PATCH 37/98] Allow inotify to be disabled at compile time on Linux.
 
 ---
  CHANGELOG     |  4 +++-
 
 ---
  CHANGELOG     |  4 +++-
index fee3aaee6685b5dcad11996eb39679683fccb602..cd35f366ae699810f3348b4e846f76536b2a6d14 100644 (file)
@@ -1,7 +1,7 @@
 From 70d1873dd9e70041ed4bb88c69d5b886b7cc634c Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sat, 31 Jan 2015 19:59:29 +0000
 From 70d1873dd9e70041ed4bb88c69d5b886b7cc634c Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sat, 31 Jan 2015 19:59:29 +0000
-Subject: [PATCH 38/87] Expand inotify code to dhcp-hostsdir, dhcp-optsdir and
+Subject: [PATCH 38/98] Expand inotify code to dhcp-hostsdir, dhcp-optsdir and
  hostsdir.
 
 ---
  hostsdir.
 
 ---
index 58a4ce6d4589333513e35efa4c0a5732bc6ec73e..7cf3fa7cc579190bc8b65fc3cd8bf5ec63501d25 100644 (file)
@@ -1,7 +1,7 @@
 From aff3396280e944833f0e23d834aa6acd5fe2605a Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sat, 31 Jan 2015 20:13:40 +0000
 From aff3396280e944833f0e23d834aa6acd5fe2605a Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sat, 31 Jan 2015 20:13:40 +0000
-Subject: [PATCH 39/87] Update copyrights for dawn of 2015.
+Subject: [PATCH 39/98] Update copyrights for dawn of 2015.
 
 ---
  Makefile             | 2 +-
 
 ---
  Makefile             | 2 +-
index bd0ce4d3ac4b4f60c523ba85b758acb024526fed..3ed1b15eabfc3d528785c358039b94693d16952f 100644 (file)
@@ -1,7 +1,7 @@
 From 3d04f46334d0e345f589eda1372e638b946fe637 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sat, 31 Jan 2015 21:59:13 +0000
 From 3d04f46334d0e345f589eda1372e638b946fe637 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sat, 31 Jan 2015 21:59:13 +0000
-Subject: [PATCH 40/87] inotify documentation updates.
+Subject: [PATCH 40/98] inotify documentation updates.
 
 ---
  man/dnsmasq.8 | 11 +++++++++--
 
 ---
  man/dnsmasq.8 | 11 +++++++++--
index be9122c09060b08ac91ee3bf14d5de25cac4daff..56dcc5f137c072f82aec25c6ba4eb2ddc6ee0d60 100644 (file)
@@ -1,7 +1,7 @@
 From 6ef15b34ca83c62a939f69356d5c3f7a6bfef3d0 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sat, 31 Jan 2015 22:44:26 +0000
 From 6ef15b34ca83c62a939f69356d5c3f7a6bfef3d0 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sat, 31 Jan 2015 22:44:26 +0000
-Subject: [PATCH 41/87] Fix broken ECDSA DNSSEC signatures.
+Subject: [PATCH 41/98] Fix broken ECDSA DNSSEC signatures.
 
 ---
  CHANGELOG    | 2 ++
 
 ---
  CHANGELOG    | 2 ++
index a60c1bddb587e8e6d3b25641d11293cb4864a97f..65842537c08f757de0a27b24a75786f0882219b3 100644 (file)
@@ -1,7 +1,7 @@
 From 106266761828a0acb006346ae47bf031dee46a5d Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sun, 1 Feb 2015 00:15:16 +0000
 From 106266761828a0acb006346ae47bf031dee46a5d Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sun, 1 Feb 2015 00:15:16 +0000
-Subject: [PATCH 42/87] BSD make support
+Subject: [PATCH 42/98] BSD make support
 
 ---
  Makefile | 6 ++++--
 
 ---
  Makefile | 6 ++++--
index 0fcc8cd3bea21b4765d726d27a0498a5aa974174..a8c26bf393af8a72a3a715713bd4508c9a7c0abc 100644 (file)
@@ -1,7 +1,7 @@
 From 8d8a54ec79d9f96979fabbd97b1dd2ddebc7d78f Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sun, 1 Feb 2015 21:48:46 +0000
 From 8d8a54ec79d9f96979fabbd97b1dd2ddebc7d78f Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sun, 1 Feb 2015 21:48:46 +0000
-Subject: [PATCH 43/87] Fix build failure on openBSD.
+Subject: [PATCH 43/98] Fix build failure on openBSD.
 
 ---
  src/tables.c | 2 +-
 
 ---
  src/tables.c | 2 +-
index dd45634c996e5b540f6fb09ce7788f0ab1c069af..f8bd5fc1834579ed9b97b1f8799ff57146b92bd6 100644 (file)
@@ -1,7 +1,7 @@
 From d36b732c4cfa91ea09af64b5dc0f3a85a075e5bc Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Thi=C3=A9baud=20Weksteen?= <thiebaud@weksteen.fr>
 Date: Mon, 2 Feb 2015 21:37:27 +0000
 From d36b732c4cfa91ea09af64b5dc0f3a85a075e5bc Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Thi=C3=A9baud=20Weksteen?= <thiebaud@weksteen.fr>
 Date: Mon, 2 Feb 2015 21:37:27 +0000
-Subject: [PATCH 44/87] Manpage typo fix.
+Subject: [PATCH 44/98] Manpage typo fix.
 
 ---
  man/dnsmasq.8 | 2 +-
 
 ---
  man/dnsmasq.8 | 2 +-
index 7a719f83ea140c16c4d7afedd8ecd8405cde6185..7f6d39f6cfe6088630bfb59f78ae2faee5991411 100644 (file)
@@ -1,7 +1,7 @@
 From 2941d3ac898cf84b544e47c9735c5e4111711db1 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Mon, 2 Feb 2015 22:36:42 +0000
 From 2941d3ac898cf84b544e47c9735c5e4111711db1 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Mon, 2 Feb 2015 22:36:42 +0000
-Subject: [PATCH 45/87] Fixup dhcp-configs after reading extra hostfiles with
+Subject: [PATCH 45/98] Fixup dhcp-configs after reading extra hostfiles with
  inotify.
 
 ---
  inotify.
 
 ---
index 3db945d8f329b70478a9457b5b69b9f43ee26977..b15ef9a65a0203f060ed29e822b42506ce7c7799 100644 (file)
@@ -1,7 +1,7 @@
 From f9c863708c6b0aea31ff7a466647685dc739de50 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Tue, 3 Feb 2015 21:52:48 +0000
 From f9c863708c6b0aea31ff7a466647685dc739de50 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Tue, 3 Feb 2015 21:52:48 +0000
-Subject: [PATCH 46/87] Extra logging for inotify code.
+Subject: [PATCH 46/98] Extra logging for inotify code.
 
 ---
  src/cache.c   | 9 ++++-----
 
 ---
  src/cache.c   | 9 ++++-----
index 5a81152473bebd9abec42d8f756351641c6d5b0c..5557b51318ac260369be9b20d7535fb5b24e6e2b 100644 (file)
@@ -1,7 +1,7 @@
 From efb8b5566aafc1f3ce18514a2df93af5a2e4998c Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sat, 7 Feb 2015 22:36:34 +0000
 From efb8b5566aafc1f3ce18514a2df93af5a2e4998c Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sat, 7 Feb 2015 22:36:34 +0000
-Subject: [PATCH 47/87] man page typo.
+Subject: [PATCH 47/98] man page typo.
 
 ---
  man/dnsmasq.8 | 1 +
 
 ---
  man/dnsmasq.8 | 1 +
index e69e0a6184342731394f7e630f9a2b595f824f67..c70ca461294456d204018e443a4493cf20facc7b 100644 (file)
@@ -1,7 +1,7 @@
 From f4f400776b3c1aa303d1a0fcd500f0ab5bc970f2 Mon Sep 17 00:00:00 2001
 From: Shantanu Gadgil <shantanugadgil@yahoo.com>
 Date: Wed, 11 Feb 2015 20:16:59 +0000
 From f4f400776b3c1aa303d1a0fcd500f0ab5bc970f2 Mon Sep 17 00:00:00 2001
 From: Shantanu Gadgil <shantanugadgil@yahoo.com>
 Date: Wed, 11 Feb 2015 20:16:59 +0000
-Subject: [PATCH 48/87] Fix get-version script which returned wrong tag in some
+Subject: [PATCH 48/98] Fix get-version script which returned wrong tag in some
  situations.
 
 ---
  situations.
 
 ---
index e78f185dd10f24328c81c7c5102d1f73f2e1dfec..1c711806e5bc265c82b5e1b9b171688934978e17 100644 (file)
@@ -1,7 +1,7 @@
 From 8ff70de618eb7de9147dbfbd4deca4a2dd62f0cb Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sat, 14 Feb 2015 20:02:37 +0000
 From 8ff70de618eb7de9147dbfbd4deca4a2dd62f0cb Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sat, 14 Feb 2015 20:02:37 +0000
-Subject: [PATCH 49/87] Typos.
+Subject: [PATCH 49/98] Typos.
 
 ---
  src/inotify.c | 3 ++-
 
 ---
  src/inotify.c | 3 ++-
index 7b5a92dd360a165a1d4ac76e4a4b8a6a49c856fa..38736c7a741b700df365cda31d01494d63154f9a 100644 (file)
@@ -1,7 +1,7 @@
 From caeea190f12efd20139f694aac4942d1ac00019f Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sat, 14 Feb 2015 20:08:56 +0000
 From caeea190f12efd20139f694aac4942d1ac00019f Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sat, 14 Feb 2015 20:08:56 +0000
-Subject: [PATCH 50/87] Make dynamic hosts files work when --no-hosts set.
+Subject: [PATCH 50/98] Make dynamic hosts files work when --no-hosts set.
 
 ---
  src/cache.c | 21 +++++++++++----------
 
 ---
  src/cache.c | 21 +++++++++++----------
index cfc7b00eebb25b45a962c08c56b614dfe802874f..fb15cc2b9e8bd13fff42030114d36a8d9798c718 100644 (file)
@@ -1,7 +1,7 @@
 From 28b879ac47b872af6e8c5e86d76806c69338434d Mon Sep 17 00:00:00 2001
 From: Chen Wei <weichen302@icloud.com>
 Date: Tue, 17 Feb 2015 22:07:35 +0000
 From 28b879ac47b872af6e8c5e86d76806c69338434d Mon Sep 17 00:00:00 2001
 From: Chen Wei <weichen302@icloud.com>
 Date: Tue, 17 Feb 2015 22:07:35 +0000
-Subject: [PATCH 51/87] Fix trivial memory leaks to quieten valgrind.
+Subject: [PATCH 51/98] Fix trivial memory leaks to quieten valgrind.
 
 ---
  src/dnsmasq.c |  2 ++
 
 ---
  src/dnsmasq.c |  2 ++
index 0a50689ff04a4fbc40115a92feda59304050c601..dabc770a4dc50fce66e16e90648b354f2cf1e846 100644 (file)
@@ -1,7 +1,7 @@
 From 0705a7e2d57654b27c7e14f35ca77241c1821f4d Mon Sep 17 00:00:00 2001
 From: Tomas Hozza <thozza@redhat.com>
 Date: Mon, 23 Feb 2015 21:26:26 +0000
 From 0705a7e2d57654b27c7e14f35ca77241c1821f4d Mon Sep 17 00:00:00 2001
 From: Tomas Hozza <thozza@redhat.com>
 Date: Mon, 23 Feb 2015 21:26:26 +0000
-Subject: [PATCH 52/87] Fix uninitialized value used in get_client_mac()
+Subject: [PATCH 52/98] Fix uninitialized value used in get_client_mac()
 
 ---
  src/dhcp6.c | 4 +++-
 
 ---
  src/dhcp6.c | 4 +++-
index 854771a9bad395b265c05efd5d64ea02e77b86d7..82e38fcdef8b0bcb7c83edc5adf63d476508080d 100644 (file)
@@ -1,7 +1,7 @@
 From 47b9ac59c715827252ae6e6732903c3dabb697fb Mon Sep 17 00:00:00 2001
 From: Joachim Zobel <jz-2014@heute-morgen.de>
 Date: Mon, 23 Feb 2015 21:38:11 +0000
 From 47b9ac59c715827252ae6e6732903c3dabb697fb Mon Sep 17 00:00:00 2001
 From: Joachim Zobel <jz-2014@heute-morgen.de>
 Date: Mon, 23 Feb 2015 21:38:11 +0000
-Subject: [PATCH 53/87] Log parsing utils in contrib/reverse-dns
+Subject: [PATCH 53/98] Log parsing utils in contrib/reverse-dns
 
 ---
  contrib/reverse-dns/README             | 18 ++++++++++++++++++
 
 ---
  contrib/reverse-dns/README             | 18 ++++++++++++++++++
index cb9e86fdfaaf7ffda0b8ebb521d389b00a15b3d2..6d57b653af04c41dd8ce6fc96ce232c79d05e428 100644 (file)
@@ -1,7 +1,7 @@
 From f6e62e2af96f5fa0d1e3d93167a93a8f09bf6e61 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sun, 1 Mar 2015 18:17:54 +0000
 From f6e62e2af96f5fa0d1e3d93167a93a8f09bf6e61 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sun, 1 Mar 2015 18:17:54 +0000
-Subject: [PATCH 54/87] Add --dnssec-timestamp option and facility.
+Subject: [PATCH 54/98] Add --dnssec-timestamp option and facility.
 
 ---
  CHANGELOG     |  6 +++++
 
 ---
  CHANGELOG     |  6 +++++
index 40b6607b7f9acafc03427b5104f9281ef47d2c44..53e1388b973fca4508eee4cbf94a8e0c4e9d0df7 100644 (file)
@@ -1,7 +1,7 @@
 From 9003b50b13da624ca45f3e0cf99abb623b8d026b Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Mon, 2 Mar 2015 22:47:23 +0000
 From 9003b50b13da624ca45f3e0cf99abb623b8d026b Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Mon, 2 Mar 2015 22:47:23 +0000
-Subject: [PATCH 55/87] Fix last commit to not crash if uid changing not
+Subject: [PATCH 55/98] Fix last commit to not crash if uid changing not
  configured.
 
 ---
  configured.
 
 ---
index f6f787366d9c500bbe41c3f539226cbec18ea3f0..32cd7431aaf2a3a509a7b16eb1a1517cb354d366 100644 (file)
@@ -1,7 +1,7 @@
 From 4c960fa90a975d20f75a1ecabd217247f1922c8f Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Wed, 4 Mar 2015 20:32:26 +0000
 From 4c960fa90a975d20f75a1ecabd217247f1922c8f Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Wed, 4 Mar 2015 20:32:26 +0000
-Subject: [PATCH 56/87] New version of contrib/reverse-dns
+Subject: [PATCH 56/98] New version of contrib/reverse-dns
 
 ---
  contrib/reverse-dns/README             |  22 +++---
 
 ---
  contrib/reverse-dns/README             |  22 +++---
index 924e3dcd638b0e1d069dbe5a9c69119915e23158..d63c0474489005705ef781726798206060b6dcb2 100644 (file)
@@ -1,7 +1,7 @@
 From 360f2513ab12a9bf1e262d388dd2ea8a566590a3 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sat, 7 Mar 2015 18:28:06 +0000
 From 360f2513ab12a9bf1e262d388dd2ea8a566590a3 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sat, 7 Mar 2015 18:28:06 +0000
-Subject: [PATCH 57/87] Tweak DNSSEC timestamp code to create file later,
+Subject: [PATCH 57/98] Tweak DNSSEC timestamp code to create file later,
  removing need to chown it.
 
 ---
  removing need to chown it.
 
 ---
index ded09841f0e5230c60fc7946a5828b155ca66a03..f746fcfbf563069922839f32da863d383f19e5d2 100644 (file)
@@ -1,7 +1,7 @@
 From ff841ebf5a5d6864ff48571f607c32ce80dbb75a Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Wed, 11 Mar 2015 21:36:30 +0000
 From ff841ebf5a5d6864ff48571f607c32ce80dbb75a Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Wed, 11 Mar 2015 21:36:30 +0000
-Subject: [PATCH 58/87] Fix boilerplate code for re-running system calls on
+Subject: [PATCH 58/98] Fix boilerplate code for re-running system calls on
  EINTR and EAGAIN etc.
 
 The nasty code with static variable in retry_send() which
  EINTR and EAGAIN etc.
 
 The nasty code with static variable in retry_send() which
index f8091d4d7d140864d1c83c3281581076ee82d38b..d986e8eaaa010fd47c6e65a57af2c22caebcd753 100644 (file)
@@ -1,7 +1,7 @@
 From 979fe86bc8693f660eddea232ae39cbbb50b294c Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Thu, 19 Mar 2015 22:50:22 +0000
 From 979fe86bc8693f660eddea232ae39cbbb50b294c Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Thu, 19 Mar 2015 22:50:22 +0000
-Subject: [PATCH 59/87] Make --address=/example.com/ equivalent to
+Subject: [PATCH 59/98] Make --address=/example.com/ equivalent to
  --server=/example.com/
 
 ---
  --server=/example.com/
 
 ---
index dcf1a3cb0e34f665c0e20142d64fe1b2c5497cc0..6810930725565aff311f3614c75ccb3f01a80b1a 100644 (file)
@@ -1,7 +1,7 @@
 From 65c721200023ef0023114459a8d12f8b0a24cfd8 Mon Sep 17 00:00:00 2001
 From: Lung-Pin Chang <changlp@cs.nctu.edu.tw>
 Date: Thu, 19 Mar 2015 23:22:21 +0000
 From 65c721200023ef0023114459a8d12f8b0a24cfd8 Mon Sep 17 00:00:00 2001
 From: Lung-Pin Chang <changlp@cs.nctu.edu.tw>
 Date: Thu, 19 Mar 2015 23:22:21 +0000
-Subject: [PATCH 60/87] dhcp: set outbound interface via cmsg in unicast reply
+Subject: [PATCH 60/98] dhcp: set outbound interface via cmsg in unicast reply
 
   If multiple routes to the same network exist, Linux blindly picks
   the first interface (route) based on destination address, which might not be
 
   If multiple routes to the same network exist, Linux blindly picks
   the first interface (route) based on destination address, which might not be
index 7f2b1b042dfce4ccfdcd55ea720ff52dec8eeb88..af79f156dae7976371d8e049932ec748c667006c 100644 (file)
@@ -1,7 +1,7 @@
 From 8805283088d670baecb92569252c01cf754cda51 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Thu, 26 Mar 2015 21:15:43 +0000
 From 8805283088d670baecb92569252c01cf754cda51 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Thu, 26 Mar 2015 21:15:43 +0000
-Subject: [PATCH 61/87] Don't fail DNSSEC when a signed CNAME dangles into an
+Subject: [PATCH 61/98] Don't fail DNSSEC when a signed CNAME dangles into an
  unsigned zone.
 
 ---
  unsigned zone.
 
 ---
index 496776deb21ee3bed3477b8950d0bdec05c3b1b7..0b64aa7baca8efc095c6114e982632568e543445 100644 (file)
@@ -1,7 +1,7 @@
 From 150162bc37170a6edae9d488435e836b1e4e3a4e Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Fri, 27 Mar 2015 09:58:26 +0000
 From 150162bc37170a6edae9d488435e836b1e4e3a4e Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Fri, 27 Mar 2015 09:58:26 +0000
-Subject: [PATCH 62/87] Return SERVFAIL when validation abandoned.
+Subject: [PATCH 62/98] Return SERVFAIL when validation abandoned.
 
 ---
  src/forward.c | 11 +++++++++--
 
 ---
  src/forward.c | 11 +++++++++--
index 25ae12e6a87f0bd85ddad9f9d01ed2a43c41e15d..9ecd43b7f96a422310b7399755cf26e7a9ec9f6b 100644 (file)
@@ -1,7 +1,7 @@
 From 0b8a5a30a77331974ba24a04e43e720585dfbc61 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Fri, 27 Mar 2015 11:44:55 +0000
 From 0b8a5a30a77331974ba24a04e43e720585dfbc61 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Fri, 27 Mar 2015 11:44:55 +0000
-Subject: [PATCH 63/87] Protect against broken DNSSEC upstreams.
+Subject: [PATCH 63/98] Protect against broken DNSSEC upstreams.
 
 ---
  src/dnssec.c | 7 +++++--
 
 ---
  src/dnssec.c | 7 +++++--
index 41730b80183d5e1b61191492cc4a1ee1e3636c72..bfd703d3a00b875a8819750603f0082502b93bc2 100644 (file)
@@ -1,7 +1,7 @@
 From 1e153945def3c50d1e59ceea6a768db0ac770f98 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sat, 28 Mar 2015 21:34:07 +0000
 From 1e153945def3c50d1e59ceea6a768db0ac770f98 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sat, 28 Mar 2015 21:34:07 +0000
-Subject: [PATCH 64/87] DNSSEC fix for non-ascii characters in labels.
+Subject: [PATCH 64/98] DNSSEC fix for non-ascii characters in labels.
 
 ---
  src/dnssec.c  | 34 +++++++++++++++++-----------------
 
 ---
  src/dnssec.c  | 34 +++++++++++++++++-----------------
index 212fe30c3c3e95786fc99debcb72f8200aacf5da..f67b65af15b25fdaa1ae5a05969748ae263416f4 100644 (file)
@@ -1,7 +1,7 @@
 From 394ff492da6af5da7e7d356be9586683bc5fc011 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sun, 29 Mar 2015 22:17:14 +0100
 From 394ff492da6af5da7e7d356be9586683bc5fc011 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sun, 29 Mar 2015 22:17:14 +0100
-Subject: [PATCH 65/87] Allow control characters in names in the cache, handle
+Subject: [PATCH 65/98] Allow control characters in names in the cache, handle
  when logging.
 
 ---
  when logging.
 
 ---
index dbc4deb9063d2f9cf7d67a2357e6fc3af3f4d57c..7a227d557393ee2357e69d3748606b7a746b4f2b 100644 (file)
@@ -1,7 +1,7 @@
 From 794fccca7ffebfba4468bfffc6276b68bbf6afd9 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sun, 29 Mar 2015 22:35:44 +0100
 From 794fccca7ffebfba4468bfffc6276b68bbf6afd9 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sun, 29 Mar 2015 22:35:44 +0100
-Subject: [PATCH 66/87] Fix crash in last commit.
+Subject: [PATCH 66/98] Fix crash in last commit.
 
 ---
  src/cache.c | 7 ++++---
 
 ---
  src/cache.c | 7 ++++---
index ac735bdc7db3552a56ab051aebc0a3a09be9ec3d..a88db2234cad64216aff2d291c9cd628953bdbf2 100644 (file)
@@ -1,7 +1,7 @@
 From fd6ad9e481ab7c812a6b1515244908818cbb0442 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Mon, 30 Mar 2015 07:52:21 +0100
 From fd6ad9e481ab7c812a6b1515244908818cbb0442 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Mon, 30 Mar 2015 07:52:21 +0100
-Subject: [PATCH 67/87] Merge message translations.
+Subject: [PATCH 67/98] Merge message translations.
 
 ---
  po/de.po    | 803 +++++++++++++++++++++++++++++++++--------------------------
 
 ---
  po/de.po    | 803 +++++++++++++++++++++++++++++++++--------------------------
index b61ad0a17e6749f67c027f9d7bdcaaff140ed266..b273220d69c5586adb1b298ae56e607de854130e 100644 (file)
@@ -1,7 +1,7 @@
 From 30d0879ed55cb67b1b735beab3d93f3bb3ef1dd2 Mon Sep 17 00:00:00 2001
 From: Stefan Tomanek <stefan.tomanek+dnsmasq@wertarbyte.de>
 Date: Tue, 31 Mar 2015 22:32:11 +0100
 From 30d0879ed55cb67b1b735beab3d93f3bb3ef1dd2 Mon Sep 17 00:00:00 2001
 From: Stefan Tomanek <stefan.tomanek+dnsmasq@wertarbyte.de>
 Date: Tue, 31 Mar 2015 22:32:11 +0100
-Subject: [PATCH 68/87] add --tftp-no-fail to ignore missing tftp root
+Subject: [PATCH 68/98] add --tftp-no-fail to ignore missing tftp root
 
 ---
  CHANGELOG            |  3 +++
 
 ---
  CHANGELOG            |  3 +++
index 865e9a91d737181293c5437f1ac4082b3adf23e7..684ef64218527216b7d1e53225bb711ca2211dc2 100644 (file)
@@ -1,7 +1,7 @@
 From 7aa970e2c7043201663d86a4b5d8cd5c592cef39 Mon Sep 17 00:00:00 2001
 From: Stefan Tomanek <stefan.tomanek+dnsmasq@wertarbyte.de>
 Date: Wed, 1 Apr 2015 17:55:07 +0100
 From 7aa970e2c7043201663d86a4b5d8cd5c592cef39 Mon Sep 17 00:00:00 2001
 From: Stefan Tomanek <stefan.tomanek+dnsmasq@wertarbyte.de>
 Date: Wed, 1 Apr 2015 17:55:07 +0100
-Subject: [PATCH 69/87] Whitespace fixes.
+Subject: [PATCH 69/98] Whitespace fixes.
 
 ---
  src/dnsmasq.c | 14 +++++++-------
 
 ---
  src/dnsmasq.c | 14 +++++++-------
index a2f96385c467c9df7fe1f3fe67836e408644e851..aa24c012a7e7b21e38c80dd2866d85bde0352a3a 100644 (file)
@@ -1,7 +1,7 @@
 From fe3992f9fa69fa975ea31919c53933b5f6a63527 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Fri, 3 Apr 2015 21:25:05 +0100
 From fe3992f9fa69fa975ea31919c53933b5f6a63527 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Fri, 3 Apr 2015 21:25:05 +0100
-Subject: [PATCH 70/87] Return INSECURE, rather than BOGUS when DS proved not
+Subject: [PATCH 70/98] Return INSECURE, rather than BOGUS when DS proved not
  to exist.
 
 Return INSECURE when validating DNS replies which have RRSIGs, but
  to exist.
 
 Return INSECURE when validating DNS replies which have RRSIGs, but
index 723c492acc370b35db7692330071f6704ed0cb91..ac57b8bb1b8025557d4e816d038ac7715ada6585 100644 (file)
@@ -1,7 +1,7 @@
 From 982faf402487e265ed11ac03524531d42b03c966 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Fri, 3 Apr 2015 21:42:30 +0100
 From 982faf402487e265ed11ac03524531d42b03c966 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Fri, 3 Apr 2015 21:42:30 +0100
-Subject: [PATCH 71/87] Fix compiler warning when not including DNSSEC.
+Subject: [PATCH 71/98] Fix compiler warning when not including DNSSEC.
 
 ---
  src/forward.c | 3 ++-
 
 ---
  src/forward.c | 3 ++-
index 3f579bda589b2aefb2f613f8f910844ebc108ad3..2303ec3211d20e29e98aaf9074ac16d995adaf31 100644 (file)
@@ -1,7 +1,7 @@
 From 04b0ac05377936d121a36873bb63d492cde292c9 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Mon, 6 Apr 2015 17:19:13 +0100
 From 04b0ac05377936d121a36873bb63d492cde292c9 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Mon, 6 Apr 2015 17:19:13 +0100
-Subject: [PATCH 72/87] Fix crash caused by looking up servers.bind when many
+Subject: [PATCH 72/98] Fix crash caused by looking up servers.bind when many
  servers defined.
 
 ---
  servers defined.
 
 ---
index 27e4cde3d141b452ea47fe00f47bd1f0a8348c60..82471ae99cc5b47058594c6de3d007ee0f453caf 100644 (file)
@@ -1,7 +1,7 @@
 From ad4a8ff7d9097008d7623df8543df435bfddeac8 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Thu, 9 Apr 2015 21:48:00 +0100
 From ad4a8ff7d9097008d7623df8543df435bfddeac8 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Thu, 9 Apr 2015 21:48:00 +0100
-Subject: [PATCH 73/87] Fix crash on receipt of certain malformed DNS requests.
+Subject: [PATCH 73/98] Fix crash on receipt of certain malformed DNS requests.
 
 ---
  CHANGELOG     | 3 +++
 
 ---
  CHANGELOG     | 3 +++
index 2435371a7ad40cf4a7beb67dcd6dda9fea3ac942..6a7d79874bde9cb8113accca35a982221572f939 100644 (file)
@@ -1,7 +1,7 @@
 From 38440b204db65f9be16c4c3daa7e991e4356f6ed Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sun, 12 Apr 2015 21:52:47 +0100
 From 38440b204db65f9be16c4c3daa7e991e4356f6ed Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sun, 12 Apr 2015 21:52:47 +0100
-Subject: [PATCH 74/87] Fix crash in auth code with odd configuration.
+Subject: [PATCH 74/98] Fix crash in auth code with odd configuration.
 
 ---
  CHANGELOG  | 32 +++++++++++++++++++++-----------
 
 ---
  CHANGELOG  | 32 +++++++++++++++++++++-----------
index fbc38022bba844a7814caab4e3b73691c735827c..76f31433fa861656466251090b11f7071143a597 100644 (file)
@@ -1,7 +1,7 @@
 From 78c6184752dce27849e36cce4360abc27b8d76d2 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Thu, 16 Apr 2015 15:05:30 +0100
 From 78c6184752dce27849e36cce4360abc27b8d76d2 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Thu, 16 Apr 2015 15:05:30 +0100
-Subject: [PATCH 75/87] Auth: correct replies to NS and SOA in .arpa zones.
+Subject: [PATCH 75/98] Auth: correct replies to NS and SOA in .arpa zones.
 
 ---
  CHANGELOG  |  8 ++++++++
 
 ---
  CHANGELOG  |  8 ++++++++
index 1598460b7cb97548eeba2a3bed13c5699bc1414b..9401cb9e8131d2017d3d539a4c2fb68a5f6d2659 100644 (file)
@@ -1,7 +1,7 @@
 From b4c0f092d8ce63ea4763c0ac17aa8d24318ad301 Mon Sep 17 00:00:00 2001
 From: Stefan Tomanek <stefan.tomanek+dnsmasq@wertarbyte.de>
 Date: Thu, 16 Apr 2015 15:20:59 +0100
 From b4c0f092d8ce63ea4763c0ac17aa8d24318ad301 Mon Sep 17 00:00:00 2001
 From: Stefan Tomanek <stefan.tomanek+dnsmasq@wertarbyte.de>
 Date: Thu, 16 Apr 2015 15:20:59 +0100
-Subject: [PATCH 76/87] Fix (srk induced) crash in new tftp_no_fail code.
+Subject: [PATCH 76/98] Fix (srk induced) crash in new tftp_no_fail code.
 
 ---
  src/dnsmasq.c | 6 ++++--
 
 ---
  src/dnsmasq.c | 6 ++++--
index a68ac4c4eae6833a7bc32c9726da8b95c68ad7e4..a14b1a8159e56a93638f9c2e7c19081c5caf1b0d 100644 (file)
@@ -1,7 +1,7 @@
 From 0df29f5e23fd2f16181847db1fcf3a8b392d869a Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Thu, 16 Apr 2015 15:24:52 +0100
 From 0df29f5e23fd2f16181847db1fcf3a8b392d869a Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Thu, 16 Apr 2015 15:24:52 +0100
-Subject: [PATCH 77/87] Note CVE-2015-3294
+Subject: [PATCH 77/98] Note CVE-2015-3294
 
 ---
  CHANGELOG | 3 +++
 
 ---
  CHANGELOG | 3 +++
index 2e040e320ccc12ec97cdf651a416f0a4a194da75..2204d246a8ca6aea90427abc545464aa1d109734 100644 (file)
@@ -1,7 +1,7 @@
 From 554b580e970275d5a869cb4fbfb2716f92b2f664 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Fri, 17 Apr 2015 22:50:20 +0100
 From 554b580e970275d5a869cb4fbfb2716f92b2f664 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Fri, 17 Apr 2015 22:50:20 +0100
-Subject: [PATCH 78/87] Log domain when reporting DNSSEC validation failure.
+Subject: [PATCH 78/98] Log domain when reporting DNSSEC validation failure.
 
 ---
  src/forward.c | 15 ++++++++++-----
 
 ---
  src/forward.c | 15 ++++++++++-----
index 6b0453e03596f3129a68f3d60cca2f6d5208d5b4..6db33bbf9164855ed3cf9a1e676b1b1d6d0b0194 100644 (file)
@@ -1,7 +1,7 @@
 From a006eb7e1486023480ea40244720ef7aab51de71 Mon Sep 17 00:00:00 2001
 From: Moshe Levi <moshele@mellanox.com>
 Date: Sun, 19 Apr 2015 22:10:40 +0100
 From a006eb7e1486023480ea40244720ef7aab51de71 Mon Sep 17 00:00:00 2001
 From: Moshe Levi <moshele@mellanox.com>
 Date: Sun, 19 Apr 2015 22:10:40 +0100
-Subject: [PATCH 79/87] Check IP address command line arg in dhcp_release.c
+Subject: [PATCH 79/98] Check IP address command line arg in dhcp_release.c
 
 ---
  contrib/wrt/dhcp_release.c | 5 +++++
 
 ---
  contrib/wrt/dhcp_release.c | 5 +++++
index 8aa5c5cecc90993564f07726eaac5b264c84a444..4fe26ac01576239f13f7517bc91ed1ffdb404ce6 100644 (file)
@@ -1,7 +1,7 @@
 From 338b340be9e7198f5c0f68133d070d6598a0814c Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Mon, 20 Apr 2015 21:34:05 +0100
 From 338b340be9e7198f5c0f68133d070d6598a0814c Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Mon, 20 Apr 2015 21:34:05 +0100
-Subject: [PATCH 80/87] Revert 61b838dd574c51d96fef100285a0d225824534f9 and
+Subject: [PATCH 80/98] Revert 61b838dd574c51d96fef100285a0d225824534f9 and
  just quieten log instead.
 
 ---
  just quieten log instead.
 
 ---
index 4fb78d4cafee6c05a25a6dd38c42435ba17e2881..13ff0595fc263c18c50b8dcaff7e6e0979894a22 100644 (file)
@@ -1,7 +1,7 @@
 From cbe379ad6b52a538a4416a7cd992817e5637ccf9 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Tue, 21 Apr 2015 22:57:06 +0100
 From cbe379ad6b52a538a4416a7cd992817e5637ccf9 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Tue, 21 Apr 2015 22:57:06 +0100
-Subject: [PATCH 81/87] Handle domain names with '.' or /000 within labels.
+Subject: [PATCH 81/98] Handle domain names with '.' or /000 within labels.
 
 Only in DNSSEC mode, where we might need to validate or store
 such names. In none-DNSSEC mode, simply don't cache these, as before.
 
 Only in DNSSEC mode, where we might need to validate or store
 such names. In none-DNSSEC mode, simply don't cache these, as before.
index ea6f08d7e7aab549fb5ad21b05c7db512cb27636..2429e992b06c9a57129765cbe0330ed9d7e07d27 100644 (file)
@@ -1,7 +1,7 @@
 From b8f16556d36924cd8dc7663cb4129d7b1f3fc2be Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Wed, 22 Apr 2015 21:14:31 +0100
 From b8f16556d36924cd8dc7663cb4129d7b1f3fc2be Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Wed, 22 Apr 2015 21:14:31 +0100
-Subject: [PATCH 82/87] Tweaks to previous, DNS label charset commit.
+Subject: [PATCH 82/98] Tweaks to previous, DNS label charset commit.
 
 ---
  src/dns-protocol.h |  6 +++++-
 
 ---
  src/dns-protocol.h |  6 +++++-
index 96dc14bc09e53914b09d91c0e6be6e8d76ea8537..423b40e4ef784dbacb1c4ddab6ffceb1a50728b4 100644 (file)
@@ -1,7 +1,7 @@
 From a5ae1f85873829efe473075ad77806cc02792622 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sat, 25 Apr 2015 21:46:10 +0100
 From a5ae1f85873829efe473075ad77806cc02792622 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Sat, 25 Apr 2015 21:46:10 +0100
-Subject: [PATCH 83/87] Logs in DHCPv6 not suppressed by dhcp6-quiet.
+Subject: [PATCH 83/98] Logs in DHCPv6 not suppressed by dhcp6-quiet.
 
 ---
  CHANGELOG     | 6 +++++-
 
 ---
  CHANGELOG     | 6 +++++-
index 38670a819af9fffd642018f6357d985b216e7ead..555bd6cd5a30abf7d6e80daaef7d129ac19a8324 100644 (file)
@@ -1,7 +1,7 @@
 From 8efd731cc4ed2baa42aa69d0a9d336392e9987cb Mon Sep 17 00:00:00 2001
 From: "Johnny S. Lee" <_@jsl.io>
 Date: Sun, 26 Apr 2015 22:23:57 +0100
 From 8efd731cc4ed2baa42aa69d0a9d336392e9987cb Mon Sep 17 00:00:00 2001
 From: "Johnny S. Lee" <_@jsl.io>
 Date: Sun, 26 Apr 2015 22:23:57 +0100
-Subject: [PATCH 84/87] Make get-version work when repo is a git submodule.
+Subject: [PATCH 84/98] Make get-version work when repo is a git submodule.
 
 ---
  bld/get-version | 5 +++--
 
 ---
  bld/get-version | 5 +++--
index 04bee995069e59283c017fdbb4f392a462b6e976..828c21f631f1434fa0efbd8e05c844ad33c609ce 100644 (file)
@@ -1,7 +1,7 @@
 From e66b4dff3c562c7836d5be4c26972d665ad783f1 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Tue, 28 Apr 2015 20:45:57 +0100
 From e66b4dff3c562c7836d5be4c26972d665ad783f1 Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Tue, 28 Apr 2015 20:45:57 +0100
-Subject: [PATCH 85/87] Fix argument-order botch which broke DNSSEC for TCP
+Subject: [PATCH 85/98] Fix argument-order botch which broke DNSSEC for TCP
  queries.
 
 ---
  queries.
 
 ---
index 1fa5c7ac5b42cc2e0fb68d99384310e330401966..9d3aadc89ad4b135021a2cb9f3435cd16bb384b3 100644 (file)
@@ -1,7 +1,7 @@
 From 2ed162ac204f3609fe4d9f9a0430baeaa352d88f Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Tue, 28 Apr 2015 21:26:35 +0100
 From 2ed162ac204f3609fe4d9f9a0430baeaa352d88f Mon Sep 17 00:00:00 2001
 From: Simon Kelley <simon@thekelleys.org.uk>
 Date: Tue, 28 Apr 2015 21:26:35 +0100
-Subject: [PATCH 86/87] Don't remove RRSIG RR from answers to ANY queries when
+Subject: [PATCH 86/98] Don't remove RRSIG RR from answers to ANY queries when
  the do bit is not set.
 
 ---
  the do bit is not set.
 
 ---
index 8d1ca9e6e47cddeff5c2b08821e52d2c125f8b51..743548ef31bafbdb6d81124b33b7d7a6fa1a04ab 100644 (file)
@@ -1,7 +1,7 @@
 From 64bcff1c7c72eecda8750bc2dca8b4c5dc38a837 Mon Sep 17 00:00:00 2001
 From: Nicolas Cavallari <nicolas.cavallari@green-communications.fr>
 Date: Tue, 28 Apr 2015 21:55:18 +0100
 From 64bcff1c7c72eecda8750bc2dca8b4c5dc38a837 Mon Sep 17 00:00:00 2001
 From: Nicolas Cavallari <nicolas.cavallari@green-communications.fr>
 Date: Tue, 28 Apr 2015 21:55:18 +0100
-Subject: [PATCH 87/87] Constify some DHCP lease management functions.
+Subject: [PATCH 87/98] Constify some DHCP lease management functions.
 
 ---
  src/dnsmasq.h | 7 ++++---
 
 ---
  src/dnsmasq.h | 7 ++++---
diff --git a/src/patches/dnsmasq/0088-Handle-UDP-packet-loss-when-fragmentation-of-large-p.patch b/src/patches/dnsmasq/0088-Handle-UDP-packet-loss-when-fragmentation-of-large-p.patch
new file mode 100644 (file)
index 0000000..af4d6d7
--- /dev/null
@@ -0,0 +1,332 @@
+From a77cec8d58231d71cbc26615f0c0f0292c09ef54 Mon Sep 17 00:00:00 2001
+From: Simon Kelley <simon@thekelleys.org.uk>
+Date: Fri, 8 May 2015 16:25:38 +0100
+Subject: [PATCH 88/98] Handle UDP packet loss when fragmentation of large
+ packets is broken.
+
+---
+ CHANGELOG     |  6 ++++++
+ src/config.h  |  1 +
+ src/dnsmasq.h |  5 +++--
+ src/dnssec.c  | 11 +++++++++--
+ src/forward.c | 37 +++++++++++++++++++++++++++++--------
+ src/network.c |  1 +
+ src/option.c  | 18 +++++++++++-------
+ src/rfc1035.c | 22 ++++++----------------
+ 8 files changed, 66 insertions(+), 35 deletions(-)
+
+diff --git a/CHANGELOG b/CHANGELOG
+index af2b22cf8f73..d8fc57a418bb 100644
+--- a/CHANGELOG
++++ b/CHANGELOG
+@@ -109,6 +109,12 @@ version 2.73
+           by quiet-dhcp6. Thanks to J. Pablo Abonia for 
+           spotting the problem.
++          Try and handle net connections with broken fragmentation 
++          that lose large UDP packets. If a server times out, 
++            reduce the maximum UDP packet size field in the EDNS0
++          header to 1280 bytes. If it then answers, make that
++          change permanent.
++
+       
+ version 2.72
+             Add ra-advrouter mode, for RFC-3775 mobile IPv6 support.
+diff --git a/src/config.h b/src/config.h
+index 8def6f200461..f75fe9db7081 100644
+--- a/src/config.h
++++ b/src/config.h
+@@ -19,6 +19,7 @@
+ #define CHILD_LIFETIME 150 /* secs 'till terminated (RFC1035 suggests > 120s) */
+ #define TCP_MAX_QUERIES 100 /* Maximum number of queries per incoming TCP connection */
+ #define EDNS_PKTSZ 4096 /* default max EDNS.0 UDP packet from RFC5625 */
++#define SAFE_PKTSZ 1280 /* "go anywhere" UDP packet size */
+ #define KEYBLOCK_LEN 40 /* choose to mininise fragmentation when storing DNSSEC keys */
+ #define DNSSEC_WORK 50 /* Max number of queries to validate one question */
+ #define TIMEOUT 10 /* drop UDP queries after TIMEOUT seconds */
+diff --git a/src/dnsmasq.h b/src/dnsmasq.h
+index 824a86009439..ab16f79b3ec9 100644
+--- a/src/dnsmasq.h
++++ b/src/dnsmasq.h
+@@ -504,7 +504,7 @@ struct server {
+   char interface[IF_NAMESIZE+1];
+   struct serverfd *sfd; 
+   char *domain; /* set if this server only handles a domain. */ 
+-  int flags, tcpfd;
++  int flags, tcpfd, edns_pktsz;
+   unsigned int queries, failed_queries;
+ #ifdef HAVE_LOOP
+   u32 uid;
+@@ -594,6 +594,7 @@ struct hostsfile {
+ #define FREC_DO_QUESTION       64
+ #define FREC_ADDED_PHEADER    128
+ #define FREC_CHECK_NOSIGN     256
++#define FREC_TEST_PKTSZ       512
+ #ifdef HAVE_DNSSEC
+ #define HASH_SIZE 20 /* SHA-1 digest size */
+@@ -1148,7 +1149,7 @@ int in_zone(struct auth_zone *zone, char *name, char **cut);
+ #endif
+ /* dnssec.c */
+-size_t dnssec_generate_query(struct dns_header *header, char *end, char *name, int class, int type, union mysockaddr *addr);
++size_t dnssec_generate_query(struct dns_header *header, char *end, char *name, int class, int type, union mysockaddr *addr, int edns_pktsz);
+ int dnssec_validate_by_ds(time_t now, struct dns_header *header, size_t n, char *name, char *keyname, int class);
+ int dnssec_validate_ds(time_t now, struct dns_header *header, size_t plen, char *name, char *keyname, int class);
+ int dnssec_validate_reply(time_t now, struct dns_header *header, size_t plen, char *name, char *keyname, int *class, int *neganswer, int *nons);
+diff --git a/src/dnssec.c b/src/dnssec.c
+index a9e12153ccf2..e91d7c2cf040 100644
+--- a/src/dnssec.c
++++ b/src/dnssec.c
+@@ -2162,10 +2162,12 @@ int dnskey_keytag(int alg, int flags, unsigned char *key, int keylen)
+     }
+ }
+-size_t dnssec_generate_query(struct dns_header *header, char *end, char *name, int class, int type, union mysockaddr *addr)
++size_t dnssec_generate_query(struct dns_header *header, char *end, char *name, int class, 
++                           int type, union mysockaddr *addr, int edns_pktsz)
+ {
+   unsigned char *p;
+   char *types = querystr("dnssec-query", type);
++  size_t ret;
+   if (addr->sa.sa_family == AF_INET) 
+     log_query(F_NOEXTRA | F_DNSSEC | F_IPV4, name, (struct all_addr *)&addr->in.sin_addr, types);
+@@ -2194,7 +2196,12 @@ size_t dnssec_generate_query(struct dns_header *header, char *end, char *name, i
+   PUTSHORT(type, p);
+   PUTSHORT(class, p);
+-  return add_do_bit(header, p - (unsigned char *)header, end);
++  ret = add_do_bit(header, p - (unsigned char *)header, end);
++
++  if (find_pseudoheader(header, ret, NULL, &p, NULL))
++    PUTSHORT(edns_pktsz, p);
++
++  return ret;
+ }
+ /* Go through a domain name, find "pointers" and fix them up based on how many bytes
+diff --git a/src/forward.c b/src/forward.c
+index a8e403c4b25e..592243fd4d35 100644
+--- a/src/forward.c
++++ b/src/forward.c
+@@ -253,6 +253,7 @@ static int forward_query(int udpfd, union mysockaddr *udpaddr,
+   void *hash = &crc;
+ #endif
+  unsigned int gotname = extract_request(header, plen, daemon->namebuff, NULL);
++ unsigned char *pheader;
+  (void)do_bit;
+@@ -261,19 +262,32 @@ static int forward_query(int udpfd, union mysockaddr *udpaddr,
+     forward = NULL;
+   else if (forward || (hash && (forward = lookup_frec_by_sender(ntohs(header->id), udpaddr, hash))))
+     {
++      /* If we didn't get an answer advertising a maximal packet in EDNS,
++       fall back to 1280, which should work everywhere on IPv6.
++       If that generates an answer, it will become the new default
++       for this server */
++      forward->flags |= FREC_TEST_PKTSZ;
++      
+ #ifdef HAVE_DNSSEC
+       /* If we've already got an answer to this query, but we're awaiting keys for validation,
+        there's no point retrying the query, retry the key query instead...... */
+       if (forward->blocking_query)
+       {
+         int fd;
+-
++        
++        forward->flags &= ~FREC_TEST_PKTSZ;
++        
+         while (forward->blocking_query)
+           forward = forward->blocking_query;
++         
++        forward->flags |= FREC_TEST_PKTSZ;
+         
+         blockdata_retrieve(forward->stash, forward->stash_len, (void *)header);
+         plen = forward->stash_len;
+         
++        if (find_pseudoheader(header, plen, NULL, &pheader, NULL))
++          PUTSHORT((forward->flags & FREC_TEST_PKTSZ) ? SAFE_PKTSZ : forward->sentto->edns_pktsz, pheader);
++
+         if (forward->sentto->addr.sa.sa_family == AF_INET) 
+           log_query(F_NOEXTRA | F_DNSSEC | F_IPV4, "retry", (struct all_addr *)&forward->sentto->addr.in.sin_addr, "dnssec");
+ #ifdef HAVE_IPV6
+@@ -417,7 +431,7 @@ static int forward_query(int udpfd, union mysockaddr *udpaddr,
+         plen = new_plen;
+       }
+ #endif
+-
++      
+       while (1)
+       { 
+         /* only send to servers dealing with our domain.
+@@ -464,6 +478,9 @@ static int forward_query(int udpfd, union mysockaddr *udpaddr,
+                   }
+ #endif
+               }
++
++            if (find_pseudoheader(header, plen, NULL, &pheader, NULL))
++              PUTSHORT((forward->flags & FREC_TEST_PKTSZ) ? SAFE_PKTSZ : start->edns_pktsz, pheader);
+             
+             if (retry_send(sendto(fd, (char *)header, plen, 0,
+                                   &start->addr.sa,
+@@ -760,7 +777,6 @@ void reply_query(int fd, int family, time_t now)
+     }   
+    
+   server = forward->sentto;
+-  
+   if ((forward->sentto->flags & SERV_TYPE) == 0)
+     {
+       if (RCODE(header) == REFUSED)
+@@ -781,7 +797,12 @@ void reply_query(int fd, int family, time_t now)
+       if (!option_bool(OPT_ALL_SERVERS))
+       daemon->last_server = server;
+     }
+-
++ 
++  /* We tried resending to this server with a smaller maximum size and got an answer.
++     Make that permanent. */
++  if (server && (forward->flags & FREC_TEST_PKTSZ))
++    server->edns_pktsz = SAFE_PKTSZ;
++  
+   /* If the answer is an error, keep the forward record in place in case
+      we get a good reply from another server. Kill it when we've
+      had replies from all to avoid filling the forwarding table when
+@@ -890,7 +911,7 @@ void reply_query(int fd, int family, time_t now)
+                   {
+                     new->flags |= FREC_DNSKEY_QUERY; 
+                     nn = dnssec_generate_query(header, ((char *) header) + daemon->packet_buff_sz,
+-                                               daemon->keyname, forward->class, T_DNSKEY, &server->addr);
++                                               daemon->keyname, forward->class, T_DNSKEY, &server->addr, server->edns_pktsz);
+                   }
+                 else 
+                   {
+@@ -899,7 +920,7 @@ void reply_query(int fd, int family, time_t now)
+                     else
+                       new->flags |= FREC_DS_QUERY;
+                     nn = dnssec_generate_query(header,((char *) header) + daemon->packet_buff_sz,
+-                                               daemon->keyname, forward->class, T_DS, &server->addr);
++                                               daemon->keyname, forward->class, T_DS, &server->addr, server->edns_pktsz);
+                   }
+                 if ((hash = hash_questions(header, nn, daemon->namebuff)))
+                   memcpy(new->hash, hash, HASH_SIZE);
+@@ -1526,7 +1547,7 @@ static int  tcp_check_for_unsigned_zone(time_t now, struct dns_header *header, s
+       
+       /* Can't find it in the cache, have to send a query */
+-      m = dnssec_generate_query(header, ((char *) header) + 65536, name_start, class, T_DS, &server->addr);
++      m = dnssec_generate_query(header, ((char *) header) + 65536, name_start, class, T_DS, &server->addr, server->edns_pktsz);
+       
+       *length = htons(m);
+       
+@@ -1638,7 +1659,7 @@ static int tcp_key_recurse(time_t now, int status, struct dns_header *header, si
+     another_tcp_key:
+       m = dnssec_generate_query(new_header, ((char *) new_header) + 65536, keyname, class, 
+-                              new_status == STAT_NEED_KEY ? T_DNSKEY : T_DS, &server->addr);
++                              new_status == STAT_NEED_KEY ? T_DNSKEY : T_DS, &server->addr, server->edns_pktsz);
+       
+       *length = htons(m);
+       
+diff --git a/src/network.c b/src/network.c
+index 992f023c31de..a1d90c876fc1 100644
+--- a/src/network.c
++++ b/src/network.c
+@@ -1396,6 +1396,7 @@ void add_update_server(int flags,
+       serv->domain = domain_str;
+       serv->next = next;
+       serv->queries = serv->failed_queries = 0;
++      serv->edns_pktsz = daemon->edns_pktsz;
+ #ifdef HAVE_LOOP
+       serv->uid = rand32();
+ #endif      
+diff --git a/src/option.c b/src/option.c
+index f91cfbb1aa54..c7add88de7ac 100644
+--- a/src/option.c
++++ b/src/option.c
+@@ -4498,15 +4498,19 @@ void read_opts(int argc, char **argv, char *compile_opts)
+     {
+       struct server *tmp;
+       for (tmp = daemon->servers; tmp; tmp = tmp->next)
+-      if (!(tmp->flags & SERV_HAS_SOURCE))
+-        {
+-          if (tmp->source_addr.sa.sa_family == AF_INET)
+-            tmp->source_addr.in.sin_port = htons(daemon->query_port);
++      {
++        tmp->edns_pktsz = daemon->edns_pktsz;
++       
++        if (!(tmp->flags & SERV_HAS_SOURCE))
++          {
++            if (tmp->source_addr.sa.sa_family == AF_INET)
++              tmp->source_addr.in.sin_port = htons(daemon->query_port);
+ #ifdef HAVE_IPV6
+-          else if (tmp->source_addr.sa.sa_family == AF_INET6)
+-            tmp->source_addr.in6.sin6_port = htons(daemon->query_port);
++            else if (tmp->source_addr.sa.sa_family == AF_INET6)
++              tmp->source_addr.in6.sin6_port = htons(daemon->query_port);
+ #endif 
+-        } 
++          }
++      } 
+     }
+   
+   if (daemon->if_addrs)
+diff --git a/src/rfc1035.c b/src/rfc1035.c
+index 5828055caa5d..8b1709dd3495 100644
+--- a/src/rfc1035.c
++++ b/src/rfc1035.c
+@@ -552,7 +552,7 @@ static size_t add_pseudoheader(struct dns_header *header, size_t plen, unsigned
+       return plen;
+       *p++ = 0; /* empty name */
+       PUTSHORT(T_OPT, p);
+-      PUTSHORT(daemon->edns_pktsz, p); /* max packet length */
++      PUTSHORT(SAFE_PKTSZ, p); /* max packet length, this will be overwritten */
+       PUTSHORT(0, p);    /* extended RCODE and version */
+       PUTSHORT(set_do ? 0x8000 : 0, p); /* DO flag */
+       lenp = p;
+@@ -1537,7 +1537,6 @@ size_t answer_request(struct dns_header *header, char *limit, size_t qlen,
+   unsigned short flag;
+   int q, ans, anscount = 0, addncount = 0;
+   int dryrun = 0, sec_reqd = 0, have_pseudoheader = 0;
+-  int is_sign;
+   struct crec *crecp;
+   int nxdomain = 0, auth = 1, trunc = 0, sec_data = 1;
+   struct mx_srv_record *rec;
+@@ -1557,28 +1556,19 @@ size_t answer_request(struct dns_header *header, char *limit, size_t qlen,
+      forward rather than answering from the cache, which doesn't include
+      security information, unless we're in DNSSEC validation mode. */
+-  if (find_pseudoheader(header, qlen, NULL, &pheader, &is_sign))
++  if (find_pseudoheader(header, qlen, NULL, &pheader, NULL))
+     { 
+-      unsigned short udpsz, flags;
+-      unsigned char *psave = pheader;
+-
++      unsigned short flags;
++      
+       have_pseudoheader = 1;
+-      GETSHORT(udpsz, pheader);
+-      pheader += 2; /* ext_rcode */
++      pheader += 4; /* udp size, ext_rcode */
+       GETSHORT(flags, pheader);
+       
+       if ((sec_reqd = flags & 0x8000))
+       *do_bit = 1;/* do bit */ 
+-      *ad_reqd = 1;
+-
+-      /* If our client is advertising a larger UDP packet size
+-       than we allow, trim it so that we don't get an overlarge
+-       response from upstream */
+-
+-      if (!is_sign && (udpsz > daemon->edns_pktsz))
+-      PUTSHORT(daemon->edns_pktsz, psave); 
++      *ad_reqd = 1;
+       dryrun = 1;
+     }
+-- 
+2.1.0
+
diff --git a/src/patches/dnsmasq/0089-Check-IPv4-mapped-IPv6-addresses-with-stop-rebind.patch b/src/patches/dnsmasq/0089-Check-IPv4-mapped-IPv6-addresses-with-stop-rebind.patch
new file mode 100644 (file)
index 0000000..c75d864
--- /dev/null
@@ -0,0 +1,59 @@
+From b059c96dc69dfe3055c5b32b078a05c53b11ebb3 Mon Sep 17 00:00:00 2001
+From: Simon Kelley <simon@thekelleys.org.uk>
+Date: Fri, 8 May 2015 20:25:51 +0100
+Subject: [PATCH 89/98] Check IPv4-mapped IPv6 addresses with --stop-rebind.
+
+---
+ CHANGELOG     |  3 +++
+ src/rfc1035.c | 21 +++++++++++++++++----
+ 2 files changed, 20 insertions(+), 4 deletions(-)
+
+diff --git a/CHANGELOG b/CHANGELOG
+index d8fc57a418bb..94a521f996e2 100644
+--- a/CHANGELOG
++++ b/CHANGELOG
+@@ -115,6 +115,9 @@ version 2.73
+           header to 1280 bytes. If it then answers, make that
+           change permanent.
++          Check IPv4-mapped IPv6 addresses when --stop-rebind
++          is active. Thanks to Jordan Milne for spotting this.
++
+       
+ version 2.72
+             Add ra-advrouter mode, for RFC-3775 mobile IPv6 support.
+diff --git a/src/rfc1035.c b/src/rfc1035.c
+index 8b1709dd3495..5e3f566fdbc5 100644
+--- a/src/rfc1035.c
++++ b/src/rfc1035.c
+@@ -1117,10 +1117,23 @@ int extract_addresses(struct dns_header *header, size_t qlen, char *name, time_t
+                     memcpy(&addr, p1, addrlen);
+                     
+                     /* check for returned address in private space */
+-                    if (check_rebind &&
+-                        (flags & F_IPV4) &&
+-                        private_net(addr.addr.addr4, !option_bool(OPT_LOCAL_REBIND)))
+-                      return 1;
++                    if (check_rebind)
++                      {
++                        if ((flags & F_IPV4) &&
++                            private_net(addr.addr.addr4, !option_bool(OPT_LOCAL_REBIND)))
++                          return 1;
++                        
++#ifdef HAVE_IPV6
++                        if ((flags & F_IPV6) &&
++                            IN6_IS_ADDR_V4MAPPED(&addr.addr.addr6))
++                          {
++                            struct in_addr v4;
++                            v4.s_addr = ((const uint32_t *) (&addr.addr.addr6))[3];
++                            if (private_net(v4, !option_bool(OPT_LOCAL_REBIND)))
++                              return 1;
++                          }
++#endif
++                      }
+                     
+ #ifdef HAVE_IPSET
+                     if (ipsets && (flags & (F_IPV4 | F_IPV6)))
+-- 
+2.1.0
+
diff --git a/src/patches/dnsmasq/0090-Tweak-EDNS-timeout-code.patch b/src/patches/dnsmasq/0090-Tweak-EDNS-timeout-code.patch
new file mode 100644 (file)
index 0000000..b6d9c47
--- /dev/null
@@ -0,0 +1,29 @@
+From 86fa1046920dedc8134136a6244ca96e8a37e9d8 Mon Sep 17 00:00:00 2001
+From: Simon Kelley <simon@thekelleys.org.uk>
+Date: Sun, 10 May 2015 13:50:59 +0100
+Subject: [PATCH 90/98] Tweak EDNS timeout code.
+
+---
+ src/forward.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/src/forward.c b/src/forward.c
+index 592243fd4d35..74e5ab66c423 100644
+--- a/src/forward.c
++++ b/src/forward.c
+@@ -799,8 +799,10 @@ void reply_query(int fd, int family, time_t now)
+     }
+  
+   /* We tried resending to this server with a smaller maximum size and got an answer.
+-     Make that permanent. */
+-  if (server && (forward->flags & FREC_TEST_PKTSZ))
++     Make that permanent. To avoid reduxing the packet size for an single dropped packet,
++     only do this when we get a truncated answer, or one larger than the safe size. */
++  if (server && (forward->flags & FREC_TEST_PKTSZ) && 
++      ((header->hb3 & HB3_TC) || n >= SAFE_PKTSZ))
+     server->edns_pktsz = SAFE_PKTSZ;
+   
+   /* If the answer is an error, keep the forward record in place in case
+-- 
+2.1.0
+
diff --git a/src/patches/dnsmasq/0091-Pointer-to-mail-archive-mailing-list-mirror-in-doc.h.patch b/src/patches/dnsmasq/0091-Pointer-to-mail-archive-mailing-list-mirror-in-doc.h.patch
new file mode 100644 (file)
index 0000000..b65bb87
--- /dev/null
@@ -0,0 +1,28 @@
+From 585840b03365372679907f175b07a01c9d621ae0 Mon Sep 17 00:00:00 2001
+From: Simon Kelley <simon@thekelleys.org.uk>
+Date: Wed, 13 May 2015 12:35:57 +0100
+Subject: [PATCH 91/98] Pointer to mail-archive mailing list mirror in
+ doc.html.
+
+---
+ doc.html | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/doc.html b/doc.html
+index 92c9d0d6f34c..54f59bbbd4d0 100644
+--- a/doc.html
++++ b/doc.html
+@@ -74,7 +74,9 @@ for details.
+ There is a dnsmasq mailing list at <A
+ HREF="http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss">
+ http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss</A> which should be the
+-first location for queries, bugreports, suggestions etc.
++first location for queries, bugreports, suggestions etc. The list is mirrored, with a
++search facility, at <A HREF="https://www.mail-archive.com/dnsmasq-discuss@lists.thekelleys.org.uk/">
++https://www.mail-archive.com/dnsmasq-discuss@lists.thekelleys.org.uk/</A>.
+ You can contact me at <A
+ HREF="mailto:simon@thekelleys.org.uk">simon@thekelleys.org.uk</A>.
+-- 
+2.1.0
+
diff --git a/src/patches/dnsmasq/0092-Allow-T1-and-T2-DHCPv4-options-to-be-set.patch b/src/patches/dnsmasq/0092-Allow-T1-and-T2-DHCPv4-options-to-be-set.patch
new file mode 100644 (file)
index 0000000..84246c3
--- /dev/null
@@ -0,0 +1,200 @@
+From ca85a28241ef87919d68d52c843b6964b7070e11 Mon Sep 17 00:00:00 2001
+From: Simon Kelley <simon@thekelleys.org.uk>
+Date: Wed, 13 May 2015 22:33:04 +0100
+Subject: [PATCH 92/98] Allow T1 and T2 DHCPv4 options to be set.
+
+---
+ CHANGELOG            |  3 +++
+ dnsmasq.conf.example |  8 ++++++
+ src/dhcp-common.c    |  4 +--
+ src/rfc2131.c        | 71 ++++++++++++++++++++++++++++++++++++----------------
+ 4 files changed, 63 insertions(+), 23 deletions(-)
+
+diff --git a/CHANGELOG b/CHANGELOG
+index 94a521f996e2..ef39a415788b 100644
+--- a/CHANGELOG
++++ b/CHANGELOG
+@@ -118,6 +118,9 @@ version 2.73
+           Check IPv4-mapped IPv6 addresses when --stop-rebind
+           is active. Thanks to Jordan Milne for spotting this.
++          Allow DHCPv4 options T1 and T2 to be set using --dhcp-option.
++          Thanks to Kevin Benton for patches and work on this.
++
+       
+ version 2.72
+             Add ra-advrouter mode, for RFC-3775 mobile IPv6 support.
+diff --git a/dnsmasq.conf.example b/dnsmasq.conf.example
+index 67be99acb028..1ae11dfb5358 100644
+--- a/dnsmasq.conf.example
++++ b/dnsmasq.conf.example
+@@ -345,6 +345,14 @@
+ # Ask client to poll for option changes every six hours. (RFC4242)
+ #dhcp-option=option6:information-refresh-time,6h
++# Set option 58 client renewal time (T1). Defaults to half of the
++# lease time if not specified. (RFC2132)
++#dhcp-option=option:T1:1m
++
++# Set option 59 rebinding time (T2). Defaults to 7/8 of the
++# lease time if not specified. (RFC2132)
++#dhcp-option=option:T2:2m
++
+ # Set the NTP time server address to be the same machine as
+ # is running dnsmasq
+ #dhcp-option=42,0.0.0.0
+diff --git a/src/dhcp-common.c b/src/dhcp-common.c
+index ce115202a646..bc48f41a14d7 100644
+--- a/src/dhcp-common.c
++++ b/src/dhcp-common.c
+@@ -545,8 +545,8 @@ static const struct opttab_t {
+   { "parameter-request", 55, OT_INTERNAL },
+   { "message", 56, OT_INTERNAL },
+   { "max-message-size", 57, OT_INTERNAL },
+-  { "T1", 58, OT_INTERNAL | OT_TIME},
+-  { "T2", 59, OT_INTERNAL | OT_TIME},
++  { "T1", 58, OT_TIME},
++  { "T2", 59, OT_TIME},
+   { "vendor-class", 60, 0 },
+   { "client-id", 61, OT_INTERNAL },
+   { "nis+-domain", 64, OT_NAME },
+diff --git a/src/rfc2131.c b/src/rfc2131.c
+index 55526443dc84..a10e499ef768 100644
+--- a/src/rfc2131.c
++++ b/src/rfc2131.c
+@@ -52,7 +52,9 @@ static void do_options(struct dhcp_context *context,
+                      int null_term, int pxearch,
+                      unsigned char *uuid,
+                      int vendor_class_len,
+-                     time_t now);
++                     time_t now,
++                     unsigned int lease_time,
++                     unsigned short fuzz);
+ static void match_vendor_opts(unsigned char *opt, struct dhcp_opt *dopt); 
+@@ -610,7 +612,7 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
+             
+             clear_packet(mess, end);
+             do_options(context, mess, end, NULL, hostname, get_domain(mess->yiaddr), 
+-                       netid, subnet_addr, 0, 0, -1, NULL, vendor_class_len, now);
++                       netid, subnet_addr, 0, 0, -1, NULL, vendor_class_len, now, 0xffffffff, 0);
+           }
+       }
+       
+@@ -1042,13 +1044,8 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
+       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);
+       /* T1 and T2 are required in DHCPOFFER by HP's wacky Jetdirect client. */
+-      if (time != 0xffffffff)
+-      {
+-        option_put(mess, end, OPTION_T1, 4, (time/2));
+-        option_put(mess, end, OPTION_T2, 4, (time*7)/8);
+-      }
+       do_options(context, mess, end, req_options, offer_hostname, get_domain(mess->yiaddr), 
+-               netid, subnet_addr, fqdn_flags, borken_opt, pxearch, uuid, vendor_class_len, now);
++               netid, subnet_addr, fqdn_flags, borken_opt, pxearch, uuid, vendor_class_len, now, time, fuzz);
+       
+       return dhcp_packet_size(mess, agent_id, real_end);
+       
+@@ -1367,15 +1364,8 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
+         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);
+-        if (time != 0xffffffff)
+-          {
+-            while (fuzz > (time/16))
+-              fuzz = fuzz/2; 
+-            option_put(mess, end, OPTION_T1, 4, (time/2) - fuzz);
+-            option_put(mess, end, OPTION_T2, 4, ((time/8)*7) - fuzz);
+-          }
+         do_options(context, mess, end, req_options, hostname, get_domain(mess->yiaddr), 
+-                   netid, subnet_addr, fqdn_flags, borken_opt, pxearch, uuid, vendor_class_len, now);
++                   netid, subnet_addr, fqdn_flags, borken_opt, pxearch, uuid, vendor_class_len, now, time, fuzz);
+       }
+       return dhcp_packet_size(mess, agent_id, real_end); 
+@@ -1440,7 +1430,7 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
+       }
+       do_options(context, mess, end, req_options, hostname, get_domain(mess->ciaddr),
+-               netid, subnet_addr, fqdn_flags, borken_opt, pxearch, uuid, vendor_class_len, now);
++               netid, subnet_addr, fqdn_flags, borken_opt, pxearch, uuid, vendor_class_len, now, 0xffffffff, 0);
+       
+       *is_inform = 1; /* handle reply differently */
+       return dhcp_packet_size(mess, agent_id, real_end); 
+@@ -2137,7 +2127,9 @@ static void do_options(struct dhcp_context *context,
+                      int null_term, int pxe_arch,
+                      unsigned char *uuid,
+                      int vendor_class_len,
+-                     time_t now)
++                     time_t now,
++                     unsigned int lease_time,
++                     unsigned short fuzz)
+ {
+   struct dhcp_opt *opt, *config_opts = daemon->dhcp_opts;
+   struct dhcp_boot *boot;
+@@ -2261,7 +2253,42 @@ static void do_options(struct dhcp_context *context,
+   /* rfc3011 says this doesn't need to be in the requested options list. */
+   if (subnet_addr.s_addr)
+     option_put(mess, end, OPTION_SUBNET_SELECT, INADDRSZ, ntohl(subnet_addr.s_addr));
+-  
++   
++  if (lease_time != 0xffffffff)
++    { 
++      unsigned int t1val = lease_time/2; 
++      unsigned int t2val = (lease_time*7)/8;
++      unsigned int hval;
++      
++      /* If set by user, sanity check, so not longer than lease. */
++      if ((opt = option_find2(OPTION_T1)))
++      {
++        hval = ntohl(*((unsigned int *)opt->val));
++        if (hval < lease_time && hval > 2)
++          t1val = hval;
++      }
++
++       if ((opt = option_find2(OPTION_T2)))
++      {
++        hval = ntohl(*((unsigned int *)opt->val));
++        if (hval < lease_time && hval > 2)
++          t2val = hval;
++      }
++                
++       while (fuzz > (t1val/8))
++       fuzz = fuzz/2;
++       
++       t1val -= fuzz;
++       t2val -= fuzz;
++       
++       /* ensure T1 is still < T2 */
++       if (t2val <= t1val)
++       t1val = t2val - 1; 
++
++       option_put(mess, end, OPTION_T1, 4, t1val);
++       option_put(mess, end, OPTION_T2, 4, t2val);
++    }
++
+   /* replies to DHCPINFORM may not have a valid context */
+   if (context)
+     {
+@@ -2356,12 +2383,14 @@ static void do_options(struct dhcp_context *context,
+       if (!(opt->flags & DHOPT_FORCE) && !in_list(req_options, optno))
+       continue;
+       
+-      /* prohibit some used-internally options */
++      /* prohibit some used-internally options. T1 and T2 already handled. */
+       if (optno == OPTION_CLIENT_FQDN ||
+         optno == OPTION_MAXMESSAGE ||
+         optno == OPTION_OVERLOAD ||
+         optno == OPTION_PAD ||
+-        optno == OPTION_END)
++        optno == OPTION_END ||
++        optno == OPTION_T1 ||
++        optno == OPTION_T2)
+       continue;
+       if (optno == OPTION_SNAME && done_server)
+-- 
+2.1.0
+
diff --git a/src/patches/dnsmasq/0093-Tweak-last-commit.patch b/src/patches/dnsmasq/0093-Tweak-last-commit.patch
new file mode 100644 (file)
index 0000000..578e764
--- /dev/null
@@ -0,0 +1,37 @@
+From 7c0f2543a7e761d1ec82738374556beeb8a35bef Mon Sep 17 00:00:00 2001
+From: Simon Kelley <simon@thekelleys.org.uk>
+Date: Thu, 14 May 2015 21:16:18 +0100
+Subject: [PATCH 93/98] Tweak last commit.
+
+---
+ src/rfc2131.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/rfc2131.c b/src/rfc2131.c
+index a10e499ef768..b95f9beadf59 100644
+--- a/src/rfc2131.c
++++ b/src/rfc2131.c
+@@ -2275,16 +2275,16 @@ static void do_options(struct dhcp_context *context,
+           t2val = hval;
+       }
+                 
++       /* ensure T1 is still < T2 */
++       if (t2val <= t1val)
++       t1val = t2val - 1; 
++
+        while (fuzz > (t1val/8))
+        fuzz = fuzz/2;
+        
+        t1val -= fuzz;
+        t2val -= fuzz;
+        
+-       /* ensure T1 is still < T2 */
+-       if (t2val <= t1val)
+-       t1val = t2val - 1; 
+-
+        option_put(mess, end, OPTION_T1, 4, t1val);
+        option_put(mess, end, OPTION_T2, 4, t2val);
+     }
+-- 
+2.1.0
+
diff --git a/src/patches/dnsmasq/0094-Use-correct-DHCP-context-for-PXE-proxy-server-id.patch b/src/patches/dnsmasq/0094-Use-correct-DHCP-context-for-PXE-proxy-server-id.patch
new file mode 100644 (file)
index 0000000..a7d7546
--- /dev/null
@@ -0,0 +1,29 @@
+From 62018e1f720fa11e83879111a4b1b3753b5c25bb Mon Sep 17 00:00:00 2001
+From: Simon Kelley <simon@thekelleys.org.uk>
+Date: Thu, 14 May 2015 21:30:00 +0100
+Subject: [PATCH 94/98] Use correct DHCP context for PXE-proxy server-id.
+
+---
+ src/rfc2131.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/rfc2131.c b/src/rfc2131.c
+index b95f9beadf59..70d1e59530ad 100644
+--- a/src/rfc2131.c
++++ b/src/rfc2131.c
+@@ -888,10 +888,10 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
+                 
+                 option_put(mess, end, OPTION_MESSAGE_TYPE, 1, 
+                            mess_type == DHCPDISCOVER ? DHCPOFFER : DHCPACK);
+-                option_put(mess, end, OPTION_SERVER_IDENTIFIER, INADDRSZ, htonl(context->local.s_addr));
++                option_put(mess, end, OPTION_SERVER_IDENTIFIER, INADDRSZ, htonl(tmp->local.s_addr));
+                 pxe_misc(mess, end, uuid);
+                 prune_vendor_opts(tagif_netid);
+-                do_encap_opts(pxe_opts(pxearch, tagif_netid, context->local, now), OPTION_VENDOR_CLASS_OPT, DHOPT_VENDOR_MATCH, mess, end, 0);
++                do_encap_opts(pxe_opts(pxearch, tagif_netid, tmp->local, now), OPTION_VENDOR_CLASS_OPT, DHOPT_VENDOR_MATCH, mess, end, 0);
+                 
+                 log_packet("PXE", NULL, emac, emac_len, iface_name, ignore ? "proxy-ignored" : "proxy", NULL, mess->xid);
+                 log_tags(tagif_netid, ntohl(mess->xid));
+-- 
+2.1.0
+
diff --git a/src/patches/dnsmasq/0095-Fix-buffer-overflow-introduced-in-2.73rc6.patch b/src/patches/dnsmasq/0095-Fix-buffer-overflow-introduced-in-2.73rc6.patch
new file mode 100644 (file)
index 0000000..b1b06f2
--- /dev/null
@@ -0,0 +1,49 @@
+From 5d07d77e75e0f02bc0a8f6029ffbc8b371fa804e Mon Sep 17 00:00:00 2001
+From: Simon Kelley <simon@thekelleys.org.uk>
+Date: Fri, 15 May 2015 18:13:06 +0100
+Subject: [PATCH 95/98] Fix buffer overflow introduced in 2.73rc6.
+
+Fix off-by-one in code which checks for over-long domain names
+in received DNS packets. This enables buffer overflow attacks
+which can certainly crash dnsmasq and may allow for arbitrary
+code execution. The problem was introduced in commit b8f16556d,
+release 2.73rc6, so has not escaped into any stable release.
+Note that the off-by-one was in the label length determination,
+so the buffer can be overflowed by as many bytes as there are
+labels in the name - ie, many.
+
+Thanks to Ron Bowes, who used lcmatuf's afl-fuzz tool to find
+the problem.
+---
+ src/rfc1035.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/rfc1035.c b/src/rfc1035.c
+index 5e3f566fdbc5..a95241f83523 100644
+--- a/src/rfc1035.c
++++ b/src/rfc1035.c
+@@ -94,8 +94,8 @@ int extract_name(struct dns_header *header, size_t plen, unsigned char **pp,
+           count = 256;
+         digs = ((count-1)>>2)+1;
+         
+-        /* output is \[x<hex>/siz]. which is digs+6/7/8 chars */
+-        namelen += digs+6;
++        /* output is \[x<hex>/siz]. which is digs+7/8/9 chars */
++        namelen += digs+7;
+         if (count > 9)
+           namelen++;
+         if (count > 99)
+@@ -125,8 +125,8 @@ int extract_name(struct dns_header *header, size_t plen, unsigned char **pp,
+       }
+       else 
+       { /* label_type = 0 -> label. */
+-        namelen += l;
+-        if (namelen+1 >= MAXDNAME)
++        namelen += l + 1; /* include period */
++        if (namelen >= MAXDNAME)
+           return 0;
+         if (!CHECK_LEN(header, p, plen, l))
+           return 0;
+-- 
+2.1.0
+
diff --git a/src/patches/dnsmasq/0096-Remove-support-for-DNS-Extended-Label-Types.patch b/src/patches/dnsmasq/0096-Remove-support-for-DNS-Extended-Label-Types.patch
new file mode 100644 (file)
index 0000000..db0a1e5
--- /dev/null
@@ -0,0 +1,89 @@
+From 06568c663643b9ed1577d95efee69d734f427cf5 Mon Sep 17 00:00:00 2001
+From: Simon Kelley <simon@thekelleys.org.uk>
+Date: Fri, 15 May 2015 20:43:48 +0100
+Subject: [PATCH 96/98] Remove support for DNS Extended Label Types.
+
+The support was only partial, and the whole concept is
+now deprecated in the standards.
+---
+ src/rfc1035.c | 52 ++++------------------------------------------------
+ 1 file changed, 4 insertions(+), 48 deletions(-)
+
+diff --git a/src/rfc1035.c b/src/rfc1035.c
+index a95241f83523..56647b02ab4d 100644
+--- a/src/rfc1035.c
++++ b/src/rfc1035.c
+@@ -77,53 +77,7 @@ int extract_name(struct dns_header *header, size_t plen, unsigned char **pp,
+         
+         p = l + (unsigned char *)header;
+       }
+-      else if (label_type == 0x80)
+-      return 0; /* reserved */
+-      else if (label_type == 0x40)
+-      { /* ELT */
+-        unsigned int count, digs;
+-        
+-        if ((l & 0x3f) != 1)
+-          return 0; /* we only understand bitstrings */
+-
+-        if (!isExtract)
+-          return 0; /* Cannot compare bitsrings */
+-        
+-        count = *p++;
+-        if (count == 0)
+-          count = 256;
+-        digs = ((count-1)>>2)+1;
+-        
+-        /* output is \[x<hex>/siz]. which is digs+7/8/9 chars */
+-        namelen += digs+7;
+-        if (count > 9)
+-          namelen++;
+-        if (count > 99)
+-          namelen++;
+-        if (namelen+1 >= MAXDNAME)
+-          return 0;
+-
+-        if (!CHECK_LEN(header, p, plen, (count-1)>>3))
+-          return 0;
+-
+-        *cp++ = '\\';
+-        *cp++ = '[';
+-        *cp++ = 'x';
+-        for (j=0; j<digs; j++)
+-          {
+-            unsigned int dig;
+-            if (j%2 == 0)
+-              dig = *p >> 4;
+-            else
+-              dig = *p++ & 0x0f;
+-            
+-            *cp++ = dig < 10 ? dig + '0' : dig + 'A' - 10;
+-          } 
+-        cp += sprintf((char *)cp, "/%d]", count);
+-        /* do this here to overwrite the zero char from sprintf */
+-        *cp++ = '.';
+-      }
+-      else 
++      else if (label_type == 0x00)
+       { /* label_type = 0 -> label. */
+         namelen += l + 1; /* include period */
+         if (namelen >= MAXDNAME)
+@@ -176,12 +130,14 @@ int extract_name(struct dns_header *header, size_t plen, unsigned char **pp,
+                     retvalue =  2;
+                 }
+             }
+-        
++          
+         if (isExtract)
+           *cp++ = '.';
+         else if (*cp != 0 && *cp++ != '.')
+           retvalue = 2;
+       }
++      else
++      return 0; /* label types 0x40 and 0x80 not supported */
+     }
+ }
+  
+-- 
+2.1.0
+
diff --git a/src/patches/dnsmasq/0097-Select-correct-DHCP-context-when-in-PXE-bootserver-m.patch b/src/patches/dnsmasq/0097-Select-correct-DHCP-context-when-in-PXE-bootserver-m.patch
new file mode 100644 (file)
index 0000000..b9f2e63
--- /dev/null
@@ -0,0 +1,26 @@
+From 7f8565b94ca52dde31f7688a9f9a0cc611d9dae3 Mon Sep 17 00:00:00 2001
+From: Simon Kelley <simon@thekelleys.org.uk>
+Date: Tue, 19 May 2015 23:01:27 +0100
+Subject: [PATCH 97/98] Select correct DHCP context when in PXE bootserver
+ mode.
+
+---
+ src/rfc2131.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/rfc2131.c b/src/rfc2131.c
+index 70d1e59530ad..e602a21585c9 100644
+--- a/src/rfc2131.c
++++ b/src/rfc2131.c
+@@ -805,7 +805,7 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
+           if (service->type == type)
+             break;
+         
+-        if (!service || !service->basename)
++        if (!service || !service->basename || !(context = narrow_context(context, mess->ciaddr, tagif_netid)))
+           return 0;
+         
+         clear_packet(mess, end);
+-- 
+2.1.0
+
diff --git a/src/patches/dnsmasq/0098-Tweak-immediately-previous-patch.patch b/src/patches/dnsmasq/0098-Tweak-immediately-previous-patch.patch
new file mode 100644 (file)
index 0000000..1be4278
--- /dev/null
@@ -0,0 +1,33 @@
+From 549b1a478c5eee9dbd3a0709913a26ec29d30f2c Mon Sep 17 00:00:00 2001
+From: Simon Kelley <simon@thekelleys.org.uk>
+Date: Wed, 20 May 2015 20:20:24 +0100
+Subject: [PATCH 98/98] Tweak immediately previous patch.
+
+---
+ src/rfc2131.c | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/src/rfc2131.c b/src/rfc2131.c
+index e602a21585c9..9f69ed595903 100644
+--- a/src/rfc2131.c
++++ b/src/rfc2131.c
+@@ -805,9 +805,14 @@ size_t dhcp_reply(struct dhcp_context *context, char *iface_name, int int_index,
+           if (service->type == type)
+             break;
+         
+-        if (!service || !service->basename || !(context = narrow_context(context, mess->ciaddr, tagif_netid)))
+-          return 0;
++        for (; context; context = context->current)
++          if (match_netid(context->filter, tagif_netid, 1) &&
++              is_same_net(mess->ciaddr, context->start, context->netmask))
++            break;
+         
++        if (!service || !service->basename || !context)
++          return 0;
++                
+         clear_packet(mess, end);
+         
+         mess->yiaddr = mess->ciaddr;
+-- 
+2.1.0
+