]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
getaddrinfo.c: support MPTCP (BZ #29609)
authorzhenwei pi <pizhenwei@bytedance.com>
Tue, 11 Mar 2025 07:52:39 +0000 (15:52 +0800)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Wed, 12 Mar 2025 17:23:57 +0000 (14:23 -0300)
There is a lack of MPTCP support from gaih_inet_typeproto array, add
MPTCP entry.

Signed-off-by: zhenwei pi <zhenwei.pi@linux.dev>
Signed-off-by: zhenwei pi <pizhenwei@bytedance.com>
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
nss/getaddrinfo.c
nss/tst-getaddrinfo3.c

index 21e899ff1d62e2ad6738d250c32f9c7262a59a92..efe6ad30d52580a75b8855e352d5d51172963196 100644 (file)
@@ -143,6 +143,9 @@ static const struct gaih_typeproto gaih_inet_typeproto[] =
 #ifdef IPPROTO_SCTP
   { SOCK_STREAM, IPPROTO_SCTP, 0, false, "sctp" },
   { SOCK_SEQPACKET, IPPROTO_SCTP, 0, false, "sctp" },
+#endif
+#ifdef IPPROTO_MPTCP
+  { SOCK_STREAM, IPPROTO_MPTCP, 0, false, "mptcp" },
 #endif
   { SOCK_RAW, 0, GAI_PROTO_PROTOANY|GAI_PROTO_NOSERVICE, true, "raw" },
   { 0, 0, 0, false, "" }
index 5077f311fcb57d61928d4e36291ec778a61a1c1c..caea19b27f6ddfa5879eeb52c0b632f075e52605 100644 (file)
@@ -144,6 +144,32 @@ getaddrinfo test %d return address of family %d, expected %d\n",         \
   hints.ai_socktype = SOCK_STREAM;
   T (10, 0, "::ffff:127.0.0.1", AF_INET6, "::ffff:127.0.0.1");
 
+#ifdef IPPROTO_MPTCP
+  memset (&hints, '\0', sizeof (hints));
+  hints.ai_family = AF_UNSPEC;
+  hints.ai_socktype = SOCK_STREAM;
+  hints.ai_protocol = IPPROTO_MPTCP;
+  T (11, 0, "127.0.0.1", AF_INET, "127.0.0.1");
+
+  memset (&hints, '\0', sizeof (hints));
+  hints.ai_family = AF_INET;
+  hints.ai_socktype = SOCK_STREAM;
+  hints.ai_protocol = IPPROTO_MPTCP;
+  T (12, 0, "127.0.0.1", AF_INET, "127.0.0.1");
+
+  memset (&hints, '\0', sizeof (hints));
+  hints.ai_family = AF_INET6;
+  hints.ai_socktype = SOCK_STREAM;
+  hints.ai_protocol = IPPROTO_MPTCP;
+  T (13, 0, "::ffff:127.0.0.1", AF_INET6, "::ffff:127.0.0.1");
+
+  memset (&hints, '\0', sizeof (hints));
+  hints.ai_family = AF_INET6;
+  hints.ai_socktype = SOCK_STREAM;
+  hints.ai_protocol = IPPROTO_MPTCP;
+  T (14, 0, "::ffff:127.0.0.1", AF_INET6, "::ffff:127.0.0.1");
+#endif
+
   return result;
 }