diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-03-05 19:42:09 +0100 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-03-08 14:32:39 +0100 |
commit | a49951fed75d681722df6d65fd318a697c87e4bd (patch) | |
tree | 8a803fa50cea734902909d6c55884df7a61bf73c | |
parent | 1e9086684f258a9b8eed8f5c8d7d4f6c98665636 (diff) |
write_queue: Make the bfd cb public so it can be used in a different context
* I'm doing a nonblocking connect and for this I need to select
on writable and the first thing I need to do is to check the
SOL_SOCKET SO_ERROR state. I realize this by setting a different
cb on the embedded bfd during setup and then go back to the real
implementation.
-rw-r--r-- | include/osmocore/write_queue.h | 1 | ||||
-rw-r--r-- | src/write_queue.c | 4 |
2 files changed, 3 insertions, 2 deletions
diff --git a/include/osmocore/write_queue.h b/include/osmocore/write_queue.h index af3d44be..c84000c1 100644 --- a/include/osmocore/write_queue.h +++ b/include/osmocore/write_queue.h @@ -39,5 +39,6 @@ struct write_queue { void write_queue_init(struct write_queue *queue, int max_length); int write_queue_enqueue(struct write_queue *queue, struct msgb *data); +int write_queue_bfd_cb(struct bsc_fd *fd, unsigned int what); #endif diff --git a/src/write_queue.c b/src/write_queue.c index 597fbe75..7d908b4c 100644 --- a/src/write_queue.c +++ b/src/write_queue.c @@ -23,7 +23,7 @@ #include <osmocore/write_queue.h> -static int queue_cb(struct bsc_fd *fd, unsigned int what) +int write_queue_bfd_cb(struct bsc_fd *fd, unsigned int what) { struct write_queue *queue; @@ -57,7 +57,7 @@ void write_queue_init(struct write_queue *queue, int max_length) queue->current_length = 0; queue->read_cb = NULL; queue->write_cb = NULL; - queue->bfd.cb = queue_cb; + queue->bfd.cb = write_queue_bfd_cb; INIT_LLIST_HEAD(&queue->msg_queue); } |