]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
print error on fd_delete failure
authorAlan T. DeKok <aland@freeradius.org>
Wed, 6 Dec 2017 16:34:24 +0000 (11:34 -0500)
committerAlan T. DeKok <aland@freeradius.org>
Wed, 6 Dec 2017 16:35:36 +0000 (11:35 -0500)
But we still keep going, because there's nothing else to do

src/modules/proto_detail/proto_detail_file.c

index 5f18fa5ee2d36be7a8508af27ef99fd122957558..2e8f12119041fbbd03beef720345b5b4d88d1615 100644 (file)
@@ -404,7 +404,9 @@ static int work_exists(proto_detail_file_t *inst, int fd)
 
        if (!fr_schedule_socket_add(inst->parent->sc, listen)) {
        error:
-               (void) fr_event_fd_delete(inst->el, fd, FR_EVENT_FILTER_VNODE);
+               if (fr_event_fd_delete(inst->el, fd, FR_EVENT_FILTER_VNODE) < 0) {
+                       ERROR("Failed removing DELETE callback on add: %s", fr_strerror());
+               }
 
                if (opened) {
                        (void) listen->app_io->close(listen->app_io_instance);
@@ -436,7 +438,11 @@ static void mod_vnode_delete(fr_event_list_t *el, int fd, UNUSED int fflags, voi
 
        DEBUG("proto_detail (%s): Deleted %s", inst->name, inst->filename_work);
 
-       (void) fr_event_fd_delete(el, fd, FR_EVENT_FILTER_VNODE);
+       rad_assert(fd == inst->vnode_fd);
+
+       if (fr_event_fd_delete(el, fd, FR_EVENT_FILTER_VNODE) < 0) {
+               ERROR("Failed removing DELETE callback after deletion: %s", fr_strerror());
+       }
        close(fd);
        inst->vnode_fd = -1;
 
@@ -681,8 +687,11 @@ static int mod_detach(void *instance)
        close(inst->fd);
 
        if (inst->vnode_fd >= 0) {
-               (void) fr_event_fd_delete(inst->el, inst->vnode_fd, FR_EVENT_FILTER_VNODE);
+               if (fr_event_fd_delete(inst->el, inst->vnode_fd, FR_EVENT_FILTER_VNODE) < 0) {
+                       ERROR("Failed removing DELETE callback on detach: %s", fr_strerror());
+               }
                close(inst->vnode_fd);
+               inst->vnode_fd = -1;
        }
 
        return 0;