# HG changeset patch # User Mychaela Falconia # Date 1547017787 0 # Node ID f6f599aad4535979844b9ce3cea147282937905b # Parent 96c1d047b3c6ffee43df53ee74ab6bf461455773 aci3: AT-over-RVT mechanism extended to support long messages diff -r 96c1d047b3c6 -r f6f599aad453 src/g23m-aci/aci/ati_src_rvt.c --- a/src/g23m-aci/aci/ati_src_rvt.c Mon Jan 07 01:06:46 2019 +0000 +++ b/src/g23m-aci/aci/ati_src_rvt.c Wed Jan 09 07:09:47 2019 +0000 @@ -3,13 +3,6 @@ * a mechanism for passing AT commands and responses over RVTMUX. */ -#if 0 -#include "config.h" -#include "fixedconf.h" -#include "condat-features.h" -#include "aci_conf.h" -#endif - /* includes copied from ati_cmd.c */ #undef DUMMY_ATI_STRINGS @@ -100,29 +93,41 @@ { T_ATI_SRC_PARAMS *src_params = find_element (ati_src_list, rvt_src_id, search_ati_src_id); + USHORT offset; ati_user_output_cfg[rvt_src_id].atE = 0; - if (src_params->text_mode EQ CMD_MODE) + if (aci_cmd_req->cmd_len && aci_cmd_req->cmd_seq[0] == 0x01) { - TRACE_FUNCTION ("ati_src_rvt_proc_cmd () CMD MODE"); + TRACE_FUNCTION ("ati_src_rvt_proc_cmd () unterminated"); - aci_cmd_req->cmd_seq[aci_cmd_req->cmd_len] = '\r'; /* make it V.25 ter compatible */ - aci_cmd_req->cmd_seq[(aci_cmd_req->cmd_len) + 1] = '\0'; - aci_cmd_req->cmd_len++; + aci_cmd_req->cmd_seq[aci_cmd_req->cmd_len] = '\0'; + offset = 1; } - else /* text has to be terminated by Ctrl-Z */ + else { - TRACE_FUNCTION ("ati_src_rvt_proc_cmd () TEXT MODE"); + offset = 0; + if (src_params->text_mode EQ CMD_MODE) + { + TRACE_FUNCTION ("ati_src_rvt_proc_cmd () CMD MODE"); - aci_cmd_req->cmd_seq[aci_cmd_req->cmd_len] = 0x1a; /* make it V.25 ter compatible */ - aci_cmd_req->cmd_seq[(aci_cmd_req->cmd_len) + 1] = '\0'; - aci_cmd_req->cmd_len++; + aci_cmd_req->cmd_seq[aci_cmd_req->cmd_len] = '\r'; /* make it V.25 ter compatible */ + aci_cmd_req->cmd_seq[(aci_cmd_req->cmd_len) + 1] = '\0'; + aci_cmd_req->cmd_len++; + } + else /* text has to be terminated by Ctrl-Z */ + { + TRACE_FUNCTION ("ati_src_rvt_proc_cmd () TEXT MODE"); + + aci_cmd_req->cmd_seq[aci_cmd_req->cmd_len] = 0x1a; /* make it V.25 ter compatible */ + aci_cmd_req->cmd_seq[(aci_cmd_req->cmd_len) + 1] = '\0'; + aci_cmd_req->cmd_len++; + } } return (ati_execute (rvt_src_id, - aci_cmd_req->cmd_seq, - aci_cmd_req->cmd_len)); + aci_cmd_req->cmd_seq + offset, + aci_cmd_req->cmd_len - offset)); } /*