diff --git a/src/syncterm/conn.c b/src/syncterm/conn.c index 621f7b43b21b7bd614210a7ee8fd16aa688ad867..df9383155443279f21de9b5de9cf68ed95970c76 100644 --- a/src/syncterm/conn.c +++ b/src/syncterm/conn.c @@ -258,7 +258,7 @@ size_t conn_buf_wait_cond(struct conn_buffer *buf, size_t bcount, unsigned long BOOL conn_connected(void) { - if(conn_api.input_thread_running && conn_api.output_thread_running) + if(conn_api.input_thread_running == 1 && conn_api.output_thread_running == 1) return(TRUE); return(FALSE); } @@ -396,7 +396,7 @@ int conn_connect(struct bbslist *bbs) if(conn_api.connect) { if(conn_api.connect(bbs)) { conn_api.terminate = 1; - while(conn_api.input_thread_running || conn_api.output_thread_running) + while(conn_api.input_thread_running == 1 || conn_api.output_thread_running == 1) SLEEP(1); } else { diff --git a/src/syncterm/conn_pty.c b/src/syncterm/conn_pty.c index 1b823d9a6c0b72243a2ab1e1a3ce251fda127293..fde230d6b49497b501c2ffd1b71957fce50c46b6 100644 --- a/src/syncterm/conn_pty.c +++ b/src/syncterm/conn_pty.c @@ -327,7 +327,7 @@ void pty_input_thread(void *args) pthread_mutex_unlock(&(conn_inbuf.mutex)); } } - conn_api.input_thread_running=0; + conn_api.input_thread_running=2; } #ifdef __BORLANDC__ @@ -383,7 +383,7 @@ void pty_output_thread(void *args) if(ret==-1) break; } - conn_api.output_thread_running=0; + conn_api.output_thread_running=2; } int pty_connect(struct bbslist *bbs) @@ -498,7 +498,7 @@ int pty_close(void) kill(child_pid, SIGKILL); waitpid(child_pid, &status, 0); - while(conn_api.input_thread_running || conn_api.output_thread_running) { + while(conn_api.input_thread_running == 1 || conn_api.output_thread_running == 1) { conn_recv_upto(garbage, sizeof(garbage), 0); SLEEP(1); } diff --git a/src/syncterm/modem.c b/src/syncterm/modem.c index aa956535eb05538d6940d570a5252d193bfe2a19..5f8cf66261198b4c0d5e7c9d433346b62d206fda 100644 --- a/src/syncterm/modem.c +++ b/src/syncterm/modem.c @@ -50,7 +50,7 @@ void modem_input_thread(void *args) } if(args != NULL) comLowerDTR(com); - conn_api.input_thread_running=0; + conn_api.input_thread_running=2; } void modem_output_thread(void *args) @@ -91,7 +91,7 @@ void modem_output_thread(void *args) break; } } - conn_api.output_thread_running=0; + conn_api.output_thread_running=2; } int modem_response(char *str, size_t maxlen, int timeout) @@ -334,7 +334,7 @@ int serial_close(void) { conn_api.terminate=1; - while(conn_api.input_thread_running || conn_api.output_thread_running) + while(conn_api.input_thread_running == 1 || conn_api.output_thread_running == 1) SLEEP(1); comClose(com); destroy_conn_buf(&conn_inbuf); @@ -368,7 +368,7 @@ int modem_close(void) } CLOSEIT: - while(conn_api.input_thread_running || conn_api.output_thread_running) { + while(conn_api.input_thread_running == 1 || conn_api.output_thread_running == 1) { conn_recv_upto(garbage, sizeof(garbage), 0); SLEEP(1); } diff --git a/src/syncterm/rlogin.c b/src/syncterm/rlogin.c index e7886743240b6f6a175f3d88401ee1454044ed2a..f1b6f5821e6fb8e49f22e79690bdbc1aacff2533 100644 --- a/src/syncterm/rlogin.c +++ b/src/syncterm/rlogin.c @@ -55,7 +55,7 @@ void rlogin_input_thread(void *args) pthread_mutex_unlock(&(conn_inbuf.mutex)); } } - conn_api.input_thread_running=0; + conn_api.input_thread_running=2; } #ifdef __BORLANDC__ @@ -109,7 +109,7 @@ void rlogin_output_thread(void *args) if(ret==-1) break; } - conn_api.output_thread_running=0; + conn_api.output_thread_running=2; } int rlogin_connect(struct bbslist *bbs) @@ -253,7 +253,7 @@ int rlogin_close(void) conn_api.terminate=1; closesocket(rlogin_sock); - while(conn_api.input_thread_running || conn_api.output_thread_running) { + while(conn_api.input_thread_running == 1 || conn_api.output_thread_running == 1) { conn_recv_upto(garbage, sizeof(garbage), 0); SLEEP(1); } diff --git a/src/syncterm/ssh.c b/src/syncterm/ssh.c index 2ce559301bdfab916b72bb46c3b4977fdead35f4..c07f6b8a0106afd02c12620a08af9802672f2a33 100644 --- a/src/syncterm/ssh.c +++ b/src/syncterm/ssh.c @@ -99,7 +99,7 @@ void ssh_input_thread(void *args) } } } - conn_api.input_thread_running=0; + conn_api.input_thread_running=2; } void ssh_output_thread(void *args) @@ -142,7 +142,7 @@ void ssh_output_thread(void *args) else pthread_mutex_unlock(&(conn_outbuf.mutex)); } - conn_api.output_thread_running=0; + conn_api.output_thread_running=2; } int ssh_connect(struct bbslist *bbs) @@ -350,7 +350,7 @@ int ssh_close(void) conn_api.terminate=1; ssh_active=FALSE; cl.SetAttribute(ssh_session, CRYPT_SESSINFO_ACTIVE, 0); - while(conn_api.input_thread_running || conn_api.output_thread_running) { + while(conn_api.input_thread_running == 1 || conn_api.output_thread_running == 1) { conn_recv_upto(garbage, sizeof(garbage), 0); SLEEP(1); }