diff options
Diffstat (limited to 'sesman')
| -rw-r--r-- | sesman/sesman.c | 10 | ||||
| -rw-r--r-- | sesman/session.c | 30 | ||||
| -rw-r--r-- | sesman/tools/sesadmin.c | 6 | ||||
| -rw-r--r-- | sesman/tools/sesrun.c | 3 | ||||
| -rw-r--r-- | sesman/tools/sestest.c | 3 |
5 files changed, 39 insertions, 13 deletions
diff --git a/sesman/sesman.c b/sesman/sesman.c index 964bc740..1c620210 100644 --- a/sesman/sesman.c +++ b/sesman/sesman.c @@ -54,7 +54,14 @@ sesman_main_loop(void) /*main program loop*/ log_message(LOG_LEVEL_INFO, "listening..."); + g_sck = g_tcp_socket(); + if (g_sck < 0) + { + log_message(LOG_LEVEL_ERROR, "error opening socket, g_tcp_socket() failed..."); + return 1; + } + g_tcp_set_non_blocking(g_sck); error = scp_tcp_bind(g_sck, g_cfg->listen_address, g_cfg->listen_port); @@ -132,7 +139,8 @@ sesman_main_loop(void) g_get_errno(), g_get_strerror()); } - g_tcp_close(g_sck); + if (g_sck != -1) + g_tcp_close(g_sck); } /******************************************************************************/ diff --git a/sesman/session.c b/sesman/session.c index 130ca26c..fb7193a1 100644 --- a/sesman/session.c +++ b/sesman/session.c @@ -203,26 +203,32 @@ x_server_running_check_ports(int display) if (!x_running) /* check 59xx */ { - sck = g_tcp_socket(); - g_sprintf(text, "59%2.2d", display); - x_running = g_tcp_bind(sck, text); - g_tcp_close(sck); + if ((sck = g_tcp_socket()) != -1) + { + g_sprintf(text, "59%2.2d", display); + x_running = g_tcp_bind(sck, text); + g_tcp_close(sck); + } } if (!x_running) /* check 60xx */ { - sck = g_tcp_socket(); - g_sprintf(text, "60%2.2d", display); - x_running = g_tcp_bind(sck, text); - g_tcp_close(sck); + if ((sck = g_tcp_socket()) != -1) + { + g_sprintf(text, "60%2.2d", display); + x_running = g_tcp_bind(sck, text); + g_tcp_close(sck); + } } if (!x_running) /* check 62xx */ { - sck = g_tcp_socket(); - g_sprintf(text, "62%2.2d", display); - x_running = g_tcp_bind(sck, text); - g_tcp_close(sck); + if ((sck = g_tcp_socket()) != -1) + { + g_sprintf(text, "62%2.2d", display); + x_running = g_tcp_bind(sck, text); + g_tcp_close(sck); + } } return x_running; diff --git a/sesman/tools/sesadmin.c b/sesman/tools/sesadmin.c index 979a22f9..32789c6d 100644 --- a/sesman/tools/sesadmin.c +++ b/sesman/tools/sesadmin.c @@ -107,6 +107,12 @@ int main(int argc, char **argv) scp_init(&logging); sock = g_tcp_socket(); + if (sock < 0) + { + LOG_DBG("Socket open error, g_tcp_socket() failed\n"); + return 1; + } + s = scp_session_create(); c = scp_connection_create(sock); diff --git a/sesman/tools/sesrun.c b/sesman/tools/sesrun.c index 7ac10102..a9181583 100644 --- a/sesman/tools/sesrun.c +++ b/sesman/tools/sesrun.c @@ -75,7 +75,10 @@ main(int argc, char **argv) init_stream(in_s, 8192); make_stream(out_s); init_stream(out_s, 8192); + sck = g_tcp_socket(); + if (sck < 0) + return 1; if (g_tcp_connect(sck, argv[1], g_cfg.listen_port) == 0) { diff --git a/sesman/tools/sestest.c b/sesman/tools/sestest.c index f2823eb6..d42b31de 100644 --- a/sesman/tools/sestest.c +++ b/sesman/tools/sestest.c @@ -38,6 +38,9 @@ int main(int argc, char **argv) scp_init(&log); sock = g_tcp_socket(); + if (sock < 0) + return 1; + s = scp_session_create(); c = scp_connection_create(sock); |
