Vincent Bernat <ber...@debian.org> wrote: > With your RDP client, you connect to XRDP server. XRDP server starts > (through sesman) a VNC server. XRDP translates RDP to VNC and > vice-versa. The VNC server starts your session.
Okay, good to know. Thanks. > Maybe you hit the problem because Ctrl-K in emacs copy the cutted line > into the clipboard. Are you able to reproduce the problem using another > application that interacts with the clipboard? Yes, that's it. Good call. I can now reproduce the problem by running this simple C program. Compile with gcc a.c -lXaw Then a.out will reproduce the problem. I can actually do this in a session with just an xterm. I don't even need a window manager. I have also determined that the rdesktop client is exiting because it is receiving an appid == MCS_DPUM (Disconnect Provider Ultimatum). This is happening in mcs.c line 364 (from the pristine 1.6.0 sources), which I determined by running rdesktop in a debugger. So altering the cut buffer is causing xrdp to send a disconnect, or at least to send something that looks like a disconnect to rdesktop and also to mstsc. You're not seeing that? I wonder what it could be. --Jay
#include <X11/Xlib.h> #include <X11/Shell.h> #include <X11/Xaw/Box.h> #include <stdlib.h> void timeout(XtPointer p, XtIntervalId* i) { exit(0); } int main(int argc, char* argv[]) { XtAppContext context; Widget top; Widget box; Display* dpy; top = XtVaAppInitialize(&context, "ClearCutBuffers", 0, 0, &argc, argv, NULL, XtNoverrideRedirect, True, XtNgeometry, "-10-10", NULL); box = XtCreateManagedWidget("box", boxWidgetClass, top, NULL, 0); dpy = XtDisplay(top); XStoreBuffer(dpy, "", 0, 0); XtAppAddTimeOut(context, 1, timeout, 0); XtRealizeWidget(top); XtAppMainLoop(context); return 0; }