X-Git-Url: http://git.meshlink.io/?p=meshlink;a=blobdiff_plain;f=src%2Fnet.c;h=b9f441a0d0b9b774d3ab7fb914395dca3b9ba9d5;hp=80490efadb785ab59db7cb6e8a43e850008b9131;hb=fe5563f92021618b4a8b41e412c73d8364fcaf6e;hpb=6c897377f68fc23ca9a8b23a6ca204517998b2e9 diff --git a/src/net.c b/src/net.c index 80490efa..b9f441a0 100644 --- a/src/net.c +++ b/src/net.c @@ -604,7 +604,10 @@ static void periodic_handler(event_loop_t *loop, void *data) { for splay_each(node_t, n, mesh->nodes) { if(n->status.dirty) { - node_write_config(mesh, n); + if(node_write_config(mesh, n)) { + logger(mesh, MESHLINK_DEBUG, "Could not update %s", n->name); + } + n->status.dirty = false; } } @@ -696,7 +699,7 @@ void retry(meshlink_handle_t *mesh) { /* this is where it all happens... */ -int main_loop(meshlink_handle_t *mesh) { +void main_loop(meshlink_handle_t *mesh) { timeout_add(&mesh->loop, &mesh->pingtimer, timeout_handler, &mesh->pingtimer, &(struct timeval) { default_timeout, prng(mesh, TIMER_FUDGE) }); @@ -710,17 +713,10 @@ int main_loop(meshlink_handle_t *mesh) { if(!event_loop_run(&mesh->loop, &mesh->mutex)) { logger(mesh, MESHLINK_ERROR, "Error while waiting for input: %s", strerror(errno)); - abort(); - signal_del(&mesh->loop, &mesh->datafromapp); - timeout_del(&mesh->loop, &mesh->periodictimer); - timeout_del(&mesh->loop, &mesh->pingtimer); - - return 1; + call_error_cb(mesh, MESHLINK_ENETWORK); } signal_del(&mesh->loop, &mesh->datafromapp); timeout_del(&mesh->loop, &mesh->periodictimer); timeout_del(&mesh->loop, &mesh->pingtimer); - - return 0; }