26.02.2018 19:53, Alexander Volkov пишет:
xdmcpSocket survives during the reset, there is no
need to create a new one.

This commit restores logic that was broken by
49c0f2413d32fdfe36e45861fcb32aaeab633094 in Xorg 1.19.

Signed-off-by: Alexander Volkov <a.vol...@rusbitech.ru>
---
  os/xdmcp.c | 12 +++++++++---
  1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/os/xdmcp.c b/os/xdmcp.c
index d8c81fbf8..62adead84 100644
--- a/os/xdmcp.c
+++ b/os/xdmcp.c
@@ -569,10 +569,9 @@ XdmcpRegisterDisplayClass(const char *name, int length)
  }
static void
-xdmcp_start(void)
+xdmcp_reset(void)
  {
      timeOutRtx = 0;
-    get_xdmcp_sock();
      if (xdmcpSocket >= 0)
          SetNotifyFd(xdmcpSocket, XdmcpSocketNotify, X_NOTIFY_READ, NULL);
  #if defined(IPv6) && defined(AF_INET6)
@@ -583,6 +582,13 @@ xdmcp_start(void)
      send_packet();
  }
+static void
+xdmcp_start(void)
+{
+    get_xdmcp_sock();
+    xdmcp_reset();
+}
+
  /*
   * initialize XDMCP; create the socket, compute the display
   * number, set up the state machine
@@ -611,7 +617,7 @@ XdmcpReset(void)
  {
      state = XDM_INIT_STATE;
      if (state != XDM_OFF)
-        xdmcp_start();
+        xdmcp_reset();
  }
/*
ping
It fixes 'Xephyr -indirect' with GDM.

_______________________________________________
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to