From babe14d544f06a10e40c52f08a7a0f8de32154ca Mon Sep 17 00:00:00 2001 From: angt Date: Mon, 25 Apr 2016 10:24:42 +0000 Subject: [PATCH] Quit on tun error --- src/main.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/main.c b/src/main.c index edc9d49..6e110a7 100644 --- a/src/main.c +++ b/src/main.c @@ -387,8 +387,10 @@ int main (int argc, char **argv) while (1) { const ssize_t r = tun_read(tun_fd, buf, sizeof(buf)); - if (r<=0) + if (r<=0) { + gt.quit |= !r; break; + } struct ip_common ic; @@ -403,12 +405,17 @@ int main (int argc, char **argv) mud_pull(mud); while (1) { - const int r = mud_recv(mud, buf, sizeof(buf)); + const int size = mud_recv(mud, buf, sizeof(buf)); - if (r<=0) + if (size<=0) break; - tun_write(tun_fd, buf, r); + const ssize_t r = tun_write(tun_fd, buf, size); + + if (r<=0) { + gt.quit |= !r; + break; + } } }