diff options
author | Michael Mann <mmann78@netscape.net> | 2013-11-21 12:46:31 +0000 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2013-11-21 12:46:31 +0000 |
commit | 2e983ba89f9c9be17ca6ed89c83a9e32457626ce (patch) | |
tree | e4235525af31e56995ad123c39a2adea1f3133f3 /ui/gtk/main_menubar.c | |
parent | ad1d471b1b4383116e5572b5e98adc045d26aad1 (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.c | 89 |
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; |