func: static dissect_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) int offset = 0 ; struct tcpheader * tcph ; tcph = ep_alloc ( sizeof ( struct tcpheader ) ); tcph -> th_sport = tvb_get_ntohs ( tvb , offset ); tcph -> th_dport = tvb_get_ntohs ( tvb , offset + 2 ); if ( tree )  if ( tcp_summary_in_tree )  ti = proto_tree_add_protocol_format ( tree , proto_tcp , tvb , 0 , - 1 , "Transmission Control Protocol, Src Port: %s (%u), Dst Port: %s (%u)" , get_tcp_port ( tcph -> th_sport ) , tcph -> th_sport , get_tcp_port ( tcph -> th_dport ) , tcph -> th_dport ); ti = proto_tree_add_item ( tree , proto_tcp , tvb , 0 , - 1 , ENC_NA ); tcp_tree = proto_item_add_subtree ( ti , ett_tcp ); pinfo -> tcp_tree = tcp_tree; if ( pinfo -> layer_names != NULL && pinfo -> layer_names -> str != NULL )  if ( strstr ( pinfo -> layer_names -> str , "icmp:ip" ) != NULL )  