]> git.ipfire.org Git - thirdparty/wireguard-tools.git/commitdiff
wg: only error on wg show if all interfaces fail
authorJason A. Donenfeld <Jason@zx2c4.com>
Sun, 8 Jul 2018 17:46:05 +0000 (19:46 +0200)
committerJason A. Donenfeld <Jason@zx2c4.com>
Sun, 8 Jul 2018 20:38:34 +0000 (22:38 +0200)
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
src/show.c

index 415489b3c9fac3070405a6597a0eb7229b5dffd9..b7f665c823e7ccb1bec4eebac104c3e46b724a99 100644 (file)
@@ -14,6 +14,7 @@
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
+#include <errno.h>
 #include <time.h>
 #include <netdb.h>
 
@@ -394,12 +395,13 @@ int show_main(int argc, char *argv[])
                        perror("Unable to list interfaces");
                        return 1;
                }
+               ret = !!*interfaces;
                interface = interfaces;
                for (size_t len = 0; (len = strlen(interface)); interface += len + 1) {
                        struct wgdevice *device = NULL;
 
                        if (ipc_get_device(&device, interface) < 0) {
-                               perror("Unable to access interface");
+                               fprintf(stderr, "Unable to access interface %s: %s\n", interface, strerror(errno));
                                continue;
                        }
                        if (argc == 3) {
@@ -414,6 +416,7 @@ int show_main(int argc, char *argv[])
                                        printf("\n");
                        }
                        free_wgdevice(device);
+                       ret = 0;
                }
                free(interfaces);
        } else if (!strcmp(argv[1], "interfaces")) {