aboutsummaryrefslogtreecommitdiffstats
path: root/src/input/ipaccess.c
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@gnumonks.org>2011-06-26 19:12:47 +0200
committerPablo Neira Ayuso <pablo@gnumonks.org>2011-06-26 19:23:24 +0200
commit93c620107e2edca4ac3306a995d512c7924453a2 (patch)
treecea43d57fae1998aa1150eb82677ec7f9508c72d /src/input/ipaccess.c
parentff66363716e5776fa7b9e8a4f3d1a1e6d171ee23 (diff)
ipaccess: fix write path for OML socket
We have to use e1i_ts->driver.ipaccess.fd file descriptor to fix the write path. Otherwise, openBSC never delivers replies to OML messages.
Diffstat (limited to 'src/input/ipaccess.c')
-rw-r--r--src/input/ipaccess.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/src/input/ipaccess.c b/src/input/ipaccess.c
index d1ada94..5d084d8 100644
--- a/src/input/ipaccess.c
+++ b/src/input/ipaccess.c
@@ -336,10 +336,6 @@ static int ipaccess_bsc_oml_cb(struct ipa_server_link *link, int fd)
struct e1inp_ts *e1i_ts;
struct osmo_fd *bfd;
- bfd = talloc_zero(tall_ipa_ctx, struct osmo_fd);
- if (!bfd)
- return -ENOMEM;
-
/* create virrtual E1 timeslots for signalling */
e1inp_ts_config_sign(&line->ts[1-1], line);
@@ -349,6 +345,7 @@ static int ipaccess_bsc_oml_cb(struct ipa_server_link *link, int fd)
e1i_ts = &line->ts[idx];
+ bfd = &e1i_ts->driver.ipaccess.fd;
bfd->fd = fd;
bfd->data = line;
bfd->priv_nr = E1INP_SIGN_OML;
@@ -358,7 +355,6 @@ static int ipaccess_bsc_oml_cb(struct ipa_server_link *link, int fd)
if (ret < 0) {
LOGP(DINP, LOGL_ERROR, "could not register FD\n");
close(bfd->fd);
- talloc_free(bfd);
return ret;
}