diff options
author | Tushar Pankaj <tushar.s.pankaj@gmail.com> | 2018-11-12 17:59:39 -0600 |
---|---|---|
committer | Tushar Pankaj <tushar.s.pankaj@gmail.com> | 2018-11-12 17:59:39 -0600 |
commit | ea6ab8ce09d4e84440185536f7b3e92346789233 (patch) | |
tree | 36a1b3ae7670b2e4db19ab1beaa512372e470532 /wg_dynamic_server.c | |
parent | Add IP addr structs to protocol (diff) | |
download | wg-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.c | 26 |
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; } |