aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Mathieson <martin.r.mathieson@googlemail.com>2017-12-10 23:06:40 +0000
committerAnders Broman <a.broman58@gmail.com>2017-12-11 04:25:12 +0000
commitfaa4a6a5f12b507e12232ceefb9cebdaf6b7ee24 (patch)
treeaece16bf72ff3da8364847f32d6d186d3b9b3660
parent5b4894b7959f44e077f36194c490cbf402e1e659 (diff)
SIP statistics: fix problems with invalid items
Change-Id: Ide21489cad66e4bebaafe5ef813a000db2956a2e Reviewed-on: https://code.wireshark.org/review/24759 Petri-Dish: Martin Mathieson <martin.r.mathieson@googlemail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
-rw-r--r--epan/dissectors/packet-sip.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/epan/dissectors/packet-sip.c b/epan/dissectors/packet-sip.c
index 926b21fd40..d27cd6543c 100644
--- a/epan/dissectors/packet-sip.c
+++ b/epan/dissectors/packet-sip.c
@@ -5528,9 +5528,11 @@ static void sip_stat_init(stat_tap_table_ui* new_stat, new_stat_tap_gui_init_cb
stat_tap_table_item_type items[sizeof(sip_stat_fields)/sizeof(stat_tap_table_item)];
guint i;
- new_stat_tap_add_table(new_stat, req_table);
new_stat_tap_add_table(new_stat, resp_table);
+ new_stat_tap_add_table(new_stat, req_table);
+
+ // These values are fixed for all entries.
items[REQ_RESP_METHOD_COLUMN].type = TABLE_ITEM_STRING;
items[COUNT_COLUMN].type = TABLE_ITEM_UINT;
items[COUNT_COLUMN].value.uint_value = 0;
@@ -5543,17 +5545,19 @@ static void sip_stat_init(stat_tap_table_ui* new_stat, new_stat_tap_gui_init_cb
items[MAX_SETUP_COLUMN].type = TABLE_ITEM_FLOAT;
items[MAX_SETUP_COLUMN].value.float_value = 0.0f;
- for (i = 0; i < array_length(sip_methods); i++) {
+ // For req_table, first column value is method.
+ for (i = 1; i < array_length(sip_methods); i++) {
items[REQ_RESP_METHOD_COLUMN].value.string_value = g_strdup(sip_methods[i]);
- new_stat_tap_init_table_row(req_table, i, num_fields, items);
+ new_stat_tap_init_table_row(req_table, i-1, num_fields, items);
}
- for (i = 0; response_code_vals[i].strptr; i++) {
+ // For responses entries, first column gets code and description.
+ for (i = 1; response_code_vals[i].strptr; i++) {
unsigned response_code = response_code_vals[i].value;
items[REQ_RESP_METHOD_COLUMN].value.string_value =
g_strdup_printf("%u %s", response_code, response_code_vals[i].strptr);
items[REQ_RESP_METHOD_COLUMN].user_data.uint_value = response_code;
- new_stat_tap_init_table_row(resp_table, i, num_fields, items);
+ new_stat_tap_init_table_row(resp_table, i-1, num_fields, items);
}
}