diff --git a/configure.ac b/configure.ac index bdd8d584..ae7e8ff0 100644 --- a/configure.ac +++ b/configure.ac @@ -79,7 +79,7 @@ AC_ARG_ENABLE(ipv6only, AS_HELP_STRING([--enable-ipv6only], [Build IPv6-only (default: no)]), [], [enable_ipv6only=no]) AC_ARG_ENABLE(kerberos, AS_HELP_STRING([--enable-kerberos], - [Build kerberos support (default: no)]), + [Build kerberos support (prefer PAM if available) (default: no)]), [], [enable_kerberos=no]) AC_ARG_ENABLE(bsd, AS_HELP_STRING([--enable-bsd], [Build BSD auth support (default: no)]), diff --git a/sesman/chansrv/chansrv.c b/sesman/chansrv/chansrv.c index b19298f9..abd66f77 100644 --- a/sesman/chansrv/chansrv.c +++ b/sesman/chansrv/chansrv.c @@ -1799,7 +1799,7 @@ main(int argc, char **argv) return 1; } - LOG_DEVEL(LOG_LEVEL_ALWAYS, "main: app started pid %d(0x%8.8x)", pid, pid); + LOG_DEVEL(LOG_LEVEL_INFO, "main: app started pid %d(0x%8.8x)", pid, pid); /* set up signal handler */ g_signal_terminate(term_signal_handler); /* SIGTERM */ g_signal_user_interrupt(term_signal_handler); /* SIGINT */ diff --git a/sesman/session.c b/sesman/session.c index c0b65954..2b7db957 100644 --- a/sesman/session.c +++ b/sesman/session.c @@ -807,15 +807,33 @@ session_start_fork(tbus data, tui8 type, struct SCP_CONNECTION *c, } else { + int wm_wait_time; wait_for_xserver(display); chansrv_pid = session_start_chansrv(s->username, display); - LOG(LOG_LEVEL_ALWAYS, "waiting for window manager " + + /* Monitor the amount of time we wait for the + * window manager. This is approximately how long the window + * manager was running for */ + LOG(LOG_LEVEL_INFO, "waiting for window manager " "(pid %d) to exit", window_manager_pid); + wm_wait_time = g_time1(); g_waitpid(window_manager_pid); - LOG(LOG_LEVEL_ALWAYS, "window manager (pid %d) did " - "exit, cleaning up session", window_manager_pid); - LOG(LOG_LEVEL_INFO, "calling auth_stop_session and " - "auth_end from pid %d", g_getpid()); + wm_wait_time = g_time1() - wm_wait_time; + if (wm_wait_time < 10) + { + /* This could be a config issue. Log a significant error */ + LOG(LOG_LEVEL_ALWAYS, "window manager exited quickly " + "(%d secs). Window manager config problem?", + wm_wait_time); + } + else + { + LOG(LOG_LEVEL_INFO, "window manager (pid %d) was running " + "for approximately %d seconds.", + window_manager_pid, wm_wait_time); + } + LOG(LOG_LEVEL_INFO, "Cleaning up session. Calling " + "auth_stop_session and auth_end from pid %d", g_getpid()); auth_stop_session(data); auth_end(data); g_sigterm(display_pid);