From: Alan T. DeKok Date: Wed, 6 Dec 2017 16:34:24 +0000 (-0500) Subject: print error on fd_delete failure X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2546d66f166fbc5e2e667f7ef35ad9fc13563a6f;p=thirdparty%2Ffreeradius-server.git print error on fd_delete failure But we still keep going, because there's nothing else to do --- diff --git a/src/modules/proto_detail/proto_detail_file.c b/src/modules/proto_detail/proto_detail_file.c index 5f18fa5ee2d..2e8f1211904 100644 --- a/src/modules/proto_detail/proto_detail_file.c +++ b/src/modules/proto_detail/proto_detail_file.c @@ -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;