aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
Diffstat (limited to 'epan')
-rw-r--r--epan/dissectors/file-btsnoop.c2
-rw-r--r--epan/dissectors/file-elf.c2
-rw-r--r--epan/dissectors/file-gif.c4
-rw-r--r--epan/dissectors/file-jpeg.c4
-rw-r--r--epan/dissectors/file-png.c4
-rw-r--r--epan/dissectors/packet-3com-njack.c4
-rw-r--r--epan/dissectors/packet-6lowpan.c2
-rw-r--r--epan/dissectors/packet-acn.c2
-rw-r--r--epan/dissectors/packet-adwin-config.c4
-rw-r--r--epan/dissectors/packet-aeron.c2
-rw-r--r--epan/dissectors/packet-applemidi.c3
-rw-r--r--epan/dissectors/packet-ar_drone.c2
-rw-r--r--epan/dissectors/packet-artnet.c2
-rw-r--r--epan/dissectors/packet-at.c4
-rw-r--r--epan/dissectors/packet-atn-cm.c2
-rw-r--r--epan/dissectors/packet-atn-cpdlc.c2
-rw-r--r--epan/dissectors/packet-atn-ulcs.c2
-rw-r--r--epan/dissectors/packet-bfcp.c4
-rw-r--r--epan/dissectors/packet-bitcoin.c2
-rw-r--r--epan/dissectors/packet-bittorrent.c2
-rw-r--r--epan/dissectors/packet-bssap.c4
-rw-r--r--epan/dissectors/packet-bt-dht.c2
-rw-r--r--epan/dissectors/packet-bt-utp.c2
-rw-r--r--epan/dissectors/packet-carp.c2
-rw-r--r--epan/dissectors/packet-cattp.c2
-rw-r--r--epan/dissectors/packet-ceph.c2
-rw-r--r--epan/dissectors/packet-cigi.c2
-rw-r--r--epan/dissectors/packet-cimd.c2
-rw-r--r--epan/dissectors/packet-cip.c2
-rw-r--r--epan/dissectors/packet-cipsafety.c2
-rw-r--r--epan/dissectors/packet-classicstun.c4
-rw-r--r--epan/dissectors/packet-clique-rm.c2
-rw-r--r--epan/dissectors/packet-credssp.c2
-rw-r--r--epan/dissectors/packet-ctdb.c2
-rw-r--r--epan/dissectors/packet-dcc.c2
-rw-r--r--epan/dissectors/packet-dcerpc.c12
-rw-r--r--epan/dissectors/packet-dcm.c2
-rw-r--r--epan/dissectors/packet-dcp-etsi.c2
-rw-r--r--epan/dissectors/packet-dnp.c4
-rw-r--r--epan/dissectors/packet-dplay.c4
-rw-r--r--epan/dissectors/packet-drda.c2
-rw-r--r--epan/dissectors/packet-dtls.c2
-rw-r--r--epan/dissectors/packet-dvb-s2-bb.c2
-rw-r--r--epan/dissectors/packet-e100.c2
-rw-r--r--epan/dissectors/packet-etch.c2
-rw-r--r--epan/dissectors/packet-fcip.c2
-rw-r--r--epan/dissectors/packet-fcoib.c2
-rw-r--r--epan/dissectors/packet-fix.c2
-rw-r--r--epan/dissectors/packet-fmtp.c2
-rw-r--r--epan/dissectors/packet-giop.c4
-rw-r--r--epan/dissectors/packet-gmhdr.c4
-rw-r--r--epan/dissectors/packet-gvsp.c2
-rw-r--r--epan/dissectors/packet-h1.c6
-rw-r--r--epan/dissectors/packet-h225.c5
-rw-r--r--epan/dissectors/packet-hdcp2.c2
-rw-r--r--epan/dissectors/packet-hislip.c2
-rw-r--r--epan/dissectors/packet-http.c2
-rw-r--r--epan/dissectors/packet-http2.c4
-rw-r--r--epan/dissectors/packet-icep.c4
-rw-r--r--epan/dissectors/packet-ifcp.c2
-rw-r--r--epan/dissectors/packet-infiniband_sdp.c4
-rw-r--r--epan/dissectors/packet-interlink.c2
-rw-r--r--epan/dissectors/packet-ip.c2
-rw-r--r--epan/dissectors/packet-ipsec-tcp.c2
-rw-r--r--epan/dissectors/packet-iscsi.c2
-rw-r--r--epan/dissectors/packet-iser.c4
-rw-r--r--epan/dissectors/packet-iwarp-mpa.c2
-rw-r--r--epan/dissectors/packet-ixiatrailer.c2
-rw-r--r--epan/dissectors/packet-json.c4
-rw-r--r--epan/dissectors/packet-jxta.c6
-rw-r--r--epan/dissectors/packet-knxnetip.c4
-rw-r--r--epan/dissectors/packet-lanforge.c4
-rw-r--r--epan/dissectors/packet-lapd.c25
-rw-r--r--epan/dissectors/packet-lbmpdmtcp.c2
-rw-r--r--epan/dissectors/packet-lbmr.c2
-rw-r--r--epan/dissectors/packet-lbtrm.c2
-rw-r--r--epan/dissectors/packet-lbtru.c2
-rw-r--r--epan/dissectors/packet-lbttcp.c2
-rw-r--r--epan/dissectors/packet-lwm.c2
-rw-r--r--epan/dissectors/packet-mac-lte.c2
-rw-r--r--epan/dissectors/packet-mbim.c2
-rw-r--r--epan/dissectors/packet-mim.c2
-rw-r--r--epan/dissectors/packet-miop.c2
-rw-r--r--epan/dissectors/packet-mms.c4
-rw-r--r--epan/dissectors/packet-mmse.c2
-rw-r--r--epan/dissectors/packet-mndp.c2
-rw-r--r--epan/dissectors/packet-mojito.c2
-rw-r--r--epan/dissectors/packet-mp2t.c4
-rw-r--r--epan/dissectors/packet-mpeg-audio.c2
-rw-r--r--epan/dissectors/packet-mpeg-pes.c2
-rw-r--r--epan/dissectors/packet-mq-pcf.c2
-rw-r--r--epan/dissectors/packet-mq.c6
-rw-r--r--epan/dissectors/packet-msrp.c2
-rw-r--r--epan/dissectors/packet-nbd.c2
-rw-r--r--epan/dissectors/packet-ndmp.c2
-rw-r--r--epan/dissectors/packet-ntlmssp.c2
-rw-r--r--epan/dissectors/packet-openflow.c2
-rw-r--r--epan/dissectors/packet-opensafety.c8
-rw-r--r--epan/dissectors/packet-openwire.c2
-rw-r--r--epan/dissectors/packet-osc.c2
-rw-r--r--epan/dissectors/packet-ouch.c2
-rw-r--r--epan/dissectors/packet-paltalk.c2
-rw-r--r--epan/dissectors/packet-pana.c2
-rw-r--r--epan/dissectors/packet-pathport.c2
-rw-r--r--epan/dissectors/packet-pdcp-lte.c2
-rw-r--r--epan/dissectors/packet-peekremote.c2
-rw-r--r--epan/dissectors/packet-pktgen.c2
-rw-r--r--epan/dissectors/packet-ppp.c2
-rw-r--r--epan/dissectors/packet-pvfs2.c2
-rw-r--r--epan/dissectors/packet-q931.c2
-rw-r--r--epan/dissectors/packet-ranap.c4
-rw-r--r--epan/dissectors/packet-redbackli.c2
-rw-r--r--epan/dissectors/packet-reload-framing.c6
-rw-r--r--epan/dissectors/packet-reload.c4
-rw-r--r--epan/dissectors/packet-rlc-lte.c2
-rw-r--r--epan/dissectors/packet-rlc.c2
-rw-r--r--epan/dissectors/packet-rlm.c42
-rw-r--r--epan/dissectors/packet-rmt-norm.c2
-rw-r--r--epan/dissectors/packet-rnsap.c2
-rw-r--r--epan/dissectors/packet-rpc.c4
-rw-r--r--epan/dissectors/packet-rpcap.c4
-rw-r--r--epan/dissectors/packet-rpcrdma.c4
-rw-r--r--epan/dissectors/packet-rtcp.c4
-rw-r--r--epan/dissectors/packet-rtmpt.c2
-rw-r--r--epan/dissectors/packet-rtp.c4
-rw-r--r--epan/dissectors/packet-rtps.c4
-rw-r--r--epan/dissectors/packet-s7comm.c2
-rw-r--r--epan/dissectors/packet-ses.c6
-rw-r--r--epan/dissectors/packet-sip.c8
-rw-r--r--epan/dissectors/packet-skype.c4
-rw-r--r--epan/dissectors/packet-smb-direct.c2
-rw-r--r--epan/dissectors/packet-smb.c8
-rw-r--r--epan/dissectors/packet-smb2.c4
-rw-r--r--epan/dissectors/packet-smcr.c4
-rw-r--r--epan/dissectors/packet-smpp.c4
-rw-r--r--epan/dissectors/packet-spdy.c2
-rw-r--r--epan/dissectors/packet-spice.c2
-rw-r--r--epan/dissectors/packet-sprt.c2
-rw-r--r--epan/dissectors/packet-starteam.c2
-rw-r--r--epan/dissectors/packet-stt.c2
-rw-r--r--epan/dissectors/packet-stun.c2
-rw-r--r--epan/dissectors/packet-t124.c2
-rw-r--r--epan/dissectors/packet-t125.c4
-rw-r--r--epan/dissectors/packet-tali.c2
-rw-r--r--epan/dissectors/packet-tapa.c2
-rw-r--r--epan/dissectors/packet-tds.c2
-rw-r--r--epan/dissectors/packet-teredo.c2
-rw-r--r--epan/dissectors/packet-tfp.c2
-rw-r--r--epan/dissectors/packet-tftp.c2
-rw-r--r--epan/dissectors/packet-thrift.c2
-rw-r--r--epan/dissectors/packet-tte.c2
-rw-r--r--epan/dissectors/packet-turnchannel.c2
-rw-r--r--epan/dissectors/packet-tuxedo.c2
-rw-r--r--epan/dissectors/packet-ucp.c2
-rw-r--r--epan/dissectors/packet-udt.c2
-rw-r--r--epan/dissectors/packet-umts_fp.c2
-rw-r--r--epan/dissectors/packet-usb-masstorage.c2
-rw-r--r--epan/dissectors/packet-vnc.c2
-rw-r--r--epan/dissectors/packet-vssmonitoring.c2
-rw-r--r--epan/dissectors/packet-wassp.c2
-rw-r--r--epan/dissectors/packet-waveagent.c2
-rw-r--r--epan/dissectors/packet-wol.c2
-rw-r--r--epan/dissectors/packet-xcsl.c2
-rw-r--r--epan/dissectors/packet-xmcp.c2
-rw-r--r--epan/dissectors/packet-xml.c12
-rw-r--r--epan/dissectors/packet-yhoo.c2
-rw-r--r--epan/dissectors/packet-ymsg.c2
-rw-r--r--epan/dissectors/packet-zbee-nwk-gp.c2
-rw-r--r--epan/dissectors/packet-zbee-nwk.c6
-rw-r--r--epan/dissectors/packet-ziop.c2
-rw-r--r--epan/packet.c41
-rw-r--r--epan/packet.h6
-rw-r--r--epan/wslua/wslua_proto.c3
173 files changed, 309 insertions, 280 deletions
diff --git a/epan/dissectors/file-btsnoop.c b/epan/dissectors/file-btsnoop.c
index d75eef4d44..99a16c49a4 100644
--- a/epan/dissectors/file-btsnoop.c
+++ b/epan/dissectors/file-btsnoop.c
@@ -325,7 +325,7 @@ proto_reg_handoff_btsnoop(void)
hci_h4_handle = find_dissector("hci_h4");
hci_mon_handle = find_dissector("hci_mon");
- heur_dissector_add("wtap_file", dissect_btsnoop_heur, proto_btsnoop);
+ heur_dissector_add("wtap_file", dissect_btsnoop_heur, "BTSNOOP file", "btsnoop_wtap", proto_btsnoop);
}
/*
diff --git a/epan/dissectors/file-elf.c b/epan/dissectors/file-elf.c
index 57267f4e6d..c662eb7643 100644
--- a/epan/dissectors/file-elf.c
+++ b/epan/dissectors/file-elf.c
@@ -2489,7 +2489,7 @@ proto_reg_handoff_elf(void)
/* XXX - TEMPORARY HACK */
dissector_add_uint("ftap_encap", 1234, elf_handle);
- heur_dissector_add("wtap_file", dissect_elf_heur, proto_elf);
+ heur_dissector_add("wtap_file", dissect_elf_heur, "ELF file", "elf_wtap", proto_elf);
}
/*
diff --git a/epan/dissectors/file-gif.c b/epan/dissectors/file-gif.c
index 7a6967df07..3d771ad40f 100644
--- a/epan/dissectors/file-gif.c
+++ b/epan/dissectors/file-gif.c
@@ -702,8 +702,8 @@ proto_reg_handoff_gif(void)
{
/* Register the GIF media type */
dissector_add_string("media_type", "image/gif", gif_handle);
- heur_dissector_add("http", dissect_gif_heur, hfi_gif->id);
- heur_dissector_add("wtap_file", dissect_gif_heur, hfi_gif->id);
+ heur_dissector_add("http", dissect_gif_heur, "GIF file in HTTP", "gif_http", hfi_gif->id);
+ heur_dissector_add("wtap_file", dissect_gif_heur, "GIF file", "gif_wtap", hfi_gif->id);
}
/*
diff --git a/epan/dissectors/file-jpeg.c b/epan/dissectors/file-jpeg.c
index 77388dbb4e..6cd0637684 100644
--- a/epan/dissectors/file-jpeg.c
+++ b/epan/dissectors/file-jpeg.c
@@ -1347,8 +1347,8 @@ proto_reg_handoff_jfif(void)
dissector_add_uint("wtap_encap", WTAP_ENCAP_JPEG_JFIF, jfif_handle);
- heur_dissector_add("http", dissect_jfif_heur, proto_jfif);
- heur_dissector_add("wtap_file", dissect_jfif_heur, proto_jfif);
+ heur_dissector_add("http", dissect_jfif_heur, "JPEG file in HTTP", "jfif_http", proto_jfif);
+ heur_dissector_add("wtap_file", dissect_jfif_heur, "JPEG file", "jfif_wtap", proto_jfif);
}
/*
diff --git a/epan/dissectors/file-png.c b/epan/dissectors/file-png.c
index fb3112043c..32a6da7711 100644
--- a/epan/dissectors/file-png.c
+++ b/epan/dissectors/file-png.c
@@ -614,8 +614,8 @@ void
proto_reg_handoff_png(void)
{
dissector_add_string("media_type", "image/png", png_handle);
- heur_dissector_add("http", dissect_png_heur, hfi_png->id);
- heur_dissector_add("wtap_file", dissect_png_heur, hfi_png->id);
+ heur_dissector_add("http", dissect_png_heur, "PNG file in HTTP", "png_http", hfi_png->id);
+ heur_dissector_add("wtap_file", dissect_png_heur, "PNG file in HTTP", "png_wtap", hfi_png->id);
}
/*
diff --git a/epan/dissectors/packet-3com-njack.c b/epan/dissectors/packet-3com-njack.c
index 14ebde41dc..da8cf3bfed 100644
--- a/epan/dissectors/packet-3com-njack.c
+++ b/epan/dissectors/packet-3com-njack.c
@@ -789,8 +789,8 @@ proto_reg_handoff_njack(void)
dissector_add_uint("udp.port", PORT_NJACK_SWITCH, njack_handle);
/* dissector_add_uint("tcp.port", PORT_NJACK_SWITCH, njack_handle); */
- heur_dissector_add("udp", dissect_njack_heur, proto_njack);
- /* heur_dissector_add("tcp", dissect_njack_heur, proto_njack); */
+ heur_dissector_add("udp", dissect_njack_heur, "NJACK over UDP", "njack_udp", proto_njack);
+ /* heur_dissector_add("tcp", dissect_njack_heur, "NJACK over TCP", "njack_tcp", proto_njack); */
}
/*
diff --git a/epan/dissectors/packet-6lowpan.c b/epan/dissectors/packet-6lowpan.c
index 566e2b1be1..4f1b3f84a8 100644
--- a/epan/dissectors/packet-6lowpan.c
+++ b/epan/dissectors/packet-6lowpan.c
@@ -2916,7 +2916,7 @@ proto_reg_handoff_6lowpan(void)
/* Register the 6LoWPAN dissector with IEEE 802.15.4 */
dissector_add_for_decode_as(IEEE802154_PROTOABBREV_WPAN_PANID, handle_6lowpan);
- heur_dissector_add(IEEE802154_PROTOABBREV_WPAN, dissect_6lowpan_heur, proto_6lowpan);
+ heur_dissector_add(IEEE802154_PROTOABBREV_WPAN, dissect_6lowpan_heur, "6LoWPAN over IEEE 802.15.4", "6lowpan_wlan", proto_6lowpan);
dissector_add_uint("btl2cap.psm", BTL2CAP_PSM_LE_IPSP, handle_6lowpan);
} /* proto_reg_handoff_6lowpan */
diff --git a/epan/dissectors/packet-acn.c b/epan/dissectors/packet-acn.c
index 5e3c341954..35d9a4f2c0 100644
--- a/epan/dissectors/packet-acn.c
+++ b/epan/dissectors/packet-acn.c
@@ -3266,7 +3266,7 @@ proto_reg_handoff_acn(void)
/* dissector_handle_t acn_handle; */
/* acn_handle = new_create_dissector_handle(dissect_acn, proto_acn); */
/* dissector_add_for_decode_as("udp.port", acn_handle); */
- heur_dissector_add("udp", dissect_acn_heur, proto_acn);
+ heur_dissector_add("udp", dissect_acn_heur, "ACN over UDP", "acn_udp", proto_acn);
}
/*
diff --git a/epan/dissectors/packet-adwin-config.c b/epan/dissectors/packet-adwin-config.c
index 931b830bd6..608301761c 100644
--- a/epan/dissectors/packet-adwin-config.c
+++ b/epan/dissectors/packet-adwin-config.c
@@ -777,8 +777,8 @@ proto_register_adwin_config(void)
void
proto_reg_handoff_adwin_config(void)
{
- heur_dissector_add("udp", dissect_adwin_config_udp, proto_adwin_config);
- heur_dissector_add("tcp", dissect_adwin_config_tcp, proto_adwin_config);
+ heur_dissector_add("udp", dissect_adwin_config_udp, "ADwin-Config over UDP", "adwin_config_udp", proto_adwin_config);
+ heur_dissector_add("tcp", dissect_adwin_config_tcp, "ADwin-Config over TCP", "adwin_config_tcp", proto_adwin_config);
}
diff --git a/epan/dissectors/packet-aeron.c b/epan/dissectors/packet-aeron.c
index c1d72ad3dc..1ff0ce388e 100644
--- a/epan/dissectors/packet-aeron.c
+++ b/epan/dissectors/packet-aeron.c
@@ -3135,7 +3135,7 @@ void proto_reg_handoff_aeron(void)
{
aeron_dissector_handle = new_create_dissector_handle(dissect_aeron, proto_aeron);
dissector_add_for_decode_as("udp.port", aeron_dissector_handle);
- heur_dissector_add("udp", test_aeron_packet, proto_aeron);
+ heur_dissector_add("udp", test_aeron_packet, "Aeron over UDP", "aeron_udp", proto_aeron);
aeron_data_dissector_handle = find_dissector("data");
}
diff --git a/epan/dissectors/packet-applemidi.c b/epan/dissectors/packet-applemidi.c
index 8a9c424dc2..3719eb5db3 100644
--- a/epan/dissectors/packet-applemidi.c
+++ b/epan/dissectors/packet-applemidi.c
@@ -524,8 +524,7 @@ proto_reg_handoff_applemidi( void ) {
* packets, it will be most likely RTP-MIDI...
*/
rtp_handle = find_dissector( "rtp" );
- heur_dissector_add( "udp", dissect_applemidi_heur, proto_applemidi );
-
+ heur_dissector_add( "udp", dissect_applemidi_heur, "Apple MIDI over UDP", "applemidi_udp", proto_applemidi );
}
/*
diff --git a/epan/dissectors/packet-ar_drone.c b/epan/dissectors/packet-ar_drone.c
index fd0d2dc09a..70fd1ba014 100644
--- a/epan/dissectors/packet-ar_drone.c
+++ b/epan/dissectors/packet-ar_drone.c
@@ -796,7 +796,7 @@ proto_reg_handoff_ar_drone(void)
{
ar_drone_handle = new_create_dissector_handle(dissect_ar_drone, proto_ar_drone);
- heur_dissector_add("udp", dissect_ar_drone, proto_ar_drone);
+ heur_dissector_add("udp", dissect_ar_drone, "AR Drone over UDP", "ar_drone_udp", proto_ar_drone);
initialized = TRUE;
}
diff --git a/epan/dissectors/packet-artnet.c b/epan/dissectors/packet-artnet.c
index cabd172368..f5401aa57f 100644
--- a/epan/dissectors/packet-artnet.c
+++ b/epan/dissectors/packet-artnet.c
@@ -5265,7 +5265,7 @@ proto_reg_handoff_artnet(void) {
rdm_handle = find_dissector("rdm");
dmx_chan_handle = find_dissector("dmx-chan");
- heur_dissector_add("udp", dissect_artnet_heur, proto_artnet);
+ heur_dissector_add("udp", dissect_artnet_heur, "ARTNET over UDP", "artnet_udp", proto_artnet);
}
/*
diff --git a/epan/dissectors/packet-at.c b/epan/dissectors/packet-at.c
index c2497d26f1..b9c672fa8d 100644
--- a/epan/dissectors/packet-at.c
+++ b/epan/dissectors/packet-at.c
@@ -116,8 +116,8 @@ proto_register_at_command(void)
void
proto_reg_handoff_at_command(void)
{
- heur_dissector_add("usb.bulk", heur_dissect_at, proto_at);
- heur_dissector_add("usb.control", heur_dissect_at, proto_at);
+ heur_dissector_add("usb.bulk", heur_dissect_at, "AT Command USB bulk endpoint", "at_usb_bulk", proto_at);
+ heur_dissector_add("usb.control", heur_dissect_at, "AT Command USB control endpoint", "at_usb_control", proto_at);
}
/*
diff --git a/epan/dissectors/packet-atn-cm.c b/epan/dissectors/packet-atn-cm.c
index c679d41e87..a6787fa2eb 100644
--- a/epan/dissectors/packet-atn-cm.c
+++ b/epan/dissectors/packet-atn-cm.c
@@ -989,6 +989,8 @@ void proto_reg_handoff_atn_cm(void)
heur_dissector_add(
"atn-ulcs",
dissect_atn_cm_heur,
+ "ATN-CM over ATN-ULCS",
+ "atn-cm-ulcs",
proto_atn_cm);
}
diff --git a/epan/dissectors/packet-atn-cpdlc.c b/epan/dissectors/packet-atn-cpdlc.c
index 9660695e37..d065f320d6 100644
--- a/epan/dissectors/packet-atn-cpdlc.c
+++ b/epan/dissectors/packet-atn-cpdlc.c
@@ -8105,6 +8105,8 @@ void proto_reg_handoff_atn_cpdlc(void)
heur_dissector_add(
"atn-ulcs",
dissect_atn_cpdlc_heur,
+ "ATN-CPDLC over ATN-ULCS",
+ "atn-cpdlc-ulcs",
proto_atn_cpdlc);
}
diff --git a/epan/dissectors/packet-atn-ulcs.c b/epan/dissectors/packet-atn-ulcs.c
index 88f3bbddad..9a2ad27611 100644
--- a/epan/dissectors/packet-atn-ulcs.c
+++ b/epan/dissectors/packet-atn-ulcs.c
@@ -2615,6 +2615,8 @@ void proto_reg_handoff_atn_ulcs(void)
heur_dissector_add(
"cotp",
dissect_atn_ulcs_heur,
+ "ATN-ULCS over COTP",
+ "atn-ucls_cotp",
proto_atn_ulcs);
}
diff --git a/epan/dissectors/packet-bfcp.c b/epan/dissectors/packet-bfcp.c
index 2fb242a959..5e896f1bde 100644
--- a/epan/dissectors/packet-bfcp.c
+++ b/epan/dissectors/packet-bfcp.c
@@ -709,8 +709,8 @@ void proto_reg_handoff_bfcp(void)
*/
if (!prefs_initialized)
{
- heur_dissector_add("tcp", dissect_bfcp_heur, proto_bfcp);
- heur_dissector_add("udp", dissect_bfcp_heur, proto_bfcp);
+ heur_dissector_add("tcp", dissect_bfcp_heur, "BFCP over TCP", "bfcp_tcp", proto_bfcp);
+ heur_dissector_add("udp", dissect_bfcp_heur, "BFCP over UDP", "bfcp_udp", proto_bfcp);
dissector_add_for_decode_as("tcp.port", bfcp_handle);
dissector_add_for_decode_as("udp.port", bfcp_handle);
prefs_initialized = TRUE;
diff --git a/epan/dissectors/packet-bitcoin.c b/epan/dissectors/packet-bitcoin.c
index 9addb07683..45decc8e8a 100644
--- a/epan/dissectors/packet-bitcoin.c
+++ b/epan/dissectors/packet-bitcoin.c
@@ -1923,7 +1923,7 @@ proto_reg_handoff_bitcoin(void)
{
dissector_add_for_decode_as("tcp.port", bitcoin_handle);
- heur_dissector_add( "tcp", dissect_bitcoin_heur, hfi_bitcoin->id);
+ heur_dissector_add( "tcp", dissect_bitcoin_heur, "Bitcoin over TCP", "bitcoin_tcp", hfi_bitcoin->id);
}
/*
diff --git a/epan/dissectors/packet-bittorrent.c b/epan/dissectors/packet-bittorrent.c
index 3019312124..617c3a11e8 100644
--- a/epan/dissectors/packet-bittorrent.c
+++ b/epan/dissectors/packet-bittorrent.c
@@ -708,7 +708,7 @@ proto_reg_handoff_bittorrent(void)
dissector_add_uint("tcp.port", 6888, dissector_handle);
dissector_add_uint("tcp.port", 6889, dissector_handle);
#endif
- heur_dissector_add("tcp", test_bittorrent_packet, proto_bittorrent);
+ heur_dissector_add("tcp", test_bittorrent_packet, "BitTorrent over TCP", "bittorrent_tcp", proto_bittorrent);
}
/*
diff --git a/epan/dissectors/packet-bssap.c b/epan/dissectors/packet-bssap.c
index 15a68c3468..544c1be713 100644
--- a/epan/dissectors/packet-bssap.c
+++ b/epan/dissectors/packet-bssap.c
@@ -2557,8 +2557,8 @@ proto_reg_handoff_bssap(void)
static guint old_bssap_ssn;
if (!initialized) {
- heur_dissector_add("sccp", dissect_bssap_heur, proto_bssap);
- heur_dissector_add("sua", dissect_bssap_heur, proto_bssap);
+ heur_dissector_add("sccp", dissect_bssap_heur, "BSSAP over SCCP", "bssap_sccp", proto_bssap);
+ heur_dissector_add("sua", dissect_bssap_heur, "BSSAP over SUA", "bssap_sua", proto_bssap);
/* BSSAP+ */
bssap_plus_handle = new_create_dissector_handle(dissect_bssap_plus, proto_bssap);
diff --git a/epan/dissectors/packet-bt-dht.c b/epan/dissectors/packet-bt-dht.c
index 6b6889f515..5fdc5129e8 100644
--- a/epan/dissectors/packet-bt-dht.c
+++ b/epan/dissectors/packet-bt-dht.c
@@ -594,7 +594,7 @@ proto_reg_handoff_bt_dht(void)
* XXX - Still too weak?
*/
if (!prefs_initialized) {
- heur_dissector_add("udp", dissect_bt_dht_heur, proto_bt_dht);
+ heur_dissector_add("udp", dissect_bt_dht_heur, "BitTorrent DHT over UDP", "bittorrent_dht_udp", proto_bt_dht);
bt_dht_handle = new_create_dissector_handle(dissect_bt_dht, proto_bt_dht);
dissector_add_for_decode_as("udp.port", bt_dht_handle);
diff --git a/epan/dissectors/packet-bt-utp.c b/epan/dissectors/packet-bt-utp.c
index 1b00ba3e82..5020b87447 100644
--- a/epan/dissectors/packet-bt-utp.c
+++ b/epan/dissectors/packet-bt-utp.c
@@ -489,7 +489,7 @@ proto_reg_handoff_bt_utp(void)
static gboolean prefs_initialized = FALSE;
if (!prefs_initialized) {
- heur_dissector_add("udp", dissect_bt_utp, proto_bt_utp);
+ heur_dissector_add("udp", dissect_bt_utp, "BitTorrent UTP over UDP", "bt_utp_udp", proto_bt_utp);
bt_utp_handle = new_create_dissector_handle(dissect_bt_utp, proto_bt_utp);
dissector_add_for_decode_as("udp.port", bt_utp_handle);
diff --git a/epan/dissectors/packet-carp.c b/epan/dissectors/packet-carp.c
index 8c9511370b..326a042a75 100644
--- a/epan/dissectors/packet-carp.c
+++ b/epan/dissectors/packet-carp.c
@@ -248,7 +248,7 @@ proto_reg_handoff_carp(void)
carp_handle = new_create_dissector_handle(dissect_carp, proto_carp);
dissector_add_uint("ip.proto", IP_PROTO_VRRP, carp_handle);
- heur_dissector_add( "ip", dissect_carp_heur, proto_carp);
+ heur_dissector_add( "ip", dissect_carp_heur, "CARP over IP", "carp_ip", proto_carp);
}
/*
diff --git a/epan/dissectors/packet-cattp.c b/epan/dissectors/packet-cattp.c
index a73dbd41bd..d369f6cdc0 100644
--- a/epan/dissectors/packet-cattp.c
+++ b/epan/dissectors/packet-cattp.c
@@ -585,7 +585,7 @@ proto_reg_handoff_cattp(void)
/* find data handle */
data_handle = find_dissector("data");
- heur_dissector_add("udp", dissect_cattp_heur, proto_cattp);
+ heur_dissector_add("udp", dissect_cattp_heur, "CAT-TP over UDP", "cattp_udp", proto_cattp);
dissector_add_for_decode_as("udp.port", cattp_handle);
initialized = TRUE;
}
diff --git a/epan/dissectors/packet-ceph.c b/epan/dissectors/packet-ceph.c
index 1afcf72439..cf05a173e5 100644
--- a/epan/dissectors/packet-ceph.c
+++ b/epan/dissectors/packet-ceph.c
@@ -10515,7 +10515,7 @@ proto_reg_handoff_ceph(void)
{
ceph_handle = create_dissector_handle(dissect_ceph_old, proto_ceph);
- heur_dissector_add("tcp", dissect_ceph_heur, proto_ceph);
+ heur_dissector_add("tcp", dissect_ceph_heur, "Ceph over TCP", "ceph_tcp", proto_ceph);
}
/*
diff --git a/epan/dissectors/packet-cigi.c b/epan/dissectors/packet-cigi.c
index 7a84ec7cdb..f96cfbf72e 100644
--- a/epan/dissectors/packet-cigi.c
+++ b/epan/dissectors/packet-cigi.c
@@ -12040,7 +12040,7 @@ proto_reg_handoff_cigi(void)
cigi_handle = new_create_dissector_handle(dissect_cigi, proto_cigi);
dissector_add_for_decode_as("udp.port", cigi_handle);
dissector_add_for_decode_as("tcp.port", cigi_handle);
- heur_dissector_add("udp", dissect_cigi_heur, proto_cigi);
+ heur_dissector_add("udp", dissect_cigi_heur, "CIGI over UDP", "cigi_udp", proto_cigi);
inited = TRUE;
}
diff --git a/epan/dissectors/packet-cimd.c b/epan/dissectors/packet-cimd.c
index c7318f24c3..f4e61a6407 100644
--- a/epan/dissectors/packet-cimd.c
+++ b/epan/dissectors/packet-cimd.c
@@ -1161,7 +1161,7 @@ proto_reg_handoff_cimd(void)
* CIMD can be spoken on any port so, when not on a specific port, try this
* one whenever TCP is spoken.
*/
- heur_dissector_add("tcp", dissect_cimd_heur, proto_cimd);
+ heur_dissector_add("tcp", dissect_cimd_heur, "CIMD over TCP", "cimd_tcp", proto_cimd);
/**
* Also register as one that can be selected by a TCP port number.
diff --git a/epan/dissectors/packet-cip.c b/epan/dissectors/packet-cip.c
index 55b9e2614f..2cc76b2b91 100644
--- a/epan/dissectors/packet-cip.c
+++ b/epan/dissectors/packet-cip.c
@@ -6951,7 +6951,7 @@ proto_reg_handoff_cip(void)
/* Create and register dissector handle for Connection Configuration Object */
cip_class_cco_handle = new_create_dissector_handle( dissect_cip_class_cco, proto_cip_class_cco );
dissector_add_uint( "cip.class.iface", CI_CLS_CCO, cip_class_cco_handle );
- heur_dissector_add("cip.sc", dissect_class_cco_heur, proto_cip_class_cco);
+ heur_dissector_add("cip.sc", dissect_class_cco_heur, "CIP Connection Configuration Object", "cco_cip", proto_cip_class_cco);
proto_enip = proto_get_id_by_filter_name( "enip" );
proto_modbus = proto_get_id_by_filter_name( "modbus" );
diff --git a/epan/dissectors/packet-cipsafety.c b/epan/dissectors/packet-cipsafety.c
index 051b369545..cbb85b70e1 100644
--- a/epan/dissectors/packet-cipsafety.c
+++ b/epan/dissectors/packet-cipsafety.c
@@ -2619,7 +2619,7 @@ proto_reg_handoff_cipsafety(void)
/* Create and register dissector handle for Safety Validator */
cip_class_s_validator_handle = new_create_dissector_handle( dissect_cip_class_s_validator, proto_cip_class_s_validator );
dissector_add_uint( "cip.class.iface", CI_CLS_SAFETY_VALIDATOR, cip_class_s_validator_handle );
- heur_dissector_add("cip.sc", dissect_class_svalidator_heur, proto_cip_class_s_validator);
+ heur_dissector_add("cip.sc", dissect_class_svalidator_heur, "CIP Safety Validator", "s_validator_cip", proto_cip_class_s_validator);
/* Create and register dissector for I/O data handling */
cipsafety_handle = create_dissector_handle( dissect_cipsafety, proto_cipsafety );
diff --git a/epan/dissectors/packet-classicstun.c b/epan/dissectors/packet-classicstun.c
index c5db4db3a4..ce2b0363b4 100644
--- a/epan/dissectors/packet-classicstun.c
+++ b/epan/dissectors/packet-classicstun.c
@@ -709,8 +709,8 @@ proto_reg_handoff_classicstun(void)
dissector_add_uint("tcp.port", TCP_PORT_STUN, classicstun_handle);
dissector_add_uint("udp.port", UDP_PORT_STUN, classicstun_handle);
#endif
- heur_dissector_add("udp", dissect_classicstun_heur, proto_classicstun);
- heur_dissector_add("tcp", dissect_classicstun_heur, proto_classicstun);
+ heur_dissector_add("udp", dissect_classicstun_heur, "Classic STUN over UDP", "classicstun_udp", proto_classicstun);
+ heur_dissector_add("tcp", dissect_classicstun_heur, "Classic STUN over TCP", "classicstun_tcp", proto_classicstun);
}
/*
diff --git a/epan/dissectors/packet-clique-rm.c b/epan/dissectors/packet-clique-rm.c
index 1750693a73..e4d2b8c00a 100644
--- a/epan/dissectors/packet-clique-rm.c
+++ b/epan/dissectors/packet-clique-rm.c
@@ -474,7 +474,7 @@ proto_register_clique_rm(void)
void
proto_reg_handoff_clique_rm(void)
{
- heur_dissector_add("udp", dissect_clique_rm, proto_clique_rm);
+ heur_dissector_add("udp", dissect_clique_rm, "Clique RM over UDP", "clique_rm_udp", proto_clique_rm);
}
/*
diff --git a/epan/dissectors/packet-credssp.c b/epan/dissectors/packet-credssp.c
index d418e17578..16a5fa9327 100644
--- a/epan/dissectors/packet-credssp.c
+++ b/epan/dissectors/packet-credssp.c
@@ -552,7 +552,7 @@ void proto_register_credssp(void) {
/*--- proto_reg_handoff_credssp --- */
void proto_reg_handoff_credssp(void) {
- heur_dissector_add("ssl", dissect_credssp_heur, proto_credssp);
+ heur_dissector_add("ssl", dissect_credssp_heur, "CredSSP over SSL", "credssp_ssl", proto_credssp);
exported_pdu_tap = find_tap_id(EXPORT_PDU_TAP_NAME_LAYER_7);
}
diff --git a/epan/dissectors/packet-ctdb.c b/epan/dissectors/packet-ctdb.c
index bc3311a5b9..cb5c92c633 100644
--- a/epan/dissectors/packet-ctdb.c
+++ b/epan/dissectors/packet-ctdb.c
@@ -1243,7 +1243,7 @@ proto_reg_handoff_ctdb(void)
ctdb_handle = new_create_dissector_handle(dissect_ctdb, proto_ctdb);
dissector_add_for_decode_as("tcp.port", ctdb_handle);
- heur_dissector_add("tcp", dissect_ctdb, proto_ctdb);
+ heur_dissector_add("tcp", dissect_ctdb, "Cluster TDB over TCP", "ctdb_tcp", proto_ctdb);
}
/*
diff --git a/epan/dissectors/packet-dcc.c b/epan/dissectors/packet-dcc.c
index d559f0f788..7fc29664ab 100644
--- a/epan/dissectors/packet-dcc.c
+++ b/epan/dissectors/packet-dcc.c
@@ -585,7 +585,7 @@ proto_register_dcc(void)
void
proto_reg_handoff_dcc(void)
{
- heur_dissector_add("udp", dissect_dcc, proto_dcc);
+ heur_dissector_add("udp", dissect_dcc, "Distributed Checksum Clearinghouse over UDP", "dcc_udp", proto_dcc);
}
/*
diff --git a/epan/dissectors/packet-dcerpc.c b/epan/dissectors/packet-dcerpc.c
index 695aa4484b..ae71797484 100644
--- a/epan/dissectors/packet-dcerpc.c
+++ b/epan/dissectors/packet-dcerpc.c
@@ -6541,12 +6541,12 @@ proto_register_dcerpc(void)
void
proto_reg_handoff_dcerpc(void)
{
- heur_dissector_add("tcp", dissect_dcerpc_tcp, proto_dcerpc);
- heur_dissector_add("netbios", dissect_dcerpc_cn_pk, proto_dcerpc);
- heur_dissector_add("udp", dissect_dcerpc_dg, proto_dcerpc);
- heur_dissector_add("smb_transact", dissect_dcerpc_cn_smbpipe, proto_dcerpc);
- heur_dissector_add("smb2_heur_subdissectors", dissect_dcerpc_cn_smb2, proto_dcerpc);
- heur_dissector_add("http", dissect_dcerpc_cn_bs, proto_dcerpc);
+ heur_dissector_add("tcp", dissect_dcerpc_tcp, "DCE/RPC over TCP", "dcerpc_tcp", proto_dcerpc);
+ heur_dissector_add("netbios", dissect_dcerpc_cn_pk, "DCE/RPC over NetBios", "dcerpc_netbios", proto_dcerpc);
+ heur_dissector_add("udp", dissect_dcerpc_dg, "DCE/RPC over UDP", "dcerpc_udp", proto_dcerpc);
+ heur_dissector_add("smb_transact", dissect_dcerpc_cn_smbpipe, "DCE/RPC over SMB", "dcerpc_smb_transact", proto_dcerpc);
+ heur_dissector_add("smb2_heur_subdissectors", dissect_dcerpc_cn_smb2, "DCE/RPC over SMB2", "dcerpc_smb2", proto_dcerpc);
+ heur_dissector_add("http", dissect_dcerpc_cn_bs, "DCE/RPC over HTTP", "dcerpc_http", proto_dcerpc);
dcerpc_smb_init(proto_dcerpc);
guids_add_uuid(&uuid_data_repr_proto, "32bit NDR");
diff --git a/epan/dissectors/packet-dcm.c b/epan/dissectors/packet-dcm.c
index 73b0b5ae3c..46aa3d0ef6 100644
--- a/epan/dissectors/packet-dcm.c
+++ b/epan/dissectors/packet-dcm.c
@@ -7078,7 +7078,7 @@ static void dcm_apply_settings(void) {
/* Add heuristic search, if user selected it */
if (global_dcm_heuristic)
- heur_dissector_add("tcp", dissect_dcm_heuristic, proto_dcm);
+ heur_dissector_add("tcp", dissect_dcm_heuristic, "DICOM over TCP", "dicom_tcp", proto_dcm);
}
diff --git a/epan/dissectors/packet-dcp-etsi.c b/epan/dissectors/packet-dcp-etsi.c
index 5e04c626c4..bf1cbd0fe6 100644
--- a/epan/dissectors/packet-dcp-etsi.c
+++ b/epan/dissectors/packet-dcp-etsi.c
@@ -656,7 +656,7 @@ proto_reg_handoff_dcp_etsi (void)
af_handle = create_dissector_handle(dissect_af, proto_af);
pft_handle = create_dissector_handle(dissect_pft, proto_pft);
tpl_handle = create_dissector_handle(dissect_tpl, proto_tpl);
- heur_dissector_add("udp", dissect_dcp_etsi, proto_dcp_etsi);
+ heur_dissector_add("udp", dissect_dcp_etsi, "DCP (ETSI) over UDP", "dcp_etsi_udp", proto_dcp_etsi);
dissector_add_string("dcp-etsi.sync", "AF", af_handle);
dissector_add_string("dcp-etsi.sync", "PF", pft_handle);
/* if there are ever other payload types ...*/
diff --git a/epan/dissectors/packet-dnp.c b/epan/dissectors/packet-dnp.c
index f767f7f9aa..dd754250de 100644
--- a/epan/dissectors/packet-dnp.c
+++ b/epan/dissectors/packet-dnp.c
@@ -4564,8 +4564,8 @@ proto_reg_handoff_dnp3(void)
/* register as heuristic dissector for both TCP and UDP */
if (dnp3_heuristics) {
- heur_dissector_add("tcp", dissect_dnp3_tcp, proto_dnp3);
- heur_dissector_add("udp", dissect_dnp3_udp, proto_dnp3);
+ heur_dissector_add("tcp", dissect_dnp3_tcp, "DNP 3.0 over TCP", "dnp3_tcp", proto_dnp3);
+ heur_dissector_add("udp", dissect_dnp3_udp, "DNP 3.0 over UDP", "dnp3_udp", proto_dnp3);
} else {
heur_dissector_delete("tcp", dissect_dnp3_tcp, proto_dnp3);
heur_dissector_delete("udp", dissect_dnp3_udp, proto_dnp3);
diff --git a/epan/dissectors/packet-dplay.c b/epan/dissectors/packet-dplay.c
index 8249094ad5..e8a484aa99 100644
--- a/epan/dissectors/packet-dplay.c
+++ b/epan/dissectors/packet-dplay.c
@@ -1712,8 +1712,8 @@ void proto_register_dplay(void)
void proto_reg_handoff_dplay(void)
{
- heur_dissector_add("udp", heur_dissect_dplay, proto_dplay);
- heur_dissector_add("tcp", heur_dissect_dplay, proto_dplay);
+ heur_dissector_add("udp", heur_dissect_dplay, "DirectPlay over UDP", "dplay_udp", proto_dplay);
+ heur_dissector_add("tcp", heur_dissect_dplay, "DirectPlay over TCP", "dplay_tcp", proto_dplay);
}
/*
diff --git a/epan/dissectors/packet-drda.c b/epan/dissectors/packet-drda.c
index 39e8955884..84bf94abd2 100644
--- a/epan/dissectors/packet-drda.c
+++ b/epan/dissectors/packet-drda.c
@@ -942,7 +942,7 @@ proto_register_drda(void)
void
proto_reg_handoff_drda(void)
{
- heur_dissector_add("tcp", dissect_drda_heur, proto_drda);
+ heur_dissector_add("tcp", dissect_drda_heur, "DRDA over TCP", "drda_tcp", proto_drda);
drda_tcp_handle = new_create_dissector_handle(dissect_drda_tcp, proto_drda);
}
diff --git a/epan/dissectors/packet-dtls.c b/epan/dissectors/packet-dtls.c
index d5182df09e..7c357dca61 100644
--- a/epan/dissectors/packet-dtls.c
+++ b/epan/dissectors/packet-dtls.c
@@ -1967,7 +1967,7 @@ proto_reg_handoff_dtls(void)
exported_pdu_tap = find_tap_id(EXPORT_PDU_TAP_NAME_LAYER_7);
if (initialized == FALSE) {
- heur_dissector_add("udp", dissect_dtls_heur, proto_dtls);
+ heur_dissector_add("udp", dissect_dtls_heur, "DTLS over UDP", "dtls_udp", proto_dtls);
dissector_add_uint("sctp.ppi", DIAMETER_DTLS_PROTOCOL_ID, find_dissector("dtls"));
}
diff --git a/epan/dissectors/packet-dvb-s2-bb.c b/epan/dissectors/packet-dvb-s2-bb.c
index add5c388e0..6b3c1efe44 100644
--- a/epan/dissectors/packet-dvb-s2-bb.c
+++ b/epan/dissectors/packet-dvb-s2-bb.c
@@ -1104,7 +1104,7 @@ void proto_reg_handoff_dvb_s2_modeadapt(void)
static gboolean prefs_initialized = FALSE;
if (!prefs_initialized) {
- heur_dissector_add("udp", dissect_dvb_s2_modeadapt, proto_dvb_s2_modeadapt);
+ heur_dissector_add("udp", dissect_dvb_s2_modeadapt, "DVB-S2 over UDP", "dvb_s2_udp", proto_dvb_s2_modeadapt);
ip_handle = find_dissector("ip");
ipv6_handle = find_dissector("ipv6");
prefs_initialized = TRUE;
diff --git a/epan/dissectors/packet-e100.c b/epan/dissectors/packet-e100.c
index 109e940893..4819528d78 100644
--- a/epan/dissectors/packet-e100.c
+++ b/epan/dissectors/packet-e100.c
@@ -209,7 +209,7 @@ void
proto_reg_handoff_e100(void)
{
/* Check all UDP traffic, as the specific UDP port is configurable */
- heur_dissector_add("udp", dissect_e100, proto_e100);
+ heur_dissector_add("udp", dissect_e100, "E100 over UDP", "e100_udp", proto_e100);
/* e100 traffic encapsulates traffic from the ethernet frame on */
eth_handle = find_dissector("eth");
}
diff --git a/epan/dissectors/packet-etch.c b/epan/dissectors/packet-etch.c
index 7421223dc9..6b5976def0 100644
--- a/epan/dissectors/packet-etch.c
+++ b/epan/dissectors/packet-etch.c
@@ -975,7 +975,7 @@ void proto_reg_handoff_etch(void)
/* create dissector handle only once */
if(!etch_prefs_initialized) {
/* add heuristic dissector for tcp */
- heur_dissector_add("tcp", dissect_etch, proto_etch);
+ heur_dissector_add("tcp", dissect_etch, "Etch over TCP", "etch_tcp", proto_etch);
etch_prefs_initialized = TRUE;
}
diff --git a/epan/dissectors/packet-fcip.c b/epan/dissectors/packet-fcip.c
index 53b885931e..c4d31d20c5 100644
--- a/epan/dissectors/packet-fcip.c
+++ b/epan/dissectors/packet-fcip.c
@@ -648,7 +648,7 @@ proto_reg_handoff_fcip (void)
{
dissector_handle_t fcip_handle;
- heur_dissector_add("tcp", dissect_fcip_heur, proto_fcip);
+ heur_dissector_add("tcp", dissect_fcip_heur, "FCIP over TCP", "fcip_tcp", proto_fcip);
fcip_handle = create_dissector_handle(dissect_fcip_handle, proto_fcip);
dissector_add_for_decode_as("tcp.port", fcip_handle);
diff --git a/epan/dissectors/packet-fcoib.c b/epan/dissectors/packet-fcoib.c
index 15cabe95ba..ef8583c32c 100644
--- a/epan/dissectors/packet-fcoib.c
+++ b/epan/dissectors/packet-fcoib.c
@@ -415,7 +415,7 @@ proto_reg_handoff_fcoib(void)
static gboolean initialized = FALSE;
if (!initialized) {
- heur_dissector_add("infiniband.payload", dissect_fcoib, proto_fcoib);
+ heur_dissector_add("infiniband.payload", dissect_fcoib, "Fibre Channel over Infiniband", "fc_infiniband", proto_fcoib);
data_handle = find_dissector("data");
fc_handle = find_dissector("fc");
diff --git a/epan/dissectors/packet-fix.c b/epan/dissectors/packet-fix.c
index ac2b21cea1..d258d3f31d 100644
--- a/epan/dissectors/packet-fix.c
+++ b/epan/dissectors/packet-fix.c
@@ -527,7 +527,7 @@ void
proto_reg_handoff_fix(void)
{
/* Let the tcp dissector know that we're interested in traffic */
- heur_dissector_add("tcp", dissect_fix_heur, proto_fix);
+ heur_dissector_add("tcp", dissect_fix_heur, "FIX over TCP", "fix_tcp", proto_fix);
/* Register a fix handle to "tcp.port" to be able to do 'decode-as' */
dissector_add_for_decode_as("tcp.port", fix_handle);
}
diff --git a/epan/dissectors/packet-fmtp.c b/epan/dissectors/packet-fmtp.c
index 41ff17bbd0..010518092c 100644
--- a/epan/dissectors/packet-fmtp.c
+++ b/epan/dissectors/packet-fmtp.c
@@ -203,7 +203,7 @@ void
proto_reg_handoff_fmtp(void)
{
/* Register as heuristic dissector for TCP */
- heur_dissector_add("tcp", dissect_fmtp, proto_fmtp);
+ heur_dissector_add("tcp", dissect_fmtp, "FMTP over TCP", "fmtp_tcp", proto_fmtp);
data_handle = find_dissector("data");
}
diff --git a/epan/dissectors/packet-giop.c b/epan/dissectors/packet-giop.c
index ffb4b55cad..10e3609de6 100644
--- a/epan/dissectors/packet-giop.c
+++ b/epan/dissectors/packet-giop.c
@@ -5558,9 +5558,9 @@ proto_register_giop (void)
void proto_reg_handoff_giop (void) {
data_handle = find_dissector("data");
- heur_dissector_add("tcp", dissect_giop_heur, proto_giop);
+ heur_dissector_add("tcp", dissect_giop_heur, "GIOP over TCP", "giop_tcp", proto_giop);
/* Support DIOP (GIOP/UDP) */
- heur_dissector_add("udp", dissect_giop_heur, proto_giop);
+ heur_dissector_add("udp", dissect_giop_heur, "DIOP (GIOP/UDP)", "giop_udp", proto_giop);
dissector_add_for_decode_as("tcp.port", giop_tcp_handle);
}
diff --git a/epan/dissectors/packet-gmhdr.c b/epan/dissectors/packet-gmhdr.c
index 274c1251f7..622705fd1f 100644
--- a/epan/dissectors/packet-gmhdr.c
+++ b/epan/dissectors/packet-gmhdr.c
@@ -522,9 +522,9 @@ proto_reg_handoff_gmhdr(void)
gmhdr_handle = create_dissector_handle(dissect_gmhdr, proto_gmhdr);
dissector_add_uint("ethertype", ETHERTYPE_GIGAMON, gmhdr_handle);
- heur_dissector_add("eth.trailer", dissect_gmtrailer, proto_gmhdr);
+ heur_dissector_add("eth.trailer", dissect_gmtrailer, "Gigamon Ethernet header", "gmhdr_eth", proto_gmhdr);
- heur_dissector_add("eth.trailer", dissect_gmtimestamp_trailer, proto_gmtrailer);
+ heur_dissector_add("eth.trailer", dissect_gmtimestamp_trailer, "Gigamon Ethernet trailer", "gmtrailer_eth", proto_gmtrailer);
}
/*
diff --git a/epan/dissectors/packet-gvsp.c b/epan/dissectors/packet-gvsp.c
index c3a2a96625..261d7cc095 100644
--- a/epan/dissectors/packet-gvsp.c
+++ b/epan/dissectors/packet-gvsp.c
@@ -1993,7 +1993,7 @@ void proto_reg_handoff_gvsp(void)
if (!initialized) {
gvsp_handle = new_create_dissector_handle((new_dissector_t)dissect_gvsp, proto_gvsp);
dissector_add_for_decode_as("udp.port", gvsp_handle);
- heur_dissector_add("udp", dissect_gvsp_heur, proto_gvsp);
+ heur_dissector_add("udp", dissect_gvsp_heur, "GigE Vision over UDP", "gvsp_udp", proto_gvsp);
initialized = TRUE;
}
heur_dissector_set_enabled("udp", dissect_gvsp_heur, proto_gvsp, gvsp_enable_heuristic_dissection);
diff --git a/epan/dissectors/packet-h1.c b/epan/dissectors/packet-h1.c
index 5b6b5df896..84b3e016f9 100644
--- a/epan/dissectors/packet-h1.c
+++ b/epan/dissectors/packet-h1.c
@@ -303,9 +303,9 @@ proto_register_h1 (void)
void
proto_reg_handoff_h1(void)
{
- heur_dissector_add("cotp", dissect_h1, proto_h1);
- heur_dissector_add("cotp_is", dissect_h1, proto_h1);
- heur_dissector_add("tcp", dissect_h1, proto_h1);
+ heur_dissector_add("cotp", dissect_h1, "Sinec H1 over COTP", "hi_cotp", proto_h1);
+ heur_dissector_add("cotp_is", dissect_h1, "Sinec H1 over COTP (inactive subset)", "hi_cotp_is", proto_h1);
+ heur_dissector_add("tcp", dissect_h1, "Sinec H1 over TCP", "hi_tcp", proto_h1);
data_handle = find_dissector("data");
}
diff --git a/epan/dissectors/packet-h225.c b/epan/dissectors/packet-h225.c
index e7e6fe4915..662796b9a1 100644
--- a/epan/dissectors/packet-h225.c
+++ b/epan/dissectors/packet-h225.c
@@ -7740,7 +7740,6 @@ h225_cleanup_routine(void)
/* free hash-tables for RAS SRT */
for(i=0;i<7;i++) {
g_hash_table_destroy(ras_calls[i]);
- ras_calls[i] = NULL;
}
}
@@ -10923,7 +10922,7 @@ void proto_register_h225(void) {
NULL, HFILL }},
/*--- End of included file: packet-h225-hfarr.c ---*/
-#line 459 "../../asn1/h225/packet-h225-template.c"
+#line 458 "../../asn1/h225/packet-h225-template.c"
};
/* List of subtrees */
@@ -11173,7 +11172,7 @@ void proto_register_h225(void) {
&ett_h225_T_result,
/*--- End of included file: packet-h225-ettarr.c ---*/
-#line 465 "../../asn1/h225/packet-h225-template.c"
+#line 464 "../../asn1/h225/packet-h225-template.c"
};
module_t *h225_module;
int proto_h225_ras;
diff --git a/epan/dissectors/packet-hdcp2.c b/epan/dissectors/packet-hdcp2.c
index 9a17030a3a..72b04d8ba7 100644
--- a/epan/dissectors/packet-hdcp2.c
+++ b/epan/dissectors/packet-hdcp2.c
@@ -318,7 +318,7 @@ proto_reg_handoff_hdcp2(void)
static gboolean prefs_initialized = FALSE;
if (!prefs_initialized) {
- heur_dissector_add ("tcp", dissect_hdcp2, proto_hdcp2);
+ heur_dissector_add ("tcp", dissect_hdcp2, "HDCP2 over TCP", "hdcp2_tcp", proto_hdcp2);
prefs_initialized = TRUE;
}
diff --git a/epan/dissectors/packet-hislip.c b/epan/dissectors/packet-hislip.c
index 25f40007d9..72d71be911 100644
--- a/epan/dissectors/packet-hislip.c
+++ b/epan/dissectors/packet-hislip.c
@@ -1039,7 +1039,7 @@ proto_reg_handoff_hislip(void)
if (!initialized)
{
hislip_handle = new_create_dissector_handle(dissect_hislip, proto_hislip);
- heur_dissector_add("tcp", dissect_hislip_heur, proto_hislip);
+ heur_dissector_add("tcp", dissect_hislip_heur, "HiSLIP over TCP", "hislip_tcp", proto_hislip);
initialized = TRUE;
}
else
diff --git a/epan/dissectors/packet-http.c b/epan/dissectors/packet-http.c
index 78649c2456..48d106dfbc 100644
--- a/epan/dissectors/packet-http.c
+++ b/epan/dissectors/packet-http.c
@@ -3525,7 +3525,7 @@ proto_reg_handoff_message_http(void)
dissector_add_string("media_type", "message/http", message_http_handle);
- heur_dissector_add("tcp", dissect_http_heur_tcp, proto_http);
+ heur_dissector_add("tcp", dissect_http_heur_tcp, "HTTP over TCP", "http_tcp", proto_http);
proto_http2 = proto_get_id_by_filter_name("http2");
diff --git a/epan/dissectors/packet-http2.c b/epan/dissectors/packet-http2.c
index 21cb47adfe..9b7790af2b 100644
--- a/epan/dissectors/packet-http2.c
+++ b/epan/dissectors/packet-http2.c
@@ -1897,8 +1897,8 @@ proto_reg_handoff_http2(void)
http2_handle = new_create_dissector_handle(dissect_http2, proto_http2);
dissector_add_for_decode_as("tcp.port", http2_handle);
- heur_dissector_add("ssl", dissect_http2_heur, proto_http2);
- heur_dissector_add("http", dissect_http2_heur, proto_http2);
+ heur_dissector_add("ssl", dissect_http2_heur, "HTTP2 over SSL", "http2_ssl", proto_http2);
+ heur_dissector_add("http", dissect_http2_heur, "HTTP2 over TCP", "http2_tcp", proto_http2);
stats_tree_register("http2", "http2", "HTTP2", 0, http2_stats_tree_packet, http2_stats_tree_init, NULL);
}
diff --git a/epan/dissectors/packet-icep.c b/epan/dissectors/packet-icep.c
index 0e9bf7a0de..9887a029ca 100644
--- a/epan/dissectors/packet-icep.c
+++ b/epan/dissectors/packet-icep.c
@@ -1340,8 +1340,8 @@ void proto_reg_handoff_icep(void)
icep_tcp_handle = new_create_dissector_handle(dissect_icep_tcp, proto_icep);
icep_udp_handle = new_create_dissector_handle(dissect_icep_udp, proto_icep);
- heur_dissector_add("tcp", dissect_icep_tcp, proto_icep);
- heur_dissector_add("udp", dissect_icep_udp, proto_icep);
+ heur_dissector_add("tcp", dissect_icep_tcp, "ICEP over TCP", "icep_tcp", proto_icep);
+ heur_dissector_add("udp", dissect_icep_udp, "ICEP over UDP", "icep_udp", proto_icep);
icep_prefs_initialized = TRUE;
}
diff --git a/epan/dissectors/packet-ifcp.c b/epan/dissectors/packet-ifcp.c
index 086d0b0f74..0a589be99a 100644
--- a/epan/dissectors/packet-ifcp.c
+++ b/epan/dissectors/packet-ifcp.c
@@ -608,7 +608,7 @@ proto_register_ifcp (void)
void
proto_reg_handoff_ifcp (void)
{
- heur_dissector_add("tcp", dissect_ifcp_heur, proto_ifcp);
+ heur_dissector_add("tcp", dissect_ifcp_heur, "iFCP over TCP", "ifcp_tcp", proto_ifcp);
ifcp_handle = new_create_dissector_handle(dissect_ifcp_handle, proto_ifcp);
dissector_add_for_decode_as("tcp.port", ifcp_handle);
diff --git a/epan/dissectors/packet-infiniband_sdp.c b/epan/dissectors/packet-infiniband_sdp.c
index a275ffe596..0c9eef9dd7 100644
--- a/epan/dissectors/packet-infiniband_sdp.c
+++ b/epan/dissectors/packet-infiniband_sdp.c
@@ -513,8 +513,8 @@ proto_reg_handoff_ib_sdp(void)
static gboolean initialized = FALSE;
if (!initialized) {
- heur_dissector_add("infiniband.payload", dissect_ib_sdp, proto_ib_sdp);
- heur_dissector_add("infiniband.mad.cm.private", dissect_ib_sdp, proto_ib_sdp);
+ heur_dissector_add("infiniband.payload", dissect_ib_sdp, "Infiniband SDP", "sdp_infiniband", proto_ib_sdp);
+ heur_dissector_add("infiniband.mad.cm.private", dissect_ib_sdp, "Infiniband SDP in PrivateData of CM packets", "sdp_ib_private", proto_ib_sdp);
/* allocate enough space in the addresses to store the largest address (a GID) */
manual_addr_data[0] = wmem_alloc(wmem_epan_scope(), GID_SIZE);
diff --git a/epan/dissectors/packet-interlink.c b/epan/dissectors/packet-interlink.c
index b655cdaece..07dc3522e1 100644
--- a/epan/dissectors/packet-interlink.c
+++ b/epan/dissectors/packet-interlink.c
@@ -231,7 +231,7 @@ proto_reg_handoff_interlink(void)
dissector_add_for_decode_as("udp.port", interlink_handle);
/* Add our heuristic packet finder. */
- heur_dissector_add("udp", dissect_interlink_heur, proto_interlink);
+ heur_dissector_add("udp", dissect_interlink_heur, "Interlink over UDP", "interlink_udp", proto_interlink);
data_handle = find_dissector("data");
}
diff --git a/epan/dissectors/packet-ip.c b/epan/dissectors/packet-ip.c
index 1a804df2ad..2155a6fce2 100644
--- a/epan/dissectors/packet-ip.c
+++ b/epan/dissectors/packet-ip.c
@@ -3147,7 +3147,7 @@ proto_reg_handoff_ip(void)
dissector_add_for_decode_as("udp.port", ip_handle);
dissector_add_uint("wtap_encap", WTAP_ENCAP_RAW_IP4, ip_handle);
- heur_dissector_add("tipc", dissect_ip_heur, proto_ip);
+ heur_dissector_add("tipc", dissect_ip_heur, "IP over TIPC", "ip_tipc", proto_ip);
}
/*
diff --git a/epan/dissectors/packet-ipsec-tcp.c b/epan/dissectors/packet-ipsec-tcp.c
index 294db8a883..cd670e2143 100644
--- a/epan/dissectors/packet-ipsec-tcp.c
+++ b/epan/dissectors/packet-ipsec-tcp.c
@@ -248,7 +248,7 @@ proto_reg_handoff_tcpencap(void)
esp_handle = find_dissector("esp");
udp_handle = find_dissector("udp");
- heur_dissector_add("tcp", dissect_tcpencap_heur, proto_tcpencap);
+ heur_dissector_add("tcp", dissect_tcpencap_heur, "TCP Encapsulation of IPsec Packets", "ipsec_tcp", proto_tcpencap);
initialized = TRUE;
}
diff --git a/epan/dissectors/packet-iscsi.c b/epan/dissectors/packet-iscsi.c
index abcda3cd40..9cb54c8e1d 100644
--- a/epan/dissectors/packet-iscsi.c
+++ b/epan/dissectors/packet-iscsi.c
@@ -3167,7 +3167,7 @@ proto_register_iscsi(void)
void
proto_reg_handoff_iscsi(void)
{
- heur_dissector_add("tcp", dissect_iscsi_heur, proto_iscsi);
+ heur_dissector_add("tcp", dissect_iscsi_heur, "iSCSI over TCP", "iscsi_tcp", proto_iscsi);
iscsi_handle = new_create_dissector_handle(dissect_iscsi_handle, proto_iscsi);
dissector_add_for_decode_as("tcp.port", iscsi_handle);
diff --git a/epan/dissectors/packet-iser.c b/epan/dissectors/packet-iser.c
index 9f8f4b70d7..c78a1298d8 100644
--- a/epan/dissectors/packet-iser.c
+++ b/epan/dissectors/packet-iser.c
@@ -397,8 +397,8 @@ proto_reg_handoff_iser(void)
if (!initialized) {
new_create_dissector_handle(dissect_iser, proto_iser);
- heur_dissector_add("infiniband.payload", dissect_iser, proto_iser);
- heur_dissector_add("infiniband.mad.cm.private", dissect_iser, proto_iser);
+ heur_dissector_add("infiniband.payload", dissect_iser, "iSER Infiniband", "iser_infiniband", proto_iser);
+ heur_dissector_add("infiniband.mad.cm.private", dissect_iser, "iSER in PrivateData of CM packets", "iser_ib_private", proto_iser);
/* allocate enough space in the addresses to store the largest address (a GID) */
manual_addr_data[0] = wmem_alloc(wmem_epan_scope(), GID_SIZE);
diff --git a/epan/dissectors/packet-iwarp-mpa.c b/epan/dissectors/packet-iwarp-mpa.c
index 16b6998d83..5182ee9187 100644
--- a/epan/dissectors/packet-iwarp-mpa.c
+++ b/epan/dissectors/packet-iwarp-mpa.c
@@ -979,7 +979,7 @@ proto_reg_handoff_mpa(void)
* MPA does not use any specific TCP port so, when not on a specific
* port, try this dissector whenever there is TCP traffic.
*/
- heur_dissector_add("tcp", dissect_iwarp_mpa, proto_iwarp_mpa);
+ heur_dissector_add("tcp", dissect_iwarp_mpa, "IWARP_MPA over TCP", "iwarp_mpa_tcp", proto_iwarp_mpa);
ddp_rdmap_handle = find_dissector("iwarp_ddp_rdmap");
}
diff --git a/epan/dissectors/packet-ixiatrailer.c b/epan/dissectors/packet-ixiatrailer.c
index 1de43c937e..592a3f8ae5 100644
--- a/epan/dissectors/packet-ixiatrailer.c
+++ b/epan/dissectors/packet-ixiatrailer.c
@@ -200,7 +200,7 @@ void
proto_reg_handoff_ixiatrailer(void)
{
/* Check for Ixia format in the ethernet trailer */
- heur_dissector_add("eth.trailer", dissect_ixiatrailer, proto_ixiatrailer);
+ heur_dissector_add("eth.trailer", dissect_ixiatrailer, "Ixia Trailer", "ixiatrailer_eth", proto_ixiatrailer);
}
/*
diff --git a/epan/dissectors/packet-json.c b/epan/dissectors/packet-json.c
index d17620a186..0e2b087119 100644
--- a/epan/dissectors/packet-json.c
+++ b/epan/dissectors/packet-json.c
@@ -646,8 +646,8 @@ proto_reg_handoff_json(void)
{
dissector_handle_t json_file_handle = new_create_dissector_handle(dissect_json_file, proto_json);
- heur_dissector_add("hpfeeds", dissect_json_heur, proto_json);
- heur_dissector_add("db-lsp", dissect_json_heur, proto_json);
+ heur_dissector_add("hpfeeds", dissect_json_heur, "JSON over HPFEEDS", "json_hpfeeds", proto_json);
+ heur_dissector_add("db-lsp", dissect_json_heur, "JSON over DB-LSP", "json_db_lsp", proto_json);
dissector_add_uint("wtap_encap", WTAP_ENCAP_JSON, json_file_handle);
dissector_add_string("media_type", "application/json", json_handle); /* RFC 4627 */
diff --git a/epan/dissectors/packet-jxta.c b/epan/dissectors/packet-jxta.c
index 4ee41b9336..e4b29b9a12 100644
--- a/epan/dissectors/packet-jxta.c
+++ b/epan/dissectors/packet-jxta.c
@@ -2439,7 +2439,7 @@ void proto_reg_handoff_jxta(void)
if( gUDP_HEUR ) {
if( !udp_register_done ) {
/* g_message( "Registering UDP Heuristic dissector" ); */
- heur_dissector_add("udp", dissect_jxta_UDP_heur, proto_jxta);
+ heur_dissector_add("udp", dissect_jxta_UDP_heur, "JXTA over UDP", "jxta_udp", proto_jxta);
udp_register_done = TRUE;
}
} else {
@@ -2453,7 +2453,7 @@ void proto_reg_handoff_jxta(void)
if( gTCP_HEUR ) {
if( !tcp_register_done ) {
/* g_message( "Registering TCP Heuristic dissector" ); */
- heur_dissector_add("tcp", dissect_jxta_TCP_heur, proto_jxta);
+ heur_dissector_add("tcp", dissect_jxta_TCP_heur, "JXTA over TCP", "jxta_tcp", proto_jxta);
tcp_register_done = TRUE;
}
} else {
@@ -2467,7 +2467,7 @@ void proto_reg_handoff_jxta(void)
if( gSCTP_HEUR ) {
if( !sctp_register_done ) {
/* g_message( "Registering SCTP Heuristic dissector" ); */
- heur_dissector_add("sctp", dissect_jxta_SCTP_heur, proto_jxta);
+ heur_dissector_add("sctp", dissect_jxta_SCTP_heur, "JXTA over SCTP", "jxta_sctp", proto_jxta);
sctp_register_done = TRUE;
}
} else {
diff --git a/epan/dissectors/packet-knxnetip.c b/epan/dissectors/packet-knxnetip.c
index 038f5b822d..b9a69efdbb 100644
--- a/epan/dissectors/packet-knxnetip.c
+++ b/epan/dissectors/packet-knxnetip.c
@@ -1865,8 +1865,8 @@ void proto_register_knxnetip (void) {
void proto_reg_handoff_knxnetip(void) {
/* register as heuristic dissector for both TCP and UDP */
- heur_dissector_add("tcp", dissect_knxnetip_heur, proto_knxnetip);
- heur_dissector_add("udp", dissect_knxnetip_heur, proto_knxnetip);
+ heur_dissector_add("tcp", dissect_knxnetip_heur, "KNXnet/IP over TCP", "knxnetip_tcp", proto_knxnetip);
+ heur_dissector_add("udp", dissect_knxnetip_heur, "KNXnet/IP over UDP", "knxnetip_udp", proto_knxnetip);
}
/*
diff --git a/epan/dissectors/packet-lanforge.c b/epan/dissectors/packet-lanforge.c
index bd02f8ecf3..13316f03b3 100644
--- a/epan/dissectors/packet-lanforge.c
+++ b/epan/dissectors/packet-lanforge.c
@@ -280,8 +280,8 @@ void proto_register_lanforge(void)
void proto_reg_handoff_lanforge(void)
{
/* Register as a heuristic UDP dissector */
- heur_dissector_add("udp", dissect_lanforge, proto_lanforge);
- heur_dissector_add("tcp", dissect_lanforge, proto_lanforge);
+ heur_dissector_add("udp", dissect_lanforge, "LANforge over UDP", "lanforge_udp", proto_lanforge);
+ heur_dissector_add("tcp", dissect_lanforge, "LANforge over TCP", "lanforge_tcp", proto_lanforge);
/* Find data dissector handle */
data_handle = find_dissector("data");
diff --git a/epan/dissectors/packet-lapd.c b/epan/dissectors/packet-lapd.c
index c8d165db36..fdc81315b2 100644
--- a/epan/dissectors/packet-lapd.c
+++ b/epan/dissectors/packet-lapd.c
@@ -48,6 +48,7 @@
#include "packet-l2tp.h"
void proto_register_lapd(void);
+void proto_reg_handoff_lapd(void);
static int proto_lapd = -1;
static int hf_lapd_direction = -1;
@@ -582,8 +583,27 @@ dissect_lapd_full(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gboolean
call_dissector(data_handle,next_tvb, pinfo, tree);
}
-void
-proto_reg_handoff_lapd(void);
+static gboolean
+dissect_udp_lapd(tvbuff_t *tvb, packet_info *pinfo _U_ , proto_tree *tree, void *data _U_)
+{
+ if (pinfo->srcport < 3001 || pinfo->srcport > 3015
+ || pinfo->destport < 3001 || pinfo->destport > 3015
+ || pinfo->destport != pinfo->srcport)
+ return FALSE;
+
+ /*
+ * XXX - check for a valid LAPD address field.
+ */
+
+ /*
+ * OK, check whether the control field looks valid.
+ */
+ if (!check_xdlc_control(tvb, 2, NULL, NULL, FALSE, FALSE))
+ return FALSE;
+
+ dissect_lapd(tvb, pinfo, tree);
+ return TRUE;
+}
void
proto_register_lapd(void)
@@ -743,6 +763,7 @@ proto_reg_handoff_lapd(void)
dissector_add_uint("wtap_encap", WTAP_ENCAP_LINUX_LAPD, lapd_handle);
dissector_add_uint("wtap_encap", WTAP_ENCAP_LAPD, lapd_handle);
dissector_add_uint("l2tp.pw_type", L2TPv3_PROTOCOL_LAPD, lapd_handle);
+ heur_dissector_add("udp", dissect_udp_lapd, "LAPD over UDP", "lapd_udp", proto_lapd);
register_dissector("lapd-bitstream", dissect_lapd_bitstream, proto_lapd);
lapd_bitstream_handle = find_dissector("lapd-bitstream");
diff --git a/epan/dissectors/packet-lbmpdmtcp.c b/epan/dissectors/packet-lbmpdmtcp.c
index 94f3172845..be3bd64bd0 100644
--- a/epan/dissectors/packet-lbmpdmtcp.c
+++ b/epan/dissectors/packet-lbmpdmtcp.c
@@ -440,7 +440,7 @@ void proto_reg_handoff_lbmpdm_tcp(void)
{
lbmpdm_tcp_dissector_handle = create_dissector_handle(dissect_lbmpdm_tcp, lbmpdm_tcp_protocol_handle);
dissector_add_for_decode_as("tcp.port", lbmpdm_tcp_dissector_handle);
- heur_dissector_add("tcp", test_lbmpdm_tcp_packet, lbmpdm_tcp_protocol_handle);
+ heur_dissector_add("tcp", test_lbmpdm_tcp_packet, "LBMPDM over TCP", "lbmpdm_tcp", lbmpdm_tcp_protocol_handle);
}
/* Make sure the port low is <= the port high. If not, don't change them. */
diff --git a/epan/dissectors/packet-lbmr.c b/epan/dissectors/packet-lbmr.c
index 86ad0b3140..21617e3b7d 100644
--- a/epan/dissectors/packet-lbmr.c
+++ b/epan/dissectors/packet-lbmr.c
@@ -6693,7 +6693,7 @@ void proto_reg_handoff_lbmr(void)
{
lbmr_dissector_handle = new_create_dissector_handle(dissect_lbmr, proto_lbmr);
dissector_add_for_decode_as("udp.port", lbmr_dissector_handle);
- heur_dissector_add("udp", test_lbmr_packet, proto_lbmr);
+ heur_dissector_add("udp", test_lbmr_packet, "LBM Topic Resolution over UDP", "lbmr_udp", proto_lbmr);
}
lbmr_mc_incoming_udp_port = global_lbmr_mc_incoming_udp_port;
diff --git a/epan/dissectors/packet-lbtrm.c b/epan/dissectors/packet-lbtrm.c
index 933251299f..343c9b5842 100644
--- a/epan/dissectors/packet-lbtrm.c
+++ b/epan/dissectors/packet-lbtrm.c
@@ -1874,7 +1874,7 @@ void proto_reg_handoff_lbtrm(void)
{
lbtrm_dissector_handle = new_create_dissector_handle(dissect_lbtrm, proto_lbtrm);
dissector_add_for_decode_as("udp.port", lbtrm_dissector_handle);
- heur_dissector_add("udp", test_lbtrm_packet, proto_lbtrm);
+ heur_dissector_add("udp", test_lbtrm_packet, "LBT Reliable Multicast over UDP", "lbtrm_udp", proto_lbtrm);
lbtrm_tap_handle = register_tap("lbm_lbtrm");
}
diff --git a/epan/dissectors/packet-lbtru.c b/epan/dissectors/packet-lbtru.c
index ff6640b796..d99399c5f9 100644
--- a/epan/dissectors/packet-lbtru.c
+++ b/epan/dissectors/packet-lbtru.c
@@ -2005,7 +2005,7 @@ void proto_reg_handoff_lbtru(void)
{
lbtru_dissector_handle = new_create_dissector_handle(dissect_lbtru, proto_lbtru);
dissector_add_for_decode_as("udp.port", lbtru_dissector_handle);
- heur_dissector_add("udp", test_lbtru_packet, proto_lbtru);
+ heur_dissector_add("udp", test_lbtru_packet, "LBT Reliable Unicast over UDP", "lbtru_udp", proto_lbtru);
lbtru_tap_handle = register_tap("lbm_lbtru");
}
diff --git a/epan/dissectors/packet-lbttcp.c b/epan/dissectors/packet-lbttcp.c
index 6ba8a0532b..8f5c4ba9ce 100644
--- a/epan/dissectors/packet-lbttcp.c
+++ b/epan/dissectors/packet-lbttcp.c
@@ -803,7 +803,7 @@ void proto_reg_handoff_lbttcp(void)
{
lbttcp_dissector_handle = new_create_dissector_handle(dissect_lbttcp, proto_lbttcp);
dissector_add_for_decode_as("tcp.port", lbttcp_dissector_handle);
- heur_dissector_add("tcp", test_lbttcp_packet, proto_lbttcp);
+ heur_dissector_add("tcp", test_lbttcp_packet, "LBT over TCP", "lbttcp_tcp", proto_lbttcp);
}
/* Make sure the source port low is <= the source port high. If not, don't change them. */
diff --git a/epan/dissectors/packet-lwm.c b/epan/dissectors/packet-lwm.c
index 8bde495946..24163c2b21 100644
--- a/epan/dissectors/packet-lwm.c
+++ b/epan/dissectors/packet-lwm.c
@@ -811,7 +811,7 @@ void proto_reg_handoff_lwm(void)
/* Register our dissector with IEEE 802.15.4 */
dissector_add_for_decode_as(IEEE802154_PROTOABBREV_WPAN_PANID, find_dissector("lwm"));
- heur_dissector_add(IEEE802154_PROTOABBREV_WPAN, dissect_lwm_heur, proto_lwm);
+ heur_dissector_add(IEEE802154_PROTOABBREV_WPAN, dissect_lwm_heur, "Lightweight Mesh over IEEE 802.15.4", "lwm_wlan", proto_lwm);
} /* proto_reg_handoff_lwm */
diff --git a/epan/dissectors/packet-mac-lte.c b/epan/dissectors/packet-mac-lte.c
index cecf827fb1..26531dcb37 100644
--- a/epan/dissectors/packet-mac-lte.c
+++ b/epan/dissectors/packet-mac-lte.c
@@ -7611,7 +7611,7 @@ void proto_register_mac_lte(void)
void proto_reg_handoff_mac_lte(void)
{
/* Add as a heuristic UDP dissector */
- heur_dissector_add("udp", dissect_mac_lte_heur, proto_mac_lte);
+ heur_dissector_add("udp", dissect_mac_lte_heur, "MAC-LTE over UDP", "mac_lte_udp", proto_mac_lte);
/* Look up RLC dissector handle once and for all */
rlc_lte_handle = find_dissector("rlc-lte");
diff --git a/epan/dissectors/packet-mbim.c b/epan/dissectors/packet-mbim.c
index 713ab28956..3e062fe7fa 100644
--- a/epan/dissectors/packet-mbim.c
+++ b/epan/dissectors/packet-mbim.c
@@ -8034,7 +8034,7 @@ proto_reg_handoff_mbim(void)
eth_fcs_handle = find_dissector("eth_withfcs");
ip_handle = find_dissector("ip");
data_handle = find_dissector("data");
- heur_dissector_add("usb.bulk", dissect_mbim_bulk_heur, proto_mbim);
+ heur_dissector_add("usb.bulk", dissect_mbim_bulk_heur, "MBIM USB bulk endpoint", "mbim_usb_bulk", proto_mbim);
dissector_add_for_decode_as("usb.device", mbim_decode_as_handle);
dissector_add_for_decode_as("usb.product", mbim_decode_as_handle);
dissector_add_for_decode_as("usb.protocol", mbim_decode_as_handle);
diff --git a/epan/dissectors/packet-mim.c b/epan/dissectors/packet-mim.c
index 474fd1af39..684f2b1cc1 100644
--- a/epan/dissectors/packet-mim.c
+++ b/epan/dissectors/packet-mim.c
@@ -391,7 +391,7 @@ proto_reg_handoff_fabricpath(void)
* get outer source and destination MAC
* before the standard ethernet dissector
*/
- heur_dissector_add ("eth", dissect_fp_heur, proto_fp);
+ heur_dissector_add ("eth", dissect_fp_heur, "Cisco FabricPath over Ethernet", "fp_eth", proto_fp);
eth_dissector = find_dissector( "eth" );
prefs_initialized = TRUE;
}
diff --git a/epan/dissectors/packet-miop.c b/epan/dissectors/packet-miop.c
index 0c35fab6cb..cb340b58ac 100644
--- a/epan/dissectors/packet-miop.c
+++ b/epan/dissectors/packet-miop.c
@@ -314,7 +314,7 @@ void proto_reg_handoff_miop (void) {
miop_handle = find_dissector("miop");
dissector_add_for_decode_as("udp.port", miop_handle);
- heur_dissector_add("udp", dissect_miop_heur, proto_miop);
+ heur_dissector_add("udp", dissect_miop_heur, "MIOP over UDP", "miop_udp", proto_miop);
}
diff --git a/epan/dissectors/packet-mms.c b/epan/dissectors/packet-mms.c
index c986a6ca5b..b49080f46c 100644
--- a/epan/dissectors/packet-mms.c
+++ b/epan/dissectors/packet-mms.c
@@ -10049,7 +10049,7 @@ dissect_mms_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, voi
void proto_reg_handoff_mms(void) {
register_ber_oid_dissector("1.0.9506.2.3", dissect_mms, proto_mms,"MMS");
register_ber_oid_dissector("1.0.9506.2.1", dissect_mms, proto_mms,"mms-abstract-syntax-version1(1)");
- heur_dissector_add("cotp", dissect_mms_heur, proto_mms);
- heur_dissector_add("cotp_is", dissect_mms_heur, proto_mms);
+ heur_dissector_add("cotp", dissect_mms_heur, "MMS over COTP", "mms_cotp", proto_mms);
+ heur_dissector_add("cotp_is", dissect_mms_heur, "MMS over COTP (inactive subset)", "mms_cotp_is", proto_mms);
}
diff --git a/epan/dissectors/packet-mmse.c b/epan/dissectors/packet-mmse.c
index 16fb6087e8..a638bb7816 100644
--- a/epan/dissectors/packet-mmse.c
+++ b/epan/dissectors/packet-mmse.c
@@ -1664,7 +1664,7 @@ proto_reg_handoff_mmse(void)
dissector_handle_t mmse_standalone_handle;
dissector_handle_t mmse_encapsulated_handle;
- heur_dissector_add("wsp", dissect_mmse_heur, proto_mmse);
+ heur_dissector_add("wsp", dissect_mmse_heur, "MMS Message Encapsulation over WSP", "mmse_wsp", proto_mmse);
mmse_standalone_handle = create_dissector_handle(
dissect_mmse_standalone, proto_mmse);
mmse_encapsulated_handle = create_dissector_handle(
diff --git a/epan/dissectors/packet-mndp.c b/epan/dissectors/packet-mndp.c
index 1830ed8823..ecae863f3c 100644
--- a/epan/dissectors/packet-mndp.c
+++ b/epan/dissectors/packet-mndp.c
@@ -362,7 +362,7 @@ proto_reg_handoff_mndp(void)
mndp_handle = new_create_dissector_handle(dissect_mndp_static, proto_mndp);
dissector_add_uint("udp.port", PORT_MNDP, mndp_handle);
- /* heur_dissector_add("udp", dissect_mndp_heur, proto_mndp); */
+ /* heur_dissector_add("udp", dissect_mndp_heur, "MNDP over UDP", "mndp_udp", proto_mndp); */
}
/*
diff --git a/epan/dissectors/packet-mojito.c b/epan/dissectors/packet-mojito.c
index 12af54b6f4..c795df74ad 100644
--- a/epan/dissectors/packet-mojito.c
+++ b/epan/dissectors/packet-mojito.c
@@ -1045,7 +1045,7 @@ proto_reg_handoff_mojito(void)
if (!initialized) {
mojito_handle = new_create_dissector_handle(dissect_mojito, proto_mojito);
- heur_dissector_add("udp", dissect_mojito_heuristic, proto_mojito);
+ heur_dissector_add("udp", dissect_mojito_heuristic, "Mojito over UDP", "mojito_udp", proto_mojito);
initialized = TRUE;
}
diff --git a/epan/dissectors/packet-mp2t.c b/epan/dissectors/packet-mp2t.c
index 13eac48c64..bad8e4866b 100644
--- a/epan/dissectors/packet-mp2t.c
+++ b/epan/dissectors/packet-mp2t.c
@@ -1538,11 +1538,11 @@ proto_register_mp2t(void)
void
proto_reg_handoff_mp2t(void)
{
- heur_dissector_add("udp", heur_dissect_mp2t, proto_mp2t);
+ heur_dissector_add("udp", heur_dissect_mp2t, "MP2T over UDP", "mp2t_udp", proto_mp2t);
dissector_add_uint("rtp.pt", PT_MP2T, mp2t_handle);
dissector_add_for_decode_as("udp.port", mp2t_handle);
- heur_dissector_add("usb.bulk", heur_dissect_mp2t, proto_mp2t);
+ heur_dissector_add("usb.bulk", heur_dissect_mp2t, "MP2T USB bulk endpoint", "mp2t_usb_bulk", proto_mp2t);
dissector_add_uint("wtap_encap", WTAP_ENCAP_MPEG_2_TS, mp2t_handle);
dissector_add_uint("l2tp.pw_type", L2TPv3_PROTOCOL_DOCSIS_DMPT, mp2t_handle);
diff --git a/epan/dissectors/packet-mpeg-audio.c b/epan/dissectors/packet-mpeg-audio.c
index 83efa901f4..12ae35e326 100644
--- a/epan/dissectors/packet-mpeg-audio.c
+++ b/epan/dissectors/packet-mpeg-audio.c
@@ -688,5 +688,5 @@ proto_register_mpeg_audio(void)
void
proto_reg_handoff_mpeg_audio(void)
{
- heur_dissector_add("mpeg", dissect_mpeg_audio, proto_mpeg_audio);
+ heur_dissector_add("mpeg", dissect_mpeg_audio, "MPEG Audio", "mpeg_audio", proto_mpeg_audio);
}
diff --git a/epan/dissectors/packet-mpeg-pes.c b/epan/dissectors/packet-mpeg-pes.c
index e1667c92dc..d6d7cfd0a3 100644
--- a/epan/dissectors/packet-mpeg-pes.c
+++ b/epan/dissectors/packet-mpeg-pes.c
@@ -1331,5 +1331,5 @@ proto_reg_handoff_mpeg_pes(void)
dissector_handle_t mpeg_handle = find_dissector("mpeg");
dissector_add_uint("wtap_encap", WTAP_ENCAP_MPEG, mpeg_handle);
- heur_dissector_add("mpeg", dissect_mpeg_pes, proto_mpeg_pes);
+ heur_dissector_add("mpeg", dissect_mpeg_pes, "MPEG PES", "mpeg_pes", proto_mpeg_pes);
}
diff --git a/epan/dissectors/packet-mq-pcf.c b/epan/dissectors/packet-mq-pcf.c
index 14953c058a..ae0da66f53 100644
--- a/epan/dissectors/packet-mq-pcf.c
+++ b/epan/dissectors/packet-mq-pcf.c
@@ -708,7 +708,7 @@ void proto_register_mqpcf(void)
void proto_reg_handoff_mqpcf(void)
{
- heur_dissector_add("mq", dissect_mqpcf_heur, proto_mqpcf);
+ heur_dissector_add("mq", dissect_mqpcf_heur, "WebSphere MQ PCF", "mqpcf_mq", proto_mqpcf);
}
/*
diff --git a/epan/dissectors/packet-mq.c b/epan/dissectors/packet-mq.c
index 1d843151ad..781b20b08b 100644
--- a/epan/dissectors/packet-mq.c
+++ b/epan/dissectors/packet-mq.c
@@ -4783,9 +4783,9 @@ void proto_reg_handoff_mq(void)
mq_spx_handle = create_dissector_handle(dissect_mq_spx, proto_mq);
dissector_add_for_decode_as("tcp.port", mq_tcp_handle);
- heur_dissector_add("tcp", dissect_mq_heur_tcp, proto_mq);
- heur_dissector_add("netbios", dissect_mq_heur_netbios, proto_mq);
- heur_dissector_add("http", dissect_mq_heur_http, proto_mq);
+ heur_dissector_add("tcp", dissect_mq_heur_tcp, "WebSphere MQ over TCP", "mq_tcp", proto_mq);
+ heur_dissector_add("netbios", dissect_mq_heur_netbios, "WebSphere MQ over Netbios", "mq_netbios", proto_mq);
+ heur_dissector_add("http", dissect_mq_heur_http, "WebSphere MQ over HTTP", "mq_http", proto_mq);
dissector_add_uint("spx.socket", MQ_SOCKET_SPX, mq_spx_handle);
data_handle = find_dissector("data");
mqpcf_handle = find_dissector("mqpcf");
diff --git a/epan/dissectors/packet-msrp.c b/epan/dissectors/packet-msrp.c
index d6e4f21ed6..bf8723f52b 100644
--- a/epan/dissectors/packet-msrp.c
+++ b/epan/dissectors/packet-msrp.c
@@ -922,7 +922,7 @@ proto_reg_handoff_msrp(void)
{
msrp_handle = find_dissector("msrp");
dissector_add_for_decode_as("tcp.port", msrp_handle); /* for "decode-as" */
- heur_dissector_add("tcp", dissect_msrp_heur, proto_msrp);
+ heur_dissector_add("tcp", dissect_msrp_heur, "MSRP over TCP", "msrp_tcp", proto_msrp);
dissector_add_uint("tcp.port", TCP_PORT_MSRP, msrp_handle);
media_type_dissector_table = find_dissector_table("media_type");
}
diff --git a/epan/dissectors/packet-nbd.c b/epan/dissectors/packet-nbd.c
index 38c66e89fe..185a572ba0 100644
--- a/epan/dissectors/packet-nbd.c
+++ b/epan/dissectors/packet-nbd.c
@@ -473,7 +473,7 @@ void proto_register_nbd(void)
void
proto_reg_handoff_nbd(void)
{
- heur_dissector_add("tcp", dissect_nbd_tcp_heur, proto_nbd);
+ heur_dissector_add("tcp", dissect_nbd_tcp_heur, "NBD over TCP", "nbd_tcp", proto_nbd);
}
/*
diff --git a/epan/dissectors/packet-ndmp.c b/epan/dissectors/packet-ndmp.c
index 860670a45b..f4690a5b9d 100644
--- a/epan/dissectors/packet-ndmp.c
+++ b/epan/dissectors/packet-ndmp.c
@@ -4264,7 +4264,7 @@ proto_reg_handoff_ndmp(void)
{
ndmp_handle = new_create_dissector_handle(dissect_ndmp, proto_ndmp);
dissector_add_uint("tcp.port",TCP_PORT_NDMP, ndmp_handle);
- heur_dissector_add("tcp", dissect_ndmp_heur, proto_ndmp);
+ heur_dissector_add("tcp", dissect_ndmp_heur, "NDMP over TCP", "ndmp_tcp", proto_ndmp);
}
/*
diff --git a/epan/dissectors/packet-ntlmssp.c b/epan/dissectors/packet-ntlmssp.c
index 73b28231c1..fb4fb8bfda 100644
--- a/epan/dissectors/packet-ntlmssp.c
+++ b/epan/dissectors/packet-ntlmssp.c
@@ -3319,7 +3319,7 @@ proto_reg_handoff_ntlmssp(void)
&ntlmssp_seal_fns);
ntlmssp_tap = register_tap("ntlmssp");
- heur_dissector_add("credssp", dissect_ntlmssp_heur, proto_ntlmssp);
+ heur_dissector_add("credssp", dissect_ntlmssp_heur, "NTLMSSP over CredSSP", "ntlmssp_credssp", proto_ntlmssp);
}
diff --git a/epan/dissectors/packet-openflow.c b/epan/dissectors/packet-openflow.c
index ab0ddf92ee..5089b477a8 100644
--- a/epan/dissectors/packet-openflow.c
+++ b/epan/dissectors/packet-openflow.c
@@ -202,7 +202,7 @@ proto_reg_handoff_openflow(void)
if (!initialized) {
openflow_handle = new_create_dissector_handle(dissect_openflow, proto_openflow);
- heur_dissector_add("tcp", dissect_openflow_heur, proto_openflow);
+ heur_dissector_add("tcp", dissect_openflow_heur, "OpenFlow over TCP", "openflow_tcp", proto_openflow);
initialized = TRUE;
} else {
dissector_delete_uint("tcp.port", currentPort, openflow_handle);
diff --git a/epan/dissectors/packet-opensafety.c b/epan/dissectors/packet-opensafety.c
index f24ffc4dc6..c5404e5db7 100644
--- a/epan/dissectors/packet-opensafety.c
+++ b/epan/dissectors/packet-opensafety.c
@@ -2805,13 +2805,13 @@ proto_reg_handoff_opensafety(void)
data_dissector = find_dissector ( "data" );
/* EPL & SercosIII dissector registration */
- heur_dissector_add("epl_data", dissect_opensafety_epl, proto_opensafety);
- heur_dissector_add("sercosiii", dissect_opensafety_siii, proto_opensafety);
+ heur_dissector_add("epl_data", dissect_opensafety_epl, "openSAFETY over EPL", "opensafety_epl_data", proto_opensafety);
+ heur_dissector_add("sercosiii", dissect_opensafety_siii, "openSAFETY over SercosIII", "opensafety_sercosiii", proto_opensafety);
/* If an openSAFETY UDP transport filter is present, add to its
* heuristic filter list. Otherwise ignore the transport */
if ( find_dissector("opensafety_udp") != NULL )
- heur_dissector_add("opensafety_udp", dissect_opensafety_udpdata, proto_opensafety);
+ heur_dissector_add("opensafety_udp", dissect_opensafety_udpdata, "openSAFETY over UDP", "opensafety_udp", proto_opensafety);
/* Modbus TCP dissector registration */
dissector_add_string("modbus.data", "data", find_dissector("opensafety_mbtcp"));
@@ -2822,7 +2822,7 @@ proto_reg_handoff_opensafety(void)
*/
if ( find_dissector("pn_io") != NULL )
{
- heur_dissector_add("pn_io", dissect_opensafety_pn_io, proto_opensafety);
+ heur_dissector_add("pn_io", dissect_opensafety_pn_io, "openSAFETY over Profinet", "opensafety_pn_io", proto_opensafety);
}
else
{
diff --git a/epan/dissectors/packet-openwire.c b/epan/dissectors/packet-openwire.c
index 285391677c..0a413946ea 100644
--- a/epan/dissectors/packet-openwire.c
+++ b/epan/dissectors/packet-openwire.c
@@ -2005,7 +2005,7 @@ proto_register_openwire(void)
void
proto_reg_handoff_openwire(void)
{
- heur_dissector_add("tcp", dissect_openwire_heur, proto_openwire);
+ heur_dissector_add("tcp", dissect_openwire_heur, "OpenWire over TCP", "njack_tcp", proto_openwire);
openwire_tcp_handle = new_create_dissector_handle(dissect_openwire_tcp, proto_openwire);
dissector_add_for_decode_as("tcp.port", openwire_tcp_handle);
}
diff --git a/epan/dissectors/packet-osc.c b/epan/dissectors/packet-osc.c
index 3ac7be077b..3b67fb4612 100644
--- a/epan/dissectors/packet-osc.c
+++ b/epan/dissectors/packet-osc.c
@@ -907,7 +907,7 @@ proto_reg_handoff_osc(void)
/* (The UDP heuristic is a bit expensive */
osc_udp_handle = new_create_dissector_handle(dissect_osc_udp, proto_osc);
/* register as heuristic dissector for UDP connections */
- heur_dissector_add("udp", dissect_osc_heur_udp, proto_osc);
+ heur_dissector_add("udp", dissect_osc_heur_udp, "Open Sound Control over UDP", "osc_udp", proto_osc);
initialized = TRUE;
}
diff --git a/epan/dissectors/packet-ouch.c b/epan/dissectors/packet-ouch.c
index 2ed50e59ad..677e3ffc5b 100644
--- a/epan/dissectors/packet-ouch.c
+++ b/epan/dissectors/packet-ouch.c
@@ -1596,7 +1596,7 @@ void
proto_reg_handoff_ouch(void)
{
ouch_handle = new_create_dissector_handle(dissect_ouch, proto_ouch);
- heur_dissector_add("soupbintcp", dissect_ouch_heur, proto_ouch);
+ heur_dissector_add("soupbintcp", dissect_ouch_heur, "OUCH over SoupBinTCP", "ouch_soupbintcp", proto_ouch);
}
diff --git a/epan/dissectors/packet-paltalk.c b/epan/dissectors/packet-paltalk.c
index f9faa2fe3b..2587eb1eb9 100644
--- a/epan/dissectors/packet-paltalk.c
+++ b/epan/dissectors/packet-paltalk.c
@@ -131,7 +131,7 @@ proto_register_paltalk(void)
void
proto_reg_handoff_paltalk(void)
{
- heur_dissector_add("tcp", dissect_paltalk, proto_paltalk);
+ heur_dissector_add("tcp", dissect_paltalk, "Paltalk over TCP", "paltalk_tcp", proto_paltalk);
}
/*
diff --git a/epan/dissectors/packet-pana.c b/epan/dissectors/packet-pana.c
index 4a755be9f2..ac137a84cd 100644
--- a/epan/dissectors/packet-pana.c
+++ b/epan/dissectors/packet-pana.c
@@ -887,7 +887,7 @@ proto_reg_handoff_pana(void)
dissector_handle_t pana_handle;
- heur_dissector_add("udp", dissect_pana, proto_pana);
+ heur_dissector_add("udp", dissect_pana, "PANA over UDP", "pana_udp", proto_pana);
pana_handle = new_create_dissector_handle(dissect_pana, proto_pana);
dissector_add_for_decode_as("udp.port", pana_handle);
diff --git a/epan/dissectors/packet-pathport.c b/epan/dissectors/packet-pathport.c
index 45b3c58d95..edb75955ce 100644
--- a/epan/dissectors/packet-pathport.c
+++ b/epan/dissectors/packet-pathport.c
@@ -707,7 +707,7 @@ proto_reg_handoff_pathport(void)
static dissector_handle_t pathport_handle;
pathport_handle = new_create_dissector_handle(dissect_pathport, proto_pathport);
- heur_dissector_add("udp", dissect_pathport_heur, proto_pathport);
+ heur_dissector_add("udp", dissect_pathport_heur, "Pathport over UDP", "pathport_udp", proto_pathport);
dissector_add_uint("udp.port", PATHPORT_UDP_PORT, pathport_handle);
}
diff --git a/epan/dissectors/packet-pdcp-lte.c b/epan/dissectors/packet-pdcp-lte.c
index 85b1f9ddac..d2a6733d90 100644
--- a/epan/dissectors/packet-pdcp-lte.c
+++ b/epan/dissectors/packet-pdcp-lte.c
@@ -2699,7 +2699,7 @@ void proto_register_pdcp(void)
void proto_reg_handoff_pdcp_lte(void)
{
/* Add as a heuristic UDP dissector */
- heur_dissector_add("udp", dissect_pdcp_lte_heur, proto_pdcp_lte);
+ heur_dissector_add("udp", dissect_pdcp_lte_heur, "PDCP-LTE over UDP", "pdcp_lte_udp", proto_pdcp_lte);
ip_handle = find_dissector("ip");
ipv6_handle = find_dissector("ipv6");
diff --git a/epan/dissectors/packet-peekremote.c b/epan/dissectors/packet-peekremote.c
index a8711df8c3..6b8777391b 100644
--- a/epan/dissectors/packet-peekremote.c
+++ b/epan/dissectors/packet-peekremote.c
@@ -693,7 +693,7 @@ proto_reg_handoff_peekremote(void)
peekremote_handle = new_create_dissector_handle(dissect_peekremote_legacy, proto_peekremote);
dissector_add_uint("udp.port", 5000, peekremote_handle);
- heur_dissector_add("udp", dissect_peekremote_new, proto_peekremote);
+ heur_dissector_add("udp", dissect_peekremote_new, "OmniPeek Remote over UDP", "peekremote_udp", proto_peekremote);
}
/*
diff --git a/epan/dissectors/packet-pktgen.c b/epan/dissectors/packet-pktgen.c
index c747370ed3..6db7b27d5c 100644
--- a/epan/dissectors/packet-pktgen.c
+++ b/epan/dissectors/packet-pktgen.c
@@ -187,7 +187,7 @@ void proto_register_pktgen(void)
void proto_reg_handoff_pktgen(void)
{
/* Register as a heuristic UDP dissector */
- heur_dissector_add("udp", dissect_pktgen, proto_pktgen);
+ heur_dissector_add("udp", dissect_pktgen, "Linux Kernel Packet Generator over UDP", "pktgen_udp", proto_pktgen);
/* Find data dissector handle */
data_handle = find_dissector("data");
diff --git a/epan/dissectors/packet-ppp.c b/epan/dissectors/packet-ppp.c
index bae54ceba5..82d02a8f80 100644
--- a/epan/dissectors/packet-ppp.c
+++ b/epan/dissectors/packet-ppp.c
@@ -5110,7 +5110,7 @@ proto_reg_handoff_ppp_raw_hdlc(void)
ppp_raw_hdlc_handle);
dissector_add_uint("gre.proto", ETHERTYPE_3GPP2, ppp_raw_hdlc_handle);
- heur_dissector_add("usb.bulk", dissect_ppp_usb, proto_ppp);
+ heur_dissector_add("usb.bulk", dissect_ppp_usb, "PPP USB bulk endpoint", "ppp_usb_bulk", proto_ppp);
}
/*
diff --git a/epan/dissectors/packet-pvfs2.c b/epan/dissectors/packet-pvfs2.c
index c4c435c57f..eb6fdee337 100644
--- a/epan/dissectors/packet-pvfs2.c
+++ b/epan/dissectors/packet-pvfs2.c
@@ -3632,7 +3632,7 @@ proto_reg_handoff_pvfs(void)
pvfs_handle = new_create_dissector_handle(dissect_pvfs_heur, proto_pvfs);
dissector_add_uint("tcp.port", TCP_PORT_PVFS2, pvfs_handle);
- heur_dissector_add("tcp", dissect_pvfs_heur, proto_pvfs);
+ heur_dissector_add("tcp", dissect_pvfs_heur, "PVFS over TCP", "pvfs_tcp", proto_pvfs);
}
/*
diff --git a/epan/dissectors/packet-q931.c b/epan/dissectors/packet-q931.c
index 6bbc054ed4..47074db6fd 100644
--- a/epan/dissectors/packet-q931.c
+++ b/epan/dissectors/packet-q931.c
@@ -3916,7 +3916,7 @@ proto_reg_handoff_q931(void)
/*
* For H.323.
*/
- heur_dissector_add("tcp", dissect_q931_tpkt_heur, proto_q931);
+ heur_dissector_add("tcp", dissect_q931_tpkt_heur, "Q.931 over TPKT over TCP", "q931_tcp", proto_q931);
}
static void reset_q931_packet_info(q931_packet_info *pi)
diff --git a/epan/dissectors/packet-ranap.c b/epan/dissectors/packet-ranap.c
index d0582516f8..e69366ade5 100644
--- a/epan/dissectors/packet-ranap.c
+++ b/epan/dissectors/packet-ranap.c
@@ -16867,8 +16867,8 @@ proto_reg_handoff_ranap(void)
* Perhaps we want a preference whether the heuristic dissector
* is or isn't enabled
*/
- heur_dissector_add("sccp", dissect_sccp_ranap_heur, proto_ranap);
- heur_dissector_add("sua", dissect_sccp_ranap_heur, proto_ranap);
+ heur_dissector_add("sccp", dissect_sccp_ranap_heur, "RANAP over SCCP", "ranap_sccp", proto_ranap);
+ heur_dissector_add("sua", dissect_sccp_ranap_heur, "RANAP over SUA", "ranap_sua", proto_ranap);
}
diff --git a/epan/dissectors/packet-redbackli.c b/epan/dissectors/packet-redbackli.c
index eb8ceb09b1..ddb6ae5163 100644
--- a/epan/dissectors/packet-redbackli.c
+++ b/epan/dissectors/packet-redbackli.c
@@ -291,7 +291,7 @@ void proto_reg_handoff_redbackli(void) {
redbackli_handle = find_dissector("redbackli");
dissector_add_for_decode_as("udp.port", redbackli_handle);
- heur_dissector_add("udp", redbackli_dissect_heur, proto_redbackli);
+ heur_dissector_add("udp", redbackli_dissect_heur, "Redback Lawful Intercept over UDP", "redbackli_udp", proto_redbackli);
}
diff --git a/epan/dissectors/packet-reload-framing.c b/epan/dissectors/packet-reload-framing.c
index d2f6bbe67b..b7a7883358 100644
--- a/epan/dissectors/packet-reload-framing.c
+++ b/epan/dissectors/packet-reload-framing.c
@@ -599,9 +599,9 @@ proto_reg_handoff_reload_framing(void)
dissector_add_uint("tcp.port", TCP_PORT_RELOAD, reload_framing_tcp_handle);
dissector_add_uint("udp.port", UDP_PORT_RELOAD, reload_framing_udp_handle);
- heur_dissector_add("udp", dissect_reload_framing_heur, proto_reload_framing);
- heur_dissector_add("tcp", dissect_reload_framing_heur, proto_reload_framing);
- heur_dissector_add("dtls", dissect_reload_framing_heur_dtls, proto_reload_framing);
+ heur_dissector_add("udp", dissect_reload_framing_heur, "RELOAD Framing over UDP", "reload_framing_udp", proto_reload_framing);
+ heur_dissector_add("tcp", dissect_reload_framing_heur, "RELOAD Framing over TCP", "reload_framing_tcp", proto_reload_framing);
+ heur_dissector_add("dtls", dissect_reload_framing_heur_dtls, "RELOAD Framing over DTLS", "reload_framing_dtls", proto_reload_framing);
exported_pdu_tap = find_tap_id(EXPORT_PDU_TAP_NAME_LAYER_7);
}
diff --git a/epan/dissectors/packet-reload.c b/epan/dissectors/packet-reload.c
index 6eea418413..a8cd81de45 100644
--- a/epan/dissectors/packet-reload.c
+++ b/epan/dissectors/packet-reload.c
@@ -5947,8 +5947,8 @@ proto_reg_handoff_reload(void)
data_handle = find_dissector("data");
xml_handle = find_dissector("xml");
- heur_dissector_add("udp", dissect_reload_heur, proto_reload);
- heur_dissector_add("tcp", dissect_reload_heur, proto_reload);
+ heur_dissector_add("udp", dissect_reload_heur, "RELOAD over UDP", "reload_udp", proto_reload);
+ heur_dissector_add("tcp", dissect_reload_heur, "RELOAD over TCP", "reload_tcp", proto_reload);
}
/*
diff --git a/epan/dissectors/packet-rlc-lte.c b/epan/dissectors/packet-rlc-lte.c
index e56713c85f..3071ff347f 100644
--- a/epan/dissectors/packet-rlc-lte.c
+++ b/epan/dissectors/packet-rlc-lte.c
@@ -3606,7 +3606,7 @@ void proto_register_rlc_lte(void)
void proto_reg_handoff_rlc_lte(void)
{
/* Add as a heuristic UDP dissector */
- heur_dissector_add("udp", dissect_rlc_lte_heur, proto_rlc_lte);
+ heur_dissector_add("udp", dissect_rlc_lte_heur, "RLC-LTE over UDP", "rlc_lte_udp", proto_rlc_lte);
pdcp_lte_handle = find_dissector("pdcp-lte");
ip_handle = find_dissector("ip");
diff --git a/epan/dissectors/packet-rlc.c b/epan/dissectors/packet-rlc.c
index c9e1211aad..741623a17e 100644
--- a/epan/dissectors/packet-rlc.c
+++ b/epan/dissectors/packet-rlc.c
@@ -3003,7 +3003,7 @@ proto_reg_handoff_rlc(void)
ip_handle = find_dissector("ip");
bmc_handle = find_dissector("bmc");
/* Add as a heuristic UDP dissector */
- heur_dissector_add("udp", dissect_rlc_heur, proto_rlc);
+ heur_dissector_add("udp", dissect_rlc_heur, "RLC over UDP", "rlc_udp", proto_rlc);
}
/*
diff --git a/epan/dissectors/packet-rlm.c b/epan/dissectors/packet-rlm.c
index b23800449a..7f86a3c667 100644
--- a/epan/dissectors/packet-rlm.c
+++ b/epan/dissectors/packet-rlm.c
@@ -48,7 +48,6 @@
#include "config.h"
#include <epan/packet.h>
-#include <epan/xdlc.h>
void proto_register_rlm(void);
void proto_reg_handoff_rlm(void);
@@ -76,39 +75,6 @@ static gint ett_rlm = -1;
#define RLM_ECHO_REPLY 6
/* #define ??? ?? */
-
-/*
- Maybe this isn't the best place for it, but RLM goes hand in hand
- with Q.931 traffic on a higher port.
-*/
-static dissector_handle_t lapd_handle;
-
-static gboolean
-dissect_udp_lapd(tvbuff_t *tvb, packet_info *pinfo _U_ , proto_tree *tree, void *data _U_)
-{
- if (pinfo->srcport < 3001 || pinfo->srcport > 3015
- || pinfo->destport < 3001 || pinfo->destport > 3015
- || pinfo->destport != pinfo->srcport)
- return FALSE;
-
- /*
- * XXX - check for a valid LAPD address field.
- */
-
- /*
- * OK, check whether the control field looks valid.
- */
- if (!check_xdlc_control(tvb, 2, NULL, NULL, FALSE, FALSE))
- return FALSE;
-
- /*
- * Loooks OK - call the LAPD dissector.
- */
- call_dissector(lapd_handle, tvb, pinfo, tree);
- return TRUE;
-}
-
-
/* Code to actually dissect the packets */
static gboolean
dissect_rlm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
@@ -185,13 +151,7 @@ dissect_rlm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
void
proto_reg_handoff_rlm(void)
{
- /*
- * Find a handle for the LAPD dissector.
- */
- lapd_handle = find_dissector("lapd");
-
- heur_dissector_add("udp", dissect_rlm, proto_rlm);
- heur_dissector_add("udp", dissect_udp_lapd, proto_get_id_by_filter_name("lapd"));
+ heur_dissector_add("udp", dissect_rlm, "Redundant Link Management over UDP", "rlm_udp", proto_rlm);
}
void
diff --git a/epan/dissectors/packet-rmt-norm.c b/epan/dissectors/packet-rmt-norm.c
index ae760cebdd..91efc97b7a 100644
--- a/epan/dissectors/packet-rmt-norm.c
+++ b/epan/dissectors/packet-rmt-norm.c
@@ -984,7 +984,7 @@ void proto_reg_handoff_norm(void)
handle = new_create_dissector_handle(dissect_norm, proto_rmt_norm);
dissector_add_for_decode_as("udp.port", handle);
- heur_dissector_add("udp", dissect_norm_heur, proto_rmt_norm);
+ heur_dissector_add("udp", dissect_norm_heur, "NORM over UDP", "rmt_norm_udp", proto_rmt_norm);
rmt_fec_handle = find_dissector("rmt-fec");
}
diff --git a/epan/dissectors/packet-rnsap.c b/epan/dissectors/packet-rnsap.c
index 592dbaf82e..64b4772cdb 100644
--- a/epan/dissectors/packet-rnsap.c
+++ b/epan/dissectors/packet-rnsap.c
@@ -55375,7 +55375,7 @@ proto_reg_handoff_rnsap(void)
* Perhaps we want a preference whether the heuristic dissector
* is or isn't enabled
*/
- /*heur_dissector_add("sccp", dissect_sccp_rnsap_heur, proto_rnsap); */
+ /*heur_dissector_add("sccp", dissect_sccp_rnsap_heur, "RNSAP over SCCP", "ranap_sccp", proto_rnsap); */
/*--- Included file: packet-rnsap-dis-tab.c ---*/
diff --git a/epan/dissectors/packet-rpc.c b/epan/dissectors/packet-rpc.c
index b58f3bd44f..32d872138f 100644
--- a/epan/dissectors/packet-rpc.c
+++ b/epan/dissectors/packet-rpc.c
@@ -4149,8 +4149,8 @@ proto_reg_handoff_rpc(void)
rpc_handle = find_dissector("rpc");
dissector_add_uint("udp.port", 111, rpc_handle);
- heur_dissector_add("tcp", dissect_rpc_tcp_heur, proto_rpc);
- heur_dissector_add("udp", dissect_rpc_heur, proto_rpc);
+ heur_dissector_add("tcp", dissect_rpc_tcp_heur, "RPC over TCP", "rpc_tcp", proto_rpc);
+ heur_dissector_add("udp", dissect_rpc_heur, "RPC over UDP", "rpc_udp", proto_rpc);
gssapi_handle = find_dissector("gssapi");
spnego_krb5_wrap_handle = find_dissector("spnego-krb5-wrap");
data_handle = find_dissector("data");
diff --git a/epan/dissectors/packet-rpcap.c b/epan/dissectors/packet-rpcap.c
index 70f81fe03f..148ded4007 100644
--- a/epan/dissectors/packet-rpcap.c
+++ b/epan/dissectors/packet-rpcap.c
@@ -1468,8 +1468,8 @@ proto_reg_handoff_rpcap (void)
data_handle = find_dissector ("data");
rpcap_prefs_initialized = TRUE;
- heur_dissector_add ("tcp", dissect_rpcap_heur_tcp, proto_rpcap);
- heur_dissector_add ("udp", dissect_rpcap_heur_udp, proto_rpcap);
+ heur_dissector_add ("tcp", dissect_rpcap_heur_tcp, "RPCAP over TCP", "rpcap_tcp", proto_rpcap);
+ heur_dissector_add ("udp", dissect_rpcap_heur_udp, "RPCAP over UDP", "rpcap_udp", proto_rpcap);
}
info_added = FALSE;
diff --git a/epan/dissectors/packet-rpcrdma.c b/epan/dissectors/packet-rpcrdma.c
index 5b1edfd0cb..5d1e26544a 100644
--- a/epan/dissectors/packet-rpcrdma.c
+++ b/epan/dissectors/packet-rpcrdma.c
@@ -591,8 +591,8 @@ proto_reg_handoff_rpcordma(void)
if (!initialized) {
rpcordma_handler = new_create_dissector_handle(dissect_rpcordma, proto_rpcordma);
- heur_dissector_add("infiniband.payload", dissect_rpcordma_heur, proto_rpcordma);
- heur_dissector_add("infiniband.mad.cm.private", dissect_rpcordma_heur, proto_rpcordma);
+ heur_dissector_add("infiniband.payload", dissect_rpcordma_heur, "Infiniband RPC over RDMA", "rpcordma_infiniband", proto_rpcordma);
+ heur_dissector_add("infiniband.mad.cm.private", dissect_rpcordma_heur, "RPC over RDMA in PrivateData of CM packets", "rpcordma_ib_private", proto_rpcordma);
/* allocate enough space in the addresses to store the largest address (a GID) */
manual_addr_data[0] = wmem_alloc(wmem_epan_scope(), GID_SIZE);
diff --git a/epan/dissectors/packet-rtcp.c b/epan/dissectors/packet-rtcp.c
index e06ce7b6b2..4f871d9dd8 100644
--- a/epan/dissectors/packet-rtcp.c
+++ b/epan/dissectors/packet-rtcp.c
@@ -6531,8 +6531,8 @@ proto_reg_handoff_rtcp(void)
dissector_add_for_decode_as("udp.port", rtcp_handle);
dissector_add_for_decode_as("flip.payload", rtcp_handle );
- heur_dissector_add( "udp", dissect_rtcp_heur, proto_rtcp);
- heur_dissector_add("stun", dissect_rtcp_heur, proto_rtcp);
+ heur_dissector_add( "udp", dissect_rtcp_heur, "RTCP over UDP", "rtcp_udp", proto_rtcp);
+ heur_dissector_add("stun", dissect_rtcp_heur, "RTCP over TURN", "rtcp_stun", proto_rtcp);
}
/*
diff --git a/epan/dissectors/packet-rtmpt.c b/epan/dissectors/packet-rtmpt.c
index 126f788a51..ea58ee934f 100644
--- a/epan/dissectors/packet-rtmpt.c
+++ b/epan/dissectors/packet-rtmpt.c
@@ -2933,7 +2933,7 @@ proto_reg_handoff_rtmpt(void)
{
dissector_handle_t amf_handle;
-/* heur_dissector_add("tcp", dissect_rtmpt_heur, proto_rtmpt); */
+/* heur_dissector_add("tcp", dissect_rtmpt_heur, "RTMPT over TCP", "rtmpt_tcp", proto_rtmpt); */
rtmpt_tcp_handle = new_create_dissector_handle(dissect_rtmpt_tcp, proto_rtmpt);
/* dissector_add_for_decode_as("tcp.port", rtmpt_tcp_handle); */
dissector_add_uint("tcp.port", RTMP_PORT, rtmpt_tcp_handle);
diff --git a/epan/dissectors/packet-rtp.c b/epan/dissectors/packet-rtp.c
index 907e08bfd2..e01fb26040 100644
--- a/epan/dissectors/packet-rtp.c
+++ b/epan/dissectors/packet-rtp.c
@@ -3745,8 +3745,8 @@ proto_reg_handoff_rtp(void)
dissector_add_for_decode_as("udp.port", rtp_handle);
dissector_add_string("rtp_dyn_payload_type", "red", rtp_rfc2198_handle);
- heur_dissector_add( "udp", dissect_rtp_heur_udp, proto_rtp);
- heur_dissector_add("stun", dissect_rtp_heur_stun, proto_rtp);
+ heur_dissector_add( "udp", dissect_rtp_heur_udp, "RTP over UDP", "rtp_udp", proto_rtp);
+ heur_dissector_add("stun", dissect_rtp_heur_stun, "RTP over TURN", "rtp_stun", proto_rtp);
rtp_hdr_ext_ed137_handle = find_dissector("rtp.ext.ed137");
rtp_hdr_ext_ed137a_handle = find_dissector("rtp.ext.ed137a");
diff --git a/epan/dissectors/packet-rtps.c b/epan/dissectors/packet-rtps.c
index 1fc37ffb25..1524f8ebde 100644
--- a/epan/dissectors/packet-rtps.c
+++ b/epan/dissectors/packet-rtps.c
@@ -9035,8 +9035,8 @@ void proto_register_rtps(void) {
void proto_reg_handoff_rtps(void) {
- heur_dissector_add("udp", dissect_rtps_udp, proto_rtps);
- heur_dissector_add("tcp", dissect_rtps_tcp, proto_rtps);
+ heur_dissector_add("udp", dissect_rtps_udp, "RTPS over UDP", "rtps_udp", proto_rtps);
+ heur_dissector_add("tcp", dissect_rtps_tcp, "RTPS over TCP", "rtps_tcp", proto_rtps);
}
/*
diff --git a/epan/dissectors/packet-s7comm.c b/epan/dissectors/packet-s7comm.c
index 11f026b7ef..a52787b69b 100644
--- a/epan/dissectors/packet-s7comm.c
+++ b/epan/dissectors/packet-s7comm.c
@@ -3457,7 +3457,7 @@ void
proto_reg_handoff_s7comm(void)
{
/* register ourself as an heuristic cotp (ISO 8073) payload dissector */
- heur_dissector_add("cotp", dissect_s7comm, proto_s7comm);
+ heur_dissector_add("cotp", dissect_s7comm, "S7 Communication over COTP", "s7comm_cotp", proto_s7comm);
}
/*
diff --git a/epan/dissectors/packet-ses.c b/epan/dissectors/packet-ses.c
index d6e49b4fe4..bbe90b8047 100644
--- a/epan/dissectors/packet-ses.c
+++ b/epan/dissectors/packet-ses.c
@@ -1916,8 +1916,8 @@ proto_reg_handoff_ses(void)
/* add our session dissector to cotp dissector list
* and cotp_is dissector list*/
- heur_dissector_add("cotp", dissect_ses_heur, proto_ses);
- heur_dissector_add("cotp_is", dissect_ses_heur, proto_ses);
+ heur_dissector_add("cotp", dissect_ses_heur, "SES over COTP", "ses_cotp", proto_ses);
+ heur_dissector_add("cotp_is", dissect_ses_heur, "SES over COTP (inactive subset)", "ses_cotp_is", proto_ses);
}
@@ -1931,7 +1931,7 @@ void
proto_reg_handoff_clses(void)
{
/* add our session dissector to cltp dissector list */
- heur_dissector_add("cltp", dissect_ses_heur, proto_clses);
+ heur_dissector_add("cltp", dissect_ses_heur, "CLSP over COTP", "clses_cotp", proto_clses);
}
/*
diff --git a/epan/dissectors/packet-sip.c b/epan/dissectors/packet-sip.c
index d843ebdb86..c7f70b460f 100644
--- a/epan/dissectors/packet-sip.c
+++ b/epan/dissectors/packet-sip.c
@@ -6131,10 +6131,10 @@ proto_reg_handoff_sip(void)
dissector_add_uint("udp.port", UDP_PORT_SIP, sip_handle);
dissector_add_string("media_type", "message/sip", sip_handle);
- heur_dissector_add("udp", dissect_sip_heur, proto_sip);
- heur_dissector_add("tcp", dissect_sip_tcp_heur, proto_sip);
- heur_dissector_add("sctp", dissect_sip_heur, proto_sip);
- heur_dissector_add("stun", dissect_sip_heur, proto_sip);
+ heur_dissector_add("udp", dissect_sip_heur, "SIP over UDP", "sip_udp", proto_sip);
+ heur_dissector_add("tcp", dissect_sip_tcp_heur, "SIP over TCP", "sip_tcp", proto_sip);
+ heur_dissector_add("sctp", dissect_sip_heur, "SIP over SCTP", "sip_sctp", proto_sip);
+ heur_dissector_add("stun", dissect_sip_heur, "SIP over TURN", "sip_stun", proto_sip);
sip_prefs_initialized = TRUE;
} else {
dissector_delete_uint_range("tcp.port", sip_tcp_port_range, sip_tcp_handle);
diff --git a/epan/dissectors/packet-skype.c b/epan/dissectors/packet-skype.c
index 8e2940ea28..3c65b09c9d 100644
--- a/epan/dissectors/packet-skype.c
+++ b/epan/dissectors/packet-skype.c
@@ -449,8 +449,8 @@ proto_reg_handoff_skype(void)
dissector_add_for_decode_as("tcp.port", skype_handle);
dissector_add_for_decode_as("udp.port", skype_handle);
#if SKYPE_HEUR
- heur_dissector_add("tcp", dissect_skype_heur, proto_skype);
- heur_dissector_add("udp", dissect_skype_heur, proto_skype);
+ heur_dissector_add("tcp", dissect_skype_heur, "Skype over TCP", "sip_tcp", proto_skype);
+ heur_dissector_add("udp", dissect_skype_heur, "Skype over UDP", "sip_udp", proto_skype);
#endif
}
diff --git a/epan/dissectors/packet-smb-direct.c b/epan/dissectors/packet-smb-direct.c
index 5a8a606f0c..a6e51840df 100644
--- a/epan/dissectors/packet-smb-direct.c
+++ b/epan/dissectors/packet-smb-direct.c
@@ -702,9 +702,11 @@ proto_reg_handoff_smb_direct(void)
data_handle = find_dissector("data");
heur_dissector_add("iwarp_ddp_rdmap",
dissect_smb_direct_iwarp_heur,
+ "SMB Direct over iWARP", "smb_direct_iwarp",
proto_smb_direct);
heur_dissector_add("infiniband.payload",
dissect_smb_direct_infiniband_heur,
+ "SMB Direct Infiniband", "smb_direct_infiniband",
proto_smb_direct);
}
diff --git a/epan/dissectors/packet-smb.c b/epan/dissectors/packet-smb.c
index 13a0eac90f..69d9e71180 100644
--- a/epan/dissectors/packet-smb.c
+++ b/epan/dissectors/packet-smb.c
@@ -20530,10 +20530,10 @@ proto_reg_handoff_smb(void)
gssapi_handle = find_dissector("gssapi");
ntlmssp_handle = find_dissector("ntlmssp");
- heur_dissector_add("netbios", dissect_smb_heur, proto_smb);
- heur_dissector_add("smb_direct", dissect_smb_heur, proto_smb);
- heur_dissector_add("cotp", dissect_smb_heur, proto_smb);
- heur_dissector_add("vines_spp", dissect_smb_heur, proto_smb);
+ heur_dissector_add("netbios", dissect_smb_heur, "SMB over Netbios", "smb_netbios", proto_smb);
+ heur_dissector_add("smb_direct", dissect_smb_heur, "SMB over SMB Direct", "smb_smb_direct", proto_smb);
+ heur_dissector_add("cotp", dissect_smb_heur, "SMB over COTP", "smb_cotp", proto_smb);
+ heur_dissector_add("vines_spp", dissect_smb_heur, "SMB over Vines", "smb_vines", proto_smb);
smb_handle = find_dissector("smb");
dissector_add_uint("ipx.socket", IPX_SOCKET_NWLINK_SMB_SERVER, smb_handle);
diff --git a/epan/dissectors/packet-smb2.c b/epan/dissectors/packet-smb2.c
index 44ef1e9c26..94dc284592 100644
--- a/epan/dissectors/packet-smb2.c
+++ b/epan/dissectors/packet-smb2.c
@@ -8900,8 +8900,8 @@ proto_reg_handoff_smb2(void)
gssapi_handle = find_dissector("gssapi");
ntlmssp_handle = find_dissector("ntlmssp");
rsvd_handle = find_dissector("rsvd");
- heur_dissector_add("netbios", dissect_smb2_heur, proto_smb2);
- heur_dissector_add("smb_direct", dissect_smb2_heur, proto_smb2);
+ heur_dissector_add("netbios", dissect_smb2_heur, "SMB2 over Netbios", "smb2_netbios", proto_smb2);
+ heur_dissector_add("smb_direct", dissect_smb2_heur, "SMB2 over SMB Direct", "smb2_smb_direct", proto_smb2);
}
/*
diff --git a/epan/dissectors/packet-smcr.c b/epan/dissectors/packet-smcr.c
index bd9a390003..27ad5d1616 100644
--- a/epan/dissectors/packet-smcr.c
+++ b/epan/dissectors/packet-smcr.c
@@ -1425,8 +1425,8 @@ proto_register_smcr(void)
void
proto_reg_handoff_smcr(void)
{
- heur_dissector_add("tcp", dissect_smcr_tcp_heur, proto_smcr);
- heur_dissector_add("infiniband.payload", dissect_smcr_infiniband_heur, proto_smcr);
+ heur_dissector_add("tcp", dissect_smcr_tcp_heur, "Shared Memory Communications over TCP", "smcr_tcp", proto_smcr);
+ heur_dissector_add("infiniband.payload", dissect_smcr_infiniband_heur, "Shared Memory Communications Infiniband", "smcr_infiniband", proto_smcr);
}
/*
diff --git a/epan/dissectors/packet-smpp.c b/epan/dissectors/packet-smpp.c
index 9528249163..34578ec533 100644
--- a/epan/dissectors/packet-smpp.c
+++ b/epan/dissectors/packet-smpp.c
@@ -3797,8 +3797,8 @@ proto_reg_handoff_smpp(void)
*/
smpp_handle = find_dissector("smpp");
dissector_add_for_decode_as("tcp.port", smpp_handle);
- heur_dissector_add("tcp", dissect_smpp_heur, proto_smpp);
- heur_dissector_add("x.25", dissect_smpp_heur, proto_smpp);
+ heur_dissector_add("tcp", dissect_smpp_heur, "SMPP over TCP", "smpp_tcp", proto_smpp);
+ heur_dissector_add("x.25", dissect_smpp_heur, "SMPP over X.25", "smpp_x25", proto_smpp);
/* Required for call_dissector() */
DebugLog(("Finding gsm_sms_ud subdissector\n"));
diff --git a/epan/dissectors/packet-spdy.c b/epan/dissectors/packet-spdy.c
index 868de067e1..26e008c6f8 100644
--- a/epan/dissectors/packet-spdy.c
+++ b/epan/dissectors/packet-spdy.c
@@ -1950,7 +1950,7 @@ void proto_reg_handoff_spdy(void) {
media_type_subdissector_table = find_dissector_table("media_type");
#if 0 /* heuristic too weak */
- heur_dissector_add("tcp", dissect_spdy_heur, proto_spdy);
+ heur_dissector_add("tcp", dissect_spdy_heur, "SPDY over TCP", "spdy_tcp", proto_spdy);
#endif
}
diff --git a/epan/dissectors/packet-spice.c b/epan/dissectors/packet-spice.c
index 75a620a022..64bc36fedd 100644
--- a/epan/dissectors/packet-spice.c
+++ b/epan/dissectors/packet-spice.c
@@ -4575,7 +4575,7 @@ proto_reg_handoff_spice(void)
{
spice_handle = new_create_dissector_handle(dissect_spice, proto_spice);
dissector_add_for_decode_as("tcp.port", spice_handle);
- heur_dissector_add("tcp", test_spice_protocol, proto_spice);
+ heur_dissector_add("tcp", test_spice_protocol, "Spice over TCP", "spice_tcp", proto_spice);
jpeg_handle = find_dissector("image-jfif");
}
diff --git a/epan/dissectors/packet-sprt.c b/epan/dissectors/packet-sprt.c
index 065990d311..e87fc1d921 100644
--- a/epan/dissectors/packet-sprt.c
+++ b/epan/dissectors/packet-sprt.c
@@ -3431,7 +3431,7 @@ proto_reg_handoff_sprt(void)
sprt_handle = find_dissector("sprt");
dissector_add_for_decode_as("udp.port", sprt_handle);
- heur_dissector_add( "udp", dissect_sprt_heur, proto_sprt);
+ heur_dissector_add( "udp", dissect_sprt_heur, "SPRT over UDP", "sprt_udp", proto_sprt);
}
/*
diff --git a/epan/dissectors/packet-starteam.c b/epan/dissectors/packet-starteam.c
index 1516bbcd36..74ba6a0308 100644
--- a/epan/dissectors/packet-starteam.c
+++ b/epan/dissectors/packet-starteam.c
@@ -707,7 +707,7 @@ proto_register_starteam(void)
void
proto_reg_handoff_starteam(void)
{
- heur_dissector_add("tcp", dissect_starteam_heur, proto_starteam);
+ heur_dissector_add("tcp", dissect_starteam_heur, "StarTeam over TCP", "starteam_tcp", proto_starteam);
starteam_tcp_handle = new_create_dissector_handle(dissect_starteam_tcp, proto_starteam);
}
diff --git a/epan/dissectors/packet-stt.c b/epan/dissectors/packet-stt.c
index c6a9828874..0fcf3ff471 100644
--- a/epan/dissectors/packet-stt.c
+++ b/epan/dissectors/packet-stt.c
@@ -990,7 +990,7 @@ proto_reg_handoff_stt(void)
eth_handle = find_dissector("eth");
data_handle = find_dissector("data");
- heur_dissector_add("ip", dissect_stt_heur, proto_stt);
+ heur_dissector_add("ip", dissect_stt_heur, "Stateless Transport Tunneling over IP", "stt_ip", proto_stt);
}
/*
diff --git a/epan/dissectors/packet-stun.c b/epan/dissectors/packet-stun.c
index a8dc531324..bacddacd90 100644
--- a/epan/dissectors/packet-stun.c
+++ b/epan/dissectors/packet-stun.c
@@ -1649,7 +1649,7 @@ proto_reg_handoff_stun(void)
dissector_add_for_decode_as("tcp.port", stun_tcp_handle);
dissector_add_for_decode_as("udp.port", stun_udp_handle);
- heur_dissector_add("udp", dissect_stun_heur, proto_stun);
+ heur_dissector_add("udp", dissect_stun_heur, "STUN over UDP", "stun_udp", proto_stun);
data_handle = find_dissector("data");
}
diff --git a/epan/dissectors/packet-t124.c b/epan/dissectors/packet-t124.c
index 3307813f2d..f464efad59 100644
--- a/epan/dissectors/packet-t124.c
+++ b/epan/dissectors/packet-t124.c
@@ -4034,6 +4034,6 @@ proto_reg_handoff_t124(void) {
register_ber_oid_dissector("0.0.20.124.0.1", dissect_t124, proto_t124, "Generic Conference Control");
- heur_dissector_add("t125", dissect_t124_heur, proto_t124);
+ heur_dissector_add("t125", dissect_t124_heur, "T.124 over T.125", "t124_t125", proto_t124);
}
diff --git a/epan/dissectors/packet-t125.c b/epan/dissectors/packet-t125.c
index 9f3e105a49..250cd6c071 100644
--- a/epan/dissectors/packet-t125.c
+++ b/epan/dissectors/packet-t125.c
@@ -593,6 +593,6 @@ void proto_register_t125(void) {
/*--- proto_reg_handoff_t125 ---------------------------------------*/
void proto_reg_handoff_t125(void) {
- heur_dissector_add("cotp", dissect_t125_heur, proto_t125);
- heur_dissector_add("cotp_is", dissect_t125_heur, proto_t125);
+ heur_dissector_add("cotp", dissect_t125_heur, "T.125 over COTP", "t125_cotp", proto_t125);
+ heur_dissector_add("cotp_is", dissect_t125_heur, "T.125 over COTP (inactive subset)", "t125_cotp_is", proto_t125);
}
diff --git a/epan/dissectors/packet-tali.c b/epan/dissectors/packet-tali.c
index 4918e3548d..6b91c8299b 100644
--- a/epan/dissectors/packet-tali.c
+++ b/epan/dissectors/packet-tali.c
@@ -223,7 +223,7 @@ proto_register_tali(void)
void
proto_reg_handoff_tali(void)
{
- heur_dissector_add("tcp", dissect_tali_heur, hfi_tali->id);
+ heur_dissector_add("tcp", dissect_tali_heur, "Tali over TCP", "tali_tcp", hfi_tali->id);
data_handle = find_dissector("data");
}
diff --git a/epan/dissectors/packet-tapa.c b/epan/dissectors/packet-tapa.c
index 3d78e1d707..ca9f80c340 100644
--- a/epan/dissectors/packet-tapa.c
+++ b/epan/dissectors/packet-tapa.c
@@ -627,7 +627,7 @@ proto_reg_handoff_tapa(void)
tapa_handle = find_dissector("tapa");
dissector_add_uint("udp.port", PORT_TAPA, tapa_handle);
- heur_dissector_add( "ip", dissect_tapa_heur, proto_tapa);
+ heur_dissector_add( "ip", dissect_tapa_heur, "TAPA over IP", "tapa_ip", proto_tapa);
}
/*
diff --git a/epan/dissectors/packet-tds.c b/epan/dissectors/packet-tds.c
index 65bdc30e07..8189f60519 100644
--- a/epan/dissectors/packet-tds.c
+++ b/epan/dissectors/packet-tds.c
@@ -3270,7 +3270,7 @@ proto_reg_handoff_tds(void)
dissector_add_uint("tcp.port", 1433, tds_tcp_handle);
dissector_add_uint("tcp.port", 2433, tds_tcp_handle);
- heur_dissector_add("tcp", dissect_tds_tcp_heur, proto_tds);
+ heur_dissector_add("tcp", dissect_tds_tcp_heur, "Tabular Data Stream over TCP", "tds_tcp", proto_tds);
ntlmssp_handle = find_dissector("ntlmssp");
gssapi_handle = find_dissector("gssapi");
diff --git a/epan/dissectors/packet-teredo.c b/epan/dissectors/packet-teredo.c
index af5fe670ff..657e811ded 100644
--- a/epan/dissectors/packet-teredo.c
+++ b/epan/dissectors/packet-teredo.c
@@ -415,7 +415,7 @@ proto_reg_handoff_teredo(void)
teredo_tap = register_tap("teredo");
dissector_add_uint("udp.port", UDP_PORT_TEREDO, teredo_handle);
- heur_dissector_add("udp", dissect_teredo_heur, proto_teredo);
+ heur_dissector_add("udp", dissect_teredo_heur, "Teredo over UDP", "teredo_udp", proto_teredo);
}
/*
diff --git a/epan/dissectors/packet-tfp.c b/epan/dissectors/packet-tfp.c
index bc5e1d305a..14c9c65607 100644
--- a/epan/dissectors/packet-tfp.c
+++ b/epan/dissectors/packet-tfp.c
@@ -413,7 +413,7 @@ proto_reg_handoff_tfp(void) {
tfp_handle_tcp = create_dissector_handle(dissect_tfp_tcp, proto_tfp);
dissector_add_uint("tcp.port", tfp_PORT, tfp_handle_tcp);
- heur_dissector_add("usb.bulk", dissect_tfp_bulk_heur, proto_tfp);
+ heur_dissector_add("usb.bulk", dissect_tfp_bulk_heur, "Tinkerforge USB bulk endpoint", "tfp_usb_bulk", proto_tfp);
}
/*
diff --git a/epan/dissectors/packet-tftp.c b/epan/dissectors/packet-tftp.c
index 2455d59708..c88a0dd4ee 100644
--- a/epan/dissectors/packet-tftp.c
+++ b/epan/dissectors/packet-tftp.c
@@ -645,7 +645,7 @@ proto_reg_handoff_tftp(void)
if (!tftp_initialized) {
tftp_handle = find_dissector("tftp");
data_handle = find_dissector("data");
- heur_dissector_add("stun", dissect_embeddedtftp_heur, proto_tftp);
+ heur_dissector_add("stun", dissect_embeddedtftp_heur, "TFTP over TURN", "tftp_stun", proto_tftp);
tftp_initialized = TRUE;
} else {
dissector_delete_uint_range("udp.port", tftp_port_range, tftp_handle);
diff --git a/epan/dissectors/packet-thrift.c b/epan/dissectors/packet-thrift.c
index 27427b3b14..28463f29ee 100644
--- a/epan/dissectors/packet-thrift.c
+++ b/epan/dissectors/packet-thrift.c
@@ -439,7 +439,7 @@ void proto_register_thrift(void) {
void proto_reg_handoff_thrift(void) {
- heur_dissector_add("tcp", dissect_thrift_heur, proto_thrift);
+ heur_dissector_add("tcp", dissect_thrift_heur, "Thrift over TCP", "thrift_tcp", proto_thrift);
}
/*
diff --git a/epan/dissectors/packet-tte.c b/epan/dissectors/packet-tte.c
index 635a58db0c..7656637f96 100644
--- a/epan/dissectors/packet-tte.c
+++ b/epan/dissectors/packet-tte.c
@@ -191,7 +191,7 @@ proto_register_tte(void)
void
proto_reg_handoff_tte(void)
{
- heur_dissector_add("eth", dissect_tte, proto_tte);
+ heur_dissector_add("eth", dissect_tte, "TTEthernet", "tte_eth", proto_tte);
hf_eth_dst = proto_registrar_get_id_byname ("eth.dst");
hf_eth_src = proto_registrar_get_id_byname ("eth.src");
diff --git a/epan/dissectors/packet-turnchannel.c b/epan/dissectors/packet-turnchannel.c
index a63343b1ae..1fecf9ed86 100644
--- a/epan/dissectors/packet-turnchannel.c
+++ b/epan/dissectors/packet-turnchannel.c
@@ -213,7 +213,7 @@ proto_reg_handoff_turnchannel(void)
/* TURN negotiation is handled through STUN2 dissector (packet-stun.c),
so only it should be able to determine if a packet is a TURN packet */
- heur_dissector_add("stun", dissect_turnchannel_heur, proto_turnchannel);
+ heur_dissector_add("stun", dissect_turnchannel_heur, "TURN Channel over STUN", "turnchannel_stun", proto_turnchannel);
data_handle = find_dissector("data");
}
diff --git a/epan/dissectors/packet-tuxedo.c b/epan/dissectors/packet-tuxedo.c
index 610e3ffae9..b3da7038fe 100644
--- a/epan/dissectors/packet-tuxedo.c
+++ b/epan/dissectors/packet-tuxedo.c
@@ -186,7 +186,7 @@ proto_reg_handoff_tuxedo(void)
{
tuxedo_handle = create_dissector_handle(dissect_tuxedo, proto_tuxedo);
dissector_add_for_decode_as("tcp.port", tuxedo_handle);
- heur_dissector_add("tcp", dissect_tuxedo_heur, proto_tuxedo);
+ heur_dissector_add("tcp", dissect_tuxedo_heur, "Tuxedo over TCP", "tuxedo_tcp", proto_tuxedo);
}
/*
diff --git a/epan/dissectors/packet-ucp.c b/epan/dissectors/packet-ucp.c
index 0c174a8454..39de62c600 100644
--- a/epan/dissectors/packet-ucp.c
+++ b/epan/dissectors/packet-ucp.c
@@ -2822,7 +2822,7 @@ proto_reg_handoff_ucp(void)
* UCP can be spoken on any port so, when not on a specific port, try heuristic
* whenever TCP is spoken.
*/
- heur_dissector_add("tcp", dissect_ucp_heur, proto_ucp);
+ heur_dissector_add("tcp", dissect_ucp_heur, "UCP over TCP", "ucp_tcp", proto_ucp);
/*
* Also register as a dissector that can be selected by a TCP port number via "decode as".
diff --git a/epan/dissectors/packet-udt.c b/epan/dissectors/packet-udt.c
index 0005c1699d..6a14be9b9f 100644
--- a/epan/dissectors/packet-udt.c
+++ b/epan/dissectors/packet-udt.c
@@ -453,7 +453,7 @@ void proto_reg_handoff_udt(void)
data_handle = find_dissector("data");
udt_handle = new_create_dissector_handle(dissect_udt, proto_udt);
- heur_dissector_add("udp", dissect_udt_heur, proto_udt);
+ heur_dissector_add("udp", dissect_udt_heur, "UDT over UDP", "udt_udp", proto_udt);
dissector_add_for_decode_as("udp.port", udt_handle);
}
diff --git a/epan/dissectors/packet-umts_fp.c b/epan/dissectors/packet-umts_fp.c
index 5883fa5ab8..ad185464c1 100644
--- a/epan/dissectors/packet-umts_fp.c
+++ b/epan/dissectors/packet-umts_fp.c
@@ -5653,7 +5653,7 @@ void proto_reg_handoff_fp(void)
mac_fdd_hsdsch_handle = find_dissector("mac.fdd.hsdsch");
fp_handle = find_dissector("fp");
- heur_dissector_add("udp", heur_dissect_fp, proto_fp);
+ heur_dissector_add("udp", heur_dissect_fp, "FP over UDP", "fp_udp", proto_fp);
dissector_add_uint("atm.aal2.type", TRAF_UMTS_FP, fp_handle);
}
diff --git a/epan/dissectors/packet-usb-masstorage.c b/epan/dissectors/packet-usb-masstorage.c
index 3563c5b535..c221a4f314 100644
--- a/epan/dissectors/packet-usb-masstorage.c
+++ b/epan/dissectors/packet-usb-masstorage.c
@@ -466,7 +466,7 @@ proto_reg_handoff_usb_ms(void)
usb_ms_control_handle = new_create_dissector_handle(dissect_usb_ms_control, proto_usb_ms);
dissector_add_uint("usb.control", IF_CLASS_MASS_STORAGE, usb_ms_control_handle);
- heur_dissector_add("usb.bulk", dissect_usb_ms_bulk_heur, proto_usb_ms);
+ heur_dissector_add("usb.bulk", dissect_usb_ms_bulk_heur, "Mass Storage USB bulk endpoint", "ms_usb_bulk", proto_usb_ms);
}
/*
diff --git a/epan/dissectors/packet-vnc.c b/epan/dissectors/packet-vnc.c
index 1e75c01b95..d3398e46b0 100644
--- a/epan/dissectors/packet-vnc.c
+++ b/epan/dissectors/packet-vnc.c
@@ -4788,7 +4788,7 @@ proto_reg_handoff_vnc(void)
dissector_add_uint("tcp.port", 5900, vnc_handle);
dissector_add_uint("tcp.port", 5901, vnc_handle);
- heur_dissector_add("tcp", test_vnc_protocol, proto_vnc);
+ heur_dissector_add("tcp", test_vnc_protocol, "VNC over TCP", "vnc_tcp", proto_vnc);
/* We don't register a port for the VNC HTTP server because
* that simply provides a java program for download via the
* HTTP protocol. The java program then connects to a standard
diff --git a/epan/dissectors/packet-vssmonitoring.c b/epan/dissectors/packet-vssmonitoring.c
index 565a36bc75..1ac887c4da 100644
--- a/epan/dissectors/packet-vssmonitoring.c
+++ b/epan/dissectors/packet-vssmonitoring.c
@@ -243,7 +243,7 @@ proto_register_vssmonitoring(void)
void
proto_reg_handoff_vssmonitoring(void)
{
- heur_dissector_add("eth.trailer", dissect_vssmonitoring, proto_vssmonitoring);
+ heur_dissector_add("eth.trailer", dissect_vssmonitoring, "VSS-Monitoring ethernet trailer", "vssmonitoring_eth", proto_vssmonitoring);
}
/*
diff --git a/epan/dissectors/packet-wassp.c b/epan/dissectors/packet-wassp.c
index a5245f9619..16a15019de 100644
--- a/epan/dissectors/packet-wassp.c
+++ b/epan/dissectors/packet-wassp.c
@@ -2103,7 +2103,7 @@ proto_reg_handoff_wassp(void)
dissector_add_uint("udp.port", PORT_WASSP_TUNNEL, wassp_handle);
/* dissector_add_uint("udp.port", PORT_WASSP_PEER, wassp_handle); */
#if 0
- heur_dissector_add("udp", dissect_wassp_heur, proto_wassp);
+ heur_dissector_add("udp", dissect_wassp_heur, "WASSP over UDP", "wassp_udp", proto_wassp);
#endif
snmp_handle = find_dissector("snmp");
diff --git a/epan/dissectors/packet-waveagent.c b/epan/dissectors/packet-waveagent.c
index dbdbc107ef..8ef0af715a 100644
--- a/epan/dissectors/packet-waveagent.c
+++ b/epan/dissectors/packet-waveagent.c
@@ -1906,7 +1906,7 @@ void proto_register_waveagent(void)
void proto_reg_handoff_waveagent(void)
{
- heur_dissector_add("udp", dissect_waveagent_heur, proto_waveagent);
+ heur_dissector_add("udp", dissect_waveagent_heur, "WaveAgent over UDP", "waveagent_udp", proto_waveagent);
}
diff --git a/epan/dissectors/packet-wol.c b/epan/dissectors/packet-wol.c
index adddd37657..eac30fafd5 100644
--- a/epan/dissectors/packet-wol.c
+++ b/epan/dissectors/packet-wol.c
@@ -333,7 +333,7 @@ proto_reg_handoff_wol(void)
* we'll miss some, but how else to do this ... add a thousand of
* these dissector_add_uint()'s and heur_dissector_add()'s??? */
dissector_add_uint("ethertype", ETHERTYPE_WOL, wol_handle);
- heur_dissector_add("udp", dissect_wolheur, proto_wol);
+ heur_dissector_add("udp", dissect_wolheur, "Wake On LAN over UDP", "wol_udp", proto_wol);
}
/*
diff --git a/epan/dissectors/packet-xcsl.c b/epan/dissectors/packet-xcsl.c
index 9facf1ce90..18130d4dfc 100644
--- a/epan/dissectors/packet-xcsl.c
+++ b/epan/dissectors/packet-xcsl.c
@@ -348,7 +348,7 @@ void proto_register_xcsl(void) {
/* In case it concerns TCP, try to match on the xcsl header */
void proto_reg_handoff_xcsl(void) {
- heur_dissector_add("tcp", dissect_xcsl_tcp_heur, hfi_xcsl->id);
+ heur_dissector_add("tcp", dissect_xcsl_tcp_heur, "XCSL over TCP", "xcsl_tcp", hfi_xcsl->id);
}
/*
diff --git a/epan/dissectors/packet-xmcp.c b/epan/dissectors/packet-xmcp.c
index da0f7bf430..389a099554 100644
--- a/epan/dissectors/packet-xmcp.c
+++ b/epan/dissectors/packet-xmcp.c
@@ -1370,7 +1370,7 @@ proto_reg_handoff_xmcp(void)
if (!xmcp_prefs_initialized) {
xmcp_tcp_handle = new_create_dissector_handle(dissect_xmcp_tcp, proto_xmcp);
- heur_dissector_add("tcp", dissect_xmcp_heur, proto_xmcp);
+ heur_dissector_add("tcp", dissect_xmcp_heur, "XMCP over TCP", "xmcp_tcp", proto_xmcp);
media_type_dissector_table = find_dissector_table("media_type");
xmcp_prefs_initialized = TRUE;
} else {
diff --git a/epan/dissectors/packet-xml.c b/epan/dissectors/packet-xml.c
index fe7a108e55..f94ae4e9f4 100644
--- a/epan/dissectors/packet-xml.c
+++ b/epan/dissectors/packet-xml.c
@@ -1348,9 +1348,9 @@ static void apply_prefs(void)
{
if (pref_heuristic_media_save != pref_heuristic_media) {
if (pref_heuristic_media) {
- heur_dissector_add("http", dissect_xml_heur, xml_ns.hf_tag);
- heur_dissector_add("sip", dissect_xml_heur, xml_ns.hf_tag);
- heur_dissector_add("media", dissect_xml_heur, xml_ns.hf_tag);
+ heur_dissector_add("http", dissect_xml_heur, "XML in HTTP", "xml_http", xml_ns.hf_tag);
+ heur_dissector_add("sip", dissect_xml_heur, "XML in SIP", "xml_sip", xml_ns.hf_tag);
+ heur_dissector_add("media", dissect_xml_heur, "XML in media", "xml_media", xml_ns.hf_tag);
pref_heuristic_media_save = TRUE;
} else {
heur_dissector_delete("http", dissect_xml_heur, xml_ns.hf_tag);
@@ -1362,7 +1362,7 @@ static void apply_prefs(void)
if (pref_heuristic_tcp_save != pref_heuristic_tcp ) {
if (pref_heuristic_tcp) {
- heur_dissector_add("tcp", dissect_xml_heur, xml_ns.hf_tag);
+ heur_dissector_add("tcp", dissect_xml_heur, "XML over TCP", "xml_tcp", xml_ns.hf_tag);
pref_heuristic_tcp_save = TRUE;
} else {
heur_dissector_delete("tcp", dissect_xml_heur, xml_ns.hf_tag);
@@ -1372,7 +1372,7 @@ static void apply_prefs(void)
if (pref_heuristic_udp_save != pref_heuristic_udp ) {
if (pref_heuristic_udp) {
- heur_dissector_add("udp", dissect_xml_heur, xml_ns.hf_tag);
+ heur_dissector_add("udp", dissect_xml_heur, "XML over UDP", "xml_udp", xml_ns.hf_tag);
pref_heuristic_udp_save = TRUE;
} else {
heur_dissector_delete("udp", dissect_xml_heur, xml_ns.hf_tag);
@@ -1494,7 +1494,7 @@ proto_reg_handoff_xml(void)
xml_handle = find_dissector("xml");
g_hash_table_foreach(media_types, add_dissector_media, NULL);
- heur_dissector_add("wtap_file", dissect_xml_heur, xml_ns.hf_tag);
+ heur_dissector_add("wtap_file", dissect_xml_heur, "XML file", "xml_wtap", xml_ns.hf_tag);
}
diff --git a/epan/dissectors/packet-yhoo.c b/epan/dissectors/packet-yhoo.c
index c024f06f25..4fe7148530 100644
--- a/epan/dissectors/packet-yhoo.c
+++ b/epan/dissectors/packet-yhoo.c
@@ -309,7 +309,7 @@ proto_reg_handoff_yhoo(void)
* Just register as a heuristic TCP dissector, and reject stuff
* not to or from that port.
*/
- heur_dissector_add("tcp", dissect_yhoo, proto_yhoo);
+ heur_dissector_add("tcp", dissect_yhoo, "Yahoo Messenger over TCP", "yhoo_tcp", proto_yhoo);
}
/*
diff --git a/epan/dissectors/packet-ymsg.c b/epan/dissectors/packet-ymsg.c
index 7019661930..52dc553e73 100644
--- a/epan/dissectors/packet-ymsg.c
+++ b/epan/dissectors/packet-ymsg.c
@@ -560,7 +560,7 @@ proto_reg_handoff_ymsg(void)
* Just register as a heuristic TCP dissector, and reject stuff
* that doesn't begin with a YMSG signature.
*/
- heur_dissector_add("tcp", dissect_ymsg, proto_ymsg);
+ heur_dissector_add("tcp", dissect_ymsg, "Yahoo YMSG Messenger over TCP", "ymsg_tcp", proto_ymsg);
}
/*
diff --git a/epan/dissectors/packet-zbee-nwk-gp.c b/epan/dissectors/packet-zbee-nwk-gp.c
index b155f73715..db7aab5829 100644
--- a/epan/dissectors/packet-zbee-nwk-gp.c
+++ b/epan/dissectors/packet-zbee-nwk-gp.c
@@ -1788,7 +1788,7 @@ proto_reg_handoff_zbee_nwk_gp(void)
data_handle = find_dissector("data");
/* Register our dissector with IEEE 802.15.4. */
dissector_add_for_decode_as(IEEE802154_PROTOABBREV_WPAN_PANID, find_dissector(ZBEE_PROTOABBREV_NWK_GP));
- heur_dissector_add(IEEE802154_PROTOABBREV_WPAN, dissect_zbee_nwk_heur_gp, proto_zbee_nwk_gp);
+ heur_dissector_add(IEEE802154_PROTOABBREV_WPAN, dissect_zbee_nwk_heur_gp, "ZigBee Green Power over IEEE 802.15.4", "zbee_nwk_gp_wlan", proto_zbee_nwk_gp);
} /* proto_reg_handoff_zbee */
/*
diff --git a/epan/dissectors/packet-zbee-nwk.c b/epan/dissectors/packet-zbee-nwk.c
index e0b0df6d17..fe81e43270 100644
--- a/epan/dissectors/packet-zbee-nwk.c
+++ b/epan/dissectors/packet-zbee-nwk.c
@@ -1981,9 +1981,9 @@ void proto_reg_handoff_zbee_nwk(void)
/* Register our dissector with IEEE 802.15.4 */
dissector_add_for_decode_as(IEEE802154_PROTOABBREV_WPAN_PANID, find_dissector(ZBEE_PROTOABBREV_NWK));
- heur_dissector_add(IEEE802154_PROTOABBREV_WPAN_BEACON, dissect_zbee_beacon_heur, proto_zbee_beacon);
- heur_dissector_add(IEEE802154_PROTOABBREV_WPAN_BEACON, dissect_zbip_beacon_heur, proto_zbip_beacon);
- heur_dissector_add(IEEE802154_PROTOABBREV_WPAN, dissect_zbee_nwk_heur, proto_zbee_nwk);
+ heur_dissector_add(IEEE802154_PROTOABBREV_WPAN_BEACON, dissect_zbee_beacon_heur, "ZigBee Beacon", "zbee_wlan_beacon", proto_zbee_beacon);
+ heur_dissector_add(IEEE802154_PROTOABBREV_WPAN_BEACON, dissect_zbip_beacon_heur, "ZigBee IP Beacon", "zbip_wlan_beacon", proto_zbip_beacon);
+ heur_dissector_add(IEEE802154_PROTOABBREV_WPAN, dissect_zbee_nwk_heur, "ZigBee Network Layer over IEEE 802.15.4", "zbee_nwk_wlan", proto_zbee_nwk);
/* Handoff the ZigBee security dissector code. */
zbee_security_handoff();
diff --git a/epan/dissectors/packet-ziop.c b/epan/dissectors/packet-ziop.c
index 86fb38a152..8875725ae1 100644
--- a/epan/dissectors/packet-ziop.c
+++ b/epan/dissectors/packet-ziop.c
@@ -332,7 +332,7 @@ proto_reg_handoff_ziop (void)
ziop_tcp_handle = new_create_dissector_handle(dissect_ziop_tcp, proto_ziop);
dissector_add_for_decode_as("udp.port", ziop_tcp_handle);
- heur_dissector_add("tcp", dissect_ziop_heur, proto_ziop);
+ heur_dissector_add("tcp", dissect_ziop_heur, "ZIOP over TCP", "ziop_tcp", proto_ziop);
data_handle = find_dissector("data");
}
diff --git a/epan/packet.c b/epan/packet.c
index bbf8fd1c6c..725b23e4ce 100644
--- a/epan/packet.c
+++ b/epan/packet.c
@@ -48,6 +48,7 @@
#include <epan/stream.h>
#include <epan/expert.h>
#include <epan/range.h>
+#include <epan/asm_utils.h>
static gint proto_malformed = -1;
static dissector_handle_t frame_handle = NULL;
@@ -110,6 +111,9 @@ struct heur_dissector_list {
static GHashTable *heur_dissector_lists = NULL;
+/* Name hashtables for fast detection of duplicate names */
+static GHashTable* heuristic_short_names = NULL;
+
static void
destroy_heuristic_dissector_entry(gpointer data, gpointer user_data _U_)
{
@@ -149,6 +153,8 @@ packet_init(void)
heur_dissector_lists = g_hash_table_new_full(g_str_hash, g_str_equal,
NULL, destroy_heuristic_dissector_list);
+
+ heuristic_short_names = g_hash_table_new(wrs_str_hash, g_str_equal);
}
void
@@ -173,6 +179,7 @@ packet_cleanup(void)
g_hash_table_destroy(dissector_tables);
g_hash_table_destroy(registered_dissectors);
g_hash_table_destroy(heur_dissector_lists);
+ g_hash_table_destroy(heuristic_short_names);
}
/*
@@ -1975,11 +1982,13 @@ find_heur_dissector_by_short_name(heur_dissector_list_t heur_list, const char *s
}
void
-heur_dissector_add(const char *name, heur_dissector_t dissector, const int proto)
+heur_dissector_add(const char *name, heur_dissector_t dissector, const char *display_name, const char *short_name, const int proto)
{
heur_dissector_list_t sub_dissectors = find_heur_dissector_list(name);
const char *proto_name;
heur_dtbl_entry_t *hdtbl_entry;
+ guint i, list_size;
+ GSList *list_entry;
/*
* Make sure the dissector table exists.
@@ -1997,15 +2006,43 @@ heur_dissector_add(const char *name, heur_dissector_t dissector, const int proto
return;
}
- /* XXX: Should verify that sub-dissector is not already in the list ? */
+ /* Verify that sub-dissector is not already in the list */
+ list_size = g_slist_length(sub_dissectors->dissectors);
+ for (i = 0; i < list_size; i++)
+ {
+ list_entry = g_slist_nth(sub_dissectors->dissectors, i);
+ hdtbl_entry = (heur_dtbl_entry_t *)list_entry->data;
+ if ((hdtbl_entry->dissector == dissector) &&
+ (hdtbl_entry->protocol == find_protocol_by_id(proto)))
+ {
+ proto_name = proto_get_protocol_name(proto);
+ if (proto_name != NULL) {
+ fprintf(stderr, "Protocol %s is already registered in \"%s\" table\n",
+ proto_name, name);
+ }
+ if (getenv("WIRESHARK_ABORT_ON_DISSECTOR_BUG") != NULL)
+ abort();
+ return;
+ }
+ }
+
+ /* Ensure short_name is unique */
+ if (g_hash_table_lookup(heuristic_short_names, (gpointer)short_name) != NULL) {
+ g_error("Duplicate heuristic short_name \"%s\"!"
+ " This might be caused by an inappropriate plugin or a development error.", short_name);
+ }
hdtbl_entry = g_slice_new(heur_dtbl_entry_t);
hdtbl_entry->dissector = dissector;
hdtbl_entry->protocol = find_protocol_by_id(proto);
+ hdtbl_entry->display_name = display_name;
+ hdtbl_entry->short_name = short_name;
hdtbl_entry->list_name = g_strdup(name);
hdtbl_entry->enabled = TRUE;
/* do the table insertion */
+ g_hash_table_insert(heuristic_short_names, (gpointer)short_name, hdtbl_entry); /* Just a copy */
+
sub_dissectors->dissectors = g_slist_prepend(sub_dissectors->dissectors,
(gpointer)hdtbl_entry);
}
diff --git a/epan/packet.h b/epan/packet.h
index 318c69eb01..aac75334e5 100644
--- a/epan/packet.h
+++ b/epan/packet.h
@@ -374,6 +374,8 @@ typedef struct {
heur_dissector_t dissector;
protocol_t *protocol; /* this entry's protocol */
gchar *list_name; /* the list name this entry is in the list of */
+ const gchar *display_name; /* the string used to present heuristic to user */
+ const gchar *short_name; /* string used for "internal" use to uniquely identify heuristic */
gboolean enabled;
} heur_dtbl_entry_t;
@@ -451,10 +453,12 @@ WS_DLL_PUBLIC heur_dtbl_entry_t* find_heur_dissector_by_short_name(heur_dissecto
*
* @param name the name of the "parent" protocol, e.g. "tcp"
* @param dissector the sub-dissector to be registered
+ * @param display_name the string used to present heuristic to user, e.g. "HTTP over TCP"
+ * @param short_name the string used for "internal" use to identify heuristic, e.g. "http_tcp"
* @param proto the protocol id of the sub-dissector
*/
WS_DLL_PUBLIC void heur_dissector_add(const char *name, heur_dissector_t dissector,
- const int proto);
+ const char *display_name, const char *short_name, const int proto);
/** Remove a sub-dissector from a heuristic dissector list.
* Call this in the prefs_reinit function of the sub-dissector.
diff --git a/epan/wslua/wslua_proto.c b/epan/wslua/wslua_proto.c
index 67a0d9ee0c..fc9a6ad76c 100644
--- a/epan/wslua/wslua_proto.c
+++ b/epan/wslua/wslua_proto.c
@@ -300,7 +300,8 @@ WSLUA_METHOD Proto_register_heuristic(lua_State* L) {
g_assert(top == lua_gettop(L));
/* now register the single/common heur_dissect_lua function */
- heur_dissector_add(listname, heur_dissect_lua, proto->hfid);
+ /* XXX - ADD PARAMETERS FOR NEW heur_dissector_add PARAMETERS!!! */
+ heur_dissector_add(listname, heur_dissect_lua, proto_name, proto->loname, proto->hfid);
} else {
luaL_argerror(L,3,"The heuristic dissector must be a function");