!7 Automatically disable inet6 transport if ipv6 is disabled on machine
From: @meng-wenhua Reviewed-by: @Charlie_li Signed-off-by: @Charlie_li
This commit is contained in:
commit
33a0a8948d
@ -0,0 +1,59 @@
|
|||||||
|
From 7898badde44cf518da6879c2622b6db9cd709c7d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ray Strode <rstrode@redhat.com>
|
||||||
|
Date: Fri, 6 May 2022 14:23:59 -0400
|
||||||
|
Subject: [PATCH] Automatically disable inet6 transport if ipv6 is disabled on
|
||||||
|
machine
|
||||||
|
|
||||||
|
If a machine is booted with ipv6.disable=1, trying to bind to an
|
||||||
|
AF_INET6 socket will fail with AFNOSUPPORT.
|
||||||
|
|
||||||
|
The tcp transport automatically falls back to ipv4 in this case, but
|
||||||
|
the more specific inet6 transport just fails.
|
||||||
|
|
||||||
|
This failure leads to MakeAllCOTSServerListeners returning a partial
|
||||||
|
success.
|
||||||
|
|
||||||
|
Unfortunately, the X server can't really contiue with partial successes
|
||||||
|
from this function if -displayfd is in use, since that would, in other
|
||||||
|
cases, potentially lead to the -displayfd electing a display number that
|
||||||
|
is potentially partially in use by a rogue program.
|
||||||
|
|
||||||
|
This commit addresses the issue by automatically disabling transports
|
||||||
|
when they fail with AFNOSUPPORT, leading them to get ignored, rather than
|
||||||
|
proceeding and ultimately returning from MakeAllCOTSServerListerns with
|
||||||
|
partial=TRUE.
|
||||||
|
---
|
||||||
|
Xtranssock.c | 15 +++++++++++----
|
||||||
|
1 file changed, 11 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Xtranssock.c b/Xtranssock.c
|
||||||
|
index 632c1b5..0177186 100644
|
||||||
|
--- a/Xtranssock.c
|
||||||
|
+++ b/Xtranssock.c
|
||||||
|
@@ -611,12 +611,19 @@ TRANS(SocketOpenCOTSServer) (Xtransport *thistrans, const char *protocol,
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (i < 0) {
|
||||||
|
- if (i == -1)
|
||||||
|
- prmsg (1,"SocketOpenCOTSServer: Unable to open socket for %s\n",
|
||||||
|
- thistrans->TransName);
|
||||||
|
- else
|
||||||
|
+ if (i == -1) {
|
||||||
|
+ if (errno == EAFNOSUPPORT) {
|
||||||
|
+ thistrans->flags |= TRANS_NOLISTEN;
|
||||||
|
+ prmsg (1,"SocketOpenCOTSServer: Socket for %s unsupported on this system.\n",
|
||||||
|
+ thistrans->TransName);
|
||||||
|
+ } else {
|
||||||
|
+ prmsg (1,"SocketOpenCOTSServer: Unable to open socket for %s\n",
|
||||||
|
+ thistrans->TransName);
|
||||||
|
+ }
|
||||||
|
+ } else {
|
||||||
|
prmsg (1,"SocketOpenCOTSServer: Unable to determine socket type for %s\n",
|
||||||
|
thistrans->TransName);
|
||||||
|
+ }
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.37.3.windows.1
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
Name: xorg-x11-xtrans-devel
|
Name: xorg-x11-xtrans-devel
|
||||||
Version: 1.4.0
|
Version: 1.4.0
|
||||||
Release: 1
|
Release: 2
|
||||||
Summary: X.Org X11 developmental X transport library
|
Summary: X.Org X11 developmental X transport library
|
||||||
License: MIT
|
License: MIT
|
||||||
URL: http://www.x.org
|
URL: http://www.x.org
|
||||||
@ -12,6 +12,8 @@ BuildRequires: xorg-x11-util-macros
|
|||||||
|
|
||||||
Patch1: xtrans-1.0.3-avoid-gethostname.patch
|
Patch1: xtrans-1.0.3-avoid-gethostname.patch
|
||||||
|
|
||||||
|
Patch6000: backport-0001-Automatically-disable-inet6-transport-if-ipv6-is-dis.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
xtrans is a library of code that is shared among various X packages to
|
xtrans is a library of code that is shared among various X packages to
|
||||||
handle network protocol transport in a modular fashion, allowing a
|
handle network protocol transport in a modular fashion, allowing a
|
||||||
@ -47,6 +49,9 @@ install -pm 644 AUTHORS ChangeLog COPYING README.md $RPM_BUILD_ROOT%{_pkgdocdir}
|
|||||||
%{_datadir}/pkgconfig/xtrans.pc
|
%{_datadir}/pkgconfig/xtrans.pc
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Jan 9 2023 mengwenhua <mengwenhua@xfusion.com> - 1.4.0-2
|
||||||
|
- Automatically disable inet6 transport if ipv6 is disabled on machine
|
||||||
|
|
||||||
* Wed Jan 12 2022 yaoxin <yaoxin30@huawei.com> - 1.4.0-1
|
* Wed Jan 12 2022 yaoxin <yaoxin30@huawei.com> - 1.4.0-1
|
||||||
- Upgrade xorg-x11-xtrans-devel to 1.4.0
|
- Upgrade xorg-x11-xtrans-devel to 1.4.0
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user