diff options
author | Linus Nordberg <linus@nordberg.se> | 2019-04-08 22:05:59 +0200 |
---|---|---|
committer | Thomas Gschwantner <tharre3@gmail.com> | 2019-05-26 01:07:46 +0200 |
commit | 4fbff9a4454ac6bd71aebc0df6d8442a467201db (patch) | |
tree | dc7d619b110a8d77d51418ac4c40fd6b1224cca5 /wg-dynamic-server.c | |
parent | Implement faked allocations, server side (diff) | |
download | wg-dynamic-4fbff9a4454ac6bd71aebc0df6d8442a467201db.tar.xz wg-dynamic-4fbff9a4454ac6bd71aebc0df6d8442a467201db.zip |
Implement client sending ip-request and configuring interface
Diffstat (limited to '')
-rw-r--r-- | wg-dynamic-server.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/wg-dynamic-server.c b/wg-dynamic-server.c index 77eb9a4..34fe9bc 100644 --- a/wg-dynamic-server.c +++ b/wg-dynamic-server.c @@ -543,13 +543,19 @@ 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; - send_message(pollfds[i].fd, reqs[i - 1].buf, - &reqs[i - 1].buflen); - if (!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 + off, + reqs[i - 1].buflen); + else close_connection(&pollfds[i].fd, &reqs[i - 1]); } |