From b6bd8acef19763b1116bb4c881b46b0359c84f90 Mon Sep 17 00:00:00 2001 From: Jay Sorg Date: Sun, 9 Jul 2017 15:23:13 -0700 Subject: [PATCH] sesman: move auth_start_session, auth_stop_session, and auth_end to child process --- sesman/session.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/sesman/session.c b/sesman/session.c index 0b8bb6ac..f2dc087d 100644 --- a/sesman/session.c +++ b/sesman/session.c @@ -457,7 +457,6 @@ session_start_fork(tbus data, tui8 type, struct SCP_CONNECTION *c, return 0; } - auth_start_session(data, display); pid = g_fork(); /* parent is fork from tcp accept, child forks X and wm, then becomes scp */ @@ -466,6 +465,9 @@ session_start_fork(tbus data, tui8 type, struct SCP_CONNECTION *c, } else if (pid == 0) { + log_message(LOG_LEVEL_INFO, "calling auth_start_session from pid %d", + g_getpid()); + auth_start_session(data, display); g_delete_wait_obj(g_term_event); g_tcp_close(g_sck); g_tcp_close(c->in_sck); @@ -788,6 +790,10 @@ session_start_fork(tbus data, tui8 type, struct SCP_CONNECTION *c, g_waitpid(window_manager_pid); log_message(LOG_LEVEL_ALWAYS, "window manager (pid %d) did " "exit, cleaning up session", window_manager_pid); + log_message(LOG_LEVEL_INFO, "calling auth_stop_session and " + "auth_end from pid %d", g_getpid()); + auth_stop_session(data); + auth_end(data); g_sigterm(display_pid); g_sigterm(chansrv_pid); g_deinit(); @@ -917,8 +923,6 @@ session_kill(int pid) if (tmp->item->pid == pid) { - auth_stop_session(tmp->item->data); - auth_end(tmp->item->data); /* deleting the session */ log_message(LOG_LEVEL_INFO, "++ terminated session: username %s, display :%d.0, session_pid %d, ip %s", tmp->item->name, tmp->item->display, tmp->item->pid, tmp->item->client_ip); g_free(tmp->item);