From e27a82dbeb9554686bc5098d15aeb226d9875fd7 Mon Sep 17 00:00:00 2001
From: Jan Vcelak <jvcelak@fedoraproject.org>
Date: Thu, 17 Nov 2016 12:52:30 +0100
Subject: [PATCH] new upstream version

---
 0001-dns-cookies-endian.patch | 216 ----------------------------------
 knot.spec                     |  35 +++++-
 sources                       |   2 +-
 3 files changed, 31 insertions(+), 222 deletions(-)
 delete mode 100644 0001-dns-cookies-endian.patch

diff --git a/0001-dns-cookies-endian.patch b/0001-dns-cookies-endian.patch
deleted file mode 100644
index 60667ab..0000000
--- a/0001-dns-cookies-endian.patch
+++ /dev/null
@@ -1,216 +0,0 @@
-From 84849be189c49ef9556bd84d5e5103317372e8a7 Mon Sep 17 00:00:00 2001
-From: Karel Slany <karel.slany@nic.cz>
-Date: Thu, 11 Aug 2016 11:39:39 +0200
-Subject: [PATCH] Added conversion to wire format when writing FNV64 hash values.
-
-Test on big-endian machines have been failing.
----
- src/libknot/cookies/alg-fnv64.c     |  6 +++---
- tests/libknot/test_cookies-client.c | 20 ++++++++++----------
- tests/libknot/test_cookies-server.c | 20 ++++++++++----------
- 3 files changed, 23 insertions(+), 23 deletions(-)
-
-diff --git a/src/libknot/cookies/alg-fnv64.c b/src/libknot/cookies/alg-fnv64.c
-index 9989a4f..5e263c1 100644
---- a/src/libknot/cookies/alg-fnv64.c
-+++ b/src/libknot/cookies/alg-fnv64.c
-@@ -17,10 +17,10 @@
- #include <assert.h>
- #include <stdint.h>
- #include <stdlib.h>
--#include <string.h>
- 
- #include "contrib/fnv/fnv.h"
- #include "contrib/sockaddr.h"
-+#include "contrib/wire.h"
- #include "libknot/attribute.h"
- #include "libknot/cookies/alg-fnv64.h"
- #include "libknot/rrtype/opt-cookie.h"
-@@ -80,7 +80,7 @@ static uint16_t cc_gen_fnv64(const struct knot_cc_input *input,
- 	assert(KNOT_OPT_COOKIE_CLNT == sizeof(hash_val));
- 
- 	cc_len = sizeof(hash_val);
--	memcpy(cc_out, &hash_val, cc_len);
-+	wire_write_u64(cc_out, hash_val);
- 
- 	return cc_len;
- }
-@@ -127,7 +127,7 @@ static uint16_t sc_gen_fnv64(const struct knot_sc_input *input,
- 	assert(SRVR_FNV64_HASH_SIZE == sizeof(hash_val));
- 
- 	hash_len = sizeof(hash_val);
--	memcpy(hash_out, &hash_val, hash_len);
-+	wire_write_u64(hash_out, hash_val);
- 
- 	return hash_len;
- }
-diff --git a/tests/libknot/test_cookies-client.c b/tests/libknot/test_cookies-client.c
-index 44be903..712dbba 100644
---- a/tests/libknot/test_cookies-client.c
-+++ b/tests/libknot/test_cookies-client.c
-@@ -110,7 +110,7 @@ int main(int argc, char *argv[])
- 	hash_len = knot_cc_alg_fnv64.gen_func(&cc_in, hash, hash_len);
- 	ok(hash_len != 0 && hash_len == knot_cc_alg_fnv64.cc_size, "cookies: FNV64 client cookie output");
- 	{
--		uint8_t expected[] = { 0x74, 0x31, 0xf9, 0xa8, 0x03, 0xef, 0x15, 0xb1 };
-+		uint8_t expected[] = { 0xb1, 0x15, 0xef, 0x03, 0xa8, 0xf9, 0x31, 0x74 };
- 		ok(sizeof(expected) == hash_len && 0 == memcmp(expected, hash, hash_len), "cookies: FNV64 client cookie content");
- 	}
- 
-@@ -123,7 +123,7 @@ int main(int argc, char *argv[])
- 	hash_len = knot_cc_alg_fnv64.gen_func(&cc_in, hash, hash_len);
- 	ok(hash_len != 0 && hash_len == knot_cc_alg_fnv64.cc_size, "cookies: FNV64 client cookie output");
- 	{
--		uint8_t expected[] = { 0x7c, 0x62, 0x25, 0xd2, 0x43, 0xdd, 0x09, 0xe7 };
-+		uint8_t expected[] = { 0xe7, 0x09, 0xdd, 0x43, 0xd2, 0x25, 0x62, 0x7c };
- 		ok(sizeof(expected) == hash_len && 0 == memcmp(expected, hash, hash_len), "cookies: FNV64 client cookie content");
- 	}
- 
-@@ -136,7 +136,7 @@ int main(int argc, char *argv[])
- 	hash_len = knot_cc_alg_fnv64.gen_func(&cc_in, hash, hash_len);
- 	ok(hash_len != 0 && hash_len == knot_cc_alg_fnv64.cc_size, "cookies: FNV64 client cookie output");
- 	{
--		uint8_t expected[] = { 0x7c, 0x62, 0x25, 0xd2, 0x43, 0xdd, 0x09, 0xe7 };
-+		uint8_t expected[] = { 0xe7, 0x09, 0xdd, 0x43, 0xd2, 0x25, 0x62, 0x7c };
- 		ok(sizeof(expected) == hash_len && 0 == memcmp(expected, hash, hash_len), "cookies: FNV64 client cookie content");
- 	}
- 
-@@ -149,7 +149,7 @@ int main(int argc, char *argv[])
- 	hash_len = knot_cc_alg_fnv64.gen_func(&cc_in, hash, hash_len);
- 	ok(hash_len != 0 && hash_len == knot_cc_alg_fnv64.cc_size, "cookies: FNV64 client cookie output");
- 	{
--		uint8_t expected[] = { 0x05, 0xa9, 0xd1, 0x08, 0x1b, 0x98, 0xe0, 0xaa };
-+		uint8_t expected[] = { 0xaa, 0xe0, 0x98, 0x1b, 0x08, 0xd1, 0xa9, 0x05 };
- 		ok(sizeof(expected) == hash_len && 0 == memcmp(expected, hash, hash_len), "cookies: FNV64 client cookie content");
- 	}
- 
-@@ -162,7 +162,7 @@ int main(int argc, char *argv[])
- 	hash_len = knot_cc_alg_fnv64.gen_func(&cc_in, hash, hash_len);
- 	ok(hash_len != 0 && hash_len == knot_cc_alg_fnv64.cc_size, "cookies: FNV64 client cookie output");
- 	{
--		uint8_t expected[] = { 0x05, 0xa9, 0xd1, 0x08, 0x1b, 0x98, 0xe0, 0xaa };
-+		uint8_t expected[] = { 0xaa, 0xe0, 0x98, 0x1b, 0x08, 0xd1, 0xa9, 0x05 };
- 		ok(sizeof(expected) == hash_len && 0 == memcmp(expected, hash, hash_len), "cookies: FNV64 client cookie content");
- 	}
- 
-@@ -179,7 +179,7 @@ int main(int argc, char *argv[])
- 	}
- 
- 	{
--		uint8_t cookie[] = { 0x33, 0x0c, 0xa6, 0x80, 0x94, 0x17, 0xe5, 0xaf };
-+		uint8_t cookie[] = { 0xaf, 0xe5, 0x17, 0x94, 0x80, 0xa6, 0x0c, 0x33 };
- 		ret = knot_cc_check(cookie, sizeof(cookie), NULL, &knot_cc_alg_fnv64);
- 		ok(ret == KNOT_EINVAL, "cookies: FNV64 client cookie check no input");
- 	}
-@@ -190,7 +190,7 @@ int main(int argc, char *argv[])
- 	cc_in.secret_data = secret;
- 	cc_in.secret_len = sizeof(secret);
- 	{
--		uint8_t cookie[] = { 0x33, 0x0c, 0xa6, 0x80, 0x94, 0x17, 0xe5, 0xaf };
-+		uint8_t cookie[] = { 0xaf, 0xe5, 0x17, 0x94, 0x80, 0xa6, 0x0c, 0x33 };
- 		ret = knot_cc_check(cookie, sizeof(cookie), &cc_in, NULL);
- 		ok(ret == KNOT_EINVAL, "cookies: FNV64 client cookie check no algorithm");
- 	}
-@@ -201,7 +201,7 @@ int main(int argc, char *argv[])
- 	cc_in.secret_data = secret;
- 	cc_in.secret_len = sizeof(secret);
- 	{
--		uint8_t cookie[] = { 0x33, 0x0c, 0xa6, 0x80, 0x94, 0x17, 0xe5, 0xaf };
-+		uint8_t cookie[] = { 0xaf, 0xe5, 0x17, 0x94, 0x80, 0xa6, 0x0c, 0x33 };
- 		ret = knot_cc_check(cookie, sizeof(cookie), &cc_in, &knot_cc_alg_fnv64);
- 		ok(ret == KNOT_EOK, "cookies: FNV64 client good cookie check");
- 	}
-@@ -212,7 +212,7 @@ int main(int argc, char *argv[])
- 	cc_in.secret_data = secret;
- 	cc_in.secret_len = sizeof(secret);
- 	{
--		uint8_t cookie[] = { 0x33, 0x0c, 0xa6, 0x80, 0x94, 0x17, 0xe5, 0xaf };
-+		uint8_t cookie[] = { 0xaf, 0xe5, 0x17, 0x94, 0x80, 0xa6, 0x0c, 0x33 };
- 		ret = knot_cc_check(cookie, sizeof(cookie) - 1, &cc_in, &knot_cc_alg_fnv64);
- 		ok(ret == KNOT_EINVAL, "cookies: FNV64 client cookie check invalid length");
- 	}
-@@ -223,7 +223,7 @@ int main(int argc, char *argv[])
- 	cc_in.secret_data = secret;
- 	cc_in.secret_len = sizeof(secret);
- 	{
--		uint8_t cookie[] = { 0x33, 0x0c, 0xa6, 0x80, 0x94, 0x17, 0xe5, 0xae };
-+		uint8_t cookie[] = { 0xaf, 0xe5, 0x17, 0x94, 0x80, 0xa6, 0x0c, 0x32 };
- 		ret = knot_cc_check(cookie, sizeof(cookie), &cc_in, &knot_cc_alg_fnv64);
- 		ok(ret == KNOT_EINVAL, "cookies: FNV64 client cookie check invalid cookie");
- 	}
-diff --git a/tests/libknot/test_cookies-server.c b/tests/libknot/test_cookies-server.c
-index 32001c1..66a54ba 100644
---- a/tests/libknot/test_cookies-server.c
-+++ b/tests/libknot/test_cookies-server.c
-@@ -28,10 +28,10 @@
- #include "libknot/rrtype/opt-cookie.h"
- 
- const char *cookie_opts[] = {
--	"\x00\x0a" "\x00\x10" "\x00\x01\x02\x03\x04\x05\x06\x07" "\xe0\xd9\x95\x4e\xbc\xc3\x99\x18", /* 8 octets long wrong server cookie. */
--	"\x00\x0a" "\x00\x10" "\x00\x01\x02\x03\x04\x05\x06\x07" "\xe0\xd9\x95\x4e\xbc\xc3\x99\x19", /* 8 octets long OK server cookie. */
--	"\x00\x0a" "\x00\x18" "\x00\x01\x02\x03\x04\x05\x06\x07" "\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\xc0\xbd\xdb\xec\x19\x78\x88\x38", /* 8B nonce 8B hash long wrong server cookie. */
--	"\x00\x0a" "\x00\x18" "\x00\x01\x02\x03\x04\x05\x06\x07" "\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\xc0\xbd\xdb\xec\x19\x78\x88\x39" /* 8B nonce 8B hash long OK server cookie. */
-+	"\x00\x0a" "\x00\x10" "\x00\x01\x02\x03\x04\x05\x06\x07" "\x19\x99\xc3\xbc\x4e\x95\xd9\xdf", /* 8 octets long wrong server cookie. */
-+	"\x00\x0a" "\x00\x10" "\x00\x01\x02\x03\x04\x05\x06\x07" "\x19\x99\xc3\xbc\x4e\x95\xd9\xe0", /* 8 octets long OK server cookie. */
-+	"\x00\x0a" "\x00\x18" "\x00\x01\x02\x03\x04\x05\x06\x07" "\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x39\x88\x78\x19\xec\xdb\xbd\xbf", /* 8B nonce 8B hash long wrong server cookie. */
-+	"\x00\x0a" "\x00\x18" "\x00\x01\x02\x03\x04\x05\x06\x07" "\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x39\x88\x78\x19\xec\xdb\xbd\xc0"/* 8B nonce 8B hash long OK server cookie. */
- };
- 
- #define ROPT(i) ((const uint8_t *)cookie_opts[(i)])
-@@ -193,7 +193,7 @@ int main(int argc, char *argv[])
- 	hash_len = knot_sc_alg_fnv64.hash_func(&sc_in, hash, hash_len);
- 	ok(hash_len != 0, "cookies: FNV64 server cookie output");
- 	{
--		uint8_t expected[] = { 0x75, 0x45, 0x7c, 0x9a, 0xe0, 0x13, 0xa8, 0xea };
-+		uint8_t expected[] = { 0xea, 0xa8, 0x13, 0xe0, 0x9a, 0x7c, 0x45, 0x75 };
- 		ok(sizeof(expected) == hash_len && 0 == memcmp(expected, hash, hash_len), "cookies: FNV64 server cookie content");
- 	}
- 
-@@ -210,7 +210,7 @@ int main(int argc, char *argv[])
- 	hash_len = knot_sc_alg_fnv64.hash_func(&sc_in, hash, hash_len);
- 	ok(hash_len != 0, "cookies: FNV64 server cookie output");
- 	{
--		uint8_t expected[] = { 0xc0, 0xbd, 0xdb, 0xec, 0x19, 0x78, 0x88, 0x39 };
-+		uint8_t expected[] = { 0x39, 0x88, 0x78, 0x19, 0xec, 0xdb, 0xbd, 0xc0 };
- 		ok(sizeof(expected) == hash_len && 0 == memcmp(expected, hash, hash_len), "cookies: FNV64 server cookie content");
- 	}
- 
-@@ -227,7 +227,7 @@ int main(int argc, char *argv[])
- 	hash_len = knot_sc_alg_fnv64.hash_func(&sc_in, hash, hash_len);
- 	ok(hash_len != 0, "cookies: FNV64 server cookie output");
- 	{
--		uint8_t expected[] = { 0xe0, 0xd9, 0x95, 0x4e, 0xbc, 0xc3, 0x99, 0x19 };
-+		uint8_t expected[] = { 0x19, 0x99, 0xc3, 0xbc, 0x4e, 0x95, 0xd9, 0xe0 };
- 		ok(sizeof(expected) == hash_len && 0 == memcmp(expected, hash, hash_len), "cookies: FNV64 server cookie content");
- 	}
- 
-@@ -244,7 +244,7 @@ int main(int argc, char *argv[])
- 	hash_len = knot_sc_alg_fnv64.hash_func(&sc_in, hash, hash_len);
- 	ok(hash_len != 0, "cookies: FNV64 server cookie output");
- 	{
--		uint8_t expected[] = { 0x4d, 0xde, 0xfa, 0x22, 0xb9, 0x0a, 0xcc, 0xd8 };
-+		uint8_t expected[] = { 0xd8, 0xcc, 0x0a, 0xb9, 0x22, 0xfa, 0xde, 0x4d };
- 		ok(sizeof(expected) == hash_len && 0 == memcmp(expected, hash, hash_len), "cookies: FNV64 server cookie content");
- 	}
- 
-@@ -261,7 +261,7 @@ int main(int argc, char *argv[])
- 	hash_len = knot_sc_alg_fnv64.hash_func(&sc_in, hash, hash_len);
- 	ok(hash_len != 0, "cookies: FNV64 server cookie output");
- 	{
--		uint8_t expected[] = { 0xa0, 0x35, 0xe3, 0xe0, 0x78, 0x7a, 0x91, 0xaf };
-+		uint8_t expected[] = { 0xaf, 0x91, 0x7a, 0x78, 0xe0, 0xe3, 0x35, 0xa0 };
- 		ok(sizeof(expected) == hash_len && 0 == memcmp(expected, hash, hash_len), "cookies: FNV64 server cookie content");
- 	}
- 
-@@ -278,7 +278,7 @@ int main(int argc, char *argv[])
- 	hash_len = knot_sc_alg_fnv64.hash_func(&sc_in, hash, hash_len);
- 	ok(hash_len != 0, "cookies: FNV64 server cookie output");
- 	{
--		uint8_t expected[] = { 0x8e, 0xa3, 0xf8, 0x97, 0x84, 0x0a, 0x3d, 0x8b };
-+		uint8_t expected[] = { 0x8b, 0x3d, 0x0a, 0x84, 0x97, 0xf8, 0xa3, 0x8e };
- 		ok(sizeof(expected) == hash_len && 0 == memcmp(expected, hash, hash_len), "cookies: FNV64 server cookie content");
- 	}
- 
---
-libgit2 0.24.0
-
diff --git a/knot.spec b/knot.spec
index 5d34e55..6ec29dc 100644
--- a/knot.spec
+++ b/knot.spec
@@ -3,8 +3,8 @@
 
 Summary: High-performance authoritative DNS server
 Name: knot
-Version: 2.3.0
-Release: 3%{?dist}
+Version: 2.3.2
+Release: 1%{?dist}
 License: GPLv3
 Group: System Environment/Daemons
 URL: http://www.knot-dns.cz
@@ -13,8 +13,6 @@ Source1: %{name}.service
 Source2: %{name}.conf
 Source3: %{name}.tmpfiles
 
-Patch1: 0001-dns-cookies-endian.patch
-
 # Required dependencies
 BuildRequires: pkgconfig(liburcu) pkgconfig(gnutls) >= 3.0 pkgconfig(nettle) pkgconfig(jansson) lmdb-devel pkgconfig(libedit)
 # Optional dependencies
@@ -64,7 +62,6 @@ The package contains documentation for the Knot DNS server.
 
 %prep
 %setup -q
-%patch1 -p1
 
 # make sure embedded LMDB library is not used
 rm -vr src/contrib/lmdb
@@ -191,6 +188,34 @@ exit 0
 %{_pkgdocdir}/html
 
 %changelog
+* Thu Nov 17 2016 Jan Vcelak <jvcelak@fedorapeople.org> - 2.3.2-1
+- new upstream release:
+  + fix: missing glue in some responses
+  + fix: knsupdate prompt printing on non-terminal
+  + fix: configuration policy item names in documentation
+  + fix: segfault on OS X Sierra
+  + fix: incorrect %s expansion for the root zone
+  + fix: refresh not existing slave zone after restart
+  + fix: immediate zone refresh upon restart if refresh already scheduled
+  + fix: early zone transfer after restart if transfer already scheduled
+  + fix: not ignoring empty non-terminal parents during delegation lookup
+  + fix: CD bit clearing in responses
+  + fix: compilation error on GNU/kFreeBSD
+  + fix: server crash after double zone-commit if journal error
+  + improvement: significant speed-up of conf-commit and conf-diff operations
+  + improvement: new EDNS Client Subnet API
+  + improvement: better semantic-checks error messages
+  + improvement: speed-up of knotc if control operation and known socket
+  + improvement: zone purge operation purges also zone timers
+  + feature: print TLS certificate hierarchy in kdig verbose mode
+  + feature: new +subnet alias for +client
+  + feature: new mod-whoami and mod-noudp modules
+  + feature: new zone-purge control command
+  + feature: new log-queries and log-responses options for mod-dnstap
+  + feature: simple modules don't require empty configuration section
+  + feature: new zone journal path configuration option
+  + feature: new timeout configuration option for module dnsproxy
+
 * Mon Aug 29 2016 Jan Vcelak <jvcelak@fedoraproject.org> - 2.3.0-3
 - fix post-installation scriptlet (RHBZ #1370939)
 
diff --git a/sources b/sources
index 5bdd49a..84371e7 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-7ca754f972fb07faa4f30e50d8a4385b  knot-2.3.0.tar.xz
+22f454e210f56230aef8c5e145e63990  knot-2.3.2.tar.xz