aboutsummaryrefslogtreecommitdiffstats
path: root/ui/gtk/main_menubar.c
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2013-11-21 12:46:31 +0000
committerMichael Mann <mmann78@netscape.net>2013-11-21 12:46:31 +0000
commit2e983ba89f9c9be17ca6ed89c83a9e32457626ce (patch)
treee4235525af31e56995ad123c39a2adea1f3133f3 /ui/gtk/main_menubar.c
parentad1d471b1b4383116e5572b5e98adc045d26aad1 (diff)
Revert what I thought was a simple "compile" change for r53473, but causes Wireshark to crash at startup.
svn path=/trunk/; revision=53474
Diffstat (limited to 'ui/gtk/main_menubar.c')
-rw-r--r--ui/gtk/main_menubar.c89
1 files changed, 20 insertions, 69 deletions
diff --git a/ui/gtk/main_menubar.c b/ui/gtk/main_menubar.c
index 343a3c1c8a..be4ba6740a 100644
--- a/ui/gtk/main_menubar.c
+++ b/ui/gtk/main_menubar.c
@@ -186,40 +186,11 @@ typedef enum {
CONV_CBA
} conv_values_e;
-static gboolean is_ip_packet(packet_info* pinfo)
-{
-
- return FALSE;
-}
-
static char *
build_conversation_filter(int action, gboolean show_dialog)
{
packet_info *pi = &cfile.edt->pi;
- wmem_list_frame_t * protos = wmem_list_head(pi->layers);
- int proto_id;
- const char* proto_name;
char *buf;
- gboolean is_ip = FALSE, is_tcp = FALSE, is_udp = FALSE;
-
- /* walk the list of a available protocols in the packet to
- figure out if any of them affect conversation filters */
- while (protos != NULL)
- {
- proto_id = GPOINTER_TO_INT(wmem_list_frame_data(protos));
- proto_name = proto_get_protocol_filter_name(proto_id);
-
- if ((!strcmp(proto_name, "ip")) ||
- (!strcmp(proto_name, "ipv6"))) {
- is_ip = TRUE;
- } else if (!strcmp(proto_name, "tcp")) {
- is_tcp = TRUE;
- } else if (!strcmp(proto_name, "udp")) {
- is_udp = TRUE;
- }
-
- protos = wmem_list_frame_next(protos);
- }
switch(action) {
case(CONV_CBA):
@@ -233,7 +204,7 @@ build_conversation_filter(int action, gboolean show_dialog)
}
if( pi->net_src.type == AT_IPv4 && pi->net_dst.type == AT_IPv4
- && is_tcp ) {
+ && pi->ipproto == IP_PROTO_TCP ) {
/* IPv4 */
switch(pi->profinet_type) {
case(1):
@@ -272,7 +243,7 @@ build_conversation_filter(int action, gboolean show_dialog)
}
break;
case(CONV_TCP):
- if (is_tcp == FALSE) {
+ if (pi->ipproto != IP_PROTO_TCP) {
if (show_dialog) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"Error filtering conversation. Please make\n"
@@ -298,7 +269,7 @@ build_conversation_filter(int action, gboolean show_dialog)
}
break;
case(CONV_UDP):
- if (is_udp == FALSE) {
+ if (pi->ipproto != IP_PROTO_UDP) {
if (show_dialog) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"Error filtering conversation. Please make\n"
@@ -324,7 +295,7 @@ build_conversation_filter(int action, gboolean show_dialog)
}
break;
case(CONV_IP):
- if (is_ip == FALSE) {
+ if ((pi->ethertype != ETHERTYPE_IP) && (pi->ethertype != ETHERTYPE_IPv6)) {
if (show_dialog) {
simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
"Error filtering conversation. Please make\n"
@@ -4926,16 +4897,11 @@ set_menus_for_captured_packets(gboolean have_captured_packets)
void
set_menus_for_selected_packet(capture_file *cf)
{
- packet_info *pi = &cfile.edt->pi;
- wmem_list_frame_t* protos = wmem_list_head(pi->layers);
GList *list_entry = dissector_filter_list;
guint i = 0;
gboolean properties = FALSE;
const char *abbrev = NULL;
char *prev_abbrev;
- int proto_id;
- const char* proto_name;
- gboolean is_ip = FALSE, is_tcp = FALSE, is_udp = FALSE;
/* Making the menu context-sensitive allows for easier selection of the
desired item and has the added benefit, with large captures, of
@@ -4959,24 +4925,9 @@ set_menus_for_selected_packet(capture_file *cf)
than one time reference frame or the current frame isn't a
time reference frame). (XXX - why check frame_selected?) */
- /* walk the list of a available protocols in the packet to
- figure out if any of them affect context sensitivity */
- while (protos != NULL)
- {
- proto_id = GPOINTER_TO_INT(wmem_list_frame_data(protos));
- proto_name = proto_get_protocol_filter_name(proto_id);
-
- if ((!strcmp(proto_name, "ip")) ||
- (!strcmp(proto_name, "ipv6"))) {
- is_ip = TRUE;
- } else if (!strcmp(proto_name, "tcp")) {
- is_tcp = TRUE;
- } else if (!strcmp(proto_name, "udp")) {
- is_udp = TRUE;
- }
+ gboolean tcp_packet_selected = FALSE;
- protos = wmem_list_frame_next(protos);
- }
+ tcp_packet_selected = frame_selected && (cf->edt->pi.ipproto == IP_PROTO_TCP);
if (cfile.edt && cfile.edt->tree) {
GPtrArray *ga;
@@ -5070,15 +5021,15 @@ set_menus_for_selected_packet(capture_file *cf)
set_menu_sensitivity(ui_manager_packet_list_menu, "/PacketListMenuPopup/ShowPacketinNewWindow",
frame_selected);
set_menu_sensitivity(ui_manager_packet_list_menu, "/PacketListMenuPopup/ManuallyResolveAddress",
- frame_selected ? is_ip : FALSE);
+ frame_selected ? ((cf->edt->pi.ethertype == ETHERTYPE_IP)||(cf->edt->pi.ethertype == ETHERTYPE_IPv6)) : FALSE);
set_menu_sensitivity(ui_manager_packet_list_menu, "/PacketListMenuPopup/SCTP",
frame_selected ? (cf->edt->pi.ipproto == IP_PROTO_SCTP) : FALSE);
set_menu_sensitivity(ui_manager_packet_list_menu, "/PacketListMenuPopup/FollowTCPStream",
- is_tcp);
+ tcp_packet_selected);
set_menu_sensitivity(ui_manager_tree_view_menu, "/TreeViewPopup/FollowTCPStream",
- is_tcp);
+ tcp_packet_selected);
set_menu_sensitivity(ui_manager_packet_list_menu, "/PacketListMenuPopup/FollowUDPStream",
- frame_selected ? is_udp : FALSE);
+ frame_selected ? (cf->edt->pi.ipproto == IP_PROTO_UDP) : FALSE);
set_menu_sensitivity(ui_manager_packet_list_menu, "/PacketListMenuPopup/FollowSSLStream",
frame_selected ? is_ssl : FALSE);
set_menu_sensitivity(ui_manager_tree_view_menu, "/TreeViewPopup/FollowSSLStream",
@@ -5088,13 +5039,13 @@ set_menus_for_selected_packet(capture_file *cf)
set_menu_sensitivity(ui_manager_packet_list_menu, "/PacketListMenuPopup/ConversationFilter/Ethernet",
frame_selected ? (cf->edt->pi.dl_src.type == AT_ETHER) : FALSE);
set_menu_sensitivity(ui_manager_packet_list_menu, "/PacketListMenuPopup/ConversationFilter/IP",
- frame_selected ? is_ip : FALSE);
+ frame_selected ? ((cf->edt->pi.ethertype == ETHERTYPE_IP)||(cf->edt->pi.ethertype == ETHERTYPE_IPv6)) : FALSE);
set_menu_sensitivity(ui_manager_packet_list_menu, "/PacketListMenuPopup/ConversationFilter/TCP",
- is_tcp);
+ tcp_packet_selected);
set_menu_sensitivity(ui_manager_packet_list_menu, "/PacketListMenuPopup/ConversationFilter/UDP",
- frame_selected ? is_udp : FALSE);
+ frame_selected ? (cf->edt->pi.ipproto == IP_PROTO_UDP) : FALSE);
set_menu_sensitivity(ui_manager_tree_view_menu, "/TreeViewPopup/FollowUDPStream",
- frame_selected ? is_udp : FALSE);
+ frame_selected ? (cf->edt->pi.ipproto == IP_PROTO_UDP) : FALSE);
set_menu_sensitivity(ui_manager_packet_list_menu, "/PacketListMenuPopup/ConversationFilter/PN-CBA",
frame_selected ? (cf->edt->pi.profinet_type != 0 && cf->edt->pi.profinet_type < 10) : FALSE);
set_menu_sensitivity(ui_manager_packet_list_menu, "/PacketListMenuPopup/ColorizeConversation",
@@ -5102,11 +5053,11 @@ set_menus_for_selected_packet(capture_file *cf)
set_menu_sensitivity(ui_manager_packet_list_menu, "/PacketListMenuPopup/ColorizeConversation/Ethernet",
frame_selected ? (cf->edt->pi.dl_src.type == AT_ETHER) : FALSE);
set_menu_sensitivity(ui_manager_packet_list_menu, "/PacketListMenuPopup/ColorizeConversation/IP",
- frame_selected ? is_ip : FALSE);
+ frame_selected ? ((cf->edt->pi.ethertype == ETHERTYPE_IP)||(cf->edt->pi.ethertype == ETHERTYPE_IPv6)) : FALSE);
set_menu_sensitivity(ui_manager_packet_list_menu, "/PacketListMenuPopup/ColorizeConversation/TCP",
- is_tcp);
+ tcp_packet_selected);
set_menu_sensitivity(ui_manager_packet_list_menu, "/PacketListMenuPopup/ColorizeConversation/UDP",
- frame_selected ? is_udp : FALSE);
+ frame_selected ? (cf->edt->pi.ipproto == IP_PROTO_UDP) : FALSE);
set_menu_sensitivity(ui_manager_packet_list_menu, "/PacketListMenuPopup/ColorizeConversation/PN-CBA",
frame_selected ? (cf->edt->pi.profinet_type != 0 && cf->edt->pi.profinet_type < 10) : FALSE);
set_menu_sensitivity(ui_manager_packet_list_menu, "/PacketListMenuPopup/DecodeAs",
@@ -5138,9 +5089,9 @@ set_menus_for_selected_packet(capture_file *cf)
frame_selected && (gbl_resolv_flags.mac_name || gbl_resolv_flags.network_name ||
gbl_resolv_flags.transport_name || gbl_resolv_flags.concurrent_dns));
set_menu_sensitivity(ui_manager_main_menubar, "/Menubar/AnalyzeMenu/FollowTCPStream",
- is_tcp);
+ tcp_packet_selected);
set_menu_sensitivity(ui_manager_main_menubar, "/Menubar/AnalyzeMenu/FollowUDPStream",
- frame_selected ? is_udp : FALSE);
+ frame_selected ? (cf->edt->pi.ipproto == IP_PROTO_UDP) : FALSE);
set_menu_sensitivity(ui_manager_main_menubar, "/Menubar/AnalyzeMenu/FollowSSLStream",
frame_selected ? is_ssl : FALSE);
set_menu_sensitivity(ui_manager_main_menubar, "/Menubar/AnalyzeMenu/DecodeAs",
@@ -5151,7 +5102,7 @@ set_menus_for_selected_packet(capture_file *cf)
set_menu_sensitivity(ui_manager_main_menubar, "/Menubar/ToolsMenu/FirewallACLRules",
frame_selected);
set_menu_sensitivity(ui_manager_main_menubar, "/Menubar/StatisticsMenu/TCPStreamGraphMenu",
- is_tcp);
+ tcp_packet_selected);
while (list_entry != NULL) {
dissector_filter_t *filter_entry;