vty: Add command to delete expired messages
Otherwise there's no way to remove expired messages, which keep filling the expired list forever. Change-Id: Ie7ed2d9ec8fc23cdc4cb007dce4150458085a6a3
This commit is contained in:
parent
93a588ba60
commit
5ae411980b
|
@ -99,6 +99,7 @@ struct cbc_message {
|
|||
};
|
||||
|
||||
struct cbc_message *cbc_message_alloc(void *ctx, const struct cbc_message *cbcmsg);
|
||||
void cbc_message_free(struct cbc_message *cbcmsg);
|
||||
int cbc_message_new(const struct cbc_message *cbcmsg, struct rest_it_op *op);
|
||||
void cbc_message_delete(struct cbc_message *cbcmsg, struct rest_it_op *op);
|
||||
struct cbc_message *cbc_message_by_id(uint16_t message_id);
|
||||
|
|
|
@ -138,6 +138,27 @@ DEFUN(show_messages_cbs, show_messages_cbs_cmd,
|
|||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
DEFUN(delete_message_expired, delete_message_expired_cmd,
|
||||
"delete message expired id <0-65535>",
|
||||
"Delete message from the local expired list\n"
|
||||
"Delete message from the local expired list\n"
|
||||
"Delete message from the local expired list\n"
|
||||
"Message ID\n" "Message ID\n")
|
||||
{
|
||||
struct cbc_message *cbc_msg;
|
||||
uint16_t msgid = atoi(argv[0]);
|
||||
cbc_msg = cbc_message_expired_by_id(msgid);
|
||||
if (!cbc_msg) {
|
||||
if (cbc_message_by_id(msgid))
|
||||
vty_out(vty, "Message ID %s has not yet expired!%s", argv[0], VTY_NEWLINE);
|
||||
else
|
||||
vty_out(vty, "Unknown expired Message ID %s%s", argv[0], VTY_NEWLINE);
|
||||
return CMD_WARNING;
|
||||
}
|
||||
cbc_message_free(cbc_msg);
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
static const char *cbc_cell_id2str(const struct cbc_cell_id *cid)
|
||||
{
|
||||
static char buf[256];
|
||||
|
@ -720,6 +741,7 @@ void cbc_vty_init(void)
|
|||
install_element_ve(&show_message_cbs_cmd);
|
||||
install_element_ve(&show_messages_cbs_cmd);
|
||||
install_element_ve(&show_messages_etws_cmd);
|
||||
install_element_ve(&delete_message_expired_cmd);
|
||||
|
||||
install_element(CONFIG_NODE, &cfg_cbc_cmd);
|
||||
install_node(&cbc_node, config_write_cbc);
|
||||
|
|
|
@ -384,6 +384,11 @@ struct cbc_message *cbc_message_alloc(void *ctx, const struct cbc_message *orig_
|
|||
return smscb;
|
||||
}
|
||||
|
||||
void cbc_message_free(struct cbc_message *cbcmsg)
|
||||
{
|
||||
osmo_fsm_inst_term(cbcmsg->fi, OSMO_FSM_TERM_REGULAR, NULL);
|
||||
}
|
||||
|
||||
__attribute__((constructor)) void smscb_fsm_constructor(void)
|
||||
{
|
||||
OSMO_ASSERT(osmo_fsm_register(&smscb_fsm) == 0);
|
||||
|
|
Loading…
Reference in New Issue