~jelmer/wireshark/daily-ppa

« back to all changes in this revision

Viewing changes to gtk/mgcp_stat.c

  • Committer: Bazaar Package Importer
  • Author(s): Balint Reczey
  • Date: 2010-11-20 18:41:41 UTC
  • mfrom: (1.1.28 upstream) (42.1.5 experimental)
  • Revision ID: james.westby@ubuntu.com-20101120184141-19e4sxq2kfsdnc9i
Tags: 1.4.2-1
* New upstream release 1.4.2
  - release notes:
    http://www.wireshark.org/docs/relnotes/wireshark-1.4.2.html
  - security fixes
     - Nephi Johnson of BreakingPoint discovered that the LDSS dissector
       could overflow a buffer. (No assigned CVE number.)
     - The ZigBee ZCL dissector could go into an infinite loop.
       (No assigned CVE number.)
* drop 05_fix-display-filter-update-when-changing-profile.patch
  patch since it has been integrated upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
 * mgcp-statistics for Wireshark
3
3
 * Copyright 2003 Lars Roland
4
4
 *
5
 
 * $Id: mgcp_stat.c 29099 2009-07-15 00:10:08Z gerald $
 
5
 * $Id: mgcp_stat.c 30389 2009-10-07 10:00:26Z etxrab $
6
6
 *
7
7
 * Wireshark - Network traffic analyzer
8
8
 * By Gerald Combs <gerald@wireshark.org>
63
63
        GtkWidget *vbox;
64
64
        char *filter;
65
65
        GtkWidget *scrolled_window;
66
 
        GtkCList *table;
 
66
        GtkTreeView *table;
67
67
        timestat_t rtd[NUM_TIMESTATS];
68
68
        guint32 open_req_num;
69
69
        guint32 disc_rsp_num;
190
190
{
191
191
        mgcpstat_t *ms=(mgcpstat_t *)pms;
192
192
        int i;
193
 
        char *str[7];
194
 
 
195
 
        for(i=0;i<7;i++) {
196
 
                str[i]=g_malloc(sizeof(char[256]));
197
 
        }
 
193
        char str[3][256];
 
194
        GtkListStore *store;
 
195
        GtkTreeIter iter;
198
196
 
199
197
        /* clear list before printing */
200
 
        gtk_clist_clear(ms->table);
 
198
        store = GTK_LIST_STORE(gtk_tree_view_get_model(ms->table));
 
199
        gtk_list_store_clear(store);
201
200
 
202
201
        for(i=0;i<NUM_TIMESTATS;i++) {
203
202
                /* nothing seen, nothing to do */
205
204
                        continue;
206
205
                }
207
206
 
208
 
                g_snprintf(str[0], sizeof(char[256]), "%s", val_to_str(i,mgcp_mesage_type,"Other"));
209
 
                g_snprintf(str[1], sizeof(char[256]), "%d", ms->rtd[i].num);
210
 
                g_snprintf(str[2], sizeof(char[256]), "%8.2f msec", nstime_to_msec(&(ms->rtd[i].min)));
211
 
                g_snprintf(str[3], sizeof(char[256]), "%8.2f msec", nstime_to_msec(&(ms->rtd[i].max)));
212
 
                g_snprintf(str[4], sizeof(char[256]), "%8.2f msec", get_average(&(ms->rtd[i].tot), ms->rtd[i].num));
213
 
                g_snprintf(str[5], sizeof(char[256]), "%6u", ms->rtd[i].min_num);
214
 
                g_snprintf(str[6], sizeof(char[256]), "%6u", ms->rtd[i].max_num);
215
 
                gtk_clist_append(ms->table, str);
216
 
        }
217
 
 
218
 
        gtk_widget_show(GTK_WIDGET(ms->table));
219
 
        for(i=0;i<7;i++) {
220
 
                g_free(str[i]);
 
207
                g_snprintf(str[0], sizeof(char[256]), "%8.2f msec", nstime_to_msec(&(ms->rtd[i].min)));
 
208
                g_snprintf(str[1], sizeof(char[256]), "%8.2f msec", nstime_to_msec(&(ms->rtd[i].max)));
 
209
                g_snprintf(str[2], sizeof(char[256]), "%8.2f msec", get_average(&(ms->rtd[i].tot), ms->rtd[i].num));
 
210
                gtk_list_store_append(store, &iter);
 
211
                gtk_list_store_set(store, &iter,
 
212
                        0, val_to_str(i, mgcp_mesage_type,"Other"),
 
213
                        1, ms->rtd[i].num,
 
214
                        2, str[0],
 
215
                        3, str[1],
 
216
                        4, str[2],
 
217
                        5, ms->rtd[i].min_num,
 
218
                        6, ms->rtd[i].max_num,
 
219
                        -1);
221
220
        }
222
221
}
223
222
 
237
236
        g_free(ms);
238
237
}
239
238
 
240
 
static const gchar *titles[]={
241
 
                        "Type",
242
 
                        "Messages",
243
 
                        "Min SRT",
244
 
                        "Max SRT",
245
 
                        "Avg SRT",
246
 
                        "Min in Frame",
247
 
                        "Max in Frame" };
 
239
static const stat_column titles[]={
 
240
        {G_TYPE_STRING, LEFT, "Type" },
 
241
        {G_TYPE_UINT, RIGHT,   "Messages" },
 
242
        {G_TYPE_STRING, RIGHT, "Min SRT" },
 
243
        {G_TYPE_STRING, RIGHT, "Max SRT" },
 
244
        {G_TYPE_STRING, RIGHT, "Avg SRT" },
 
245
        {G_TYPE_UINT, RIGHT,  "Min in Frame" },
 
246
        {G_TYPE_UINT, RIGHT,  "Max in Frame" } 
 
247
};
248
248
 
249
249
static void
250
250
gtk_mgcpstat_init(const char *optarg, void *userdata _U_)
251
251
{
252
252
        mgcpstat_t *ms;
253
 
        const char *filter=NULL;
254
253
        GString *error_string;
255
254
        GtkWidget *bt_close;
256
255
        GtkWidget *bbox;
257
256
 
 
257
        ms=g_malloc(sizeof(mgcpstat_t));
 
258
 
258
259
        if(strncmp(optarg,"mgcp,srt,",9) == 0){
259
 
                filter=optarg+9;
 
260
                ms->filter=g_strdup(optarg+9);
260
261
        } else {
261
 
                filter="";
 
262
                ms->filter=NULL;
262
263
        }
263
264
 
264
 
        ms=g_malloc(sizeof(mgcpstat_t));
265
 
        ms->filter=g_strdup(filter);
266
 
 
267
265
        mgcpstat_reset(ms);
268
266
 
269
267
        ms->win = dlg_window_new("MGCP SRT");  /* transient_for top_level */
273
271
 
274
272
        ms->vbox=gtk_vbox_new(FALSE, 3);
275
273
 
276
 
        init_main_stat_window(ms->win, ms->vbox, "MGCP Service Response Time (SRT) Statistics", filter);
 
274
        init_main_stat_window(ms->win, ms->vbox, "MGCP Service Response Time (SRT) Statistics", ms->filter);
277
275
 
278
276
        /* init a scrolled window*/
279
277
        ms->scrolled_window = scrolled_window_new(NULL, NULL);
280
278
 
281
279
        ms->table = create_stat_table(ms->scrolled_window, ms->vbox, 7, titles);
282
280
 
283
 
        error_string=register_tap_listener("mgcp", ms, filter, mgcpstat_reset, mgcpstat_packet, mgcpstat_draw);
 
281
        error_string=register_tap_listener("mgcp", ms, ms->filter, 0, mgcpstat_reset, mgcpstat_packet, mgcpstat_draw);
284
282
        if(error_string){
285
283
                simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "%s", error_string->str);
286
284
                g_string_free(error_string, TRUE);
302
300
        gtk_widget_show_all(ms->win);
303
301
        window_present(ms->win);
304
302
 
305
 
        cf_retap_packets(&cfile, FALSE);
 
303
        cf_retap_packets(&cfile);
306
304
        gdk_window_raise(ms->win->window);
307
305
}
308
306