aboutsummaryrefslogtreecommitdiffstats
path: root/wg_dynamic_client.c
diff options
context:
space:
mode:
Diffstat (limited to 'wg_dynamic_client.c')
-rw-r--r--wg_dynamic_client.c22
1 files changed, 20 insertions, 2 deletions
diff --git a/wg_dynamic_client.c b/wg_dynamic_client.c
index 318714d..7862e9e 100644
--- a/wg_dynamic_client.c
+++ b/wg_dynamic_client.c
@@ -7,6 +7,7 @@
#include <stdlib.h>
#include <stdio.h>
+#include <string.h>
const char *PROG_NAME;
@@ -17,6 +18,9 @@ static void show_usage()
int main(int argc, char *argv[])
{
+ const char *iface;
+ int sock;
+
PROG_NAME = argv[0];
if (argc == 1) {
@@ -24,8 +28,22 @@ int main(int argc, char *argv[])
return EXIT_FAILURE;
}
- if (connect_to_server(argv[1]) < 0) {
- perror("error connecting to server");
+ iface = argv[1];
+
+ if (!is_server_in_allowed_ips(iface)) {
+ fprintf(stderr, "server is not in allowed IPs for tunnel %s\n",
+ iface);
+ return EXIT_FAILURE;
+ }
+
+ if ((sock = connect_to_server(argv[1])) < 0) {
+ fprintf(stderr, "error connecting to server: %s\n",
+ strerror(-sock));
+ return EXIT_FAILURE;
+ }
+
+ if ((sock = close_connection(sock)) < 0) {
+ fprintf(stderr, "error closing socket: %s\n", strerror(-sock));
return EXIT_FAILURE;
}