diff options
-rw-r--r-- | openbsc/src/libmsc/smpp_openbsc.c | 13 | ||||
-rw-r--r-- | openbsc/src/osmo-nitb/bsc_hack.c | 3 |
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); |