2a190a2264
Commit 80fab03198 introduced a way to
prevent waitforx going to the network when trying to open a display,
and hence potentially blocking.
This method turned out to be invalidated by libxcb version 1.16 and
1.17
This change adds an explicit check that the Unix socket for the display
in /tmp/.X11-unix/Xn is open before trying to connect to display ':n'.
This has the same effect.
71 lines
2.7 KiB
C
71 lines
2.7 KiB
C
/**
|
|
* xrdp: A Remote Desktop Protocol server.
|
|
*
|
|
* Copyright (C) Jay Sorg 2004-2014
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*
|
|
* names of UNIX sockets for inter-process communication
|
|
*/
|
|
|
|
#if !defined(XRDP_SOCKETS_H)
|
|
#define XRDP_SOCKETS_H
|
|
|
|
/* XRDP_SOCKET_ROOT_PATH must be defined to include this file */
|
|
#ifdef __cppcheck__
|
|
/* avoid syntax errors */
|
|
# define XRDP_SOCKET_ROOT_PATH "/dummy"
|
|
#elif !defined(XRDP_SOCKET_ROOT_PATH)
|
|
# error "XRDP_SOCKET_ROOT_PATH must be defined"
|
|
#endif
|
|
|
|
/* Buffer size for code for fullpath declarations
|
|
*
|
|
* This needs to fit in the sun_path field of a sockaddr_un. POSIX
|
|
* does not define this size, so the value below is the lower of
|
|
* the FreeBSD/OpenBSD/NetBSD(104) and Linux(108) values */
|
|
#define XRDP_SOCKETS_MAXPATH 104
|
|
|
|
/* The socketdir is rooted at XRDP_SOCKET_ROOT_PATH. User-specific
|
|
* sockets live in a user-specific sub-directory of this called
|
|
* XRDP_SOCKET_PATH. The sub-directory is the UID of the user */
|
|
#define XRDP_SOCKET_PATH XRDP_SOCKET_ROOT_PATH "/%d"
|
|
|
|
/* Sockets in XRDP_SOCKET_ROOT_PATH */
|
|
#define SCP_LISTEN_PORT_BASE_STR "sesman.socket"
|
|
|
|
/* names of socket files within XRDP_SOCKET_PATH, qualified by
|
|
* display number */
|
|
#define XRDP_CHANSRV_BASE_STR "xrdp_chansrv_socket_%d"
|
|
#define CHANSRV_PORT_OUT_BASE_STR "xrdp_chansrv_audio_out_socket_%d"
|
|
#define CHANSRV_PORT_IN_BASE_STR "xrdp_chansrv_audio_in_socket_%d"
|
|
#define CHANSRV_API_BASE_STR "xrdpapi_%d"
|
|
#define XRDP_X11RDP_BASE_STR "xrdp_display_%d"
|
|
#define XRDP_DISCONNECT_BASE_STR "xrdp_disconnect_display_%d"
|
|
|
|
/* fullpath declarations */
|
|
#define XRDP_CHANSRV_STR XRDP_SOCKET_PATH "/" XRDP_CHANSRV_BASE_STR
|
|
#define CHANSRV_PORT_OUT_STR XRDP_SOCKET_PATH "/" CHANSRV_PORT_OUT_BASE_STR
|
|
#define CHANSRV_PORT_IN_STR XRDP_SOCKET_PATH "/" CHANSRV_PORT_IN_BASE_STR
|
|
#define CHANSRV_API_STR XRDP_SOCKET_PATH "/" CHANSRV_API_BASE_STR
|
|
#define XRDP_X11RDP_STR XRDP_SOCKET_PATH "/" XRDP_X11RDP_BASE_STR
|
|
#define XRDP_DISCONNECT_STR XRDP_SOCKET_PATH "/" XRDP_DISCONNECT_BASE_STR
|
|
|
|
/* Where X11 stores its Unix Domain Sockets (unlikely to change) */
|
|
#define X11_UNIX_SOCKET_DIRECTORY "/tmp/.X11-unix"
|
|
|
|
/* fullpath to an X11 display socket */
|
|
#define X11_UNIX_SOCKET_STR X11_UNIX_SOCKET_DIRECTORY "/X%d"
|
|
|
|
#endif
|