]> git.meshlink.io Git - meshlink/blobdiff - examples/manynodes.c
Enforce spaces around operators.
[meshlink] / examples / manynodes.c
index 0aafbcef25c661aa03a0825783ffdb119ffe5ce8..bdc99bcf70d83566b6511d6c33cc9d8f7ffa9f52 100644 (file)
@@ -23,7 +23,7 @@
 
 static int n = 10;
 static meshlink_handle_t **mesh;
-static char* namesprefix="machine1";
+static char *namesprefix = "machine1";
 static int nodeindex = 0;
 
 static meshlink_node_t **nodes;
@@ -37,28 +37,27 @@ static void log_message(meshlink_handle_t *mesh, meshlink_log_level_t level, con
                [MESHLINK_ERROR] = "\x1b[31mERROR",
                [MESHLINK_CRITICAL] = "\x1b[31mCRITICAL",
        };
-       fprintf(stderr, "%s\t%s:\x1b[0m %s\n", mesh ? mesh->name : "global",levelstr[level], text);
+       fprintf(stderr, "%s\t%s:\x1b[0m %s\n", mesh ? mesh->name : "global", levelstr[level], text);
 }
 
 //Test mesh sending data
-static void testmesh () {
+static void testmesh() {
 
        for(int nindex = 0; nindex < n; nindex++) {
 
-                       nodes = meshlink_get_all_nodes(mesh[nindex], nodes, &nnodes);
-                       if(!nodes) {
-                               fprintf(stderr, "Could not get list of nodes: %s\n", meshlink_strerror(meshlink_errno));
-                       } else {
-                               printf("%zu known nodes:\n", nnodes);
-                               for(int i = 0; i < nnodes; i++) {
-                                       //printf(" %s\n", nodes[i]->name);
-                                               if(!meshlink_send(mesh[nindex], nodes[i], "magic", strlen("magic") + 1)) {
-               fprintf(stderr, "Could not send message to '%s': %s\n", nodes[i]->name, meshlink_strerror(meshlink_errno));
-                                               }
-                               }
-
+               nodes = meshlink_get_all_nodes(mesh[nindex], nodes, &nnodes);
+               if(!nodes)
+                       fprintf(stderr, "Could not get list of nodes: %s\n", meshlink_strerror(meshlink_errno));
+               else {
+                       printf("%zu known nodes:\n", nnodes);
+                       for(int i = 0; i < nnodes; i++) {
+                               //printf(" %s\n", nodes[i]->name);
+                               if(!meshlink_send(mesh[nindex], nodes[i], "magic", strlen("magic") + 1))
+                                       fprintf(stderr, "Could not send message to '%s': %s\n", nodes[i]->name, meshlink_strerror(meshlink_errno));
                        }
 
+               }
+
        }
 }
 // Make all nodes know about each other by importing each others public keys and addresses.
@@ -77,31 +76,27 @@ static void linkmesh() {
        }
 }
 
-static bool exportmeshgraph(const char* path)
-{
+static bool exportmeshgraph(const char *path) {
        struct stat ps;
        int psr = stat(path, &ps);
 
-       if(psr == 0 || errno != ENOENT)
-       {
+       if(psr == 0 || errno != ENOENT) {
                if(psr == -1)
-                       { perror("stat"); }
+                       perror("stat");
                else
-                       { fprintf(stderr, "%s exists already\n", path); }
+                       fprintf(stderr, "%s exists already\n", path);
 
                return false;
        }
 
-       FILEstream = fopen(path, "w");
+       FILE *stream = fopen(path, "w");
 
-       if(!stream)
-       {
+       if(!stream) {
                perror("stream");
                return false;
        }
 
-       if(!devtool_export_json_all_edges_state(mesh[0], stream))
-       {
+       if(!devtool_export_json_all_edges_state(mesh[0], stream)) {
                fclose(stream);
                fprintf(stderr, "could not export graph\n");
                return false;
@@ -112,13 +107,12 @@ static bool exportmeshgraph(const char* path)
 }
 
 
-void exportmeshgraph_timer(int signum)
-{
+void exportmeshgraph_timer(int signum) {
        struct timeval ts;
        gettimeofday(&ts, NULL);
 
        char name[1024];
-       snprintf(name, sizeof(name), "%sgraph_%ld_%03ld.json", namesprefix,ts.tv_sec, ts.tv_usec/1000);
+       snprintf(name, sizeof(name), "%sgraph_%ld_%03ld.json", namesprefix, ts.tv_sec, ts.tv_usec / 1000);
 
        exportmeshgraph(name);
 }
@@ -126,26 +120,23 @@ void exportmeshgraph_timer(int signum)
 #ifndef _WIN32
 static bool exportmeshgraph_started = false;
 
-static bool exportmeshgraph_end(const char* none)
-{
+static bool exportmeshgraph_end(const char *none) {
        if(!exportmeshgraph_started)
-               { return false; }
+               return false;
 
        struct itimerval zero_timer = { 0 };
-       setitimer (ITIMER_REAL, &zero_timer, NULL);
+       setitimer(ITIMER_REAL, &zero_timer, NULL);
 
        exportmeshgraph_started = false;
 
        return true;
 }
 
-static bool exportmeshgraph_begin(const char* timeout_str)
-{
+static bool exportmeshgraph_begin(const char *timeout_str) {
        if(!timeout_str)
                return false;
 
-       if(exportmeshgraph_started)
-       {
+       if(exportmeshgraph_started) {
                if(!exportmeshgraph_end(NULL))
                        return false;
        }
@@ -154,7 +145,7 @@ static bool exportmeshgraph_begin(const char* timeout_str)
        int timeout = atoi(timeout_str);
 
        if(timeout < 100)
-               { timeout = 100; }
+               timeout = 100;
 
        int timeout_sec = timeout / 1000;
        int timeout_msec = timeout % 1000;
@@ -172,20 +163,18 @@ static bool exportmeshgraph_begin(const char* timeout_str)
        timer.it_interval.tv_usec = timeout_msec * 1000;
 
        /* Start a real timer. */
-       setitimer (ITIMER_REAL, &timer, NULL);
+       setitimer(ITIMER_REAL, &timer, NULL);
 
        exportmeshgraph_started = true;
 
        return true;
 }
 #else
-static bool exportmeshgraph_end(const char* none)
-{
+static bool exportmeshgraph_end(const char *none) {
        return false;
 }
 
-static bool exportmeshgraph_begin(const char* timeout_str)
-{
+static bool exportmeshgraph_begin(const char *timeout_str) {
        return false;
 }
 #endif
@@ -219,9 +208,8 @@ static void parse_command(char *buf) {
                meshlink_stop(mesh[nodeindex]);
                if(!meshlink_join(mesh[nodeindex], 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[nodeindex])) {
                        fprintf(stderr, "Could not restart MeshLink: %s\n", meshlink_strerror(meshlink_errno));
                        exit(1);
@@ -244,9 +232,9 @@ static void parse_command(char *buf) {
        } else if(!strcasecmp(buf, "who")) {
                if(!arg) {
                        nodes = meshlink_get_all_nodes(mesh[nodeindex], nodes, &nnodes);
-                       if(!nodes) {
+                       if(!nodes)
                                fprintf(stderr, "Could not get list of nodes: %s\n", meshlink_strerror(meshlink_errno));
-                       else {
+                       else {
                                printf("%zu known nodes:", nnodes);
                                for(int i = 0; i < nnodes; i++)
                                        printf(" %s", nodes[i]->name);
@@ -254,52 +242,50 @@ static void parse_command(char *buf) {
                        }
                } else {
                        meshlink_node_t *node = meshlink_get_node(mesh[nodeindex], arg);
-                       if(!node) {
+                       if(!node)
                                fprintf(stderr, "Unknown node '%s'\n", arg);
-                       } else {
+                       else
                                printf("Node %s found, pmtu %zd\n", arg, meshlink_get_pmtu(mesh[nodeindex], node));
-                       }
                }
-       } else if(!strcasecmp(buf, "link")) {
+       } else if(!strcasecmp(buf, "link"))
                linkmesh();
-       } else if(!strcasecmp(buf, "eg")) {
+       else if(!strcasecmp(buf, "eg"))
                exportmeshgraph(arg);
-       } else if(!strcasecmp(buf, "egb")) {
+       else if(!strcasecmp(buf, "egb"))
                exportmeshgraph_begin(arg);
-       } else if(!strcasecmp(buf, "ege")) {
+       else if(!strcasecmp(buf, "ege"))
                exportmeshgraph_end(NULL);
-       } else if(!strcasecmp(buf, "test")) {
+       else if(!strcasecmp(buf, "test"))
                testmesh();
-       else if(!strcasecmp(buf, "select")) {
+       else if(!strcasecmp(buf, "select")) {
                if(!arg) {
                        fprintf(stderr, "/select requires an argument!\n");
                        return;
                }
                nodeindex = atoi(arg);
-               printf("Index is now %d\n",nodeindex);
-       } else if(!strcasecmp(buf, "stop")) {
+               printf("Index is now %d\n", nodeindex);
+       } else if(!strcasecmp(buf, "stop"))
                meshlink_stop(mesh[nodeindex]);
-       else if(!strcasecmp(buf, "quit")) {
+       else if(!strcasecmp(buf, "quit")) {
                printf("Bye!\n");
                fclose(stdin);
        } else if(!strcasecmp(buf, "help")) {
                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"
-                       "/link                 Link all nodes together.\n"
-                       "/eg <path>            Export graph as json file.\n"
-                       "/test                 Test functionality sending some data to all nodes\n"
-                       "/select <number>      Select the active node running the user commands\n"
-                       "/stop                 Call meshlink_stop, use /select first to select which node to stop\n"
-                       "/quit                 Exit this program.\n"
-                       );
-       } else {
+                       "<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"
+                       "/link                 Link all nodes together.\n"
+                       "/eg <path>            Export graph as json file.\n"
+                       "/test                 Test functionality sending some data to all nodes\n"
+                       "/select <number>      Select the active node running the user commands\n"
+                       "/stop                 Call meshlink_stop, use /select first to select which node to stop\n"
+                       "/quit                 Exit this program.\n"
+               );
+       } else
                fprintf(stderr, "Unknown command '/%s'\n", buf);
-       }
 }
 
 static void parse_input(char *buf) {
@@ -382,7 +368,7 @@ int main(int argc, char *argv[]) {
        if(argc > 4)
                graphexporttimeout = argv[4];
 
-       mesh = calloc(n, sizeof *mesh);
+       mesh = calloc(n, sizeof(*mesh));
 
        meshlink_set_log_cb(NULL, MESHLINK_DEBUG, log_message);
 #ifndef _WIN32
@@ -394,15 +380,13 @@ int main(int argc, char *argv[]) {
        char filename[PATH_MAX];
        char nodename[100];
        for(int i = 0; i < n; i++) {
-               snprintf(nodename, sizeof nodename, "%snode%d", namesprefix,i);
-               snprintf(filename, sizeof filename, "%s/%s", basebase, nodename);
+               snprintf(nodename, sizeof(nodename), "%snode%d", namesprefix, i);
+               snprintf(filename, sizeof(filename), "%s/%s", basebase, nodename);
                bool itsnew = access(filename, R_OK);
-               if (n/(i+1) > n/4) {
+               if(n / (i + 1) > n / 4)
                        mesh[i] = meshlink_open(filename, nodename, "manynodes", DEV_CLASS_BACKBONE);
-               }
-               else {
+               else
                        mesh[i] = meshlink_open(filename, nodename, "manynodes", DEV_CLASS_PORTABLE);
-               }
                meshlink_set_log_cb(mesh[i], MESHLINK_DEBUG, log_message);
                if(!mesh[i]) {
                        fprintf(stderr, "errno is: %d\n", meshlink_errno);
@@ -426,12 +410,12 @@ int main(int argc, char *argv[]) {
        }
 
        if(graphexporttimeout)
-               { exportmeshgraph_begin(graphexporttimeout); }
+               exportmeshgraph_begin(graphexporttimeout);
 
        printf("%d nodes started.\nType /help for a list of commands.\n", started);
 
        // handle input
-       while(fgets(buf, sizeof buf, stdin))
+       while(fgets(buf, sizeof(buf), stdin))
                parse_input(buf);
 
        exportmeshgraph_end(NULL);