diff --git a/mud.c b/mud.c index e57025c..6481d07 100644 --- a/mud.c +++ b/mud.c @@ -436,7 +436,11 @@ mud_send_path(struct mud *mud, struct mud_path *path, uint64_t now, memcpy(CMSG_DATA(cmsg), &tc, sizeof(int)); } - ssize_t ret = sendmsg(mud->fd, &msg, flags); + ssize_t ret = 0; + + do { + ret = sendmsg(mud->fd, &msg, flags); + } while (ret == (ssize_t)-1 && errno == EAGAIN); path->send.total++; path->send.bytes += size;