} info_data_t;
-info_data_t info_data;
+static info_data_t info_data;
/* open the info */
cf_open_error_message(int err, gchar *err_info, gboolean for_writing,
int file_type)
{
- const char *errmsg;
- static char errmsg_errno[1024+1];
-
- if (err < 0) {
- /* Wiretap error. */
- switch (err) {
-
- case WTAP_ERR_NOT_REGULAR_FILE:
- errmsg = "The file \"%s\" is a \"special file\" or socket or other non-regular file.";
- break;
-
- case WTAP_ERR_FILE_UNKNOWN_FORMAT:
- /* Seen only when opening a capture file for reading. */
- errmsg = "The file \"%s\" isn't a capture file in a format TShark understands.";
- break;
-
- case WTAP_ERR_UNSUPPORTED:
- /* Seen only when opening a capture file for reading. */
- g_snprintf(errmsg_errno, sizeof(errmsg_errno),
- "The file \"%%s\" isn't a capture file in a format TShark understands.\n"
- "(%s)", err_info);
- g_free(err_info);
- errmsg = errmsg_errno;
- break;
-
- case WTAP_ERR_CANT_WRITE_TO_PIPE:
- /* Seen only when opening a capture file for writing. */
- g_snprintf(errmsg_errno, sizeof(errmsg_errno),
- "The file \"%%s\" is a pipe, and %s capture files can't be "
- "written to a pipe.", wtap_file_type_string(file_type));
- errmsg = errmsg_errno;
- break;
-
- case WTAP_ERR_UNSUPPORTED_FILE_TYPE:
- /* Seen only when opening a capture file for writing. */
- errmsg = "TShark doesn't support writing capture files in that format.";
- break;
-
- case WTAP_ERR_UNSUPPORTED_ENCAP:
- if (for_writing)
- errmsg = "TShark can't save this capture in that format.";
- else {
- g_snprintf(errmsg_errno, sizeof(errmsg_errno),
- "The file \"%%s\" is a capture for a network type that TShark doesn't support.\n"
- "(%s)", err_info);
- g_free(err_info);
- errmsg = errmsg_errno;
- }
- break;
-
- case WTAP_ERR_ENCAP_PER_PACKET_UNSUPPORTED:
- if (for_writing)
- errmsg = "TShark can't save this capture in that format.";
- else
- errmsg = "The file \"%s\" is a capture for a network type that TShark doesn't support.";
- break;
-
- case WTAP_ERR_BAD_RECORD:
- /* Seen only when opening a capture file for reading. */
- g_snprintf(errmsg_errno, sizeof(errmsg_errno),
- "The file \"%%s\" appears to be damaged or corrupt.\n"
- "(%s)", err_info);
- g_free(err_info);
- errmsg = errmsg_errno;
- break;
-
- case WTAP_ERR_CANT_OPEN:
- if (for_writing)
- errmsg = "The file \"%s\" could not be created for some unknown reason.";
- else
- errmsg = "The file \"%s\" could not be opened for some unknown reason.";
- break;
-
- case WTAP_ERR_SHORT_READ:
- errmsg = "The file \"%s\" appears to have been cut short"
- " in the middle of a packet or other data.";
- break;
-
- case WTAP_ERR_SHORT_WRITE:
- errmsg = "A full header couldn't be written to the file \"%s\".";
- break;
-
- default:
- g_snprintf(errmsg_errno, sizeof(errmsg_errno),
- "The file \"%%s\" could not be %s: %s.",
- for_writing ? "created" : "opened",
- wtap_strerror(err));
- errmsg = errmsg_errno;
- break;
- }
- } else
- errmsg = file_open_error_message(err, for_writing);
- return errmsg;
+ const char *errmsg;
+ static char errmsg_errno[1024+1];
+
+ if (err < 0) {
+ /* Wiretap error. */
+ switch (err) {
+
+ case WTAP_ERR_NOT_REGULAR_FILE:
+ errmsg = "The file \"%s\" is a \"special file\" or socket or other non-regular file.";
+ break;
+
+ case WTAP_ERR_FILE_UNKNOWN_FORMAT:
+ /* Seen only when opening a capture file for reading. */
+ errmsg = "The file \"%s\" isn't a capture file in a format TShark understands.";
+ break;
+
+ case WTAP_ERR_UNSUPPORTED:
+ /* Seen only when opening a capture file for reading. */
+ g_snprintf(errmsg_errno, sizeof(errmsg_errno),
+ "The file \"%%s\" isn't a capture file in a format TShark understands.\n"
+ "(%s)", err_info);
+ g_free(err_info);
+ errmsg = errmsg_errno;
+ break;
+
+ case WTAP_ERR_CANT_WRITE_TO_PIPE:
+ /* Seen only when opening a capture file for writing. */
+ g_snprintf(errmsg_errno, sizeof(errmsg_errno),
+ "The file \"%%s\" is a pipe, and %s capture files can't be "
+ "written to a pipe.", wtap_file_type_string(file_type));
+ errmsg = errmsg_errno;
+ break;
+
+ case WTAP_ERR_UNSUPPORTED_FILE_TYPE:
+ /* Seen only when opening a capture file for writing. */
+ errmsg = "TShark doesn't support writing capture files in that format.";
+ break;
+
+ case WTAP_ERR_UNSUPPORTED_ENCAP:
+ if (for_writing)
+ errmsg = "TShark can't save this capture in that format.";
+ else {
+ g_snprintf(errmsg_errno, sizeof(errmsg_errno),
+ "The file \"%%s\" is a capture for a network type that TShark doesn't support.\n"
+ "(%s)", err_info);
+ g_free(err_info);
+ errmsg = errmsg_errno;
+ }
+ break;
+
+ case WTAP_ERR_ENCAP_PER_PACKET_UNSUPPORTED:
+ if (for_writing)
+ errmsg = "TShark can't save this capture in that format.";
+ else
+ errmsg = "The file \"%s\" is a capture for a network type that TShark doesn't support.";
+ break;
+
+ case WTAP_ERR_BAD_RECORD:
+ /* Seen only when opening a capture file for reading. */
+ g_snprintf(errmsg_errno, sizeof(errmsg_errno),
+ "The file \"%%s\" appears to be damaged or corrupt.\n"
+ "(%s)", err_info);
+ g_free(err_info);
+ errmsg = errmsg_errno;
+ break;
+
+ case WTAP_ERR_CANT_OPEN:
+ if (for_writing)
+ errmsg = "The file \"%s\" could not be created for some unknown reason.";
+ else
+ errmsg = "The file \"%s\" could not be opened for some unknown reason.";
+ break;
+
+ case WTAP_ERR_SHORT_READ:
+ errmsg = "The file \"%s\" appears to have been cut short"
+ " in the middle of a packet or other data.";
+ break;
+
+ case WTAP_ERR_SHORT_WRITE:
+ errmsg = "A full header couldn't be written to the file \"%s\".";
+ break;
+
+ default:
+ g_snprintf(errmsg_errno, sizeof(errmsg_errno),
+ "The file \"%%s\" could not be %s: %s.",
+ for_writing ? "created" : "opened",
+ wtap_strerror(err));
+ errmsg = errmsg_errno;
+ break;
+ }
+ } else
+ errmsg = file_open_error_message(err, for_writing);
+ return errmsg;
}
/* new file arrived */
static void
capture_info_packet(packet_counts *counts, gint wtap_linktype, const guchar *pd, guint32 caplen, union wtap_pseudo_header *pseudo_header)
{
- counts->total++;
- switch (wtap_linktype) {
+ counts->total++;
+ switch (wtap_linktype) {
case WTAP_ENCAP_ETHERNET:
- capture_eth(pd, 0, caplen, counts);
- break;
+ capture_eth(pd, 0, caplen, counts);
+ break;
case WTAP_ENCAP_FDDI:
case WTAP_ENCAP_FDDI_BITSWAPPED:
- capture_fddi(pd, caplen, counts);
- break;
+ capture_fddi(pd, caplen, counts);
+ break;
case WTAP_ENCAP_PRISM_HEADER:
- capture_prism(pd, 0, caplen, counts);
- break;
+ capture_prism(pd, 0, caplen, counts);
+ break;
case WTAP_ENCAP_TOKEN_RING:
- capture_tr(pd, 0, caplen, counts);
- break;
+ capture_tr(pd, 0, caplen, counts);
+ break;
case WTAP_ENCAP_NULL:
- capture_null(pd, caplen, counts);
- break;
+ capture_null(pd, caplen, counts);
+ break;
case WTAP_ENCAP_PPP:
- capture_ppp_hdlc(pd, 0, caplen, counts);
- break;
+ capture_ppp_hdlc(pd, 0, caplen, counts);
+ break;
case WTAP_ENCAP_RAW_IP:
- capture_raw(pd, caplen, counts);
- break;
+ capture_raw(pd, caplen, counts);
+ break;
case WTAP_ENCAP_SLL:
- capture_sll(pd, caplen, counts);
- break;
+ capture_sll(pd, caplen, counts);
+ break;
case WTAP_ENCAP_LINUX_ATM_CLIP:
- capture_clip(pd, caplen, counts);
- break;
+ capture_clip(pd, caplen, counts);
+ break;
case WTAP_ENCAP_IEEE_802_11:
case WTAP_ENCAP_IEEE_802_11_WITH_RADIO:
- capture_ieee80211(pd, 0, caplen, counts);
- break;
+ capture_ieee80211(pd, 0, caplen, counts);
+ break;
case WTAP_ENCAP_IEEE_802_11_WLAN_RADIOTAP:
- capture_radiotap(pd, 0, caplen, counts);
- break;
+ capture_radiotap(pd, 0, caplen, counts);
+ break;
case WTAP_ENCAP_IEEE_802_11_WLAN_AVS:
- capture_wlancap(pd, 0, caplen, counts);
- break;
+ capture_wlancap(pd, 0, caplen, counts);
+ break;
case WTAP_ENCAP_CHDLC:
- capture_chdlc(pd, 0, caplen, counts);
- break;
+ capture_chdlc(pd, 0, caplen, counts);
+ break;
case WTAP_ENCAP_LOCALTALK:
- capture_llap(counts);
- break;
+ capture_llap(counts);
+ break;
case WTAP_ENCAP_ATM_PDUS:
- capture_atm(pseudo_header, pd, caplen, counts);
- break;
+ capture_atm(pseudo_header, pd, caplen, counts);
+ break;
case WTAP_ENCAP_IP_OVER_FC:
- capture_ipfc(pd, caplen, counts);
- break;
+ capture_ipfc(pd, caplen, counts);
+ break;
case WTAP_ENCAP_ARCNET:
- capture_arcnet(pd, caplen, counts, FALSE, TRUE);
- break;
+ capture_arcnet(pd, caplen, counts, FALSE, TRUE);
+ break;
case WTAP_ENCAP_ARCNET_LINUX:
- capture_arcnet(pd, caplen, counts, TRUE, FALSE);
- break;
+ capture_arcnet(pd, caplen, counts, TRUE, FALSE);
+ break;
case WTAP_ENCAP_APPLE_IP_OVER_IEEE1394:
- capture_ap1394(pd, 0, caplen, counts);
- break;
+ capture_ap1394(pd, 0, caplen, counts);
+ break;
case WTAP_ENCAP_FRELAY:
case WTAP_ENCAP_FRELAY_WITH_PHDR:
- capture_fr(pd, 0, caplen, counts);
- break;
+ capture_fr(pd, 0, caplen, counts);
+ break;
case WTAP_ENCAP_ENC:
- capture_enc(pd, caplen, counts);
- break;
+ capture_enc(pd, caplen, counts);
+ break;
case WTAP_ENCAP_PPI:
- capture_ppi(pd, caplen, counts);
- break;
+ capture_ppi(pd, caplen, counts);
+ break;
case WTAP_ENCAP_I2C:
- capture_i2c(pseudo_header, counts);
- break;
- /* XXX - some ATM drivers on FreeBSD might prepend a 4-byte ATM
- pseudo-header to DLT_ATM_RFC1483, with LLC header following;
- we might have to implement that at some point. */
- }
+ capture_i2c(pseudo_header, counts);
+ break;
+ /* XXX - some ATM drivers on FreeBSD might prepend a 4-byte ATM
+ pseudo-header to DLT_ATM_RFC1483, with LLC header following;
+ we might have to implement that at some point. */
+ }
}
-/*
+/*
* Copyright 2004, Irene Ruengeler <i.ruengeler [AT] fh-muenster.de>
* Copyright 2009, Varun Notibala <nbvarun [AT] gmail.com>
*
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-
+
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "gtk/main.h"
#include "gtk/sctp_stat.h"
-static GtkWidget *sctp_chunk_stat_dlg=NULL;
static GtkWidget *clist = NULL;
static GList *last_list = NULL;
static sctp_assoc_info_t* selected_stream = NULL; /* current selection */
#define FRAME_LIMIT 8
enum chunk_types {
- DATA = 0,
- INIT = 1,
- INIT_ACK = 2,
- SACK = 3,
- HEARTBEAT = 4,
- HEARTBEAT_ACK = 5,
- ABORT = 6,
- SHUTDOWN = 7,
- SHUTDOWN_ACK = 8,
- SCTP_ERROR = 9,
- COOKIE_ECHO = 10,
- COOKIE_ACK = 11,
- ECNE = 12,
- CWR = 13,
- SHUT_COMPLETE = 14,
- AUTH = 15,
- NR_SACK = 16,
- ASCONF_ACK = 0x80,
- PKTDROP = 0x81,
- FORWARD_TSN = 0xC0,
- ASCONF = 0xC1
+ DATA = 0,
+ INIT = 1,
+ INIT_ACK = 2,
+ SACK = 3,
+ HEARTBEAT = 4,
+ HEARTBEAT_ACK = 5,
+ ABORT = 6,
+ SHUTDOWN = 7,
+ SHUTDOWN_ACK = 8,
+ SCTP_ERROR = 9,
+ COOKIE_ECHO = 10,
+ COOKIE_ACK = 11,
+ ECNE = 12,
+ CWR = 13,
+ SHUT_COMPLETE = 14,
+ AUTH = 15,
+ NR_SACK = 16,
+ ASCONF_ACK = 0x80,
+ PKTDROP = 0x81,
+ FORWARD_TSN = 0xC0,
+ ASCONF = 0xC1
};
enum
{
/* Create a view */
list = gtk_tree_view_new_with_model (GTK_TREE_MODEL (list_store));
- list_view = GTK_TREE_VIEW(list);
- sortable = GTK_TREE_SORTABLE(list_store);
+ list_view = GTK_TREE_VIEW(list);
+ sortable = GTK_TREE_SORTABLE(list_store);
#if GTK_CHECK_VERSION(2,6,0)
- /* Speed up the list display */
- gtk_tree_view_set_fixed_height_mode(list_view, TRUE);
+ /* Speed up the list display */
+ gtk_tree_view_set_fixed_height_mode(list_view, TRUE);
#endif
/* Setup the sortable columns */
/* The view now holds a reference. We can get rid of our own reference */
g_object_unref (G_OBJECT (list_store));
- /*
+ /*
* Create the first column packet, associating the "text" attribute of the
- * cell_renderer to the first column of the model
+ * cell_renderer to the first column of the model
*/
/* 1:st column */
renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes ("IP Address", renderer,
- "text", IP_ADDR_COLUMN,
- NULL);
+ column = gtk_tree_view_column_new_with_attributes ("IP Address", renderer,
+ "text", IP_ADDR_COLUMN,
+ NULL);
- gtk_tree_view_column_set_sort_column_id(column, IP_ADDR_COLUMN);
+ gtk_tree_view_column_set_sort_column_id(column, IP_ADDR_COLUMN);
gtk_tree_view_column_set_resizable(column, TRUE);
gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);
gtk_tree_view_column_set_min_width(column, 135);
- /* Add the column to the view. */
+ /* Add the column to the view. */
gtk_tree_view_append_column (list_view, column);
/* 2:nd column... */
renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes ("DATA", renderer,
- "text", DATA_COLUMN,
- NULL);
+ column = gtk_tree_view_column_new_with_attributes ("DATA", renderer,
+ "text", DATA_COLUMN,
+ NULL);
gtk_tree_view_column_set_sort_column_id(column, DATA_COLUMN);
gtk_tree_view_column_set_resizable(column, TRUE);
gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);
/* 3:d column... */
renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes ("INIT", renderer,
- "text", INIT_COLUMN,
- NULL);
+ column = gtk_tree_view_column_new_with_attributes ("INIT", renderer,
+ "text", INIT_COLUMN,
+ NULL);
gtk_tree_view_column_set_sort_column_id(column, INIT_COLUMN);
gtk_tree_view_column_set_resizable(column, TRUE);
gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);
/* 4:th column... */
renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes ("INIT-ACK", renderer,
- "text", INIT_ACK_COLUMN,
- NULL);
+ column = gtk_tree_view_column_new_with_attributes ("INIT-ACK", renderer,
+ "text", INIT_ACK_COLUMN,
+ NULL);
gtk_tree_view_column_set_sort_column_id(column, INIT_ACK_COLUMN);
gtk_tree_view_column_set_resizable(column, TRUE);
gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);
/* 5:th column... */
renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes ("SACK", renderer,
- "text", SACK_COLUMN,
- NULL);
+ column = gtk_tree_view_column_new_with_attributes ("SACK", renderer,
+ "text", SACK_COLUMN,
+ NULL);
gtk_tree_view_column_set_sort_column_id(column, SACK_COLUMN);
gtk_tree_view_column_set_resizable(column, TRUE);
gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);
/* 6:th column... */
renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes ("HEARTBEAT", renderer,
- "text", HEARTBEAT_COLUMN,
- NULL);
+ column = gtk_tree_view_column_new_with_attributes ("HEARTBEAT", renderer,
+ "text", HEARTBEAT_COLUMN,
+ NULL);
gtk_tree_view_column_set_sort_column_id(column, HEARTBEAT_COLUMN);
gtk_tree_view_column_set_resizable(column, TRUE);
gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);
/* 7:th column... */
renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes ("HEARTBEAT-ACK", renderer,
- "text", HEARTBEAT_ACK_COLUMN,
- NULL);
+ column = gtk_tree_view_column_new_with_attributes ("HEARTBEAT-ACK", renderer,
+ "text", HEARTBEAT_ACK_COLUMN,
+ NULL);
gtk_tree_view_column_set_sort_column_id(column, HEARTBEAT_ACK_COLUMN);
gtk_tree_view_column_set_resizable(column, TRUE);
gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);
/* 8:th column... */
renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes ("ABORT", renderer,
- "text", ABORT_COLUMN,
- NULL);
+ column = gtk_tree_view_column_new_with_attributes ("ABORT", renderer,
+ "text", ABORT_COLUMN,
+ NULL);
gtk_tree_view_column_set_sort_column_id(column, ABORT_COLUMN);
gtk_tree_view_column_set_resizable(column, TRUE);
gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);
/* 9:th column... */
renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes ("SHUTDOWN", renderer,
- "text", SHUTDOWN_COLUMN,
- NULL);
+ column = gtk_tree_view_column_new_with_attributes ("SHUTDOWN", renderer,
+ "text", SHUTDOWN_COLUMN,
+ NULL);
gtk_tree_view_column_set_sort_column_id(column, SHUTDOWN_COLUMN);
gtk_tree_view_column_set_resizable(column, TRUE);
gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);
/* 10:th column... */
renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes ("SHUTDOWN-ACK", renderer,
- "text", SHUTDOWN_ACK_COLUMN,
- NULL);
+ column = gtk_tree_view_column_new_with_attributes ("SHUTDOWN-ACK", renderer,
+ "text", SHUTDOWN_ACK_COLUMN,
+ NULL);
gtk_tree_view_column_set_sort_column_id(column, SHUTDOWN_ACK_COLUMN);
gtk_tree_view_column_set_resizable(column, TRUE);
gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);
/* 11:th column... */
renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes ("ERROR", renderer,
- "text", ERROR_COLUMN,
- NULL);
+ column = gtk_tree_view_column_new_with_attributes ("ERROR", renderer,
+ "text", ERROR_COLUMN,
+ NULL);
gtk_tree_view_column_set_sort_column_id(column, ERROR_COLUMN);
gtk_tree_view_column_set_resizable(column, TRUE);
gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);
/* 12:th column... */
renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes ("COOKIE-ECHO", renderer,
- "text", COOKIE_ECHO_COLUMN,
- NULL);
+ column = gtk_tree_view_column_new_with_attributes ("COOKIE-ECHO", renderer,
+ "text", COOKIE_ECHO_COLUMN,
+ NULL);
gtk_tree_view_column_set_sort_column_id(column, COOKIE_ECHO_COLUMN);
gtk_tree_view_column_set_resizable(column, TRUE);
gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);
/* 13:th column... */
renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes ("COOKIE-ACK", renderer,
- "text", COOKIE_ACK_COLUMN,
- NULL);
+ column = gtk_tree_view_column_new_with_attributes ("COOKIE-ACK", renderer,
+ "text", COOKIE_ACK_COLUMN,
+ NULL);
gtk_tree_view_column_set_sort_column_id(column, COOKIE_ACK_COLUMN);
gtk_tree_view_column_set_resizable(column, TRUE);
gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);
/* 14:th column... */
renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes ("ECNE", renderer,
- "text", ECNE_COLUMN,
- NULL);
+ column = gtk_tree_view_column_new_with_attributes ("ECNE", renderer,
+ "text", ECNE_COLUMN,
+ NULL);
gtk_tree_view_column_set_sort_column_id(column, ECNE_COLUMN);
gtk_tree_view_column_set_resizable(column, TRUE);
gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);
gtk_tree_view_column_set_min_width(column, 70);
gtk_tree_view_append_column (list_view, column);
-
+
/* 15:th column... */
renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes ("CWR", renderer,
- "text", CWR_COLUMN,
- NULL);
+ column = gtk_tree_view_column_new_with_attributes ("CWR", renderer,
+ "text", CWR_COLUMN,
+ NULL);
gtk_tree_view_column_set_sort_column_id(column, CWR_COLUMN);
gtk_tree_view_column_set_resizable(column, TRUE);
gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);
gtk_tree_view_column_set_min_width(column, 70);
gtk_tree_view_append_column (list_view, column);
-
+
/* 16:th column... */
renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes ("SHUT-COMPLETE", renderer,
- "text", SHUT_COMPLETE_COLUMN,
- NULL);
+ column = gtk_tree_view_column_new_with_attributes ("SHUT-COMPLETE", renderer,
+ "text", SHUT_COMPLETE_COLUMN,
+ NULL);
gtk_tree_view_column_set_sort_column_id(column, SHUT_COMPLETE_COLUMN);
gtk_tree_view_column_set_resizable(column, TRUE);
gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);
gtk_tree_view_column_set_min_width(column, 150);
gtk_tree_view_append_column (list_view, column);
-
+
/* 17:th column... */
renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes ("AUTH", renderer,
- "text", AUTH_COLUMN,
- NULL);
+ column = gtk_tree_view_column_new_with_attributes ("AUTH", renderer,
+ "text", AUTH_COLUMN,
+ NULL);
gtk_tree_view_column_set_sort_column_id(column, AUTH_COLUMN);
gtk_tree_view_column_set_resizable(column, TRUE);
gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);
gtk_tree_view_column_set_min_width(column, 80);
gtk_tree_view_append_column (list_view, column);
-
+
/* 18:th column... */
renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes ("NR-SACK", renderer,
- "text", NR_SACK_COLUMN,
- NULL);
+ column = gtk_tree_view_column_new_with_attributes ("NR-SACK", renderer,
+ "text", NR_SACK_COLUMN,
+ NULL);
gtk_tree_view_column_set_sort_column_id(column, NR_SACK_COLUMN);
gtk_tree_view_column_set_resizable(column, TRUE);
gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);
gtk_tree_view_column_set_min_width(column, 100);
gtk_tree_view_append_column (list_view, column);
-
+
/* 19:th column... */
renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes ("ASCONF-ACK", renderer,
- "text", ASCONF_ACK_COLUMN,
- NULL);
+ column = gtk_tree_view_column_new_with_attributes ("ASCONF-ACK", renderer,
+ "text", ASCONF_ACK_COLUMN,
+ NULL);
gtk_tree_view_column_set_sort_column_id(column, ASCONF_ACK_COLUMN);
gtk_tree_view_column_set_resizable(column, TRUE);
gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);
gtk_tree_view_column_set_min_width(column, 120);
gtk_tree_view_append_column (list_view, column);
-
+
/* 20:th column... */
renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes ("PKTDROP", renderer,
- "text", PKTDROP_COLUMN,
- NULL);
+ column = gtk_tree_view_column_new_with_attributes ("PKTDROP", renderer,
+ "text", PKTDROP_COLUMN,
+ NULL);
gtk_tree_view_column_set_sort_column_id(column, PKTDROP_COLUMN);
gtk_tree_view_column_set_resizable(column, TRUE);
gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);
gtk_tree_view_column_set_min_width(column, 100);
gtk_tree_view_append_column (list_view, column);
-
+
/* 21:st column... */
renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes ("FORWARD-TSN", renderer,
- "text", FORWARD_TSN_COLUMN,
- NULL);
+ column = gtk_tree_view_column_new_with_attributes ("FORWARD-TSN", renderer,
+ "text", FORWARD_TSN_COLUMN,
+ NULL);
gtk_tree_view_column_set_sort_column_id(column, FORWARD_TSN_COLUMN);
gtk_tree_view_column_set_resizable(column, TRUE);
gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);
gtk_tree_view_column_set_min_width(column, 140);
gtk_tree_view_append_column (list_view, column);
-
+
/* 22:nd column... */
renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes ("ASCONF", renderer,
- "text", ASCONF_COLUMN,
- NULL);
+ column = gtk_tree_view_column_new_with_attributes ("ASCONF", renderer,
+ "text", ASCONF_COLUMN,
+ NULL);
gtk_tree_view_column_set_sort_column_id(column, ASCONF_COLUMN);
gtk_tree_view_column_set_resizable(column, TRUE);
gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);
/* 23:rd column... */
renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes ("Others", renderer,
- "text", OTHERS_COLUMN,
- NULL);
+ column = gtk_tree_view_column_new_with_attributes ("Others", renderer,
+ "text", OTHERS_COLUMN,
+ NULL);
gtk_tree_view_column_set_sort_column_id(column, OTHERS_COLUMN);
gtk_tree_view_column_set_resizable(column, TRUE);
gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);
gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(list_view), TRUE);
gtk_tree_view_set_headers_clickable(GTK_TREE_VIEW(list_view), TRUE);
- /* Setup the selection handler */
- selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(list));
- gtk_tree_selection_set_mode(selection, GTK_SELECTION_SINGLE);
+ /* Setup the selection handler */
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(list));
+ gtk_tree_selection_set_mode(selection, GTK_SELECTION_SINGLE);
- return list;
+ return list;
}
-static const char *chunk_name(int type)
+static const char *
+chunk_name(int type)
{
#define CASE(x) case x: s=#x; break
- const char *s = "unknown";
- switch (type)
- {
- CASE(DATA);
- CASE(INIT);
- CASE(INIT_ACK);
- CASE(SACK);
- CASE(HEARTBEAT);
- CASE(HEARTBEAT_ACK);
- CASE(ABORT);
- CASE(SHUTDOWN);
- CASE(SHUTDOWN_ACK);
- CASE(SCTP_ERROR);
- CASE(COOKIE_ECHO);
- CASE(COOKIE_ACK);
- CASE(ECNE);
- CASE(CWR);
- CASE(SHUT_COMPLETE);
- CASE(AUTH);
- CASE(NR_SACK);
- CASE(ASCONF_ACK);
- CASE(PKTDROP);
- CASE(FORWARD_TSN);
- CASE(ASCONF);
- }
- return s;
+ const char *s = "unknown";
+ switch (type)
+ {
+ CASE(DATA);
+ CASE(INIT);
+ CASE(INIT_ACK);
+ CASE(SACK);
+ CASE(HEARTBEAT);
+ CASE(HEARTBEAT_ACK);
+ CASE(ABORT);
+ CASE(SHUTDOWN);
+ CASE(SHUTDOWN_ACK);
+ CASE(SCTP_ERROR);
+ CASE(COOKIE_ECHO);
+ CASE(COOKIE_ACK);
+ CASE(ECNE);
+ CASE(CWR);
+ CASE(SHUT_COMPLETE);
+ CASE(AUTH);
+ CASE(NR_SACK);
+ CASE(ASCONF_ACK);
+ CASE(PKTDROP);
+ CASE(FORWARD_TSN);
+ CASE(ASCONF);
+ }
+ return s;
}
typedef struct column_arrows {
- GtkWidget *table;
- GtkWidget *ascend_pm;
- GtkWidget *descend_pm;
+ GtkWidget *table;
+ GtkWidget *ascend_pm;
+ GtkWidget *descend_pm;
} column_arrows;
static void
chunk_dlg_destroy(GtkObject *object _U_, gpointer user_data)
{
- struct sctp_udata *u_data=(struct sctp_udata*)user_data;
- decrease_childcount(u_data->parent);
- remove_child(u_data, u_data->parent);
- g_free(u_data->io);
- g_free(u_data);
+ struct sctp_udata *u_data=(struct sctp_udata*)user_data;
+ decrease_childcount(u_data->parent);
+ remove_child(u_data, u_data->parent);
+ g_free(u_data->io);
+ g_free(u_data);
}
static void
on_destroy(GtkObject *object _U_, gpointer user_data)
{
- struct sctp_udata *u_data=(struct sctp_udata*)user_data;
- decrease_childcount(u_data->parent);
- remove_child(u_data, u_data->parent);
- g_free(u_data->io);
- g_free(u_data);
+ struct sctp_udata *u_data=(struct sctp_udata*)user_data;
+ decrease_childcount(u_data->parent);
+ remove_child(u_data, u_data->parent);
+ g_free(u_data->io);
+ g_free(u_data);
}
-static void add_to_clist(sctp_addr_chunk* sac)
+static void
+add_to_clist(sctp_addr_chunk* sac)
{
GtkListStore *list_store = NULL;
GtkTreeIter iter;
void sctp_chunk_stat_dlg_update(struct sctp_udata* udata, unsigned int direction)
{
- GList *list=NULL;
- sctp_addr_chunk* sac;
-
- if (udata->io->window != NULL)
- {
- gtk_list_store_clear(GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(clist))));
- if (udata->assoc->addr_chunk_count!=NULL)
- {
- list = g_list_first(udata->assoc->addr_chunk_count);
-
- while (list)
- {
- sac = (sctp_addr_chunk*)(list->data);
- if (sac->direction==direction)
- {
- add_to_clist(sac);
- list = g_list_next(list);
- }
- else
- list = g_list_next(list);
- }
- }
- }
- last_list = list;
+ GList *list=NULL;
+ sctp_addr_chunk* sac;
+
+ if (udata->io->window != NULL)
+ {
+ gtk_list_store_clear(GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(clist))));
+ if (udata->assoc->addr_chunk_count!=NULL)
+ {
+ list = g_list_first(udata->assoc->addr_chunk_count);
+
+ while (list)
+ {
+ sac = (sctp_addr_chunk*)(list->data);
+ if (sac->direction==direction)
+ {
+ add_to_clist(sac);
+ list = g_list_next(list);
+ }
+ else
+ list = g_list_next(list);
+ }
+ }
+ }
+ last_list = list;
}
static void
sctp_chunk_stat_on_close (GtkButton *button _U_, gpointer user_data)
{
- struct sctp_udata *udata;
+ struct sctp_udata *udata;
- udata = (struct sctp_udata *)user_data;
- gtk_grab_remove(udata->io->window);
- gtk_widget_destroy(udata->io->window);
+ udata = (struct sctp_udata *)user_data;
+ gtk_grab_remove(udata->io->window);
+ gtk_widget_destroy(udata->io->window);
}
static void
on_close_dlg (GtkButton *button _U_, gpointer user_data)
{
- struct sctp_udata *udata;
+ struct sctp_udata *udata;
- udata = (struct sctp_udata *)user_data;
- gtk_grab_remove(udata->io->window);
- gtk_widget_destroy(udata->io->window);
+ udata = (struct sctp_udata *)user_data;
+ gtk_grab_remove(udata->io->window);
+ gtk_widget_destroy(udata->io->window);
}
-static void path_window_set_title(struct sctp_udata *u_data, unsigned int direction)
+static void
+path_window_set_title(struct sctp_udata *u_data, unsigned int direction)
{
- char *title;
- if(!u_data->io->window){
- return;
- }
- title = g_strdup_printf("SCTP Path Chunk Statistics for Endpoint %u: %s Port1 %u Port2 %u",direction,
- cf_get_display_name(&cfile), u_data->assoc->port1, u_data->assoc->port2);
- gtk_window_set_title(GTK_WINDOW(u_data->io->window), title);
- g_free(title);
+ char *title;
+ if(!u_data->io->window){
+ return;
+ }
+ title = g_strdup_printf("SCTP Path Chunk Statistics for Endpoint %u: %s Port1 %u Port2 %u",direction,
+ cf_get_display_name(&cfile), u_data->assoc->port1, u_data->assoc->port2);
+ gtk_window_set_title(GTK_WINDOW(u_data->io->window), title);
+ g_free(title);
}
static void
gtk_sctpstat_dlg(struct sctp_udata *u_data, unsigned int direction)
{
- GtkWidget *vbox1;
- GtkWidget *scrolledwindow1;
- GtkWidget *hbuttonbox2;
- GtkWidget *bt_close;
+ GtkWidget *vbox1;
+ GtkWidget *scrolledwindow1;
+ GtkWidget *hbuttonbox2;
+ GtkWidget *bt_close;
- sctp_graph_t* io=g_malloc(sizeof(sctp_graph_t));
- io->window=NULL;
- u_data->io=io;
- u_data->io->window= gtk_window_new (GTK_WINDOW_TOPLEVEL);
- gtk_window_set_default_size(GTK_WINDOW(u_data->io->window), 850, 200);
- gtk_window_set_position (GTK_WINDOW (u_data->io->window), GTK_WIN_POS_CENTER);
- path_window_set_title(u_data, direction);
- g_signal_connect(u_data->io->window, "destroy", G_CALLBACK(chunk_dlg_destroy), u_data);
+ sctp_graph_t* io=g_malloc(sizeof(sctp_graph_t));
+ io->window=NULL;
+ u_data->io=io;
+ u_data->io->window= gtk_window_new (GTK_WINDOW_TOPLEVEL);
+ gtk_window_set_default_size(GTK_WINDOW(u_data->io->window), 850, 200);
+ gtk_window_set_position (GTK_WINDOW (u_data->io->window), GTK_WIN_POS_CENTER);
+ path_window_set_title(u_data, direction);
+ g_signal_connect(u_data->io->window, "destroy", G_CALLBACK(chunk_dlg_destroy), u_data);
- /* Container for each row of widgets */
- vbox1 = gtk_vbox_new(FALSE, 2);
- gtk_container_set_border_width(GTK_CONTAINER(vbox1), 8);
- gtk_container_add(GTK_CONTAINER(u_data->io->window), vbox1);
- gtk_widget_show(vbox1);
+ /* Container for each row of widgets */
+ vbox1 = gtk_vbox_new(FALSE, 2);
+ gtk_container_set_border_width(GTK_CONTAINER(vbox1), 8);
+ gtk_container_add(GTK_CONTAINER(u_data->io->window), vbox1);
+ gtk_widget_show(vbox1);
- scrolledwindow1 = scrolled_window_new (NULL, NULL);
- gtk_widget_show (scrolledwindow1);
- gtk_box_pack_start (GTK_BOX (vbox1), scrolledwindow1, TRUE, TRUE, 0);
+ scrolledwindow1 = scrolled_window_new (NULL, NULL);
+ gtk_widget_show (scrolledwindow1);
+ gtk_box_pack_start (GTK_BOX (vbox1), scrolledwindow1, TRUE, TRUE, 0);
- clist = create_list();
- gtk_widget_show (clist);
- gtk_container_add (GTK_CONTAINER (scrolledwindow1), clist);
+ clist = create_list();
+ gtk_widget_show (clist);
+ gtk_container_add (GTK_CONTAINER (scrolledwindow1), clist);
- gtk_widget_show(u_data->io->window);
+ gtk_widget_show(u_data->io->window);
- hbuttonbox2 = gtk_hbutton_box_new();
- gtk_box_pack_start(GTK_BOX(vbox1), hbuttonbox2, FALSE, FALSE, 0);
- gtk_container_set_border_width(GTK_CONTAINER(hbuttonbox2), 10);
- gtk_button_box_set_layout(GTK_BUTTON_BOX (hbuttonbox2), GTK_BUTTONBOX_SPREAD);
- gtk_box_set_spacing(GTK_BOX (hbuttonbox2), 0);
- gtk_widget_show(hbuttonbox2);
+ hbuttonbox2 = gtk_hbutton_box_new();
+ gtk_box_pack_start(GTK_BOX(vbox1), hbuttonbox2, FALSE, FALSE, 0);
+ gtk_container_set_border_width(GTK_CONTAINER(hbuttonbox2), 10);
+ gtk_button_box_set_layout(GTK_BUTTON_BOX (hbuttonbox2), GTK_BUTTONBOX_SPREAD);
+ gtk_box_set_spacing(GTK_BOX (hbuttonbox2), 0);
+ gtk_widget_show(hbuttonbox2);
- bt_close = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
- gtk_container_add (GTK_CONTAINER (hbuttonbox2), bt_close);
- gtk_widget_show (bt_close);
+ bt_close = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
+ gtk_container_add (GTK_CONTAINER (hbuttonbox2), bt_close);
+ gtk_widget_show (bt_close);
- g_signal_connect(bt_close, "clicked", G_CALLBACK(sctp_chunk_stat_on_close), u_data);
+ g_signal_connect(bt_close, "clicked", G_CALLBACK(sctp_chunk_stat_on_close), u_data);
- cf_retap_packets(&cfile);
+ cf_retap_packets(&cfile);
}
-static void chunk_window_set_title(struct sctp_udata *u_data)
+static void
+chunk_window_set_title(struct sctp_udata *u_data)
{
- char *title;
- if(!u_data->io->window){
- return;
- }
- title = g_strdup_printf("SCTP Association Chunk Statistics: %s Port1 %u Port2 %u",
- cf_get_display_name(&cfile), u_data->assoc->port1, u_data->assoc->port2);
- gtk_window_set_title(GTK_WINDOW(u_data->io->window), title);
- g_free(title);
+ char *title;
+ if(!u_data->io->window){
+ return;
+ }
+ title = g_strdup_printf("SCTP Association Chunk Statistics: %s Port1 %u Port2 %u",
+ cf_get_display_name(&cfile), u_data->assoc->port1, u_data->assoc->port2);
+ gtk_window_set_title(GTK_WINDOW(u_data->io->window), title);
+ g_free(title);
}
-static void sctp_chunk_dlg(struct sctp_udata *u_data)
+static void
+sctp_chunk_dlg(struct sctp_udata *u_data)
{
- GtkWidget *main_vb, *table;
- GtkWidget *label, *h_button_box;
- GtkWidget *close_bt;
- gchar label_txt[50];
- int i, row;
-
- sctp_graph_t* io=g_malloc(sizeof(sctp_graph_t));
- io->window=NULL;
- u_data->io=io;
- u_data->io->window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- gtk_window_set_position (GTK_WINDOW (u_data->io->window), GTK_WIN_POS_CENTER);
- gtk_widget_set_size_request(u_data->io->window, 500, 650);
- g_signal_connect(u_data->io->window, "destroy", G_CALLBACK(on_destroy), u_data);
-
- /* Container for each row of widgets */
- main_vb = gtk_vbox_new(FALSE, 12);
- gtk_container_set_border_width(GTK_CONTAINER(main_vb), 12);
- gtk_container_add(GTK_CONTAINER(u_data->io->window), main_vb);
-
- /* table */
- table = gtk_table_new(1, 4, FALSE);
- gtk_table_set_col_spacings(GTK_TABLE(table), 6);
- gtk_table_set_row_spacings(GTK_TABLE(table), 3);
- gtk_container_add(GTK_CONTAINER(main_vb), table);
- row = 0;
-
- label = gtk_label_new("ChunkType");
- gtk_misc_set_alignment(GTK_MISC(label), 0.0f, 0.5f);
- gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, row, row+1);
- label = gtk_label_new("Association");
- gtk_misc_set_alignment(GTK_MISC(label), 0.0f, 0.5f);
- gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 2, row, row+1);
- label = gtk_label_new("Endpoint 1");
- gtk_misc_set_alignment(GTK_MISC(label), 0.0f, 0.5f);
- gtk_table_attach_defaults(GTK_TABLE(table), label, 2, 3, row, row+1);
- label = gtk_label_new("Endpoint 2");
- gtk_misc_set_alignment(GTK_MISC(label), 0.0f, 0.5f);
- gtk_table_attach_defaults(GTK_TABLE(table), label, 3, 4, row, row+1);
- row ++;
- label = gtk_label_new("");
- gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, row, row+1);
- label = gtk_label_new("");
- gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 2, row, row+1);
- label = gtk_label_new("");
- gtk_table_attach_defaults(GTK_TABLE(table), label, 2, 3, row, row+1);
- label = gtk_label_new("");
- gtk_table_attach_defaults(GTK_TABLE(table), label, 3, 4, row, row+1);
- row ++;
-
- for (i=0; i<NUM_CHUNKS; i++)
- {
- if (IS_SCTP_CHUNK_TYPE(i))
- {
- label = gtk_label_new(chunk_name(i));
- gtk_misc_set_alignment(GTK_MISC(label), 0.0f, 0.5f);
- gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, row, row+1);
- g_snprintf(label_txt, 10, "%u", selected_stream->chunk_count[i]);
- label = gtk_label_new(label_txt);
- gtk_misc_set_alignment(GTK_MISC(label), 0.0f, 0.5f);
- gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 2, row, row+1);
- g_snprintf(label_txt, 10, "%u", selected_stream->ep1_chunk_count[i]);
- label = gtk_label_new(label_txt);
- gtk_misc_set_alignment(GTK_MISC(label), 0.0f, 0.5f);
- gtk_table_attach_defaults(GTK_TABLE(table), label, 2, 3, row, row+1);
- g_snprintf(label_txt, 10, "%u", selected_stream->ep2_chunk_count[i]);
- label = gtk_label_new(label_txt);
- gtk_misc_set_alignment(GTK_MISC(label), 0.0f, 0.5f);
- gtk_table_attach_defaults(GTK_TABLE(table), label, 3, 4, row, row+1);
- row ++;
- }
- }
-
- label = gtk_label_new("Others");
- gtk_misc_set_alignment(GTK_MISC(label), 0.0f, 0.5f);
- gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, row, row+1);
- g_snprintf(label_txt, 10, "%u", selected_stream->chunk_count[OTHER_CHUNKS_INDEX]);
- label = gtk_label_new(label_txt);
- gtk_misc_set_alignment(GTK_MISC(label), 0.0f, 0.5f);
- gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 2, row, row+1);
- g_snprintf(label_txt, 10, "%u", selected_stream->ep1_chunk_count[OTHER_CHUNKS_INDEX]);
- label = gtk_label_new(label_txt);
- gtk_misc_set_alignment(GTK_MISC(label), 0.0f, 0.5f);
- gtk_table_attach_defaults(GTK_TABLE(table), label, 2, 3, row, row+1);
- g_snprintf(label_txt, 10, "%u", selected_stream->ep2_chunk_count[OTHER_CHUNKS_INDEX]);
- label = gtk_label_new(label_txt);
- gtk_misc_set_alignment(GTK_MISC(label), 0.0f, 0.5f);
- gtk_table_attach_defaults(GTK_TABLE(table), label, 3, 4, row, row+1);
-
- h_button_box=gtk_hbutton_box_new();
- gtk_box_pack_start(GTK_BOX(main_vb), h_button_box, FALSE, FALSE, 0);
- gtk_container_set_border_width(GTK_CONTAINER(h_button_box), 10);
- gtk_button_box_set_layout(GTK_BUTTON_BOX (h_button_box), GTK_BUTTONBOX_SPREAD);
- gtk_box_set_spacing(GTK_BOX (h_button_box), 0);
- gtk_widget_show(h_button_box);
-
- close_bt = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
- gtk_box_pack_start(GTK_BOX(h_button_box), close_bt, FALSE, FALSE, 0);
- gtk_widget_show(close_bt);
- g_signal_connect(close_bt, "clicked", G_CALLBACK(on_close_dlg), u_data);
-
- gtk_widget_show_all(u_data->io->window);
- chunk_window_set_title(u_data);
-}
+ GtkWidget *main_vb, *table;
+ GtkWidget *label, *h_button_box;
+ GtkWidget *close_bt;
+ gchar label_txt[50];
+ int i, row;
+
+ sctp_graph_t* io=g_malloc(sizeof(sctp_graph_t));
+ io->window=NULL;
+ u_data->io=io;
+ u_data->io->window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+ gtk_window_set_position (GTK_WINDOW (u_data->io->window), GTK_WIN_POS_CENTER);
+ gtk_widget_set_size_request(u_data->io->window, 500, 650);
+ g_signal_connect(u_data->io->window, "destroy", G_CALLBACK(on_destroy), u_data);
+
+ /* Container for each row of widgets */
+ main_vb = gtk_vbox_new(FALSE, 12);
+ gtk_container_set_border_width(GTK_CONTAINER(main_vb), 12);
+ gtk_container_add(GTK_CONTAINER(u_data->io->window), main_vb);
+
+ /* table */
+ table = gtk_table_new(1, 4, FALSE);
+ gtk_table_set_col_spacings(GTK_TABLE(table), 6);
+ gtk_table_set_row_spacings(GTK_TABLE(table), 3);
+ gtk_container_add(GTK_CONTAINER(main_vb), table);
+ row = 0;
+
+ label = gtk_label_new("ChunkType");
+ gtk_misc_set_alignment(GTK_MISC(label), 0.0f, 0.5f);
+ gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, row, row+1);
+ label = gtk_label_new("Association");
+ gtk_misc_set_alignment(GTK_MISC(label), 0.0f, 0.5f);
+ gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 2, row, row+1);
+ label = gtk_label_new("Endpoint 1");
+ gtk_misc_set_alignment(GTK_MISC(label), 0.0f, 0.5f);
+ gtk_table_attach_defaults(GTK_TABLE(table), label, 2, 3, row, row+1);
+ label = gtk_label_new("Endpoint 2");
+ gtk_misc_set_alignment(GTK_MISC(label), 0.0f, 0.5f);
+ gtk_table_attach_defaults(GTK_TABLE(table), label, 3, 4, row, row+1);
+ row ++;
+ label = gtk_label_new("");
+ gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, row, row+1);
+ label = gtk_label_new("");
+ gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 2, row, row+1);
+ label = gtk_label_new("");
+ gtk_table_attach_defaults(GTK_TABLE(table), label, 2, 3, row, row+1);
+ label = gtk_label_new("");
+ gtk_table_attach_defaults(GTK_TABLE(table), label, 3, 4, row, row+1);
+ row ++;
+
+ for (i=0; i<NUM_CHUNKS; i++)
+ {
+ if (IS_SCTP_CHUNK_TYPE(i))
+ {
+ label = gtk_label_new(chunk_name(i));
+ gtk_misc_set_alignment(GTK_MISC(label), 0.0f, 0.5f);
+ gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, row, row+1);
+ g_snprintf(label_txt, 10, "%u", selected_stream->chunk_count[i]);
+ label = gtk_label_new(label_txt);
+ gtk_misc_set_alignment(GTK_MISC(label), 0.0f, 0.5f);
+ gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 2, row, row+1);
+ g_snprintf(label_txt, 10, "%u", selected_stream->ep1_chunk_count[i]);
+ label = gtk_label_new(label_txt);
+ gtk_misc_set_alignment(GTK_MISC(label), 0.0f, 0.5f);
+ gtk_table_attach_defaults(GTK_TABLE(table), label, 2, 3, row, row+1);
+ g_snprintf(label_txt, 10, "%u", selected_stream->ep2_chunk_count[i]);
+ label = gtk_label_new(label_txt);
+ gtk_misc_set_alignment(GTK_MISC(label), 0.0f, 0.5f);
+ gtk_table_attach_defaults(GTK_TABLE(table), label, 3, 4, row, row+1);
+ row ++;
+ }
+ }
-void sctp_chunk_dlg_show(struct sctp_analyse* userdata)
-{
- gint i;
- struct sctp_udata *u_data;
-
- u_data=g_malloc(sizeof(struct sctp_udata));
- u_data->assoc=g_malloc(sizeof(sctp_assoc_info_t));
- u_data->assoc=userdata->assoc;
- u_data->io=NULL;
- u_data->parent = userdata;
-
- if (selected_stream==NULL)
- selected_stream=g_malloc(sizeof(sctp_assoc_info_t));
-
- selected_stream=u_data->assoc;
- for (i=0; i<NUM_CHUNKS; i++)
- {
- if (IS_SCTP_CHUNK_TYPE(i) || i == OTHER_CHUNKS_INDEX)
- selected_stream->chunk_count[i]=u_data->assoc->chunk_count[i];
- }
- set_child(u_data, u_data->parent);
- increase_childcount(u_data->parent);
- sctp_chunk_dlg(u_data);
+ label = gtk_label_new("Others");
+ gtk_misc_set_alignment(GTK_MISC(label), 0.0f, 0.5f);
+ gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, row, row+1);
+ g_snprintf(label_txt, 10, "%u", selected_stream->chunk_count[OTHER_CHUNKS_INDEX]);
+ label = gtk_label_new(label_txt);
+ gtk_misc_set_alignment(GTK_MISC(label), 0.0f, 0.5f);
+ gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 2, row, row+1);
+ g_snprintf(label_txt, 10, "%u", selected_stream->ep1_chunk_count[OTHER_CHUNKS_INDEX]);
+ label = gtk_label_new(label_txt);
+ gtk_misc_set_alignment(GTK_MISC(label), 0.0f, 0.5f);
+ gtk_table_attach_defaults(GTK_TABLE(table), label, 2, 3, row, row+1);
+ g_snprintf(label_txt, 10, "%u", selected_stream->ep2_chunk_count[OTHER_CHUNKS_INDEX]);
+ label = gtk_label_new(label_txt);
+ gtk_misc_set_alignment(GTK_MISC(label), 0.0f, 0.5f);
+ gtk_table_attach_defaults(GTK_TABLE(table), label, 3, 4, row, row+1);
+
+ h_button_box=gtk_hbutton_box_new();
+ gtk_box_pack_start(GTK_BOX(main_vb), h_button_box, FALSE, FALSE, 0);
+ gtk_container_set_border_width(GTK_CONTAINER(h_button_box), 10);
+ gtk_button_box_set_layout(GTK_BUTTON_BOX (h_button_box), GTK_BUTTONBOX_SPREAD);
+ gtk_box_set_spacing(GTK_BOX (h_button_box), 0);
+ gtk_widget_show(h_button_box);
+
+ close_bt = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
+ gtk_box_pack_start(GTK_BOX(h_button_box), close_bt, FALSE, FALSE, 0);
+ gtk_widget_show(close_bt);
+ g_signal_connect(close_bt, "clicked", G_CALLBACK(on_close_dlg), u_data);
+
+ gtk_widget_show_all(u_data->io->window);
+ chunk_window_set_title(u_data);
}
-void sctp_chunk_stat_dlg_show(unsigned int direction, struct sctp_analyse* userdata)
+void
+sctp_chunk_dlg_show(struct sctp_analyse* userdata)
{
- struct sctp_udata *u_data;
-
- u_data=g_malloc(sizeof(struct sctp_udata));
- u_data->assoc=g_malloc(sizeof(sctp_assoc_info_t));
- u_data->assoc=userdata->assoc;
- u_data->io=NULL;
- u_data->parent = userdata;
-
- if (selected_stream==NULL)
- selected_stream=g_malloc(sizeof(sctp_assoc_info_t));
- selected_stream=u_data->assoc;
- selected_stream->addr_chunk_count=u_data->assoc->addr_chunk_count;
-
- set_child(u_data, u_data->parent);
- increase_childcount(u_data->parent);
- gtk_sctpstat_dlg(u_data, direction);
- sctp_chunk_stat_dlg_update(u_data,direction);
+ gint i;
+ struct sctp_udata *u_data;
+
+ u_data=g_malloc(sizeof(struct sctp_udata));
+ u_data->assoc=g_malloc(sizeof(sctp_assoc_info_t));
+ u_data->assoc=userdata->assoc;
+ u_data->io=NULL;
+ u_data->parent = userdata;
+
+ if (selected_stream==NULL)
+ selected_stream=g_malloc(sizeof(sctp_assoc_info_t));
+
+ selected_stream=u_data->assoc;
+ for (i=0; i<NUM_CHUNKS; i++)
+ {
+ if (IS_SCTP_CHUNK_TYPE(i) || i == OTHER_CHUNKS_INDEX)
+ selected_stream->chunk_count[i]=u_data->assoc->chunk_count[i];
+ }
+ set_child(u_data, u_data->parent);
+ increase_childcount(u_data->parent);
+ sctp_chunk_dlg(u_data);
}
-GtkWidget* get_chunk_stat_dlg(void)
+void
+sctp_chunk_stat_dlg_show(unsigned int direction, struct sctp_analyse* userdata)
{
- return sctp_chunk_stat_dlg;
+ struct sctp_udata *u_data;
+
+ u_data=g_malloc(sizeof(struct sctp_udata));
+ u_data->assoc=g_malloc(sizeof(sctp_assoc_info_t));
+ u_data->assoc=userdata->assoc;
+ u_data->io=NULL;
+ u_data->parent = userdata;
+
+ if (selected_stream==NULL)
+ selected_stream=g_malloc(sizeof(sctp_assoc_info_t));
+ selected_stream=u_data->assoc;
+ selected_stream->addr_chunk_count=u_data->assoc->addr_chunk_count;
+
+ set_child(u_data, u_data->parent);
+ increase_childcount(u_data->parent);
+ gtk_sctpstat_dlg(u_data, direction);
+ sctp_chunk_stat_dlg_update(u_data,direction);
}