diff options
author | Daniel Willmann <daniel@totalueberwachung.de> | 2011-09-15 12:56:58 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2011-09-19 03:00:43 +0200 |
commit | a0d9331cb13be85fb89fdf6973c50f0514a66bb3 (patch) | |
tree | d75cf5dc85fda9bc921405c71b586d48e20176d3 /src/input/ipa.c | |
parent | dc4479f27d14f1ed5e17ccac401f8169813843d7 (diff) |
ipa: Add a callback to detect if the server_conn was closed
Diffstat (limited to 'src/input/ipa.c')
-rw-r--r-- | src/input/ipa.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/input/ipa.c b/src/input/ipa.c index c881b22..a887959 100644 --- a/src/input/ipa.c +++ b/src/input/ipa.c @@ -443,7 +443,7 @@ static int ipa_server_conn_cb(struct osmo_fd *ofd, unsigned int what) struct ipa_server_conn * ipa_server_conn_create(void *ctx, struct ipa_server_link *link, int fd, int (*cb)(struct ipa_server_conn *conn, struct msgb *msg), - void *data) + int (*closed_cb)(struct ipa_server_conn *conn), void *data) { struct ipa_server_conn *conn; @@ -459,6 +459,7 @@ ipa_server_conn_create(void *ctx, struct ipa_server_link *link, int fd, conn->ofd.cb = ipa_server_conn_cb; conn->ofd.when = BSC_FD_READ; conn->cb = cb; + conn->closed_cb = closed_cb; conn->data = data; INIT_LLIST_HEAD(&conn->tx_queue); @@ -474,6 +475,8 @@ void ipa_server_conn_destroy(struct ipa_server_conn *conn) { close(conn->ofd.fd); osmo_fd_unregister(&conn->ofd); + if (conn->closed_cb) + conn->closed_cb(conn); talloc_free(conn); } |