return true;
}
+static void channel_poll(meshlink_handle_t *mesh, meshlink_channel_t *channel, size_t 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) {
if(reachable)
printf("%s joined.\n", node->name);
meshlink_stop(mesh);
if(!meshlink_join(mesh, arg))
fprintf(stderr, "Could not join using invitation: %s\n", meshlink_strerror(meshlink_errno));
- else {
+ else
fprintf(stderr, "Invitation accepted!\n");
- if(!meshlink_start(mesh)) {
- fprintf(stderr, "Could not start MeshLink: %s\n", meshlink_strerror(meshlink_errno));
- return;
- }
+ if(!meshlink_start(mesh)) {
+ fprintf(stderr, "Could not restart MeshLink: %s\n", meshlink_strerror(meshlink_errno));
+ exit(1);
}
} else if(!strcasecmp(buf, "kick")) {
if(!arg) {
return;
}
destination->priv = channel;
+ meshlink_set_channel_poll_cb(mesh, channel, channel_poll);
}
if(!meshlink_channel_send(mesh, channel, msg, strlen(msg))) {