diff options
Diffstat (limited to 'wg-dynamic-server.c')
-rw-r--r-- | wg-dynamic-server.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/wg-dynamic-server.c b/wg-dynamic-server.c index 295a127..19b8b83 100644 --- a/wg-dynamic-server.c +++ b/wg-dynamic-server.c @@ -555,15 +555,17 @@ int main(int argc, char *argv[]) } for (int i = 1; i < MAX_CONNECTIONS + 1; ++i) { + size_t off; + if (!(pollfds[i].revents & POLLOUT)) continue; pollfds[i].revents &= ~POLLOUT; - size_t w = send_message(pollfds[i].fd, reqs[i - 1].buf, - &reqs[i - 1].buflen); + off = send_message(pollfds[i].fd, reqs[i - 1].buf, + &reqs[i - 1].buflen); if (reqs[i - 1].buflen) - memmove(reqs[i - 1].buf, reqs[i - 1].buf + w, + memmove(reqs[i - 1].buf, reqs[i - 1].buf + off, reqs[i - 1].buflen); else close_connection(&pollfds[i].fd, &reqs[i - 1]); |