⛏️ index : haiku.git

author Christof Meerwald <cmeerw@cmeerw.org> 2026-01-01 15:37:03.0 +00:00:00
committer Adrien Destugues <pulkomandy@pulkomandy.tk> 2026-01-02 9:12:15.0 +00:00:00
commit
babc1f216fe71ccf39ff68ae30efe7b545eed4d3 [patch]
tree
6c1be11ba43b8ab92c02409a2ad5bfefa5fc10c7
parent
8bd9e74a7c29edd5cf4ac4ed5fe297bc1e97f245
download
babc1f216fe71ccf39ff68ae30efe7b545eed4d3.tar.gz

telnet: Enable IPv6 support

* Define INET6 when compiling telnet and telnetd

Change-Id: Ic79c6001b6b8381ec00ae93a44304fd52d84eccb
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10179
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>

Diff

 src/bin/network/telnet/Jamfile    |  2 +-
 src/bin/network/telnet/commands.c | 12 ++++++++++++
 src/bin/network/telnetd/Jamfile   |  2 +-
 3 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/src/bin/network/telnet/Jamfile b/src/bin/network/telnet/Jamfile
index f7cf8d0..f9178fb 100644
--- a/src/bin/network/telnet/Jamfile
+++ b/src/bin/network/telnet/Jamfile
@@ -6,7 +6,7 @@

UseBuildFeatureHeaders ncurses ;

SubDirCcFlags [ FDefines USE_TERMIO=1 OLD_ENVIRON=1 ENV_HACK=1 ] ;
SubDirCcFlags [ FDefines USE_TERMIO=1 OLD_ENVIRON=1 ENV_HACK=1 INET6=1 ] ;

local sources =
	authenc.c
diff --git a/src/bin/network/telnet/commands.c b/src/bin/network/telnet/commands.c
index fd45979..16c0eaf 100644
--- a/src/bin/network/telnet/commands.c
+++ b/src/bin/network/telnet/commands.c
@@ -2891,6 +2891,7 @@

#ifdef INET6
	if (ai->ai_family == AF_INET6) {
#ifndef __HAIKU__
		if ((rth = inet6_rth_init((void *)*cpp, sizeof(buf),
					  IPV6_RTHDR_TYPE_0, 0)) == NULL)
			return -1;
@@ -2898,6 +2899,13 @@
			return -1;
		*protop = IPPROTO_IPV6;
		*optp = IPV6_RTHDR;
#else
		/*
		 * Haiku does not support RFC 3542 "Advanced Sockets Application
		 * Program Interface (API) for IPv6".
		 */
		return -1;
#endif
	} else
#endif
      {
@@ -2968,9 +2976,13 @@
		}
#ifdef INET6
		if (res->ai_family == AF_INET6) {
#ifndef __HAIKU__
			sin6 = (struct sockaddr_in6 *)res->ai_addr;
			if (inet6_rth_add((void *)rth, &sin6->sin6_addr) == -1)
				return(0);
#else
			return(0);
#endif
		} else
#endif
	      {
diff --git a/src/bin/network/telnetd/Jamfile b/src/bin/network/telnetd/Jamfile
index 231053c..045d2a9 100644
--- a/src/bin/network/telnetd/Jamfile
+++ b/src/bin/network/telnetd/Jamfile
@@ -6,7 +6,7 @@
UseHeaders [ FDirName $(HAIKU_TOP) src libs libtelnet ] : false ;
UseHeaders [ FDirName $(SUBDIR) .. telnet ] : false ;

SubDirCcFlags [ FDefines USE_TERMIO=1 ] ;
SubDirCcFlags [ FDefines USE_TERMIO=1 INET6=1 ] ;

local sources =
	authenc.c