Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 20 Sep 2021 14:08:09 GMT
From:      Dirk Meyer <dinoex@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: cd8a6ef59252 - main - net/tinyfugue: fix IPv6 on 64bit
Message-ID:  <202109201408.18KE89Li014140@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by dinoex:

URL: https://cgit.FreeBSD.org/ports/commit/?id=cd8a6ef59252f3c2b2ffb30fe83d49942efc8122

commit cd8a6ef59252f3c2b2ffb30fe83d49942efc8122
Author:     Dirk Meyer <dinoex@FreeBSD.org>
AuthorDate: 2021-09-20 14:07:19 +0000
Commit:     Dirk Meyer <dinoex@FreeBSD.org>
CommitDate: 2021-09-20 14:08:04 +0000

    net/tinyfugue: fix IPv6 on 64bit
---
 net/tinyfugue/Makefile             |  2 +-
 net/tinyfugue/files/patch-output.c | 10 +++++++++
 net/tinyfugue/files/patch-socket.c | 45 ++++++++++++++++++++++++++++++++++++++
 3 files changed, 56 insertions(+), 1 deletion(-)

diff --git a/net/tinyfugue/Makefile b/net/tinyfugue/Makefile
index eeb3126a96b4..e081340fc9ae 100644
--- a/net/tinyfugue/Makefile
+++ b/net/tinyfugue/Makefile
@@ -2,7 +2,7 @@
 
 PORTNAME=	tf
 PORTVERSION=	5.0b8
-PORTREVISION=	3
+PORTREVISION=	4
 CATEGORIES=	net games
 MASTER_SITES=	SF/tinyfugue/tinyfugue/5.0%20beta%208
 DISTNAME=	${PORTNAME}-${PORTVERSION:S/.//}
diff --git a/net/tinyfugue/files/patch-output.c b/net/tinyfugue/files/patch-output.c
new file mode 100644
index 000000000000..29cd3c6b45e2
--- /dev/null
+++ b/net/tinyfugue/files/patch-output.c
@@ -0,0 +1,10 @@
+--- src/output.c.orig	2007-01-14 00:44:19 UTC
++++ src/output.c
+@@ -2270,6 +2270,7 @@ static void ioutall(int kpos)
+         iendx = -kpos + 1;
+         kpos = 0;
+     }
++    if (keybuf->data == 0) return;
+     if (sockecho())
+         ioutputs(keybuf->data + kpos, keybuf->len - kpos);
+ }
diff --git a/net/tinyfugue/files/patch-socket.c b/net/tinyfugue/files/patch-socket.c
new file mode 100644
index 000000000000..3fb940efdbfa
--- /dev/null
+++ b/net/tinyfugue/files/patch-socket.c
@@ -0,0 +1,45 @@
+--- src/socket.c.orig	2007-01-13 23:12:39 UTC
++++ src/socket.c
+@@ -494,6 +494,8 @@ do { \
+     do_hook(H_DISCONNECT, "%% Connection to %s closed: %s: %s", "%s %s: %s", \
+ 	where, what, why)
+ 
++#define ROUND_UP_LENGTH(len)	((len + 7) & -8)
++
+ #if HAVE_SSL
+ static void ssl_err(const char *str)
+ {
+@@ -1478,8 +1480,8 @@ static int openconn(Sock *sock)
+ 	for (ai = xsock->addrs; ai; ai = ai->ai_next) {
+ 	    ai->ai_addr = (struct sockaddr*)((char*)ai + sizeof(*ai));
+ 	    if (ai->ai_next != 0) {
+-		ai->ai_next =
+-		    (struct addrinfo*)((char*)ai->ai_addr + ai->ai_addrlen);
++		ai->ai_next = 
++		    (struct addrinfo*)((char*)ai->ai_addr + ROUND_UP_LENGTH(ai->ai_addrlen));
+ 	    }
+ 	}
+ 	xsock->addr = xsock->addrs;
+@@ -1783,13 +1785,21 @@ static void waitforhostname(int fd, const char *name, 
+ 	iov[0].iov_len = sizeof(hdr);
+ 	niov = 1;
+ 	for (ai = res; ai && niov < NIOV; ai = ai->ai_next) {
+-	    hdr.size += sizeof(*ai) + ai->ai_addrlen;
++	    static const char zeros[ 8 ] = { 0, 0, 0, 0, 0, 0, 0, 0 };
++	    size_t padded = ROUND_UP_LENGTH(ai->ai_addrlen);
++	    hdr.size += sizeof(*ai) + padded;
+ 	    iov[niov].iov_base = (char*)ai;
+ 	    iov[niov].iov_len = sizeof(*ai);
+ 	    niov++;
+ 	    iov[niov].iov_base = (char*)ai->ai_addr;
+ 	    iov[niov].iov_len = ai->ai_addrlen;
+ 	    niov++;
++	    if (padded != ai->ai_addrlen) {
++		/* padding */
++		iov[niov].iov_base = (char*)zeros;
++		iov[niov].iov_len = padded - ai->ai_addrlen;
++		niov++;
++	    }
+ 	}
+ 	writev(fd, iov, niov);
+ 	if (res) freeaddrinfo(res);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202109201408.18KE89Li014140>