X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=src%2Fhost%2Flayer23%2Fsrc%2Fmobile%2Fapp_mobile.c;h=164f3edb11371e4579691e0c7d7ecd718c425dc6;hb=cc10636f91dbd514ffe712325e10b7c1509678f3;hp=33fdde675c90468e84dcd51c8c351b96c1ef16a2;hpb=6f9af5945e855dab4810641dc72eff6a24c30a77;p=osmocom-bb.git diff --git a/src/host/layer23/src/mobile/app_mobile.c b/src/host/layer23/src/mobile/app_mobile.c index 33fdde6..164f3ed 100644 --- a/src/host/layer23/src/mobile/app_mobile.c +++ b/src/host/layer23/src/mobile/app_mobile.c @@ -42,6 +42,8 @@ #include #include +#include + extern void *l23_ctx; extern struct llist_head ms_list; extern int vty_reading; @@ -143,8 +145,7 @@ int mobile_exit(struct osmocom_ms *ms, int force) gsm_subscr_exit(ms); gsm48_cc_exit(ms); gsm_sim_exit(ms); - lapdm_exit(&ms->l2_entity.lapdm_acch); - lapdm_exit(&ms->l2_entity.lapdm_dcch); + lapdm_channel_exit(&ms->lapdm_channel); ms->shutdown = 2; /* being down */ vty_notify(ms, NULL); @@ -159,8 +160,11 @@ int mobile_init(struct osmocom_ms *ms) { int rc; - lapdm_init(&ms->l2_entity.lapdm_dcch, ms); - lapdm_init(&ms->l2_entity.lapdm_acch, ms); + gsm_settings_arfcn(ms); + + lapdm_channel_init(&ms->lapdm_channel, LAPDM_MODE_MS); + lapdm_channel_set_l1(&ms->lapdm_channel, l1ctl_ph_prim_cb, ms); + gsm_sim_init(ms); gsm48_cc_init(ms); gsm_subscr_init(ms); @@ -199,6 +203,13 @@ int mobile_init(struct osmocom_ms *ms) ms->shutdown = 0; ms->started = 0; + if (!strcmp(ms->settings.imei, "000000000000000")) { + printf("***\nWarning: Mobile '%s' has default IMEI: %s\n", + ms->name, ms->settings.imei); + printf("This could relate your identitiy to other users with " + "default IMEI.\n***\n"); + } + l1ctl_tx_reset_req(ms, L1CTL_RES_T_FULL); printf("Mobile '%s' initialized, please start phone now!\n", ms->name); return 0; @@ -329,9 +340,9 @@ int l23_app_work(int *_quit) /* global exit */ int l23_app_exit(void) { - unregister_signal_handler(SS_L1CTL, &gsm322_l1_signal, NULL); - unregister_signal_handler(SS_L1CTL, &mobile_signal_cb, NULL); - unregister_signal_handler(SS_GLOBAL, &global_signal_cb, NULL); + osmo_signal_unregister_handler(SS_L1CTL, &gsm322_l1_signal, NULL); + osmo_signal_unregister_handler(SS_L1CTL, &mobile_signal_cb, NULL); + osmo_signal_unregister_handler(SS_GLOBAL, &global_signal_cb, NULL); osmo_gps_close(); @@ -375,9 +386,9 @@ int l23_app_init(int (*mncc_recv)(struct osmocom_ms *ms, int, void *), return rc; printf("VTY available on port %u.\n", vty_port); - register_signal_handler(SS_GLOBAL, &global_signal_cb, NULL); - register_signal_handler(SS_L1CTL, &mobile_signal_cb, NULL); - register_signal_handler(SS_L1CTL, &gsm322_l1_signal, NULL); + osmo_signal_register_handler(SS_GLOBAL, &global_signal_cb, NULL); + osmo_signal_register_handler(SS_L1CTL, &mobile_signal_cb, NULL); + osmo_signal_register_handler(SS_L1CTL, &gsm322_l1_signal, NULL); if (llist_empty(&ms_list)) { struct osmocom_ms *ms;