Skip to content
Snippets Groups Projects
Commit e3defcad authored by Deucе's avatar Deucе :ok_hand_tone4:
Browse files

Set flow control before raising DTR

Possibly setting CTS/RTS after raising DTR drops DTR which causes
DCD to be lost.
parent 0b4370c8
Branches
Tags
No related merge requests found
Pipeline #7214 passed
......@@ -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;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment