diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2019-02-19 02:36:35 +0100 |
---|---|---|
committer | Neels Hofmeyr <neels@hofmeyr.de> | 2019-04-12 02:15:25 +0200 |
commit | 7c5346cd7005ad469702a2f74572b79de738fbbb (patch) | |
tree | f03af83b8c1047516e442521b71bba33c9e17a32 /src/libmsc/msc_vty.c | |
parent | d553c085e7fbe4b41234e821896e6e6bbcc1e201 (diff) |
vlr_subscr: use osmo_use_count
Depends: Ife31e6798b4e728a23913179e346552a7dd338c0 (libosmocore)
Change-Id: Ib06d030e8464abe415ff597d462ed40eeddef475
Diffstat (limited to 'src/libmsc/msc_vty.c')
-rw-r--r-- | src/libmsc/msc_vty.c | 48 |
1 files changed, 26 insertions, 22 deletions
diff --git a/src/libmsc/msc_vty.c b/src/libmsc/msc_vty.c index a79f451fd..9bc8f3aae 100644 --- a/src/libmsc/msc_vty.c +++ b/src/libmsc/msc_vty.c @@ -68,6 +68,8 @@ struct cmd_node net_node = { 1, }; +#define VSUB_USE_VTY "VTY" + #define NETWORK_STR "Configure the GSM network\n" #define CODE_CMD_STR "Code commands\n" #define NAME_CMD_STR "Name Commands\n" @@ -671,6 +673,7 @@ static void subscr_dump_full_vty(struct vty *vty, struct vlr_subscr *vsub) struct gsm_trans *trans; int reqs; struct llist_head *entry; + char buf[128]; if (strlen(vsub->name)) vty_out(vty, " Name: '%s'%s", vsub->name, VTY_NEWLINE); @@ -755,7 +758,7 @@ static void subscr_dump_full_vty(struct vty *vty, struct vlr_subscr *vsub) else vty_out(vty, " SGs-MME: (none)%s", VTY_NEWLINE); - vty_out(vty, " Use count: %u%s", vsub->use_count, VTY_NEWLINE); + vty_out(vty, " Use: %s%s", osmo_use_count_name_buf(buf, sizeof(buf), &vsub->use_count), VTY_NEWLINE); /* Connection */ if (vsub->msc_conn_ref) { @@ -882,11 +885,11 @@ static struct vlr_subscr *get_vsub_by_argv(struct gsm_network *gsmnet, const char *id) { if (!strcmp(type, "extension") || !strcmp(type, "msisdn")) - return vlr_subscr_find_by_msisdn(gsmnet->vlr, id); + return vlr_subscr_find_by_msisdn(gsmnet->vlr, id, VSUB_USE_VTY); else if (!strcmp(type, "imsi") || !strcmp(type, "id")) - return vlr_subscr_find_by_imsi(gsmnet->vlr, id); + return vlr_subscr_find_by_imsi(gsmnet->vlr, id, VSUB_USE_VTY); else if (!strcmp(type, "tmsi")) - return vlr_subscr_find_by_tmsi(gsmnet->vlr, atoi(id)); + return vlr_subscr_find_by_tmsi(gsmnet->vlr, atoi(id), VSUB_USE_VTY); return NULL; } @@ -916,7 +919,7 @@ DEFUN(show_subscr, /* In the vty output to the user, exclude this local use count added by vlr_subscr_get() in get_vsub_by_argv(). * This works, because: for get_vsub_by_argv() to succeed, there *must* have been at least one use count before * this, and since this is not multi-threaded, this vlr_subscr_put() cannot possibly reach a count of 0. */ - vlr_subscr_put(vsub); + vlr_subscr_put(vsub, VSUB_USE_VTY); subscr_dump_full_vty(vty, vsub); @@ -955,7 +958,7 @@ DEFUN(subscriber_send_pending_sms, if (sms) gsm411_send_sms(gsmnet, sms->receiver, sms); - vlr_subscr_put(vsub); + vlr_subscr_put(vsub, VSUB_USE_VTY); return CMD_SUCCESS; } @@ -979,7 +982,7 @@ DEFUN(subscriber_sms_delete_all, db_sms_delete_by_msisdn(vsub->msisdn); - vlr_subscr_put(vsub); + vlr_subscr_put(vsub, VSUB_USE_VTY); return CMD_SUCCESS; } @@ -1011,7 +1014,7 @@ DEFUN(subscriber_send_sms, goto err; } sender_msisdn = sender->msisdn; - vlr_subscr_put(sender); + vlr_subscr_put(sender, VSUB_USE_VTY); } str = argv_concat(argv, argc, 4); @@ -1020,7 +1023,7 @@ DEFUN(subscriber_send_sms, err: if (vsub) - vlr_subscr_put(vsub); + vlr_subscr_put(vsub, VSUB_USE_VTY); return rc; } @@ -1053,7 +1056,7 @@ DEFUN(subscriber_silent_sms, goto err; } sender_msisdn = sender->msisdn; - vlr_subscr_put(sender); + vlr_subscr_put(sender, VSUB_USE_VTY); } str = argv_concat(argv, argc, 4); @@ -1062,7 +1065,7 @@ DEFUN(subscriber_silent_sms, err: if (vsub) - vlr_subscr_put(vsub); + vlr_subscr_put(vsub, VSUB_USE_VTY); return rc; } @@ -1161,7 +1164,7 @@ DEFUN(subscriber_silent_call_start, break; } - vlr_subscr_put(vsub); + vlr_subscr_put(vsub, VSUB_USE_VTY); return rc ? CMD_WARNING : CMD_SUCCESS; } @@ -1197,7 +1200,7 @@ DEFUN(subscriber_silent_call_stop, break; } - vlr_subscr_put(vsub); + vlr_subscr_put(vsub, VSUB_USE_VTY); return rc ? CMD_WARNING : CMD_SUCCESS; } @@ -1224,7 +1227,7 @@ DEFUN(subscriber_ussd_notify, level = atoi(argv[2]); text = argv_concat(argv, argc, 3); if (!text) { - vlr_subscr_put(vsub); + vlr_subscr_put(vsub, VSUB_USE_VTY); return CMD_WARNING; } @@ -1232,7 +1235,7 @@ DEFUN(subscriber_ussd_notify, if (!conn) { vty_out(vty, "%% An active connection is required for %s %s%s", argv[0], argv[1], VTY_NEWLINE); - vlr_subscr_put(vsub); + vlr_subscr_put(vsub, VSUB_USE_VTY); talloc_free(text); return CMD_WARNING; } @@ -1242,7 +1245,7 @@ DEFUN(subscriber_ussd_notify, * we use dummy GSM 04.07 transaction ID. */ msc_send_ussd_release_complete(conn, 0x00); - vlr_subscr_put(vsub); + vlr_subscr_put(vsub, VSUB_USE_VTY); talloc_free(text); return CMD_SUCCESS; } @@ -1267,7 +1270,7 @@ DEFUN(subscriber_paging, else vty_out(vty, "%% paging subscriber failed%s", VTY_NEWLINE); - vlr_subscr_put(vsub); + vlr_subscr_put(vsub, VSUB_USE_VTY); return req ? CMD_SUCCESS : CMD_WARNING; } @@ -1323,7 +1326,7 @@ DEFUN(subscriber_mstest_close, if (!conn) { vty_out(vty, "%% An active connection is required for %s %s%s", argv[0], argv[1], VTY_NEWLINE); - vlr_subscr_put(vsub); + vlr_subscr_put(vsub, VSUB_USE_VTY); return CMD_WARNING; } @@ -1351,7 +1354,7 @@ DEFUN(subscriber_mstest_open, if (!conn) { vty_out(vty, "%% An active connection is required for %s %s%s", argv[0], argv[1], VTY_NEWLINE); - vlr_subscr_put(vsub); + vlr_subscr_put(vsub, VSUB_USE_VTY); return CMD_WARNING; } @@ -1378,12 +1381,12 @@ DEFUN(ena_subscr_expire, vty_out(vty, "%% VLR released subscriber %s%s", vlr_subscr_name(vsub), VTY_NEWLINE); - if (vsub->use_count > 1) + if (osmo_use_count_total(&vsub->use_count) > 1) vty_out(vty, "%% Subscriber %s is still in use," " should be released soon%s", vlr_subscr_name(vsub), VTY_NEWLINE); - vlr_subscr_put(vsub); + vlr_subscr_put(vsub, VSUB_USE_VTY); return CMD_SUCCESS; } @@ -1575,7 +1578,7 @@ DEFUN(logging_fltr_imsi, if (!tgt) return CMD_WARNING; - vlr_subscr = vlr_subscr_find_by_imsi(gsmnet->vlr, imsi); + vlr_subscr = vlr_subscr_find_by_imsi(gsmnet->vlr, imsi, VSUB_USE_VTY); if (!vlr_subscr) { vty_out(vty, "%%no subscriber with IMSI(%s)%s", @@ -1584,6 +1587,7 @@ DEFUN(logging_fltr_imsi, } log_set_filter_vlr_subscr(tgt, vlr_subscr); + vlr_subscr_put(vlr_subscr, VSUB_USE_VTY); return CMD_SUCCESS; } |