diff --git a/src/syncterm/modem.c b/src/syncterm/modem.c index 1b9c88bab16d6bd1cd286185d3cd1fa2d3176607..8ca6eec451c6a13276c0bb036e6623f6715bde58 100644 --- a/src/syncterm/modem.c +++ b/src/syncterm/modem.c @@ -180,6 +180,14 @@ modem_connect(struct bbslist *bbs) comClose(com); return -1; } + if (!comSetFlowControl(com, bbs->flow_control)) { + conn_api.close(); + if (!bbs->hidepopups) { + uifcmsg("Failed to set Flow Control", "`Failed to set Flow Control`\n\n" + "SyncTERM was unable to set flow control.\n"); + } + return -1; + } if (bbs->conn_type == CONN_TYPE_SERIAL_NORTS) comLowerRTS(com); if (!comRaiseDTR(com)) { @@ -225,6 +233,15 @@ modem_connect(struct bbslist *bbs) comClose(com); return -1; } + if (!comSetFlowControl(com, bbs->flow_control)) { + conn_api.close(); + if (!bbs->hidepopups) { + uifcmsg("Failed to set Flow Control", "`Failed to set Flow Control`\n\n" + "SyncTERM was unable to set flow control.\n"); + } + return -1; + } + if (!comRaiseDTR(com)) { if (!bbs->hidepopups) uifcmsg("Cannot Raise DTR", "`Cannot Raise DTR`\n\n" @@ -320,15 +337,6 @@ modem_connect(struct bbslist *bbs) } } - if (!comSetFlowControl(com, bbs->flow_control)) { - conn_api.close(); - if (!bbs->hidepopups) { - uifcmsg("Failed to set Flow Control", "`Failed to set Flow Control`\n\n" - "SyncTERM was unable to set flow control.\n"); - } - return -1; - } - if (!create_conn_buf(&conn_inbuf, BUFFER_SIZE)) { conn_api.close(); return -1;