X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;ds=sidebyside;f=src%2Fnet_setup.c;h=8b0fd8fde443ced49bb80905bf7df3459ded601c;hb=96daae84fef0a3f2c7fb18a39c6aa9594895dcd2;hp=02e90aefe078191777c7b29f19d2c91749af19aa;hpb=a7f01c4bfdb75391d2da560f6b2dc37ccfba020b;p=meshlink diff --git a/src/net_setup.c b/src/net_setup.c index 02e90aef..8b0fd8fd 100644 --- a/src/net_setup.c +++ b/src/net_setup.c @@ -80,7 +80,7 @@ bool read_ecdsa_public_key(meshlink_handle_t *mesh, connection_t *c) { return false; } -static bool read_ecdsa_private_key(meshlink_handle_t *mesh) { +bool read_ecdsa_private_key(meshlink_handle_t *mesh) { FILE *fp; char filename[PATH_MAX]; @@ -124,7 +124,7 @@ static bool read_invitation_key(meshlink_handle_t *mesh) { return mesh->invitation_key; } -static void load_all_nodes(meshlink_handle_t *mesh) { +void load_all_nodes(meshlink_handle_t *mesh) { DIR *dir; struct dirent *ent; char dname[PATH_MAX]; @@ -140,13 +140,13 @@ static void load_all_nodes(meshlink_handle_t *mesh) { 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); @@ -265,12 +265,11 @@ static bool add_listen_address(meshlink_handle_t *mesh, char *address, bool bind Configure node_t mesh->self and set up the local sockets (listen only) */ bool setup_myself(meshlink_handle_t *mesh) { - char *name, *hostname, *cipher, *digest, *type; + char *name; char *address = NULL; - bool port_specified = false; if(!(name = get_name(mesh))) { - logger(DEBUG_ALWAYS, LOG_ERR, "Name for tinc daemon required!"); + logger(DEBUG_ALWAYS, LOG_ERR, "Name for MeshLink instance required!"); return false; } @@ -282,8 +281,6 @@ bool setup_myself(meshlink_handle_t *mesh) { 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; @@ -323,9 +320,9 @@ bool setup_myself(meshlink_handle_t *mesh) { 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(mesh); @@ -333,7 +330,6 @@ bool setup_myself(meshlink_handle_t *mesh) { /* Open sockets */ mesh->listen_sockets = 0; - int cfgs = 0; if(!add_listen_address(mesh, address, NULL)) return false; @@ -362,10 +358,10 @@ bool setup_myself(meshlink_handle_t *mesh) { initialize network */ bool setup_network(meshlink_handle_t *mesh) { - init_connections(); - init_nodes(); - init_edges(); - init_requests(); + init_connections(mesh); + init_nodes(mesh); + init_edges(mesh); + init_requests(mesh); mesh->pinginterval = 60; mesh->pingtimeout = 5; @@ -380,19 +376,19 @@ bool setup_network(meshlink_handle_t *mesh) { /* 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);