Always clear KISS frame decode state on FEND
Always completely discard KISS frame decode state when encountering an FEND character
This commit is contained in:
parent
b5ec25eb6a
commit
f54db37a7e
1 changed files with 4 additions and 4 deletions
|
@ -270,7 +270,7 @@ ssize_t patty_kiss_tnc_recv(patty_kiss_tnc *tnc,
|
|||
size_t r = 0, /* Number of bytes read */
|
||||
w = 0; /* Number of bytes written to buf */
|
||||
|
||||
enum kiss_flags flags = KISS_NONE;
|
||||
int flags = KISS_NONE;
|
||||
|
||||
if (tnc->offset == tnc->readlen) {
|
||||
errno = 0;
|
||||
|
@ -306,7 +306,7 @@ ssize_t patty_kiss_tnc_recv(patty_kiss_tnc *tnc,
|
|||
|
||||
if (!(flags & KISS_FRAME)) {
|
||||
if (c == PATTY_KISS_FEND) {
|
||||
flags |= KISS_FRAME;
|
||||
flags = KISS_FRAME;
|
||||
|
||||
continue;
|
||||
} else {
|
||||
|
@ -316,9 +316,9 @@ ssize_t patty_kiss_tnc_recv(patty_kiss_tnc *tnc,
|
|||
}
|
||||
} else {
|
||||
if (c == PATTY_KISS_FEND) {
|
||||
if (w > 0) {
|
||||
flags &= ~KISS_FRAME;
|
||||
flags = KISS_NONE;
|
||||
|
||||
if (w > 0) {
|
||||
goto done;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue