diff --git a/src/syncterm/modem.c b/src/syncterm/modem.c index 516aa73ec8cde4e09a569894298ec3dec40bda99..eeeb329e334c75b1aa3373119f884c626e445d3b 100644 --- a/src/syncterm/modem.c +++ b/src/syncterm/modem.c @@ -12,7 +12,7 @@ #include "conn.h" #include "uifcinit.h" -static COM_HANDLE com=INVALID_SOCKET; +static COM_HANDLE com=COM_HANDLE_INVALID; #ifdef __BORLANDC__ #pragma argsused @@ -26,10 +26,6 @@ void modem_input_thread(void *args) conn_api.input_thread_running=1; while(com != COM_HANDLE_INVALID && !conn_api.terminate) { rd=comReadBuf(com, conn_api.rd_buf, conn_api.rd_buf_size, NULL, 100); - if(rd <= 0) { - if(comGetModemStatus(com)&COM_DCD == 0) - break; - } buffered=0; while(buffered < rd) { pthread_mutex_lock(&(conn_inbuf.mutex)); @@ -37,6 +33,8 @@ void modem_input_thread(void *args) buffered+=conn_buf_put(&conn_inbuf, conn_api.rd_buf+buffered, buffer); pthread_mutex_unlock(&(conn_inbuf.mutex)); } + if(comGetModemStatus(com)&COM_DCD == 0) + break; } conn_api.input_thread_running=0; } @@ -176,7 +174,7 @@ int modem_connect(struct bbslist *bbs) conn_api.terminate=-1; return(-1); } - if(strstr(respbuf, "ATA")) /* Dial command echoed */ + if(strstr(respbuf, bbs->addr)) /* Dial command echoed */ continue; break; }