diff --git a/common/os_calls.c b/common/os_calls.c index b04d71fe..0a4efba3 100644 --- a/common/os_calls.c +++ b/common/os_calls.c @@ -769,6 +769,16 @@ g_signal(int sig_num, void (*func)(int)) #endif } +/*****************************************************************************/ +void +g_signal_child_stop(void (*func)(int)) +{ +#if defined(_WIN32) +#else + signal(SIGCHLD, func); +#endif +} + /*****************************************************************************/ int g_fork(void) diff --git a/common/os_calls.h b/common/os_calls.h index e05345f8..af300817 100644 --- a/common/os_calls.h +++ b/common/os_calls.h @@ -134,6 +134,8 @@ g_execlp11(char* a1, char* a2, char* a3, char* a4, char* a5, char* a6, char* a7, char* a8, char* a9, char* a10, char* a11); void g_signal(int sig_num, void (*func)(int)); +void +g_signal_child_stop(void (*func)(int)); int g_fork(void); int diff --git a/sesman/sesman.c b/sesman/sesman.c index 0d2ae2f1..2af57885 100644 --- a/sesman/sesman.c +++ b/sesman/sesman.c @@ -296,7 +296,7 @@ start_session(int width, int height, int bpp, char* username, char* password) } else /* parent */ { - g_signal(17, cterm); /* SIGCHLD */ + g_signal_child_stop(cterm); /* SIGCHLD */ session_items[display].pid = pid; g_strcpy(session_items[display].name, username); session_items[display].display = display; diff --git a/xrdp/xrdp.ini b/xrdp/xrdp.ini index 84f526c0..ef72bb46 100644 --- a/xrdp/xrdp.ini +++ b/xrdp/xrdp.ini @@ -26,3 +26,11 @@ ip=ask port=ask5900 username=na password=ask + +[vnc4] +name=sesman-any +lib=../vnc/libvnc.so +ip=ask +port=-1 +username=ask +password=ask