You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
If you run xrdp with a Unix Domain Socket (UDS) for the port specified in /etc/xrdp/xrdp.ini then the first connection succeeds but subsequent connections fail. In fact the UDS is deleted from the filesystem as soon as the first connection is established. Test case: 1. Edit /etc/xrdp/xrdp.ini to set "port=/var/run/xrdp-local.socket". 2. Restart xrdp. 3. Run the following. When rdesktop starts up and the logon dialog is displayed, press "Cancel". sudo socat TCP-LISTEN:12345 UNIX-CONNECT:/var/run/xrdp-local.socket & rdesktop localhost:12345 4. Run the following: sudo socat TCP-LISTEN:12346 UNIX-CONNECT:/var/run/xrdp-local.socket & rdesktop localhost:12346 Expected behaviour: rdesktop starts up and displays the logon dialog. Observed behaviour: rdesktop exits with "ERROR: Connection closed" and socat exits with "No such file or directory. This is because in the child process after forking, xrdp_listen_fork() calls trans_delete() which deletes the UDS. Simply commenting out the g_file_delete() and g_free() fixes this, but that isn't a proper solution because trans_delete() is called from elsewhere where the UDS might no longer be wanted. Fix by adding a function trans_delete_from_child() that frees and clears listen_filename before calling trans_delete(), and call the new function from xrdp_listen_fork(). (Workaround: set "fork=false" in /etc/xrdp/xrdp.ini, because trans_delete() is then not called.) |
7 years ago | |
---|---|---|
.. | ||
Makefile.am | 7 years ago | |
arch.h | 7 years ago | |
base64.c | 8 years ago | |
base64.h | 8 years ago | |
defines.h | 11 years ago | |
fifo.c | 8 years ago | |
fifo.h | 8 years ago | |
file.c | 7 years ago | |
file.h | 8 years ago | |
list.c | 8 years ago | |
list.h | 8 years ago | |
list16.c | 8 years ago | |
list16.h | 8 years ago | |
log.c | 7 years ago | |
log.h | 7 years ago | |
os_calls.c | 7 years ago | |
os_calls.h | 7 years ago | |
parse.h | 10 years ago | |
pixman-region.c | 8 years ago | |
pixman-region.h | 9 years ago | |
pixman-region16.c | 9 years ago | |
rail.h | 11 years ago | |
ssl_calls.c | 7 years ago | |
ssl_calls.h | 8 years ago | |
thread_calls.c | 8 years ago | |
thread_calls.h | 8 years ago | |
trans.c | 7 years ago | |
trans.h | 7 years ago | |
xrdp_client_info.h | 8 years ago | |
xrdp_constants.h | 7 years ago | |
xrdp_rail.h | 11 years ago | |
xrdp_sockets.h | 8 years ago |