diff --git a/include/osmocore/write_queue.h b/include/osmocore/write_queue.h index 64d4159a0..ef244c32a 100644 --- a/include/osmocore/write_queue.h +++ b/include/osmocore/write_queue.h @@ -35,6 +35,7 @@ struct write_queue { int (*read_cb)(struct bsc_fd *fd); int (*write_cb)(struct bsc_fd *fd, struct msgb *msg); + int (*except_cb)(struct bsc_fd *fd); }; void write_queue_init(struct write_queue *queue, int max_length); diff --git a/src/write_queue.c b/src/write_queue.c index a0ac2d6fd..618a8c0b3 100644 --- a/src/write_queue.c +++ b/src/write_queue.c @@ -32,6 +32,9 @@ int write_queue_bfd_cb(struct bsc_fd *fd, unsigned int what) if (what & BSC_FD_READ) queue->read_cb(fd); + if (what & BSC_FD_EXCEPT) + queue->except_cb(fd); + if (what & BSC_FD_WRITE) { struct msgb *msg;