Separate buffering method <3
This commit is contained in:
parent
250d19c599
commit
fde6e56d50
1 changed files with 15 additions and 3 deletions
18
src/kiss.c
18
src/kiss.c
|
@ -67,10 +67,8 @@ void patty_kiss_tnc_close(patty_kiss_tnc *tnc) {
|
|||
free(tnc);
|
||||
}
|
||||
|
||||
ssize_t patty_kiss_tnc_recv(patty_kiss_tnc *tnc, void **frame, int *port) {
|
||||
static ssize_t tnc_buffer(patty_kiss_tnc *tnc) {
|
||||
size_t fillsz = tnc->bufsz - tnc->buflen;
|
||||
size_t i, b;
|
||||
int flags = KISS_NONE;
|
||||
|
||||
/*
|
||||
* If the buffer needs to be filled, then fill it.
|
||||
|
@ -88,6 +86,20 @@ ssize_t patty_kiss_tnc_recv(patty_kiss_tnc *tnc, void **frame, int *port) {
|
|||
tnc->buflen += readlen;
|
||||
}
|
||||
|
||||
return tnc->buflen;
|
||||
|
||||
error_io:
|
||||
return -1;
|
||||
}
|
||||
|
||||
ssize_t patty_kiss_tnc_recv(patty_kiss_tnc *tnc, void **frame, int *port) {
|
||||
size_t i, b;
|
||||
int flags = KISS_NONE;
|
||||
|
||||
if (tnc_buffer(tnc) < 0) {
|
||||
goto error_io;
|
||||
}
|
||||
|
||||
/*
|
||||
* Initialize the frame to be returned to the caller.
|
||||
*/
|
||||
|
|
Loading…
Add table
Reference in a new issue