summaryrefslogtreecommitdiffstats
path: root/openbsc
diff options
context:
space:
mode:
Diffstat (limited to 'openbsc')
-rw-r--r--openbsc/src/libmsc/smpp_openbsc.c13
-rw-r--r--openbsc/src/osmo-nitb/bsc_hack.c3
2 files changed, 10 insertions, 6 deletions
diff --git a/openbsc/src/libmsc/smpp_openbsc.c b/openbsc/src/libmsc/smpp_openbsc.c
index e83fb75e9..585f93976 100644
--- a/openbsc/src/libmsc/smpp_openbsc.c
+++ b/openbsc/src/libmsc/smpp_openbsc.c
@@ -434,18 +434,16 @@ struct smsc *smsc_from_vty(struct vty *v)
}
/*! \brief Initialize the OpenBSC SMPP interface */
-int smpp_openbsc_init(struct gsm_network *net, uint16_t port)
+int smpp_openbsc_init(void *ctx, uint16_t port)
{
- struct smsc *smsc = talloc_zero(net, struct smsc);
+ struct smsc *smsc = talloc_zero(ctx, struct smsc);
int rc;
- smsc->priv = net;
-
rc = smpp_smsc_init(smsc, port);
if (rc < 0)
talloc_free(smsc);
- osmo_signal_register_handler(SS_SMS, smpp_sms_cb, net);
+ osmo_signal_register_handler(SS_SMS, smpp_sms_cb, smsc);
osmo_signal_register_handler(SS_SUBSCR, smpp_subscr_cb, smsc);
g_smsc = smsc;
@@ -454,3 +452,8 @@ int smpp_openbsc_init(struct gsm_network *net, uint16_t port)
return rc;
}
+
+void smpp_openbsc_set_net(struct gsm_network *net)
+{
+ g_smsc->priv = net;
+}
diff --git a/openbsc/src/osmo-nitb/bsc_hack.c b/openbsc/src/osmo-nitb/bsc_hack.c
index 93630ae6a..13fa1c587 100644
--- a/openbsc/src/osmo-nitb/bsc_hack.c
+++ b/openbsc/src/osmo-nitb/bsc_hack.c
@@ -263,7 +263,7 @@ int main(int argc, char **argv)
bsc_vty_init(&log_info);
#ifdef BUILD_SMPP
- if (smpp_openbsc_init(bsc_gsmnet, 0) < 0)
+ if (smpp_openbsc_init(tall_bsc_ctx, 0) < 0)
return -1;
#endif
@@ -279,6 +279,7 @@ int main(int argc, char **argv)
rc = bsc_bootstrap_network(int_mncc_recv, config_file);
if (rc < 0)
exit(1);
+ smpp_openbsc_set_net(bsc_gsmnet);
bsc_api_init(bsc_gsmnet, msc_bsc_api());
bsc_gsmnet->ctrl = controlif_setup(bsc_gsmnet, 4249);