From 1d730e4b7d2a23b931df2fc79b57e7b10e2f5187 Mon Sep 17 00:00:00 2001 From: deuce <> Date: Sun, 27 May 2007 21:17:39 +0000 Subject: [PATCH] More modem fixes... still doesn't properly detect remote disconnections. --- src/syncterm/modem.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/syncterm/modem.c b/src/syncterm/modem.c index 516aa73ec8..eeeb329e33 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; } -- GitLab