aboutsummaryrefslogtreecommitdiffstats
path: root/wg-dynamic-server.c
diff options
context:
space:
mode:
authorLinus Nordberg <linus@nordberg.se>2019-04-08 22:05:59 +0200
committerThomas Gschwantner <tharre3@gmail.com>2019-05-26 01:07:46 +0200
commit4fbff9a4454ac6bd71aebc0df6d8442a467201db (patch)
treedc7d619b110a8d77d51418ac4c40fd6b1224cca5 /wg-dynamic-server.c
parentImplement faked allocations, server side (diff)
downloadwg-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.c12
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]);
}