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);
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;
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;