include $(TOPDIR)/rules.mk
PKG_NAME:=conserver
-PKG_VERSION:=8.2.7
+PKG_VERSION:=8.3.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/conserver/conserver/tar.gz/v$(PKG_VERSION)?
-PKG_HASH:=b88f1880f4090b42370e075ca9c8a6062fb553ee33f155b204714c43dc71cef3
+PKG_HASH:=0595d202ec6ea3b2fdf51e126cd0094959d06593635f349ba2219566978478f0
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
--- a/console/Makefile.in
+++ b/console/Makefile.in
-@@ -10,7 +10,7 @@ mandir = @mandir@
+@@ -11,7 +11,7 @@ mandir = @mandir@
### Installation programs and flags
INSTALL = @INSTALL@
+++ /dev/null
---- a/conserver/consent.c
-+++ b/conserver/consent.c
-@@ -1308,7 +1308,7 @@ AddrsMatch(char *addr1, char *addr2)
- {
- #if USE_IPV6
- int error, ret = 0;
-- struct addrinfo *ai1, *ai2, hints;
-+ struct addrinfo *ai1, *ai2, *rp1, *rp2, hints;
- #else
- /* so, since we might use inet_addr, we're going to use
- * (in_addr_t)(-1) as a sign of an invalid ip address.
-@@ -1346,17 +1346,19 @@ AddrsMatch(char *addr1, char *addr2)
- goto done;
- }
-
-- for (; ai1 != NULL; ai1 = ai1->ai_next) {
-- for (; ai2 != NULL; ai2 = ai2->ai_next) {
-- if (ai1->ai_addr->sa_family != ai2->ai_addr->sa_family)
-+ rp1 = ai1;
-+ rp2 = ai2;
-+ for (; rp1 != NULL; rp1 = rp1->ai_next) {
-+ for (; rp2 != NULL; rp2 = rp2->ai_next) {
-+ if (rp1->ai_addr->sa_family != rp2->ai_addr->sa_family)
- continue;
-
- if (
- # if HAVE_MEMCMP
-- memcmp(&ai1->ai_addr, &ai2->ai_addr,
-+ memcmp(&rp1->ai_addr, &rp2->ai_addr,
- sizeof(struct sockaddr_storage))
- # else
-- bcmp(&ai1->ai_addr, &ai2->ai_addr,
-+ bcmp(&rp1->ai_addr, &rp2->ai_addr,
- sizeof(struct sockaddr_storage))
- # endif
- == 0) {
+++ /dev/null
-From ec846dfedde7931689ff0a56be5ba75a5aefc9ea Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= <bjorn@mork.no>
-Date: Mon, 5 Feb 2024 21:16:51 +0100
-Subject: [PATCH] fix SEGFAULT on early exit with IPv6 enabled
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Some command line options, like e.g -V, will cause conserver
-to exit before the IPv6 address variables are initialized.
-Avoid the calls to freeaddrinfo() in these cases.
-
-Signed-off-by: Bjørn Mork <bjorn@mork.no>
----
- conserver/main.c | 10 ++++++----
- 1 file changed, 6 insertions(+), 4 deletions(-)
-
---- a/conserver/main.c
-+++ b/conserver/main.c
-@@ -53,8 +53,8 @@ int fAll = 0, fNoinit = 0, fVersion = 0,
- char *pcConfig = CONFIGFILE;
- int cMaxMemb = MAXMEMB;
- #if USE_IPV6
--struct addrinfo *bindAddr;
--struct addrinfo *bindBaseAddr;
-+struct addrinfo *bindAddr = (struct addrinfo *)0;
-+struct addrinfo *bindBaseAddr = (struct addrinfo *)0;
- #else
- in_addr_t bindAddr = INADDR_ANY;
- unsigned short bindPort;
-@@ -781,8 +781,10 @@ DestroyDataStructures(void)
-
- #if USE_IPV6
- /* clean up addrinfo stucts */
-- freeaddrinfo(bindAddr);
-- freeaddrinfo(bindBaseAddr);
-+ if ((struct addrinfo *)0 != bindAddr)
-+ freeaddrinfo(bindAddr);
-+ if ((struct addrinfo *)0 != bindBaseAddr)
-+ freeaddrinfo(bindBaseAddr);
- #else
- if (myAddrs != (struct in_addr *)0)
- free(myAddrs);