mesh->connections = list_alloc((list_action_t) free_connection);
mesh->everyone = new_connection();
mesh->everyone->name = xstrdup("mesh->everyone");
- mesh->everyone->hostname = xstrdup("BROADCAST");
}
void exit_connections(meshlink_handle_t *mesh) {
- if(mesh->connections)
+ if(mesh->connections) {
list_delete_list(mesh->connections);
+ }
free_connection(mesh->everyone);
}
void free_connection(connection_t *c) {
- if(!c)
+ if(!c) {
return;
+ }
sptps_stop(&c->sptps);
ecdsa_free(c->ecdsa);
buffer_clear(&c->inbuf);
buffer_clear(&c->outbuf);
- if(c->io.cb)
+ if(c->io.cb) {
abort();
+ }
- if(c->socket > 0)
+ if(c->socket > 0) {
closesocket(c->socket);
+ }
free(c->name);
- free(c->hostname);
-
- if(c->config_tree)
- exit_configuration(&c->config_tree);
free(c);
}