From 8a4362459d23af1e3db49044f8b8043c0b3643b3 Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Tue, 14 Mar 2023 11:34:16 +0100 Subject: [PATCH] Call osmo_fd_unregister() before closing and changing bfd->fd Change-Id: Iffc7d89166be1cf3cd1f8c3effe90f04d5c5a9c1 --- Transceiver52M/Transceiver.h | 2 +- Transceiver52M/device/ipc/IPCDevice.cpp | 2 +- Transceiver52M/device/ipc/ipc_sock.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Transceiver52M/Transceiver.h b/Transceiver52M/Transceiver.h index 18608845..babe4206 100644 --- a/Transceiver52M/Transceiver.h +++ b/Transceiver52M/Transceiver.h @@ -162,9 +162,9 @@ struct ctrl_sock_state { } ~ctrl_sock_state() { if(conn_bfd.fd >= 0) { + osmo_fd_unregister(&conn_bfd); close(conn_bfd.fd); conn_bfd.fd = -1; - osmo_fd_unregister(&conn_bfd); } } }; diff --git a/Transceiver52M/device/ipc/IPCDevice.cpp b/Transceiver52M/device/ipc/IPCDevice.cpp index 8bf48364..4b4ba371 100644 --- a/Transceiver52M/device/ipc/IPCDevice.cpp +++ b/Transceiver52M/device/ipc/IPCDevice.cpp @@ -537,9 +537,9 @@ void IPCDevice::ipc_sock_close(struct ipc_per_trx_sock_state *state) LOGP(DDEV, LOGL_NOTICE, "IPC socket has LOST connection\n"); + osmo_fd_unregister(bfd); close(bfd->fd); bfd->fd = -1; - osmo_fd_unregister(bfd); /* flush the queue */ while (!llist_empty(&state->upqueue)) { diff --git a/Transceiver52M/device/ipc/ipc_sock.c b/Transceiver52M/device/ipc/ipc_sock.c index ca8e1b0f..9e8ab82b 100644 --- a/Transceiver52M/device/ipc/ipc_sock.c +++ b/Transceiver52M/device/ipc/ipc_sock.c @@ -97,9 +97,9 @@ void ipc_sock_close(struct ipc_sock_state *state) ipc_exit_requested = 1; + osmo_fd_unregister(bfd); close(bfd->fd); bfd->fd = -1; - osmo_fd_unregister(bfd); /* re-enable the generation of ACCEPT for new connections */ osmo_fd_read_enable(&state->listen_bfd);