volatile bool bar_responded = false;
void log_cb(meshlink_handle_t *mesh, meshlink_log_level_t level, const char *text) {
volatile bool bar_responded = false;
void log_cb(meshlink_handle_t *mesh, meshlink_log_level_t level, const char *text) {
fprintf(stderr, "[%d] %s\n", level, text);
}
void status_cb(meshlink_handle_t *mesh, meshlink_node_t *node, bool reachable) {
fprintf(stderr, "[%d] %s\n", level, text);
}
void status_cb(meshlink_handle_t *mesh, meshlink_node_t *node, bool reachable) {
}
void foo_receive_cb(meshlink_handle_t *mesh, meshlink_channel_t *channel, const void *data, size_t len) {
}
void foo_receive_cb(meshlink_handle_t *mesh, meshlink_channel_t *channel, const void *data, size_t len) {
}
void bar_receive_cb(meshlink_handle_t *mesh, meshlink_channel_t *channel, const void *data, size_t len) {
}
void bar_receive_cb(meshlink_handle_t *mesh, meshlink_channel_t *channel, const void *data, size_t len) {
}
bool reject_cb(meshlink_handle_t *mesh, meshlink_channel_t *channel, uint16_t port, const void *data, size_t len) {
}
bool reject_cb(meshlink_handle_t *mesh, meshlink_channel_t *channel, uint16_t port, const void *data, size_t len) {
return false;
}
bool accept_cb(meshlink_handle_t *mesh, meshlink_channel_t *channel, uint16_t port, const void *data, size_t len) {
return false;
}
bool accept_cb(meshlink_handle_t *mesh, meshlink_channel_t *channel, uint16_t port, const void *data, size_t len) {
bar_receive_cb(mesh, channel, data, len);
bar_receive_cb(mesh, channel, data, len);
- if(meshlink_channel_send(mesh, channel, "Hello", 5) != 5)
+
+ if(meshlink_channel_send(mesh, channel, "Hello", 5) != 5) {
- meshlink_handle_t *mesh1 = meshlink_open("channels_conf.1", "foo", "channels", DEV_CLASS_BACKBONE);
+ meshlink_handle_t *mesh1 = meshlink_open("channels_fork_conf.1", "foo", "channels", DEV_CLASS_BACKBONE);
+
meshlink_add_address(mesh1, "localhost");
char *data = meshlink_export(mesh1);
meshlink_add_address(mesh1, "localhost");
char *data = meshlink_export(mesh1);
if(!data) {
fprintf(stderr, "Foo could not export its configuration\n");
return 1;
}
size_t len = strlen(data);
if(!data) {
fprintf(stderr, "Foo could not export its configuration\n");
return 1;
}
size_t len = strlen(data);
- write(wfd, &len, sizeof len);
- write(wfd, data, len);
+ ret_val = write(wfd, &len, sizeof(len));
+ ret_val = write(wfd, data, len);
// Open a channel from foo to bar.
meshlink_node_t *bar = meshlink_get_node(mesh1, "bar");
// Open a channel from foo to bar.
meshlink_node_t *bar = meshlink_get_node(mesh1, "bar");
- meshlink_handle_t *mesh2 = meshlink_open("channels_conf.2", "bar", "channels", DEV_CLASS_BACKBONE);
+ meshlink_handle_t *mesh2 = meshlink_open("channels_fork_conf.2", "bar", "channels", DEV_CLASS_BACKBONE);
+
meshlink_enable_discovery(mesh2, false);
char *data = meshlink_export(mesh2);
meshlink_enable_discovery(mesh2, false);
char *data = meshlink_export(mesh2);
if(!data) {
fprintf(stderr, "Bar could not export its configuration\n");
return 1;
}
size_t len = strlen(data);
if(!data) {
fprintf(stderr, "Bar could not export its configuration\n");
return 1;
}
size_t len = strlen(data);
- if(write(wfd, &len, sizeof len) <= 0) abort();
- if(write(wfd, data, len) <= 0) abort();
+
+ if(write(wfd, &len, sizeof(len)) <= 0) {
+ abort();
+ }
+
+ if(write(wfd, data, len) <= 0) {
+ abort();
+ }
+