From 4d44fc56e782dd0598ddfb8fc963c46c3b1b5a20 Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Wed, 13 Oct 2010 17:56:22 +0200 Subject: nat: Make the queue routine work on any write_queue --- openbsc/include/openbsc/bsc_nat.h | 1 + openbsc/src/nat/bsc_nat_utils.c | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/openbsc/include/openbsc/bsc_nat.h b/openbsc/include/openbsc/bsc_nat.h index 7ac175dfc..682447a4b 100644 --- a/openbsc/include/openbsc/bsc_nat.h +++ b/openbsc/include/openbsc/bsc_nat.h @@ -297,6 +297,7 @@ uint32_t bsc_mgcp_extract_ci(const char *resp); int bsc_write(struct bsc_connection *bsc, struct msgb *msg, int id); +int bsc_do_write(struct write_queue *queue, struct msgb *msg, int id); /* IMSI allow/deny handling */ void bsc_parse_reg(void *ctx, regex_t *reg, char **imsi, int argc, const char **argv); diff --git a/openbsc/src/nat/bsc_nat_utils.c b/openbsc/src/nat/bsc_nat_utils.c index 4fda517c2..9c155ccaf 100644 --- a/openbsc/src/nat/bsc_nat_utils.c +++ b/openbsc/src/nat/bsc_nat_utils.c @@ -264,11 +264,16 @@ int bsc_write_mgcp(struct bsc_connection *bsc, const uint8_t *data, unsigned int } int bsc_write(struct bsc_connection *bsc, struct msgb *msg, int proto) +{ + return bsc_do_write(&bsc->write_queue, msg, proto); +} + +int bsc_do_write(struct write_queue *queue, struct msgb *msg, int proto) { /* prepend the header */ ipaccess_prepend_header(msg, proto); - if (write_queue_enqueue(&bsc->write_queue, msg) != 0) { + if (write_queue_enqueue(queue, msg) != 0) { LOGP(DINP, LOGL_ERROR, "Failed to enqueue the write.\n"); msgb_free(msg); return -1; -- cgit v1.2.3