*arg++ = 0;
}
- if(!strcasecmp(buf, "invite")) {
- char *invitation;
-
- if(!arg) {
- fprintf(stderr, "/invite requires an argument!\n");
- return;
- }
-
- invitation = meshlink_invite(mesh, NULL, arg);
-
- if(!invitation) {
- fprintf(stderr, "Could not invite '%s': %s\n", arg, meshlink_strerror(meshlink_errno));
- return;
- }
-
- printf("Invitation for %s: %s\n", arg, invitation);
- free(invitation);
- } else if(!strcasecmp(buf, "join")) {
+ if(!strcasecmp(buf, "join")) {
if(!arg) {
fprintf(stderr, "/join requires an argument!\n");
return;
fprintf(stderr, "Could not restart MeshLink: %s\n", meshlink_strerror(meshlink_errno));
exit(1);
}
- } else if(!strcasecmp(buf, "kick")) {
- if(!arg) {
- fprintf(stderr, "/kick 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;
- }
-
- if(!meshlink_blacklist(mesh, 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, arg);
-
- if(!node) {
- fprintf(stderr, "Error looking up '%s': %s\n", arg, meshlink_strerror(meshlink_errno));
- return;
- }
-
- if(!meshlink_whitelist(mesh, 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, nodes, &nnodes);
printf(
"<name>: <message> Send a message to the given node.\n"
" Subsequent messages don't need the <name>: prefix.\n"
- "/invite <name> Create an invitation for a new node.\n"
"/join <invitation> Join an existing mesh using an invitation.\n"
"/kick <name> Blacklist the given node.\n"
"/who [<name>] List all nodes or show information about the given node.\n"
fprintf(stderr, "Could not restart MeshLink: %s\n", meshlink_strerror(meshlink_errno));
exit(1);
}
- } else if(!strcasecmp(buf, "kick")) {
- if(!arg) {
- fprintf(stderr, "/kick 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;
- }
-
- if(!meshlink_blacklist(mesh, 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, arg);
-
- if(!node) {
- fprintf(stderr, "Error looking up '%s': %s\n", arg, meshlink_strerror(meshlink_errno));
- return;
- }
-
- if(!meshlink_whitelist(mesh, 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, nodes, &nnodes);
fprintf(stderr, "Could not restart MeshLink: %s\n", meshlink::strerror());
exit(1);
}
- } else if(!strcasecmp(buf, "kick")) {
- if(!arg) {
- fprintf(stderr, "/kick requires an argument!\n");
- return;
- }
-
- meshlink::node *node = mesh->get_node(arg);
-
- if(!node) {
- fprintf(stderr, "Error looking up '%s': %s\n", arg, meshlink::strerror());
- return;
- }
-
- mesh->blacklist(node);
-
- printf("Node '%s' blacklisted.\n", arg);
} else if(!strcasecmp(buf, "who")) {
if(!arg) {
nodes = mesh->get_all_nodes(nodes, &nnodes);
}
- if(!strcasecmp(buf, "invite")) {
- if(!arg) {
- fprintf(stderr, "/invite requires an argument!\n");
- return;
- }
-
- meshlink_submesh_t *s = NULL;
-
- if(arg1) {
- size_t nmemb;
- meshlink_submesh_t **submeshes = devtool_get_all_submeshes(mesh, NULL, &nmemb);
-
- if(!submeshes || !nmemb) {
- fprintf(stderr, "Group does not exist!\n");
- return;
- }
-
- for(size_t i = 0; i < nmemb; i++) {
- if(!strcmp(arg1, submeshes[i]->name)) {
- s = submeshes[i];
- break;
- }
- }
-
- free(submeshes);
-
- if(!s) {
- fprintf(stderr, "Group is not yet created!\n");
- return;
- }
- }
-
- char *invitation = meshlink_invite(mesh, s, arg);
-
- if(!invitation) {
- fprintf(stderr, "Could not invite '%s': %s\n", arg, meshlink_strerror(meshlink_errno));
- return;
- }
-
- fprintf(stderr, "Invitation for %s: %s\n", arg, invitation);
- free(invitation);
- } else if(!strcasecmp(buf, "canonical")) {
+ if(!strcasecmp(buf, "canonical")) {
bool set;
char *host = NULL, *port = NULL;
fprintf(stderr, "Could not restart MeshLink: %s\n", meshlink_strerror(meshlink_errno));
exit(1);
}
- } else if(!strcasecmp(buf, "kick")) {
- if(!arg) {
- fprintf(stderr, "/kick 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;
- }
-
- if(!meshlink_blacklist(mesh, node)) {
- fprintf(stderr, "Error blacklising '%s': %s", arg, meshlink_strerror(meshlink_errno));
- return;
- }
-
- 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;
- }
-
- if(!meshlink_whitelist(mesh, node)) {
- fprintf(stderr, "Error whitelising '%s': %s", arg, meshlink_strerror(meshlink_errno));
- return;
- }
-
- fprintf(stderr, "Node '%s' whitelisted.\n", arg);
} else if(!strcasecmp(buf, "who")) {
meshlink_submesh_t *node_group = NULL;
"<name>: <message> Send a message to the given node.\n"
" Subsequent messages don't need the <name>: prefix.\n"
"/group <name> Create a new group"
- "/invite <name> [submesh] Create an invitation for a new node.\n"
- " Node joins either coremesh or submesh depending on submesh parameter.\n"
"/join <invitation> Join an existing mesh using an invitation.\n"
"/kick <name> Blacklist the given node.\n"
"/who [<name>] List all nodes or show information about the given node.\n"
*arg++ = 0;
}
- if(!strcasecmp(buf, "invite")) {
- char *invitation;
-
- if(!arg) {
- fprintf(stderr, "/invite requires an argument!\n");
- return;
- }
-
- invitation = meshlink_invite(meshes[nodeindex], NULL, arg);
-
- if(!invitation) {
- fprintf(stderr, "Could not invite '%s': %s\n", arg, meshlink_strerror(meshlink_errno));
- return;
- }
-
- printf("Invitation for %s: %s\n", arg, invitation);
- free(invitation);
- } else if(!strcasecmp(buf, "join")) {
+ if(!strcasecmp(buf, "join")) {
if(!arg) {
fprintf(stderr, "/join requires an argument!\n");
return;
fprintf(stderr, "Could not restart MeshLink: %s\n", meshlink_strerror(meshlink_errno));
exit(1);
}
- } else if(!strcasecmp(buf, "kick")) {
- if(!arg) {
- fprintf(stderr, "/kick requires an argument!\n");
- return;
- }
-
- meshlink_node_t *node = meshlink_get_node(meshes[nodeindex], arg);
-
- if(!node) {
- fprintf(stderr, "Unknown node '%s'\n", arg);
- return;
- }
-
- if(!meshlink_blacklist(meshes[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(meshes[nodeindex], arg);
-
- if(!node) {
- fprintf(stderr, "Error looking up '%s': %s\n", arg, meshlink_strerror(meshlink_errno));
- return;
- }
-
- if(!meshlink_whitelist(meshes[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(meshes[nodeindex], nodes, &nnodes);
printf(
"<name>: <message> Send a message to the given node.\n"
" Subsequent messages don't need the <name>: prefix.\n"
- "/invite <name> Create an invitation for a new node.\n"
"/join <invitation> Join an existing mesh using an invitation.\n"
"/kick <name> Blacklist the given node.\n"
"/who [<name>] List all nodes or show information about the given node.\n"