diff options
author | Danny Rawlins <contact@romster.me> | 2021-02-19 22:32:03 +1100 |
---|---|---|
committer | Danny Rawlins <contact@romster.me> | 2021-02-19 22:32:03 +1100 |
commit | 5dfb2078d211a47686f7e8c4071ad57624e15b6b (patch) | |
tree | 4c50e7c9fb0c214d1675fb91f0bc54a7705636d0 /avahi-32 | |
parent | 97d77fee05f91f30eb4e26d54f38c0b972f7d6fe (diff) | |
download | compat-32-5dfb2078d211a47686f7e8c4071ad57624e15b6b.tar.gz compat-32-5dfb2078d211a47686f7e8c4071ad57624e15b6b.tar.xz |
avahi-32: fix source and fix a race condition in IPv6
Diffstat (limited to 'avahi-32')
-rw-r--r-- | avahi-32/.signature | 5 | ||||
-rw-r--r-- | avahi-32/Pkgfile | 8 | ||||
-rw-r--r-- | avahi-32/avahi-0.8-ipv6_race_condition_fix-1.patch | 51 |
3 files changed, 59 insertions, 5 deletions
diff --git a/avahi-32/.signature b/avahi-32/.signature index 8f0bb3dc..c6d138c2 100644 --- a/avahi-32/.signature +++ b/avahi-32/.signature @@ -1,6 +1,7 @@ untrusted comment: verify with /etc/ports/compat-32.pub -RWSwxGo/zH7eXRE3eJZ0NvaW1J/tOn3Y6sA17mlx4YgSEjI1P2bGYOlHTMNk5Sj2T+wMsuk5381GQXYJEjSXMFZiIza6ERLNuw0= -SHA256 (Pkgfile) = 5943f1254a7dfff2fc514d51634e544e8bfed9c669c7db8de4917025e4be48ff +RWSwxGo/zH7eXZ7Thl9iGG5oeFKGcyp23d/3BRA9LPmwK9hoJ7ST4+FM6n+KaiI45pCNN2sG1C7/3ebNo/WAhY+22H8T2Hl2xQo= +SHA256 (Pkgfile) = 217f28b57408d98b7f36bb5d41710740c40e76cf5d6ac3307b7c82d6a9028c6b SHA256 (.footprint) = 72baed23d6e6598de90dec8a3db81f29cb89850df72c2db38afa392e5d9089da SHA256 (avahi-0.8.tar.gz) = 060309d7a333d38d951bc27598c677af1796934dbd98e1024e7ad8de798fedda +SHA256 (avahi-0.8-ipv6_race_condition_fix-1.patch) = 218c909581d0ca2c86c8145bb0797050d987a6b0ae3417949dbe2a6d55c49360 SHA256 (reverse-move-to-run.patch) = a333bcf15dd3e72ac99b2e883202e7170d2ff27bf61820413235bc9f3c9c2605 diff --git a/avahi-32/Pkgfile b/avahi-32/Pkgfile index 8c78770b..575a9b80 100644 --- a/avahi-32/Pkgfile +++ b/avahi-32/Pkgfile @@ -1,18 +1,20 @@ # Description: A system which facilitates service discovery on a local network via the mDNS/DNS-SD protocol suite -# URL: http://www.avahi.org/ +# URL: https://www.avahi.org/ # Maintainer: CRUX compat-32 Team, compat-32-ports at crux dot nu # Depends on: avahi dbus-32 gdbm-32 glib-32 libcap-32 libdaemon-32 libevent-32 name=avahi-32 version=0.8 -release=1 -source=(https://avahi.org/download/avahi-$version.tar.gz +release=3 +source=(https://github.com/lathiat/avahi/releases/download/v$version/avahi-$version.tar.gz + avahi-0.8-ipv6_race_condition_fix-1.patch reverse-move-to-run.patch) build() { cd avahi-$version patch -p1 -i $SRC/reverse-move-to-run.patch + patch -p1 -i $SRC/avahi-0.8-ipv6_race_condition_fix-1.patch NOCONFIGURE=1 ./autogen.sh diff --git a/avahi-32/avahi-0.8-ipv6_race_condition_fix-1.patch b/avahi-32/avahi-0.8-ipv6_race_condition_fix-1.patch new file mode 100644 index 00000000..3418b1a1 --- /dev/null +++ b/avahi-32/avahi-0.8-ipv6_race_condition_fix-1.patch @@ -0,0 +1,51 @@ +Submitted By: Douglas R. Reno <renodr at linuxfromscratch dot org> +Date: 2020-10-19 +Initial Package Version: 0.8 +Upstream Status: PR, not applied +Origin: Upstream PR (github.com/lathiat/avahi/pull/309) +Description: Fixes a race condition when multiple NICs are in use + when IPv6 is enabled. This will exhibit behavior where + messages about withdrawing address records, registering + access records, and new hostname announcements are + spammed to the log every second. + +diff -Naurp avahi-0.8.orig/avahi-core/server.c avahi-0.8/avahi-core/server.c +--- avahi-0.8.orig/avahi-core/server.c 2020-02-16 21:41:24.939967558 -0600 ++++ avahi-0.8/avahi-core/server.c 2020-10-19 11:07:22.054861721 -0500 +@@ -193,7 +193,7 @@ static void withdraw_rrset(AvahiServer * + withdraw_entry(s, e); + } + +-static void incoming_probe(AvahiServer *s, AvahiRecord *record, AvahiInterface *i) { ++static void incoming_probe(AvahiServer *s, AvahiRecord *record, AvahiInterface *i, int from_local_iface) { + AvahiEntry *e, *n; + int ours = 0, won = 0, lost = 0; + +@@ -210,7 +210,7 @@ static void incoming_probe(AvahiServer * + if (e->dead) + continue; + +- if ((cmp = avahi_record_lexicographical_compare(e->record, record)) == 0) { ++ if ((cmp = avahi_record_lexicographical_compare(e->record, record)) == 0 || from_local_iface) { + ours = 1; + break; + } else { +@@ -639,7 +639,7 @@ static void handle_query_packet(AvahiSer + if (!avahi_key_is_pattern(record->key)) { + if (!from_local_iface) + reflect_probe(s, i, record); +- incoming_probe(s, record, i); ++ incoming_probe(s, record, i, from_local_iface); + } + + avahi_record_unref(record); +@@ -961,8 +961,7 @@ static void dispatch_packet(AvahiServer + return; + + /* We don't want to reflect local traffic, so we check if this packet is generated locally. */ +- if (s->config.enable_reflector) +- from_local_iface = originates_from_local_iface(s, iface, src_address, port); ++ from_local_iface = originates_from_local_iface(s, iface, src_address, port); + + if (avahi_dns_packet_check_valid_multicast(p) < 0) { + avahi_log_debug("Received invalid packet."); |