Change in osmo-cbc[master]: don't immediately delete all state about deleted messages

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

laforge gerrit-no-reply at lists.osmocom.org
Wed Jan 6 12:28:48 UTC 2021


laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/21995 )

Change subject: don't immediately delete all state about deleted messages
......................................................................

don't immediately delete all state about deleted messages

keep them around so we can still check statistics later on

Change-Id: I59f733dcbd5f9ea2617ceccf652c35fdd23a444b
---
M src/cbc_data.h
M src/cbc_main.c
M src/cbc_vty.c
M src/smscb_message_fsm.c
4 files changed, 19 insertions(+), 3 deletions(-)

Approvals:
  Jenkins Builder: Verified
  laforge: Looks good to me, approved



diff --git a/src/cbc_data.h b/src/cbc_data.h
index 9ad7c70..7900fbc 100644
--- a/src/cbc_data.h
+++ b/src/cbc_data.h
@@ -154,6 +154,7 @@
 
 	struct {
 		time_t created;		/* when was this message created? */
+		time_t expired;		/* when has this message expired? */
 	} time;
 };
 
@@ -167,6 +168,7 @@
 	} config;
 
 	struct llist_head messages;	/* cbc_message.list */
+	struct llist_head expired_messages;	/* cbc_message.list */
 	struct llist_head peers;	/* cbc_peer.list */
 	struct {
 		struct osmo_it_q *rest2main;
diff --git a/src/cbc_main.c b/src/cbc_main.c
index f664afb..77020db 100644
--- a/src/cbc_main.c
+++ b/src/cbc_main.c
@@ -179,6 +179,7 @@
 	g_cbc = talloc_zero(tall_cbc_ctx, struct cbc);
 	INIT_LLIST_HEAD(&g_cbc->peers);
 	INIT_LLIST_HEAD(&g_cbc->messages);
+	INIT_LLIST_HEAD(&g_cbc->expired_messages);
 
 	cbc_vty_init();
 
diff --git a/src/cbc_vty.c b/src/cbc_vty.c
index 8e2e022..323497c 100644
--- a/src/cbc_vty.c
+++ b/src/cbc_vty.c
@@ -101,6 +101,12 @@
 		dump_one_cbc_msg(vty, cbc_msg);
 	}
 
+	llist_for_each_entry(cbc_msg, &g_cbc->expired_messages, list) {
+		if (cbc_msg->msg.is_etws)
+			continue;
+		dump_one_cbc_msg(vty, cbc_msg);
+	}
+
 	return CMD_SUCCESS;
 }
 
@@ -238,14 +244,18 @@
 	vty_out(vty,
 "|-----|-----|--------------------|-------------|------|-|------------|%s", VTY_NEWLINE);
 
-
-
 	llist_for_each_entry(cbc_msg, &g_cbc->messages, list) {
 		if (!cbc_msg->msg.is_etws)
 			continue;
 		dump_one_etws_msg(vty, cbc_msg);
 	}
 
+	llist_for_each_entry(cbc_msg, &g_cbc->expired_messages, list) {
+		if (!cbc_msg->msg.is_etws)
+			continue;
+		dump_one_etws_msg(vty, cbc_msg);
+	}
+
 	return CMD_SUCCESS;
 }
 
diff --git a/src/smscb_message_fsm.c b/src/smscb_message_fsm.c
index 65a749b..0dd1f13 100644
--- a/src/smscb_message_fsm.c
+++ b/src/smscb_message_fsm.c
@@ -209,7 +209,10 @@
 		rest_it_op_complete(cbcmsg->it_op);
 		cbcmsg->it_op = NULL;
 	}
-	osmo_fsm_inst_term(fi, OSMO_FSM_TERM_REGULAR, NULL);
+	/* move from active to expired messages */
+	llist_del(&cbcmsg->list);
+	llist_add_tail(&cbcmsg->list, &g_cbc->expired_messages);
+	cbcmsg->time.expired = time(NULL);
 }
 
 static struct osmo_fsm_state smscb_fsm_states[] = {

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

Gerrit-Project: osmo-cbc
Gerrit-Branch: master
Gerrit-Change-Id: I59f733dcbd5f9ea2617ceccf652c35fdd23a444b
Gerrit-Change-Number: 21995
Gerrit-PatchSet: 2
Gerrit-Owner: laforge <laforge at osmocom.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge at osmocom.org>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210106/9004909e/attachment.htm>


More information about the gerrit-log mailing list