aboutsummaryrefslogtreecommitdiffstats
path: root/wg_dynamic_server.c
diff options
context:
space:
mode:
authorTushar Pankaj <tushar.s.pankaj@gmail.com>2018-11-12 17:59:39 -0600
committerTushar Pankaj <tushar.s.pankaj@gmail.com>2018-11-12 17:59:39 -0600
commitea6ab8ce09d4e84440185536f7b3e92346789233 (patch)
tree36a1b3ae7670b2e4db19ab1beaa512372e470532 /wg_dynamic_server.c
parentAdd IP addr structs to protocol (diff)
downloadwg-dynamic-ea6ab8ce09d4e84440185536f7b3e92346789233.tar.xz
wg-dynamic-ea6ab8ce09d4e84440185536f7b3e92346789233.zip
Working client and server comms
Signed-off-by: Tushar Pankaj <tushar.s.pankaj@gmail.com>
Diffstat (limited to '')
-rw-r--r--wg_dynamic_server.c26
1 files changed, 23 insertions, 3 deletions
diff --git a/wg_dynamic_server.c b/wg_dynamic_server.c
index dcc7737..75bf3af 100644
--- a/wg_dynamic_server.c
+++ b/wg_dynamic_server.c
@@ -7,6 +7,7 @@
#include <stdlib.h>
#include <stdio.h>
+#include <string.h>
const char *PROG_NAME;
@@ -17,6 +18,10 @@ static void show_usage()
int main(int argc, char *argv[])
{
+ const char *iface;
+ int sock;
+ int ret;
+
PROG_NAME = argv[0];
if (argc == 1) {
@@ -24,10 +29,25 @@ int main(int argc, char *argv[])
return EXIT_FAILURE;
}
- if (setup_server(argv[1]) < 0) {
- perror("error setting up server");
+ iface = argv[1];
+
+ if (!is_wg_up_on_iface(iface)) {
+ fprintf(stderr, "no such wireguard iface %s\n", iface);
+ return EXIT_FAILURE;
+ }
+
+ if ((sock = setup_server(argv[1])) < 0) {
+ fprintf(stderr, "error setting up server: %s\n",
+ strerror(-sock));
+ return EXIT_FAILURE;
+ }
+
+ if ((ret = handle_connections(sock)) < 0) {
+ fprintf(stderr, "error while handling connections: %s\n",
+ strerror(-ret));
return EXIT_FAILURE;
}
- return EXIT_SUCCESS;
+ /* unreachable */
+ return EXIT_FAILURE;
}