[PATCH xserver] os/xdmcp: Don't create a new socket in XdmcpReset()

Alexander Volkov a.volkov at rusbitech.ru
Tue Mar 6 17:14:59 UTC 2018


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.volkov at 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.



More information about the xorg-devel mailing list