pespin has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/osmo-cbc/+/28786 )


Change subject: vty: Add command to delete expired messages
......................................................................

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
---
M include/osmocom/cbc/cbc_message.h
M src/cbc_vty.c
M src/smscb_message_fsm.c
3 files changed, 28 insertions(+), 0 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/86/28786/1

diff --git a/include/osmocom/cbc/cbc_message.h 
b/include/osmocom/cbc/cbc_message.h
index daf992d..405123f 100644
--- a/include/osmocom/cbc/cbc_message.h
+++ b/include/osmocom/cbc/cbc_message.h
@@ -99,6 +99,7 @@
 };

 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);
diff --git a/src/cbc_vty.c b/src/cbc_vty.c
index 2b21c53..188d793 100644
--- a/src/cbc_vty.c
+++ b/src/cbc_vty.c
@@ -151,6 +151,27 @@
        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;
+       cbc_msg = cbc_message_by_id(atoi(argv[0]));
+       if (!cbc_msg) {
+               vty_out(vty, "Unknown Messsage ID %s%s", argv[0], VTY_NEWLINE);
+               return CMD_WARNING;
+       }
+       if (cbc_msg->time.expired == 0) {
+               vty_out(vty, "Messsage ID %s has not yet expired!%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];
@@ -716,6 +737,7 @@
        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);
diff --git a/src/smscb_message_fsm.c b/src/smscb_message_fsm.c
index 0796587..ba17910 100644
--- a/src/smscb_message_fsm.c
+++ b/src/smscb_message_fsm.c
@@ -384,6 +384,11 @@
        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);

--
To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/28786
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-cbc
Gerrit-Branch: master
Gerrit-Change-Id: Ie7ed2d9ec8fc23cdc4cb007dce4150458085a6a3
Gerrit-Change-Number: 28786
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <[email protected]>
Gerrit-MessageType: newchange

Reply via email to