diff --git a/mud b/mud index 6623be1..2c9d971 160000 --- a/mud +++ b/mud @@ -1 +1 @@ -Subproject commit 6623be1e6928576775f5db3de1b5a47344d03cdb +Subproject commit 2c9d9714379b21a8c2107bed6ab2bf25d9ddf4e6 diff --git a/src/bind.c b/src/bind.c index ae4d1c4..77f4941 100644 --- a/src/bind.c +++ b/src/bind.c @@ -249,17 +249,10 @@ gt_bind(int argc, char **argv) } if (FD_ISSET(mud_fd, &rfds)) { - int n = 1000; + const int r = mud_recv(mud, buf, sizeof(buf)); - while (n--) { - const int r = mud_recv(mud, buf, sizeof(buf)); - - if (r <= 0) - break; - - if (ip_is_valid(buf, r)) - tun_write(tun_fd, buf, (size_t)r); - } + if (r > 0 && ip_is_valid(buf, r)) + tun_write(tun_fd, buf, (size_t)r); } if (FD_ISSET(ctl_fd, &rfds)) {