community/gdnsd: fix tests with net-dns-1.46

This commit is contained in:
Natanael Copa 2024-09-11 17:24:28 +02:00
parent c0b5cc6a82
commit 78a7a939af
2 changed files with 70 additions and 1 deletions

View file

@ -2,7 +2,7 @@
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=gdnsd
pkgver=3.8.2
pkgrel=0
pkgrel=1
pkgdesc="Geographic Authoritative DNS server"
url="https://github.com/gdnsd/gdnsd/"
arch="all"
@ -32,6 +32,7 @@ install="$pkgname.pre-install"
subpackages="$pkgname-doc $pkgname-openrc"
source="https://github.com/gdnsd/gdnsd/releases/download/v$pkgver/gdnsd-$pkgver.tar.xz
gdnsd.initd
net-dns-1.46.patch
"
# secfixes:
@ -66,4 +67,5 @@ package() {
sha512sums="
982d81cf3b4b20c0bbe640b3bd75697aaea08636c89077729def1c053f5cc3515854a46e1f5009367bfcb2671fa6a394152bde68307a92f3ce748a0badefa8d2 gdnsd-3.8.2.tar.xz
7e66f9d3dab3a36334d47740f12ee7f3ffd363d416bd1fcca4b339db8ba858419555751786247ffc4e5faf68c6b5fa87b84c04ffa25133a17b186bdf83c365b9 gdnsd.initd
4667b641eb3519fceb3884f25ae6dfff12f5b8dd0d3b55dad00d6a62394e797767520b493e78f57ee1fe8c5b8a53822594e197a35485e2de6bd2d78a7058964a net-dns-1.46.patch
"

View file

@ -0,0 +1,67 @@
From 1e91a5aa67ef2da1bbaedafd7d1a91855f4b2993 Mon Sep 17 00:00:00 2001
From: Faidon Liambotis <paravoid@debian.org>
Date: Wed, 11 Sep 2024 13:05:46 +0300
Subject: [PATCH 1/2] tests: fix query ID-related Net::DNS 1.46 breakage
Net::DNS 1.46, commit r1980 stopped generating random query IDs when
->header->id() is called, instead generating them and storing them
internally when the query is encoded. As such, calling ->header->id()
may now return undef.
Workaround this issue by calling ->encode right before retrieving the
(potentially random) query ID.
Identified by Natanael Copa.
---
t/_GDT.pm | 2 ++
1 file changed, 2 insertions(+)
diff --git a/t/_GDT.pm b/t/_GDT.pm
index ca94c039..ddde67e9 100644
--- a/t/_GDT.pm
+++ b/t/_GDT.pm
@@ -1056,6 +1056,7 @@ sub query_server {
);
send($sock, $qpacket_raw, 0);
if($expected) {
+ $query->encode; # generate a random ID, required with Net::DNS >= 1.46
$expected->header->id($query->header->id);
my $res_raw;
recv($sock, $res_raw, 4096, 0);
@@ -1075,6 +1076,7 @@ sub query_server {
}
if($expected) {
+ $query->encode; # generate a random ID, required with Net::DNS >= 1.46
$expected->header->id($query->header->id);
$size = _GDT->compare_packets($res->send($query), $expected, $limit_v4, $limit_v6, $wrr_v4, $wrr_v6);
}
From d10b7960f4f46ab48d9719aeea4019e6a24e18e7 Mon Sep 17 00:00:00 2001
From: Faidon Liambotis <paravoid@debian.org>
Date: Wed, 11 Sep 2024 13:13:39 +0300
Subject: [PATCH 2/2] tests: fix UDP packet size-related Net::DNS 1.46 breakage
Net::DNS 1.46, commit r1982 stopped setting the EDNS UDP packet size
based on the resolver opts udppacketsize attribute. Do so manually.
Use ->size() rather than ->udpsize() to retain < 1.37 compatibility with
the trade-off of spurious deprecated warnings emitted with >= 1.37.
---
t/_GDT.pm | 3 +++
1 file changed, 3 insertions(+)
diff --git a/t/_GDT.pm b/t/_GDT.pm
index ddde67e9..f9c2f2f6 100644
--- a/t/_GDT.pm
+++ b/t/_GDT.pm
@@ -1075,6 +1075,9 @@ sub query_server {
$res->$k($ro->{$k})
}
+ # Net::DNS <= 1.45 (r1982) did this internally
+ $query->edns->size($ro->{udppacketsize}) if defined $ro->{udppacketsize};
+
if($expected) {
$query->encode; # generate a random ID, required with Net::DNS >= 1.46
$expected->header->id($query->header->id);