aboutsummaryrefslogtreecommitdiffstats
path: root/src/sgsn/sgsn_cdr.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sgsn/sgsn_cdr.c')
-rw-r--r--src/sgsn/sgsn_cdr.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/sgsn/sgsn_cdr.c b/src/sgsn/sgsn_cdr.c
index a50b4dfdd..1536c135a 100644
--- a/src/sgsn/sgsn_cdr.c
+++ b/src/sgsn/sgsn_cdr.c
@@ -27,6 +27,9 @@
#include <osmocom/gsm/apn.h>
#include <osmocom/sgsn/vty.h>
+#include <osmocom/sgsn/gtp_ggsn.h>
+#include <osmocom/sgsn/pdpctx.h>
+#include <osmocom/sgsn/mmctx.h>
#include <gtp.h>
#include <pdp.h>
@@ -38,10 +41,6 @@
#include <stdio.h>
#include <inttypes.h>
-/* TODO...avoid going through a global */
-extern struct sgsn_instance *sgsn;
-extern struct ctrl_handle *g_ctrlh;
-
/**
* The CDR module will generate an entry like:
*
@@ -64,7 +63,7 @@ extern struct ctrl_handle *g_ctrlh;
static void send_cdr_trap(char *value)
{
- if (ctrl_cmd_send_trap(g_ctrlh, "cdr-v1", value) < 0)
+ if (ctrl_cmd_send_trap(sgsn->ctrlh, "cdr-v1", value) < 0)
LOGP(DGPRS, LOGL_ERROR, "Failed to create and send TRAP cdr-v1\n");
}
@@ -299,3 +298,8 @@ int sgsn_cdr_init(struct sgsn_instance *sgsn)
return 0;
}
+
+void sgsn_cdr_release(struct sgsn_instance *sgsn)
+{
+ osmo_signal_unregister_handler(SS_SGSN, handle_sgsn_sig, sgsn);
+}