This is all very necessary if I am to wrest tight control over frame decoding into my own hands

This commit is contained in:
XANTRONIX Development 2015-09-17 22:42:28 -05:00 committed by XANTRONIX Industrial
parent 63f031b461
commit 1666666e9d
2 changed files with 8 additions and 4 deletions

View file

@ -35,8 +35,12 @@ int patty_kiss_tnc_fd_unix(patty_kiss_tnc *tnc);
void patty_kiss_tnc_close(patty_kiss_tnc *tnc);
void patty_kiss_tnc_drop(patty_kiss_tnc *tnc);
int patty_kiss_tnc_dropped(patty_kiss_tnc *tnc);
void patty_kiss_tnc_flush(patty_kiss_tnc *tnc, size_t len);
ssize_t patty_kiss_tnc_buffer(patty_kiss_tnc *tnc);
ssize_t patty_kiss_tnc_decode(patty_kiss_tnc *tnc, void *frame, size_t *len, int *port);

View file

@ -198,7 +198,7 @@ error_io:
return -1;
}
static void tnc_drop(patty_kiss_tnc *tnc) {
void patty_kiss_tnc_drop(patty_kiss_tnc *tnc) {
memset(tnc->buf, '\0', tnc->bufsz);
memset(tnc->frame, '\0', tnc->bufsz);
@ -210,7 +210,7 @@ int patty_kiss_tnc_dropped(patty_kiss_tnc *tnc) {
return tnc->dropped;
}
static void tnc_flush(patty_kiss_tnc *tnc, size_t len) {
void patty_kiss_tnc_flush(patty_kiss_tnc *tnc, size_t len) {
/*
* Move everything from the buffer not processed up to this point, to the
* beginning of the buffer.
@ -253,14 +253,14 @@ ssize_t patty_kiss_tnc_recv(patty_kiss_tnc *tnc, void **frame, int *port) {
* frame.
*/
if (decoded == 0 && buffered == 0) {
tnc_drop(tnc);
patty_kiss_tnc_drop(tnc);
}
} while (decoded == 0);
/*
* Flush the buffer up to the point of the next frame start.
*/
tnc_flush(tnc, decoded);
patty_kiss_tnc_flush(tnc, decoded);
*frame = tnc->frame;