aboutsummaryrefslogtreecommitdiffstats
path: root/src/cnetz/cnetz.c
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2017-05-25 18:43:54 +0200
committerAndreas Eversberg <jolly@eversberg.eu>2017-06-10 13:08:21 +0200
commit6adfcf74664a30021f12cc84e00a7cd471ee81a1 (patch)
tree5f9398057fe84a68ccd1d72f6d83a2aaa020bea4 /src/cnetz/cnetz.c
parentbb64c6b3ba80f8ef844bae59e270ca9e3b43d1fd (diff)
Status display
Alows to show status of current channels and users
Diffstat (limited to 'src/cnetz/cnetz.c')
-rw-r--r--src/cnetz/cnetz.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/cnetz/cnetz.c b/src/cnetz/cnetz.c
index 0921723..5563841 100644
--- a/src/cnetz/cnetz.c
+++ b/src/cnetz/cnetz.c
@@ -182,12 +182,29 @@ const char *cnetz_state_name(enum cnetz_state state)
return invalid;
}
+void cnetz_display_status(void)
+{
+ sender_t *sender;
+ cnetz_t *cnetz;
+ transaction_t *trans;
+
+ display_status_start();
+ for (sender = sender_head; sender; sender = sender->next) {
+ cnetz = (cnetz_t *) sender;
+ display_status_channel(cnetz->sender.kanal, chan_type_short_name(cnetz->chan_type), cnetz_state_name(cnetz->state));
+ for (trans = cnetz->trans_list; trans; trans = trans->next)
+ display_status_subscriber(transaction2rufnummer(trans), trans_short_state_name(trans->state));
+ }
+ display_status_end();
+}
+
static void cnetz_new_state(cnetz_t *cnetz, enum cnetz_state new_state)
{
if (cnetz->state == new_state)
return;
PDEBUG_CHAN(DCNETZ, DEBUG_INFO, "State change: %s -> %s\n", cnetz_state_name(cnetz->state), cnetz_state_name(new_state));
cnetz->state = new_state;
+ cnetz_display_status();
}
/* Convert ISDN cause to 'Ausloesegrund' of C-Netz mobile station */