From cf6e2abd416c26105396fa0dd1834e3879fa2e08 Mon Sep 17 00:00:00 2001 From: jsorg71 Date: Tue, 8 Feb 2005 03:45:30 +0000 Subject: added a bunch of error checks --- xrdp/xrdp_process.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'xrdp/xrdp_process.c') diff --git a/xrdp/xrdp_process.c b/xrdp/xrdp_process.c index 91531688..72c39ff5 100644 --- a/xrdp/xrdp_process.c +++ b/xrdp/xrdp_process.c @@ -105,7 +105,7 @@ int xrdp_process_loop(struct xrdp_process* self, struct stream* s) int xrdp_process_main_loop(struct xrdp_process* self) { #ifndef XRDP_LIB - int i; + int sel_r; struct stream* s; make_stream(s); @@ -117,8 +117,16 @@ int xrdp_process_main_loop(struct xrdp_process* self) { while (!g_is_term() && !self->term) { - i = g_tcp_select(self->sck, self->app_sck); - if (i & 1) + sel_r = g_tcp_select(self->sck, self->app_sck); + if (sel_r == 0) /* no data on any stream */ + { + g_sleep(10); + } + else if (sel_r < 0) + { + break; + } + if (sel_r & 1) { init_stream(s, 8192); if (xrdp_process_loop(self, s) != 0) @@ -126,7 +134,7 @@ int xrdp_process_main_loop(struct xrdp_process* self) break; } } - if (i & 2) /* mod socket fired */ + if (sel_r & 2) /* mod socket fired */ { if (self->wm->mod == 0) { @@ -141,14 +149,6 @@ int xrdp_process_main_loop(struct xrdp_process* self) break; } } - if (i == 0) /* no data on any stream */ - { - g_sleep(10); - } - else if (i < 0) - { - break; - } } } if (self->wm->mod != 0) -- cgit v1.2.3