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];
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;
}
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;
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);
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)