- Check if we need to retry making an outgoing connection
*/
void terminate_connection(meshlink_handle_t *mesh, connection_t *c, bool report) {
- logger(mesh, MESHLINK_INFO, "Closing connection with %s (%s)", c->name, c->hostname);
+ logger(mesh, MESHLINK_INFO, "Closing connection with %s", c->name);
c->status.active = false;
/* If the node is not reachable anymore but we remember it had an edge to us, clean it up */
- if(report && !c->node->status.reachable) {
+ if(report && c->node && !c->node->status.reachable) {
edge_t *e;
e = lookup_edge(c->node, mesh->self);
if(e) {
if(c->last_ping_time + mesh->pingtimeout <= mesh->loop.now.tv_sec) {
if(c->status.active) {
if(c->status.pinged)
- logger(mesh, MESHLINK_INFO, "%s (%s) didn't respond to PING in %ld seconds", c->name, c->hostname, (long)mesh->loop.now.tv_sec - c->last_ping_time);
+ logger(mesh, MESHLINK_INFO, "%s didn't respond to PING in %ld seconds", c->name, (long)mesh->loop.now.tv_sec - c->last_ping_time);
else if(c->last_ping_time + mesh->pinginterval <= mesh->loop.now.tv_sec) {
send_ping(mesh, c);
continue;
continue;
} else {
if(c->status.connecting)
- logger(mesh, MESHLINK_WARNING, "Timeout while connecting to %s (%s)", c->name, c->hostname);
+ logger(mesh, MESHLINK_WARNING, "Timeout while connecting to %s", c->name);
else
- logger(mesh, MESHLINK_WARNING, "Timeout from %s (%s) during authentication", c->name, c->hostname);
+ logger(mesh, MESHLINK_WARNING, "Timeout from %s during authentication", c->name);
}
terminate_connection(mesh, c, c->status.active);
}
// connect disconnect nodes
- node_t* connect_to = NULL;
- node_t* disconnect_from = NULL;
+ node_t *connect_to = NULL;
+ node_t *disconnect_from = NULL;
// get cur_connects
logger(mesh, MESHLINK_DEBUG, "* found best one for initial connect");
//timeout = 0;
- connect_to = (node_t*)nodes->head->data;
+ connect_to = (node_t *)nodes->head->data;
} else
logger(mesh, MESHLINK_DEBUG, "* could not find node for initial connect");
if(nodes->head) {
logger(mesh, MESHLINK_DEBUG, "* found better node");
- connect_to = (node_t*)nodes->head->data;
+ connect_to = (node_t *)nodes->head->data;
splay_free_tree(nodes);
break;
if(nodes->head) {
logger(mesh, MESHLINK_DEBUG, "* try to heal partition");
- connect_to = (node_t*)nodes->head->data;
+ connect_to = (node_t *)nodes->head->data;
} else
logger(mesh, MESHLINK_DEBUG, "* could not find nodes for partition healing");
if(nodes->head) {
logger(mesh, MESHLINK_DEBUG, "* disconnect suboptimal outgoing connection");
- disconnect_from = (node_t*)nodes->head->data;
+ disconnect_from = (node_t *)nodes->head->data;
}
splay_free_tree(nodes);
logger(mesh, MESHLINK_DEBUG, "* disconnect connection (too many connections)");
//timeout = 0;
- disconnect_from = (node_t*)nodes->head->data;
+ disconnect_from = (node_t *)nodes->head->data;
} else
logger(mesh, MESHLINK_DEBUG, "* no node we want to disconnect, even though we have too many connections");
//Add signal handler
mesh->datafromapp.signum = 0;
- signal_add(&(mesh->loop),&(mesh->datafromapp), (signal_cb_t)meshlink_send_from_queue,mesh, mesh->datafromapp.signum);
+ signal_add(&(mesh->loop), &(mesh->datafromapp), (signal_cb_t)meshlink_send_from_queue, mesh, mesh->datafromapp.signum);
if(!event_loop_run(&(mesh->loop), &(mesh->mesh_mutex))) {
logger(mesh, MESHLINK_ERROR, "Error while waiting for input: %s", strerror(errno));