]> git.meshlink.io Git - meshlink/blobdiff - examples/manynodes.c
Fix __warn_unused_result__, add more of it and fix the resulting warnings.
[meshlink] / examples / manynodes.c
index 9e4a95c095c6b1b621f305c4dceb5cd20c1209fb..d9fb0a41fee1f826458a4a18af3a0d20f24e95d9 100644 (file)
@@ -71,8 +71,11 @@ static void linkmesh() {
 
                for(int j = i + 1; j < n; j++) {
                        char *dataj = meshlink_export(mesh[j]);
-                       meshlink_import(mesh[i], dataj);
-                       meshlink_import(mesh[j], datai);
+
+                       if(!meshlink_import(mesh[i], dataj) || !meshlink_import(mesh[j], datai)) {
+                               fprintf(stderr, "Could not exchange keys between %s and %s: %s\n", mesh[i]->name, mesh[j]->name, meshlink_strerror(meshlink_errno));
+                       }
+
                        free(dataj);
                }
 
@@ -208,7 +211,7 @@ static void parse_command(char *buf) {
                        return;
                }
 
-               invitation = meshlink_invite(mesh[nodeindex], arg);
+               invitation = meshlink_invite(mesh[nodeindex], NULL, arg);
 
                if(!invitation) {
                        fprintf(stderr, "Could not invite '%s': %s\n", arg, meshlink_strerror(meshlink_errno));
@@ -248,9 +251,31 @@ static void parse_command(char *buf) {
                        return;
                }
 
-               meshlink_blacklist(mesh[nodeindex], node);
+               if(!meshlink_blacklist(mesh[nodeindex], node)) {
+                       fprintf(stderr, "Error blacklising '%s': %s", arg, meshlink_strerror(meshlink_errno));
+                       return;
+               }
 
                printf("Node '%s' blacklisted.\n", arg);
+       } else if(!strcasecmp(buf, "whitelist")) {
+               if(!arg) {
+                       fprintf(stderr, "/whitelist requires an argument!\n");
+                       return;
+               }
+
+               meshlink_node_t *node = meshlink_get_node(mesh[nodeindex], arg);
+
+               if(!node) {
+                       fprintf(stderr, "Error looking up '%s': %s\n", arg, meshlink_strerror(meshlink_errno));
+                       return;
+               }
+
+               if(!meshlink_whitelist(mesh[nodeindex], node)) {
+                       fprintf(stderr, "Error whitelising '%s': %s", arg, meshlink_strerror(meshlink_errno));
+                       return;
+               }
+
+               printf("Node '%s' whitelisted.\n", arg);
        } else if(!strcasecmp(buf, "who")) {
                if(!arg) {
                        nodes = meshlink_get_all_nodes(mesh[nodeindex], nodes, &nnodes);
@@ -272,7 +297,7 @@ static void parse_command(char *buf) {
                        if(!node) {
                                fprintf(stderr, "Unknown node '%s'\n", arg);
                        } else {
-                               printf("Node %s found, pmtu %zd\n", arg, meshlink_get_pmtu(mesh[nodeindex], node));
+                               printf("Node %s found, pmtu %ld\n", arg, (long int)meshlink_get_pmtu(mesh[nodeindex], node));
                        }
                }
        } else if(!strcasecmp(buf, "link")) {