X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fnet_setup.c;h=1c468b78d7f8d19316bfb918194c1181bb3a2ba4;hb=43ed5b9a5d739c50317d5d24898de07526a9297f;hp=e8ed948772e4bf9ec546f8a3820b9e54b3133902;hpb=2cfd1205dc9c6e9d42cc569f415afe13f52357ec;p=meshlink diff --git a/src/net_setup.c b/src/net_setup.c index e8ed9487..1c468b78 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]; @@ -269,7 +269,7 @@ bool setup_myself(meshlink_handle_t *mesh) { char *address = NULL; 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; } @@ -279,8 +279,10 @@ bool setup_myself(meshlink_handle_t *mesh) { mesh->self->connection->name = xstrdup(name); read_host_config(mesh, mesh->config, name); - if(!get_config_string(lookup_config(mesh->config, "Port"), &mesh->myport)) - mesh->myport = xstrdup("655"); + if(!get_config_string(lookup_config(mesh->config, "Port"), &mesh->myport)) { + logger(DEBUG_ALWAYS, LOG_ERR, "Port for MeshLink instance required!"); + return false; + } mesh->self->connection->options = 0; mesh->self->connection->protocol_major = PROT_MAJOR; @@ -339,11 +341,6 @@ bool setup_myself(meshlink_handle_t *mesh) { return false; } - // TODO: require Port to be set? Or use "0" and use getsockname()? - - if(!mesh->myport) - mesh->myport = xstrdup("655"); - xasprintf(&mesh->self->hostname, "MYSELF port %s", mesh->myport); mesh->self->connection->hostname = xstrdup(mesh->self->hostname); @@ -377,11 +374,13 @@ bool setup_network(meshlink_handle_t *mesh) { close all open network connections */ 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(mesh, c, false); + if(mesh->connections) { + 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(mesh, c, false); + } } if(mesh->outgoings)