]> git.meshlink.io Git - meshlink-tiny/blobdiff - examples/channels.c
Remove support for TCP channels and AIO.
[meshlink-tiny] / examples / channels.c
index 3a5426ef01746b699fe495369019c0cf44d650bc..d3df2d948b404165d8f917d82ad03dbfab30fac6 100644 (file)
@@ -61,13 +61,6 @@ static bool channel_accept(meshlink_handle_t *mesh, meshlink_channel_t *channel,
        return true;
 }
 
-static void channel_poll(meshlink_handle_t *mesh, meshlink_channel_t *channel, size_t len) {
-       (void)len;
-
-       fprintf(stderr, "Channel to '%s' connected\n", channel->node->name);
-       meshlink_set_channel_poll_cb(mesh, channel, NULL);
-}
-
 static void node_status(meshlink_handle_t *mesh, meshlink_node_t *node, bool reachable) {
        (void)mesh;
 
@@ -78,9 +71,6 @@ static void node_status(meshlink_handle_t *mesh, meshlink_node_t *node, bool rea
        }
 }
 
-static meshlink_node_t **nodes;
-static size_t nnodes;
-
 static void parse_command(meshlink_handle_t *mesh, char *buf) {
        char *arg = strchr(buf, ' ');
 
@@ -88,24 +78,7 @@ static void parse_command(meshlink_handle_t *mesh, char *buf) {
                *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;
@@ -123,68 +96,6 @@ static void parse_command(meshlink_handle_t *mesh, char *buf) {
                        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);
-
-                       if(!nnodes) {
-                               fprintf(stderr, "Could not get list of nodes: %s\n", meshlink_strerror(meshlink_errno));
-                       } else {
-                               printf("%zu known nodes:", nnodes);
-
-                               for(size_t i = 0; i < nnodes; i++) {
-                                       printf(" %s", nodes[i]->name);
-                               }
-
-                               printf("\n");
-                       }
-               } else {
-                       meshlink_node_t *node = meshlink_get_node(mesh, arg);
-
-                       if(!node) {
-                               fprintf(stderr, "Error looking up '%s': %s\n", arg, meshlink_strerror(meshlink_errno));
-                       } else {
-                               printf("Node %s found\n", arg);
-                       }
-               }
        } else if(!strcasecmp(buf, "quit")) {
                printf("Bye!\n");
                fclose(stdin);
@@ -192,7 +103,6 @@ static void parse_command(meshlink_handle_t *mesh, char *buf) {
                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"
@@ -268,7 +178,7 @@ static void parse_input(meshlink_handle_t *mesh, char *buf) {
 
        if(!channel) {
                fprintf(stderr, "Opening chat channel to '%s'\n", destination->name);
-               channel = meshlink_channel_open(mesh, destination, CHAT_PORT, channel_receive, NULL, 0);
+               channel = meshlink_channel_open_ex(mesh, destination, CHAT_PORT, channel_receive, NULL, 0, MESHLINK_CHANNEL_UDP);
 
                if(!channel) {
                        fprintf(stderr, "Could not create channel to '%s': %s\n", destination->name, meshlink_strerror(meshlink_errno));
@@ -276,7 +186,6 @@ static void parse_input(meshlink_handle_t *mesh, char *buf) {
                }
 
                destination->priv = channel;
-               meshlink_set_channel_poll_cb(mesh, channel, channel_poll);
        }
 
        if(!meshlink_channel_send(mesh, channel, msg, strlen(msg))) {