]> git.meshlink.io Git - meshlink/blobdiff - src/net_setup.c
Ensure everything compiles with -Wall without giving warnings.
[meshlink] / src / net_setup.c
index 5390d80491296913f7090bcb83491054c7f7e376..e8ed948772e4bf9ec546f8a3820b9e54b3133902 100644 (file)
@@ -34,7 +34,7 @@
 
 int autoconnect = 3;
 
-bool node_read_ecdsa_public_key(node_t *n) {
+bool node_read_ecdsa_public_key(meshlink_handle_t *mesh, node_t *n) {
        if(ecdsa_active(n->ecdsa))
                return true;
 
@@ -57,7 +57,7 @@ exit:
        return n->ecdsa;
 }
 
-bool read_ecdsa_public_key(connection_t *c) {
+bool read_ecdsa_public_key(meshlink_handle_t *mesh, connection_t *c) {
        if(ecdsa_active(c->ecdsa))
                return true;
 
@@ -80,7 +80,7 @@ bool read_ecdsa_public_key(connection_t *c) {
        return false;
 }
 
-static bool read_ecdsa_private_key(void) {
+static bool read_ecdsa_private_key(meshlink_handle_t *mesh) {
        FILE *fp;
        char filename[PATH_MAX];
 
@@ -101,7 +101,7 @@ static bool read_ecdsa_private_key(void) {
        return mesh->self->connection->ecdsa;
 }
 
-static bool read_invitation_key(void) {
+static bool read_invitation_key(meshlink_handle_t *mesh) {
        FILE *fp;
        char filename[PATH_MAX];
 
@@ -124,7 +124,7 @@ static bool read_invitation_key(void) {
        return mesh->invitation_key;
 }
 
-void load_all_nodes(void) {
+void load_all_nodes(meshlink_handle_t *mesh) {
        DIR *dir;
        struct dirent *ent;
        char dname[PATH_MAX];
@@ -140,20 +140,20 @@ void load_all_nodes(void) {
                if(!check_id(ent->d_name))
                        continue;
 
-               node_t *n = lookup_node(ent->d_name);
+               node_t *n = lookup_node(mesh, ent->d_name);
                if(n)
                        continue;
 
                n = new_node();
                n->name = xstrdup(ent->d_name);
-               node_add(n);
+               node_add(mesh, n);
        }
 
        closedir(dir);
 }
 
 
-char *get_name(void) {
+char *get_name(meshlink_handle_t *mesh) {
        char *name = NULL;
 
        get_config_string(lookup_config(mesh->config, "Name"), &name);
@@ -170,14 +170,14 @@ char *get_name(void) {
        return name;
 }
 
-bool setup_myself_reloadable(void) {
+bool setup_myself_reloadable(meshlink_handle_t *mesh) {
        mesh->localdiscovery = true;
        keylifetime = 3600; // TODO: check if this can be removed as well
        mesh->maxtimeout = 900;
        autoconnect = 3;
        mesh->self->options |= OPTION_PMTU_DISCOVERY;
 
-       read_invitation_key();
+       read_invitation_key(mesh);
 
        return true;
 }
@@ -185,7 +185,7 @@ bool setup_myself_reloadable(void) {
 /*
   Add listening sockets.
 */
-static bool add_listen_address(char *address, bool bindto) {
+static bool add_listen_address(meshlink_handle_t *mesh, char *address, bool bindto) {
        char *port = mesh->myport;
 
        if(address) {
@@ -236,7 +236,7 @@ static bool add_listen_address(char *address, bool bindto) {
                if(tcp_fd < 0)
                        continue;
 
-               int udp_fd = setup_vpn_in_socket((sockaddr_t *) aip->ai_addr);
+               int udp_fd = setup_vpn_in_socket(mesh, (sockaddr_t *) aip->ai_addr);
 
                if(tcp_fd < 0) {
                        close(tcp_fd);
@@ -264,12 +264,11 @@ static bool add_listen_address(char *address, bool bindto) {
 /*
   Configure node_t mesh->self and set up the local sockets (listen only)
 */
-bool setup_myself(void) {
-       char *name, *hostname, *cipher, *digest, *type;
+bool setup_myself(meshlink_handle_t *mesh) {
+       char *name;
        char *address = NULL;
-       bool port_specified = false;
 
-       if(!(name = get_name())) {
+       if(!(name = get_name(mesh))) {
                logger(DEBUG_ALWAYS, LOG_ERR, "Name for tinc daemon required!");
                return false;
        }
@@ -282,8 +281,6 @@ bool setup_myself(void) {
 
        if(!get_config_string(lookup_config(mesh->config, "Port"), &mesh->myport))
                mesh->myport = xstrdup("655");
-       else
-               port_specified = true;
 
        mesh->self->connection->options = 0;
        mesh->self->connection->protocol_major = PROT_MAJOR;
@@ -291,7 +288,7 @@ bool setup_myself(void) {
 
        mesh->self->options |= PROT_MINOR << 24;
 
-       if(!read_ecdsa_private_key())
+       if(!read_ecdsa_private_key(mesh))
                return false;
 
        /* Ensure mesh->myport is numeric */
@@ -308,7 +305,7 @@ bool setup_myself(void) {
 
        /* Check some options */
 
-       if(!setup_myself_reloadable())
+       if(!setup_myself_reloadable(mesh))
                return false;
 
        /* Compression */
@@ -323,19 +320,18 @@ bool setup_myself(void) {
        mesh->self->via = mesh->self;
        mesh->self->status.reachable = true;
        mesh->self->last_state_change = mesh->loop.now.tv_sec;
-       node_add(mesh->self);
+       node_add(mesh, mesh->self);
 
-       graph();
+       graph(mesh);
 
        if(autoconnect)
-               load_all_nodes();
+               load_all_nodes(mesh);
 
        /* Open sockets */
 
        mesh->listen_sockets = 0;
-       int cfgs = 0;
 
-       if(!add_listen_address(address, NULL))
+       if(!add_listen_address(mesh, address, NULL))
                return false;
 
        if(!mesh->listen_sockets) {
@@ -361,17 +357,17 @@ bool setup_myself(void) {
 /*
   initialize network
 */
-bool setup_network(void) {
-       init_connections();
-       init_nodes();
-       init_edges();
-       init_requests();
+bool setup_network(meshlink_handle_t *mesh) {
+       init_connections(mesh);
+       init_nodes(mesh);
+       init_edges(mesh);
+       init_requests(mesh);
 
        mesh->pinginterval = 60;
        mesh->pingtimeout = 5;
        maxoutbufsize = 10 * MTU;
 
-       if(!setup_myself())
+       if(!setup_myself(mesh))
                return false;
 
        return true;
@@ -380,19 +376,19 @@ bool setup_network(void) {
 /*
   close all open network connections
 */
-void close_network_connections(void) {
+void close_network_connections(meshlink_handle_t *mesh) {
        for(list_node_t *node = mesh->connections->head, *next; node; node = next) {
                next = node->next;
                connection_t *c = node->data;
                c->outgoing = NULL;
-               terminate_connection(c, false);
+               terminate_connection(mesh, c, false);
        }
 
        if(mesh->outgoings)
                list_delete_list(mesh->outgoings);
 
        if(mesh->self && mesh->self->connection) {
-               terminate_connection(mesh->self->connection, false);
+               terminate_connection(mesh, mesh->self->connection, false);
                free_connection(mesh->self->connection);
        }
 
@@ -403,10 +399,10 @@ void close_network_connections(void) {
                close(mesh->listen_socket[i].udp.fd);
        }
 
-       exit_requests();
-       exit_edges();
-       exit_nodes();
-       exit_connections();
+       exit_requests(mesh);
+       exit_edges(mesh);
+       exit_nodes(mesh);
+       exit_connections(mesh);
 
        if(mesh->myport) free(mesh->myport);