diff options
Diffstat (limited to 'sesman/sesman.c')
-rw-r--r-- | sesman/sesman.c | 32 |
1 files changed, 9 insertions, 23 deletions
diff --git a/sesman/sesman.c b/sesman/sesman.c index 9a3e915e..924a7ae8 100644 --- a/sesman/sesman.c +++ b/sesman/sesman.c @@ -1,7 +1,7 @@ /** * xrdp: A Remote Desktop Protocol server. * - * Copyright (C) Jay Sorg 2004-2013 + * Copyright (C) Jay Sorg 2004-2015 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -31,10 +31,7 @@ int g_pid; unsigned char g_fixedkey[8] = { 23, 82, 107, 6, 35, 78, 88, 7 }; struct config_sesman *g_cfg; /* defined in config.h */ -tbus g_term_event = 0; -tbus g_sync_event = 0; - -extern int g_thread_sck; /* in thread.c */ +tintptr g_term_event = 0; /******************************************************************************/ /** @@ -49,6 +46,7 @@ sesman_main_loop(void) int error; int robjs_count; int cont; + int pid; tbus sck_obj; tbus robjs[8]; @@ -80,7 +78,6 @@ sesman_main_loop(void) robjs_count = 0; robjs[robjs_count++] = sck_obj; robjs[robjs_count++] = g_term_event; - robjs[robjs_count++] = g_sync_event; /* wait */ if (g_obj_wait(robjs, robjs_count, 0, 0, -1) != 0) @@ -94,12 +91,6 @@ sesman_main_loop(void) break; } - if (g_is_wait_obj_set(g_sync_event)) /* sync */ - { - g_reset_wait_obj(g_sync_event); - session_sync_start(); - } - if (g_is_wait_obj_set(sck_obj)) /* incoming connection */ { in_sck = g_tcp_accept(g_sck); @@ -118,8 +109,8 @@ sesman_main_loop(void) { /* we've got a connection, so we pass it to scp code */ LOG_DBG("new connection"); - thread_scp_start(in_sck); - /* todo, do we have to wait here ? */ + scp_process_start((void*)(tintptr)in_sck); + g_sck_close(in_sck); } } } @@ -138,9 +129,7 @@ sesman_main_loop(void) "port '%s': %d (%s)", g_cfg->listen_port, g_get_errno(), g_get_strerror()); } - - if (g_sck != -1) - g_tcp_close(g_sck); + g_tcp_close(g_sck); } /******************************************************************************/ @@ -292,6 +281,9 @@ main(int argc, char **argv) g_writeln("error opening log file [%s]. quitting.", getLogFile(text, 255)); break; + default: + g_writeln("error"); + break; } g_deinit(); @@ -329,9 +321,6 @@ main(int argc, char **argv) } } - /* initializing locks */ - lock_init(); - /* signal handling */ g_pid = g_getpid(); /* old style signal handling is now managed synchronously by a @@ -387,8 +376,6 @@ main(int argc, char **argv) g_snprintf(text, 255, "xrdp_sesman_%8.8x_main_term", g_pid); g_term_event = g_create_wait_obj(text); - g_snprintf(text, 255, "xrdp_sesman_%8.8x_main_sync", g_pid); - g_sync_event = g_create_wait_obj(text); sesman_main_loop(); @@ -399,7 +386,6 @@ main(int argc, char **argv) } g_delete_wait_obj(g_term_event); - g_delete_wait_obj(g_sync_event); if (!daemon) { |