meshlink_blacklist(mesh, node);
fprintf(stderr, "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, arg);
+
+ if(!node) {
+ fprintf(stderr, "Error looking up '%s': %s\n", arg, meshlink_strerror(meshlink_errno));
+ return;
+ }
+
+ meshlink_whitelist(mesh, node);
+
+ fprintf(stderr, "Node '%s' whitelisted.\n", arg);
} else if(!strcasecmp(buf, "who")) {
meshlink_submesh_t *node_group = NULL;
if(!nnodes) {
fprintf(stderr, "Could not get list of nodes: %s\n", meshlink_strerror(meshlink_errno));
} else {
- fprintf(stderr, "%zu known nodes:\n", nnodes);
+ fprintf(stderr, "%lu known nodes:\n", (unsigned long)nnodes);
for(size_t i = 0; i < nnodes; i++) {
- fprintf(stderr, " %lu. %s", i, nodes[i]->name);
+ fprintf(stderr, " %lu. %s", (unsigned long)i, nodes[i]->name);
if((node_group = meshlink_get_node_submesh(mesh, nodes[i]))) {
fprintf(stderr, "\t%s", node_group->name);
"/who [<name>] List all nodes or show information about the given node.\n"
"/listgroup <name> List all nodes in a given group.\n"
"/canonical -h<hostname> -p<port> Set Canonical address to be present in invitation.\n"
- " Any one of two options an be specified. Atleast one option must be present\n"
+ " Any one of two options an be specified. At least one option must be present\n"
"/quit Exit this program.\n"
);
} else {