diff --git a/src/if.c b/src/if.c index cd6d817..c747c85 100644 --- a/src/if.c +++ b/src/if.c @@ -2,6 +2,7 @@ #include #include #include +#include #include #include @@ -323,7 +324,14 @@ static int handle_promisc_frame(void *key, int fd = (int)(value - NULL); struct promisc_frame *frame = ctx; - return write(fd, frame->buf, frame->len); + if (write(fd, frame->buf, frame->len) < 0) { + goto error_write; + } + + return tcdrain(fd); + +error_write: + return -1; } ssize_t patty_ax25_if_recv(patty_ax25_if *iface,