diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2016-01-17 00:55:12 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2016-01-23 11:05:42 +0100 |
commit | ede17bd41c044af1d59b347f8859a9894272d27e (patch) | |
tree | 98969143219ef76709e626e962c7de4bab748a02 /src/mm-port-serial.h | |
parent | 0512a820cda8e0934ce11339726e66c6dea85d3f (diff) | |
download | ModemManager-ede17bd41c044af1d59b347f8859a9894272d27e.tar.gz |
port-serial: remove response buffer when an error is returned
When valid responses were returned to the caller of the serial command, the
caller itself was responsible for removing from the GByteArray the data that
it was successfully processed (all the data in AT, just 1 message in QCDM). But,
the same logic was missing for the case of errors; we were not explicitly
removing the response and therefore in some cases we would see it propagated
into the next command response. It was common to see this issue when the echo
removal was disabled in the serial port, as in Option/HSO modems:
<debug> (ttyHS3): --> 'AT+CNUM<CR>'
<debug> (ttyHS3): <-- '<CR><LF>+CME ERROR: 14<CR><LF>'
<debug> Got failure code 14: SIM busy
<debug> (ttyHS3) device open count is 1 (close)
<warn> couldn't load list of Own Numbers: 'Failed to parse NV MDN command result: -17'
<debug> (ttyHS3) device open count is 2 (open)
<debug> (ttyHS3): --> 'AT_OPSYS?<CR>'
<debug> (ttyHS3): <-- '<CR><LF>_OPSYS: 1,2<CR><LF><CR><LF>OK<CR><LF>'
<warn> couldn't load current allowed/preferred modes: 'Couldn't parse OPSYS response: '+CME ERROR: 14
_OPSYS: 1,2''
Diffstat (limited to 'src/mm-port-serial.h')
0 files changed, 0 insertions, 0 deletions