pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-cbc/+/28788 )
Change subject: vty: Fix 'show message' not finding expired messages ......................................................................
vty: Fix 'show message' not finding expired messages
Change-Id: I23523876f1df167e8afd730b2164f133c2776085 --- M include/osmocom/cbc/cbc_message.h M src/cbc_vty.c M src/message_handling.c 3 files changed, 15 insertions(+), 1 deletion(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/88/28788/1
diff --git a/include/osmocom/cbc/cbc_message.h b/include/osmocom/cbc/cbc_message.h index daf992d..9d3b5b8 100644 --- a/include/osmocom/cbc/cbc_message.h +++ b/include/osmocom/cbc/cbc_message.h @@ -102,6 +102,7 @@ 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); +struct cbc_message *cbc_message_expired_by_id(uint16_t message_id); int peer_new_cbc_message(struct cbc_peer *peer, struct cbc_message *cbcmsg);
int cbc_message_del_peer(struct cbc_message *cbcmsg, struct cbc_peer *peer); diff --git a/src/cbc_vty.c b/src/cbc_vty.c index 50ec807..99363fb 100644 --- a/src/cbc_vty.c +++ b/src/cbc_vty.c @@ -205,8 +205,11 @@ const struct smscb_message *smscb; struct cbc_message_peer *msg_peer; char *timestr; + uint16_t msgid = atoi(argv[0]);
- cbc_msg = cbc_message_by_id(atoi(argv[0])); + cbc_msg = cbc_message_by_id(msgid); + if (!cbc_msg) + cbc_msg = cbc_message_expired_by_id(msgid); if (!cbc_msg) { vty_out(vty, "Unknown Messsage ID %s%s", argv[0], VTY_NEWLINE); return CMD_WARNING; diff --git a/src/message_handling.c b/src/message_handling.c index 73898e1..76739c3 100644 --- a/src/message_handling.c +++ b/src/message_handling.c @@ -235,3 +235,13 @@ } return NULL; } + +struct cbc_message *cbc_message_expired_by_id(uint16_t message_id) +{ + struct cbc_message *cbc_msg; + llist_for_each_entry(cbc_msg, &g_cbc->expired_messages, list) { + if (cbc_msg->msg.message_id == message_id) + return cbc_msg; + } + return NULL; +}