diff --git a/sesman/tools/Makefile.am b/sesman/tools/Makefile.am index fdfa8eca..ab3612d0 100644 --- a/sesman/tools/Makefile.am +++ b/sesman/tools/Makefile.am @@ -15,7 +15,8 @@ bin_PROGRAMS = \ xrdp-sesrun \ xrdp-sestest \ xrdp-sesadmin \ - xrdp-dis + xrdp-dis \ + xrdp-xcon xrdp_sesrun_SOURCES = \ sesrun.c \ @@ -31,6 +32,9 @@ xrdp_sesadmin_SOURCES = \ xrdp_dis_SOURCES = \ dis.c +xrdp_xcon_SOURCES = \ + xcon.c + xrdp_sesrun_LDADD = \ $(top_builddir)/common/libcommon.la @@ -41,3 +45,7 @@ xrdp_sestest_LDADD = \ xrdp_sesadmin_LDADD = \ $(top_builddir)/common/libcommon.la \ $(top_builddir)/sesman/libscp/libscp.la + +xrdp_xcon_LDADD = \ + -L/usr/X11R6/lib \ + -lX11 diff --git a/sesman/tools/xcon.c b/sesman/tools/xcon.c new file mode 100644 index 00000000..7a45a1cd --- /dev/null +++ b/sesman/tools/xcon.c @@ -0,0 +1,35 @@ + +#include +#include +#include +#include + +Display* g_display = 0; +int g_x_socket = 0; + +int main(int argc, char** argv) +{ + fd_set rfds; + int i1; + XEvent xevent; + + g_display = XOpenDisplay(0); + if (g_display == 0) + { + printf("XOpenDisplay failed\n"); + return 0; + } + g_x_socket = XConnectionNumber(g_display); + while (1) + { + FD_ZERO(&rfds); + FD_SET(g_x_socket, &rfds); + i1 = select(g_x_socket + 1, &rfds, 0, 0, 0); + if (i1 < 0) + { + break; + } + XNextEvent(g_display, &xevent); + } + return 0; +}