]> git.meshlink.io Git - meshlink/blobdiff - src/net.c
Avoid casting function pointers.
[meshlink] / src / net.c
index 9dd42dd5acf678eeffd08e28f93a96404760b044..c3937307ae477065169ab4b14cc9e60ab83f252a 100644 (file)
--- a/src/net.c
+++ b/src/net.c
@@ -704,17 +704,19 @@ int main_loop(meshlink_handle_t *mesh) {
 
        //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, meshlink_send_from_queue, mesh, mesh->datafromapp.signum);
 
-       if(!event_loop_run(&(mesh->loop), &(mesh->mesh_mutex))) {
+       if(!event_loop_run(&mesh->loop, &mesh->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;
        }
 
+       signal_del(&mesh->loop, &mesh->datafromapp);
        timeout_del(&mesh->loop, &mesh->periodictimer);
        timeout_del(&mesh->loop, &mesh->pingtimer);