From 267252542bdde3c776642d344ac7f4cf78270c6f Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Fri, 8 Feb 2013 10:01:35 -0500 Subject: [PATCH] create a struct for stats collection --- daemon/call.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/daemon/call.c b/daemon/call.c index be20313a3..7c8ecb397 100644 --- a/daemon/call.c +++ b/daemon/call.c @@ -80,6 +80,11 @@ struct callmaster { struct callmaster_config conf; }; +struct call_stats { + time_t newest; + struct stats totals[4]; /* rtp in, rtcp in, rtp out, rtcp out */ +}; + static char *rtp_codecs[] = { [0] = "G711u", [1] = "1016", @@ -1950,12 +1955,12 @@ str *call_delete_udp(char **out, struct callmaster *m) { } #define SSUM(x) \ - totals[0].x += p->rtps[0].stats.x; \ - totals[1].x += p->rtps[1].stats.x; \ - totals[2].x += px->rtps[0].stats.x; \ - totals[3].x += px->rtps[1].stats.x + stats->totals[0].x += p->rtps[0].stats.x; \ + stats->totals[1].x += p->rtps[1].stats.x; \ + stats->totals[2].x += px->rtps[0].stats.x; \ + stats->totals[3].x += px->rtps[1].stats.x /* call must be locked */ -static void stats_query(struct call *call, str *fromtag, str *totag, struct stats *totals, +static void stats_query(struct call *call, str *fromtag, str *totag, struct call_stats *stats, void (*cb)(struct peer *, struct peer *, void *), void *arg) { GList *l; @@ -1963,10 +1968,7 @@ static void stats_query(struct call *call, str *fromtag, str *totag, struct stat int i; struct peer *p, *px; - ZERO(totals[0]); /* rtp in */ - ZERO(totals[1]); /* rtcp in */ - ZERO(totals[2]); /* rtp out */ - ZERO(totals[3]); /* rtcp out */ + ZERO(*stats); for (l = call->callstreams->head; l; l = l->next) { cs = l->data; @@ -2455,7 +2457,7 @@ const char *call_query_ng(bencode_item_t *input, struct callmaster *m, bencode_i str callid, fromtag, totag; struct call *call; bencode_item_t *streams, *dict; - struct stats totals[4]; + struct call_stats stats; if (!bencode_dictionary_get_str(input, "call-id", &callid)) return "No call-id in message"; @@ -2469,13 +2471,13 @@ const char *call_query_ng(bencode_item_t *input, struct callmaster *m, bencode_i bencode_dictionary_add_integer(output, "created", call->created); streams = bencode_dictionary_add_list(output, "streams"); - stats_query(call, &fromtag, &totag, totals, ng_stats_cb, streams); + stats_query(call, &fromtag, &totag, &stats, ng_stats_cb, streams); mutex_unlock(&call->lock); dict = bencode_dictionary_add_dictionary(output, "totals"); - bencode_dictionary_add(dict, "input", rtp_rtcp_stats(output->buffer, &totals[0], &totals[1])); - bencode_dictionary_add(dict, "output", rtp_rtcp_stats(output->buffer, &totals[2], &totals[3])); + bencode_dictionary_add(dict, "input", rtp_rtcp_stats(output->buffer, &stats.totals[0], &stats.totals[1])); + bencode_dictionary_add(dict, "output", rtp_rtcp_stats(output->buffer, &stats.totals[2], &stats.totals[3])); return NULL; }