ctrl: Introduce cmd SET subscriber.delete <imsi>
On success SET_REPLY contains the ID of the deleted subscriber. Related: SYS#5993 Change-Id: I24c6149d7c223a12549d712a7929666220c0210fchanges/95/28395/1
parent
b74769f1b4
commit
3ca9a1fd4f
35
src/ctrl.c
35
src/ctrl.c
|
@ -234,6 +234,40 @@ static int set_subscr_create(struct ctrl_cmd *cmd, void *data)
|
|||
return CTRL_CMD_REPLY;
|
||||
}
|
||||
|
||||
CTRL_CMD_DEFINE_WO_NOVRF(subscr_delete, "delete");
|
||||
static int set_subscr_delete(struct ctrl_cmd *cmd, void *data)
|
||||
{
|
||||
struct hlr_subscriber subscr;
|
||||
struct hlr *hlr = data;
|
||||
const char *imsi = cmd->value;
|
||||
int rc;
|
||||
|
||||
if (!osmo_imsi_str_valid(imsi)) {
|
||||
cmd->reply = "Invalid IMSI value.";
|
||||
return CTRL_CMD_ERROR;
|
||||
}
|
||||
|
||||
/* Retrieve data of newly created subscriber: */
|
||||
rc = db_subscr_get_by_imsi(hlr->dbc, imsi, &subscr);
|
||||
if (rc < 0) {
|
||||
cmd->reply = "Subscriber doesn't exist.";
|
||||
return CTRL_CMD_ERROR;
|
||||
}
|
||||
|
||||
/* Create the subscriber in the DB */
|
||||
rc = db_subscr_delete_by_id(g_hlr->dbc, subscr.id);
|
||||
if (rc) {
|
||||
cmd->reply = "Cannot delete subscriber.";
|
||||
return CTRL_CMD_ERROR;
|
||||
}
|
||||
|
||||
LOGP(DCTRL, LOGL_INFO, "Deleted subscriber IMSI='%s'\n",
|
||||
imsi);
|
||||
|
||||
cmd->reply = talloc_asprintf(cmd, "%" PRIu64, subscr.id);
|
||||
return CTRL_CMD_REPLY;
|
||||
}
|
||||
|
||||
CTRL_CMD_DEFINE_RO(subscr_info, "info");
|
||||
static int get_subscr_info(struct ctrl_cmd *cmd, void *data)
|
||||
{
|
||||
|
@ -469,6 +503,7 @@ static int hlr_ctrl_cmds_install()
|
|||
int rc = 0;
|
||||
|
||||
rc |= ctrl_cmd_install(CTRL_NODE_SUBSCR, &cmd_subscr_create);
|
||||
rc |= ctrl_cmd_install(CTRL_NODE_SUBSCR, &cmd_subscr_delete);
|
||||
|
||||
rc |= ctrl_cmd_install(CTRL_NODE_SUBSCR_BY, &cmd_subscr_info);
|
||||
rc |= ctrl_cmd_install(CTRL_NODE_SUBSCR_BY, &cmd_subscr_info_aud);
|
||||
|
|
|
@ -670,3 +670,6 @@ ms_purged_ps 0
|
|||
periodic_lu_timer 0
|
||||
periodic_rau_tau_timer 0
|
||||
lmsi 00000000
|
||||
|
||||
SET 112 subscriber.delete 901991234567891
|
||||
SET_REPLY 112 subscriber.delete 124
|
||||
|
|
|
@ -117,3 +117,9 @@ ERROR 50 Subscriber already exists.
|
|||
|
||||
SET 51 subscriber.by-imsi-1234567890123456.msisdn hellobadmsisdn
|
||||
ERROR 51 Value failed verification.
|
||||
|
||||
SET 52 subscriber.delete 100000
|
||||
ERROR 52 Subscriber doesn't exist.
|
||||
|
||||
SET 53 subscriber.delete zzz
|
||||
ERROR 53 Invalid IMSI value.
|
||||
|
|
Loading…
Reference in New Issue