#include "utils.h"
static void log_cb(meshlink_handle_t *mesh, meshlink_log_level_t level, const char *text) {
+ (void)mesh;
+
static struct timeval tv0;
struct timeval tv;
- if(tv0.tv_sec == 0)
+ if(tv0.tv_sec == 0) {
gettimeofday(&tv0, NULL);
+ }
+
gettimeofday(&tv, NULL);
fprintf(stderr, "%u.%.03u ", (unsigned int)(tv.tv_sec - tv0.tv_sec), (unsigned int)tv.tv_usec / 1000);
- if(mesh)
+ if(mesh) {
fprintf(stderr, "(%s) ", mesh->name);
+ }
+
fprintf(stderr, "[%d] %s\n", level, text);
}
static bool received = false;
static void receive_cb(meshlink_handle_t *mesh, meshlink_node_t *source, const void *data, size_t len) {
+ (void)mesh;
+ (void)source;
+
fprintf(stderr, "RECEIVED SOMETHING\n");
- if(len == 5 && !memcmp(data, "Hello", 5))
+
+ if(len == 5 && !memcmp(data, "Hello", 5)) {
received = true;
+ }
}
-int main(int argc, char *argv[]) {
+int main() {
// Create three instances.
const char *name[3] = {"foo", "bar", "baz"};
mesh[i] = meshlink_open(path, name[i], "trio", DEV_CLASS_BACKBONE);
assert(mesh[i]);
+ meshlink_add_address(mesh[i], "localhost");
+
data[i] = meshlink_export(mesh[i]);
assert(data[i]);
}
// start the nodes
- for(int i = 0; i < 3; i++)
- meshlink_start(mesh[i]);
+ for(int i = 0; i < 3; i++) {
+ assert(meshlink_start(mesh[i]));
+ }
// the nodes should now learn about each other
// Stop the other nodes
- for(int i = 1; i < 3; i++)
+ for(int i = 1; i < 3; i++) {
meshlink_stop(mesh[i]);
+ }
sleep(1);
meshlink_set_log_cb(mesh[1], MESHLINK_DEBUG, log_cb);
- for(int i = 1; i < 3; i++)
- meshlink_start(mesh[i]);
+ for(int i = 1; i < 3; i++) {
+ assert(meshlink_start(mesh[i]));
+ }
assert(meshlink_get_node(mesh[1], name[2]));
assert(meshlink_get_node(mesh[2], name[1]));
// Clean up.
- for(int i = 0; i < 3; i++)
+ for(int i = 0; i < 3; i++) {
meshlink_close(mesh[i]);
+ }
}