aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2016-10-05 16:33:54 -0400
committerMichael Mann <mmann78@netscape.net>2016-10-13 02:51:18 +0000
commit2eb7b05b8c9c6408268f0d1e81f0a18a02610f1c (patch)
treebd0a909e3d506ea2e61c446aa8a809b6f728af3b /epan/dissectors
parent4d8581d7e15fe4a80a53496b83a853271fc674b6 (diff)
Convert most UDP dissectors to use "auto" preferences.
Similar to the "tcp.port" changes in I99604f95d426ad345f4b494598d94178b886eb67, convert dissectors that use "udp.port". More cleanup done on dissectors that use both TCP and UDP dissector tables, so that less preference callbacks exist. Change-Id: If07be9b9e850c244336a7069599cd554ce312dd3 Reviewed-on: https://code.wireshark.org/review/18120 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/dissectors')
-rw-r--r--epan/dissectors/asn1/c1222/packet-c1222-template.c3
-rw-r--r--epan/dissectors/asn1/h225/packet-h225-template.c6
-rw-r--r--epan/dissectors/asn1/h245/packet-h245-template.c2
-rw-r--r--epan/dissectors/asn1/h248/packet-h248-template.c32
-rw-r--r--epan/dissectors/asn1/h283/packet-h283-template.c2
-rw-r--r--epan/dissectors/asn1/h501/packet-h501-template.c32
-rw-r--r--epan/dissectors/asn1/kerberos/packet-kerberos-template.c2
-rw-r--r--epan/dissectors/asn1/ldap/packet-ldap-template.c2
-rw-r--r--epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c2
-rw-r--r--epan/dissectors/asn1/sabp/packet-sabp-template.c2
-rw-r--r--epan/dissectors/asn1/snmp/packet-snmp-template.c6
-rw-r--r--epan/dissectors/asn1/t38/packet-t38-template.c1
-rw-r--r--epan/dissectors/asn1/tetra/packet-tetra-template.c11
-rw-r--r--epan/dissectors/asn1/ulp/packet-ulp-template.c25
-rw-r--r--epan/dissectors/packet-3com-njack.c4
-rw-r--r--epan/dissectors/packet-3g-a11.c4
-rw-r--r--epan/dissectors/packet-a21.c36
-rw-r--r--epan/dissectors/packet-acn.c2
-rw-r--r--epan/dissectors/packet-actrace.c39
-rw-r--r--epan/dissectors/packet-adwin.c29
-rw-r--r--epan/dissectors/packet-aeron.c2
-rw-r--r--epan/dissectors/packet-alljoyn.c22
-rw-r--r--epan/dissectors/packet-amr.c2
-rw-r--r--epan/dissectors/packet-aodv.c2
-rw-r--r--epan/dissectors/packet-ar_drone.c45
-rw-r--r--epan/dissectors/packet-armagetronad.c6
-rw-r--r--epan/dissectors/packet-artnet.c2
-rw-r--r--epan/dissectors/packet-aruba-adp.c4
-rw-r--r--epan/dissectors/packet-aruba-erm.c49
-rw-r--r--epan/dissectors/packet-aruba-papi.c2
-rw-r--r--epan/dissectors/packet-asap.c2
-rw-r--r--epan/dissectors/packet-asterix.c2
-rw-r--r--epan/dissectors/packet-atalk.c2
-rw-r--r--epan/dissectors/packet-ath.c6
-rw-r--r--epan/dissectors/packet-auto_rp.c10
-rw-r--r--epan/dissectors/packet-ax4000.c6
-rw-r--r--epan/dissectors/packet-ayiya.c2
-rw-r--r--epan/dissectors/packet-babel.c6
-rw-r--r--epan/dissectors/packet-bat.c76
-rw-r--r--epan/dissectors/packet-bfcp.c2
-rw-r--r--epan/dissectors/packet-bfd.c6
-rw-r--r--epan/dissectors/packet-bjnp.c10
-rw-r--r--epan/dissectors/packet-bootp.c6
-rw-r--r--epan/dissectors/packet-brp.c34
-rw-r--r--epan/dissectors/packet-bt-dht.c20
-rw-r--r--epan/dissectors/packet-bt-utp.c22
-rw-r--r--epan/dissectors/packet-bvlc.c45
-rw-r--r--epan/dissectors/packet-c1222.c3
-rw-r--r--epan/dissectors/packet-capwap.c56
-rw-r--r--epan/dissectors/packet-cattp.c17
-rw-r--r--epan/dissectors/packet-ccsds.c2
-rw-r--r--epan/dissectors/packet-cfdp.c2
-rw-r--r--epan/dissectors/packet-chargen.c2
-rw-r--r--epan/dissectors/packet-cigi.c2
-rw-r--r--epan/dissectors/packet-cisco-marker.c2
-rw-r--r--epan/dissectors/packet-cisco-wids.c34
-rw-r--r--epan/dissectors/packet-classicstun.c2
-rw-r--r--epan/dissectors/packet-cnip.c5
-rw-r--r--epan/dissectors/packet-coap.c31
-rw-r--r--epan/dissectors/packet-collectd.c42
-rw-r--r--epan/dissectors/packet-componentstatus.c4
-rw-r--r--epan/dissectors/packet-corosync-totemnet.c35
-rw-r--r--epan/dissectors/packet-cpfi.c16
-rw-r--r--epan/dissectors/packet-cpha.c5
-rw-r--r--epan/dissectors/packet-cups.c6
-rw-r--r--epan/dissectors/packet-daytime.c2
-rw-r--r--epan/dissectors/packet-db-lsp.c2
-rw-r--r--epan/dissectors/packet-ddtp.c5
-rw-r--r--epan/dissectors/packet-dhcpv6.c9
-rw-r--r--epan/dissectors/packet-diameter.c19
-rw-r--r--epan/dissectors/packet-dis.c37
-rw-r--r--epan/dissectors/packet-dlsw.c2
-rw-r--r--epan/dissectors/packet-dmp.c28
-rw-r--r--epan/dissectors/packet-dnp.c2
-rw-r--r--epan/dissectors/packet-dns.c31
-rw-r--r--epan/dissectors/packet-dof.c6
-rw-r--r--epan/dissectors/packet-dtn.c28
-rw-r--r--epan/dissectors/packet-dvb-ipdc.c2
-rw-r--r--epan/dissectors/packet-echo.c2
-rw-r--r--epan/dissectors/packet-ecmp.c19
-rw-r--r--epan/dissectors/packet-edonkey.c5
-rw-r--r--epan/dissectors/packet-egd.c10
-rw-r--r--epan/dissectors/packet-ehs.c2
-rw-r--r--epan/dissectors/packet-elasticsearch.c4
-rw-r--r--epan/dissectors/packet-enip.c4
-rw-r--r--epan/dissectors/packet-enrp.c2
-rw-r--r--epan/dissectors/packet-enttec.c30
-rw-r--r--epan/dissectors/packet-epl.c2
-rw-r--r--epan/dissectors/packet-esio.c4
-rw-r--r--epan/dissectors/packet-eth.c2
-rw-r--r--epan/dissectors/packet-ff.c22
-rw-r--r--epan/dissectors/packet-ff.h5
-rw-r--r--epan/dissectors/packet-forces.c18
-rw-r--r--epan/dissectors/packet-geneve.c3
-rw-r--r--epan/dissectors/packet-glbp.c8
-rw-r--r--epan/dissectors/packet-gsm_ipa.c45
-rw-r--r--epan/dissectors/packet-gsm_osmux.c19
-rw-r--r--epan/dissectors/packet-gsmtap.c2
-rw-r--r--epan/dissectors/packet-gtp.c2
-rw-r--r--epan/dissectors/packet-gvsp.c11
-rw-r--r--epan/dissectors/packet-h225.c16
-rw-r--r--epan/dissectors/packet-h245.c2
-rw-r--r--epan/dissectors/packet-h248.c38
-rw-r--r--epan/dissectors/packet-h283.c2
-rw-r--r--epan/dissectors/packet-h501.c38
-rw-r--r--epan/dissectors/packet-hartip.c2
-rw-r--r--epan/dissectors/packet-hcrt.c22
-rw-r--r--epan/dissectors/packet-hip.c4
-rw-r--r--epan/dissectors/packet-hiqnet.c2
-rw-r--r--epan/dissectors/packet-hp-erm.c34
-rw-r--r--epan/dissectors/packet-hsrp.c10
-rw-r--r--epan/dissectors/packet-http.c2
-rw-r--r--epan/dissectors/packet-iapp.c2
-rw-r--r--epan/dissectors/packet-iax2.c2
-rw-r--r--epan/dissectors/packet-icep.c38
-rw-r--r--epan/dissectors/packet-icp.c2
-rw-r--r--epan/dissectors/packet-icq.c2
-rw-r--r--epan/dissectors/packet-infiniband.c3
-rw-r--r--epan/dissectors/packet-interlink.c2
-rw-r--r--epan/dissectors/packet-ip.c2
-rw-r--r--epan/dissectors/packet-ipsec-udp.c7
-rw-r--r--epan/dissectors/packet-ipv6.c2
-rw-r--r--epan/dissectors/packet-ipvs-syncd.c7
-rw-r--r--epan/dissectors/packet-ipx.c2
-rw-r--r--epan/dissectors/packet-isakmp.c2
-rw-r--r--epan/dissectors/packet-isns.c2
-rw-r--r--epan/dissectors/packet-jmirror.c48
-rw-r--r--epan/dissectors/packet-juniper.c2
-rw-r--r--epan/dissectors/packet-kdp.c4
-rw-r--r--epan/dissectors/packet-kerberos.c2
-rw-r--r--epan/dissectors/packet-kerberos4.c2
-rw-r--r--epan/dissectors/packet-kingfisher.c11
-rw-r--r--epan/dissectors/packet-kink.c6
-rw-r--r--epan/dissectors/packet-knet.c11
-rw-r--r--epan/dissectors/packet-kpasswd.c2
-rw-r--r--epan/dissectors/packet-l2tp.c2
-rw-r--r--epan/dissectors/packet-laplink.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-ldap.c2
-rw-r--r--epan/dissectors/packet-ldp.c40
-rw-r--r--epan/dissectors/packet-ldss.c29
-rw-r--r--epan/dissectors/packet-lge_monitor.c46
-rw-r--r--epan/dissectors/packet-lisp-data.c2
-rw-r--r--epan/dissectors/packet-lisp.c2
-rw-r--r--epan/dissectors/packet-llc.c12
-rw-r--r--epan/dissectors/packet-lmp.c25
-rw-r--r--epan/dissectors/packet-lsc.c42
-rw-r--r--epan/dissectors/packet-lte-rrc.c2
-rw-r--r--epan/dissectors/packet-ltp.c35
-rw-r--r--epan/dissectors/packet-lwapp.c9
-rw-r--r--epan/dissectors/packet-lwres.c38
-rw-r--r--epan/dissectors/packet-mactelnet.c27
-rw-r--r--epan/dissectors/packet-manolito.c7
-rw-r--r--epan/dissectors/packet-mausb.c44
-rw-r--r--epan/dissectors/packet-mcpe.c8
-rw-r--r--epan/dissectors/packet-megaco.c11
-rw-r--r--epan/dissectors/packet-memcache.c18
-rw-r--r--epan/dissectors/packet-mih.c2
-rw-r--r--epan/dissectors/packet-mikey.c31
-rw-r--r--epan/dissectors/packet-mint.c4
-rw-r--r--epan/dissectors/packet-miop.c2
-rw-r--r--epan/dissectors/packet-mip.c2
-rw-r--r--epan/dissectors/packet-mip6.c2
-rw-r--r--epan/dissectors/packet-mndp.c4
-rw-r--r--epan/dissectors/packet-mojito.c38
-rw-r--r--epan/dissectors/packet-moldudp.c37
-rw-r--r--epan/dissectors/packet-moldudp64.c35
-rw-r--r--epan/dissectors/packet-mp2t.c2
-rw-r--r--epan/dissectors/packet-mpls-echo.c29
-rw-r--r--epan/dissectors/packet-mpls.c2
-rw-r--r--epan/dissectors/packet-mqtt-sn.c2
-rw-r--r--epan/dissectors/packet-ms-mms.c2
-rw-r--r--epan/dissectors/packet-msproxy.c5
-rw-r--r--epan/dissectors/packet-nat-pmp.c9
-rw-r--r--epan/dissectors/packet-nb_rtpmux.c49
-rw-r--r--epan/dissectors/packet-nbt.c4
-rw-r--r--epan/dissectors/packet-netdump.c41
-rw-r--r--epan/dissectors/packet-newmail.c41
-rw-r--r--epan/dissectors/packet-nordic_ble.c17
-rw-r--r--epan/dissectors/packet-nsip.c31
-rw-r--r--epan/dissectors/packet-nt-tpcp.c7
-rw-r--r--epan/dissectors/packet-ntp.c2
-rw-r--r--epan/dissectors/packet-nwmtp.c2
-rw-r--r--epan/dissectors/packet-obex.c2
-rw-r--r--epan/dissectors/packet-oicq.c7
-rw-r--r--epan/dissectors/packet-olsr.c2
-rw-r--r--epan/dissectors/packet-omron-fins.c4
-rw-r--r--epan/dissectors/packet-opensafety.c1
-rw-r--r--epan/dissectors/packet-openvpn.c27
-rw-r--r--epan/dissectors/packet-p_mul.c29
-rw-r--r--epan/dissectors/packet-packetbb.c30
-rw-r--r--epan/dissectors/packet-pana.c2
-rw-r--r--epan/dissectors/packet-pathport.c4
-rw-r--r--epan/dissectors/packet-pcli.c26
-rw-r--r--epan/dissectors/packet-peekremote.c4
-rw-r--r--epan/dissectors/packet-pgm.c57
-rw-r--r--epan/dissectors/packet-pktc.c4
-rw-r--r--epan/dissectors/packet-pnrp.c2
-rw-r--r--epan/dissectors/packet-ptp.c6
-rw-r--r--epan/dissectors/packet-pulse.c41
-rw-r--r--epan/dissectors/packet-pw-cesopsn.c2
-rw-r--r--epan/dissectors/packet-pw-satop.c2
-rw-r--r--epan/dissectors/packet-quake.c30
-rw-r--r--epan/dissectors/packet-quake2.c43
-rw-r--r--epan/dissectors/packet-quake3.c8
-rw-r--r--epan/dissectors/packet-quakeworld.c43
-rw-r--r--epan/dissectors/packet-quic.c40
-rw-r--r--epan/dissectors/packet-radius.c41
-rw-r--r--epan/dissectors/packet-rdt.c54
-rw-r--r--epan/dissectors/packet-redbackli.c5
-rw-r--r--epan/dissectors/packet-reload-framing.c2
-rw-r--r--epan/dissectors/packet-riemann.c30
-rw-r--r--epan/dissectors/packet-rip.c2
-rw-r--r--epan/dissectors/packet-ripng.c2
-rw-r--r--epan/dissectors/packet-rmcp.c4
-rw-r--r--epan/dissectors/packet-rmt-alc.c38
-rw-r--r--epan/dissectors/packet-rmt-norm.c2
-rw-r--r--epan/dissectors/packet-rpc.c2
-rw-r--r--epan/dissectors/packet-rsip.c2
-rw-r--r--epan/dissectors/packet-rsvp.c2
-rw-r--r--epan/dissectors/packet-rtcp.c2
-rw-r--r--epan/dissectors/packet-rtls.c2
-rw-r--r--epan/dissectors/packet-rtp.c35
-rw-r--r--epan/dissectors/packet-rtpproxy.c25
-rw-r--r--epan/dissectors/packet-rudp.c60
-rw-r--r--epan/dissectors/packet-rx.c12
-rw-r--r--epan/dissectors/packet-sabp.c2
-rw-r--r--epan/dissectors/packet-sap.c2
-rw-r--r--epan/dissectors/packet-sbus.c4
-rw-r--r--epan/dissectors/packet-scop.c57
-rw-r--r--epan/dissectors/packet-sctp.c2
-rw-r--r--epan/dissectors/packet-sebek.c4
-rw-r--r--epan/dissectors/packet-sflow.c38
-rw-r--r--epan/dissectors/packet-sigcomp.c48
-rw-r--r--epan/dissectors/packet-simple.c2
-rw-r--r--epan/dissectors/packet-simulcrypt.c18
-rw-r--r--epan/dissectors/packet-sip.c4
-rw-r--r--epan/dissectors/packet-skype.c2
-rw-r--r--epan/dissectors/packet-slimp3.c9
-rw-r--r--epan/dissectors/packet-sml.c24
-rw-r--r--epan/dissectors/packet-snmp.c6
-rw-r--r--epan/dissectors/packet-sprt.c2
-rw-r--r--epan/dissectors/packet-srvloc.c2
-rw-r--r--epan/dissectors/packet-sscop.c24
-rw-r--r--epan/dissectors/packet-stun.c2
-rw-r--r--epan/dissectors/packet-sync.c2
-rw-r--r--epan/dissectors/packet-synphasor.c34
-rw-r--r--epan/dissectors/packet-syslog.c2
-rw-r--r--epan/dissectors/packet-t38.c1
-rw-r--r--epan/dissectors/packet-tacacs.c2
-rw-r--r--epan/dissectors/packet-tapa.c4
-rw-r--r--epan/dissectors/packet-tdmop.c27
-rw-r--r--epan/dissectors/packet-teamspeak2.c4
-rw-r--r--epan/dissectors/packet-teredo.c2
-rw-r--r--epan/dissectors/packet-tetra.c15
-rw-r--r--epan/dissectors/packet-tftp.c39
-rw-r--r--epan/dissectors/packet-time.c2
-rw-r--r--epan/dissectors/packet-tipc.c38
-rw-r--r--epan/dissectors/packet-tivoconnect.c2
-rw-r--r--epan/dissectors/packet-tsp.c2
-rw-r--r--epan/dissectors/packet-turnchannel.c2
-rw-r--r--epan/dissectors/packet-tzsp.c7
-rw-r--r--epan/dissectors/packet-uaudp.c142
-rw-r--r--epan/dissectors/packet-udt.c2
-rw-r--r--epan/dissectors/packet-uftp.c8
-rw-r--r--epan/dissectors/packet-uhd.c28
-rw-r--r--epan/dissectors/packet-ulp.c37
-rw-r--r--epan/dissectors/packet-uma.c2
-rw-r--r--epan/dissectors/packet-userlog.c2
-rw-r--r--epan/dissectors/packet-vcdu.c2
-rw-r--r--epan/dissectors/packet-vines.c2
-rw-r--r--epan/dissectors/packet-vrt.c48
-rw-r--r--epan/dissectors/packet-vsip.c2
-rw-r--r--epan/dissectors/packet-vuze-dht.c38
-rw-r--r--epan/dissectors/packet-vxlan.c4
-rw-r--r--epan/dissectors/packet-wap.h2
-rw-r--r--epan/dissectors/packet-wassp.c6
-rw-r--r--epan/dissectors/packet-wccp.c2
-rw-r--r--epan/dissectors/packet-who.c2
-rw-r--r--epan/dissectors/packet-wlccp.c4
-rw-r--r--epan/dissectors/packet-wsp.c13
-rw-r--r--epan/dissectors/packet-wtls.c12
-rw-r--r--epan/dissectors/packet-wtp.c2
-rw-r--r--epan/dissectors/packet-xdmcp.c5
-rw-r--r--epan/dissectors/packet-xyplex.c2
-rw-r--r--epan/dissectors/packet-yami.c20
-rw-r--r--epan/dissectors/packet-zep.c50
-rw-r--r--epan/dissectors/packet-ziop.c5
-rw-r--r--epan/dissectors/packet-zrtp.c2
291 files changed, 933 insertions, 3127 deletions
diff --git a/epan/dissectors/asn1/c1222/packet-c1222-template.c b/epan/dissectors/asn1/c1222/packet-c1222-template.c
index c177ca6b18..1c8b5ae40a 100644
--- a/epan/dissectors/asn1/c1222/packet-c1222-template.c
+++ b/epan/dissectors/asn1/c1222/packet-c1222-template.c
@@ -191,7 +191,6 @@ static expert_field ei_c1222_epsem_field_length_error = EI_INIT;
static expert_field ei_c1222_mac_missing = EI_INIT;
/* Preferences */
-static int global_c1222_port = C1222_PORT;
static gboolean c1222_desegment = TRUE;
#ifdef HAVE_LIBGCRYPT
static gboolean c1222_decrypt = TRUE;
@@ -1419,7 +1418,7 @@ proto_reg_handoff_c1222(void)
c1222_handle = create_dissector_handle(dissect_c1222, proto_c1222);
c1222_udp_handle = create_dissector_handle(dissect_c1222_common, proto_c1222);
dissector_add_uint_with_preference("tcp.port", C1222_PORT, c1222_handle);
- dissector_add_uint("udp.port", global_c1222_port, c1222_udp_handle);
+ dissector_add_uint_with_preference("udp.port", C1222_PORT, c1222_udp_handle);
initialized = TRUE;
}
if (c1222_baseoid_str && (c1222_baseoid_str[0] != '\0') &&
diff --git a/epan/dissectors/asn1/h225/packet-h225-template.c b/epan/dissectors/asn1/h225/packet-h225-template.c
index 4180bd2d06..6ff87cfb41 100644
--- a/epan/dissectors/asn1/h225/packet-h225-template.c
+++ b/epan/dissectors/asn1/h225/packet-h225-template.c
@@ -57,8 +57,7 @@
#define PSNAME "H.225.0"
#define PFNAME "h225"
-#define UDP_PORT_RAS1 1718
-#define UDP_PORT_RAS2 1719
+#define UDP_PORT_RAS_RANGE "1718-1719"
#define TCP_PORT_CS 1720
#define TLS_PORT_CS 1300
@@ -936,8 +935,7 @@ proto_reg_handoff_h225(void)
static guint saved_h225_tls_port;
if (!h225_prefs_initialized) {
- dissector_add_uint("udp.port", UDP_PORT_RAS1, h225ras_handle);
- dissector_add_uint("udp.port", UDP_PORT_RAS2, h225ras_handle);
+ dissector_add_uint_range_with_preference("udp.port", UDP_PORT_RAS_RANGE, h225ras_handle);
h245_handle = find_dissector("h245");
h245dg_handle = find_dissector("h245dg");
diff --git a/epan/dissectors/asn1/h245/packet-h245-template.c b/epan/dissectors/asn1/h245/packet-h245-template.c
index ce66688a6b..a8cad58d47 100644
--- a/epan/dissectors/asn1/h245/packet-h245-template.c
+++ b/epan/dissectors/asn1/h245/packet-h245-template.c
@@ -611,7 +611,7 @@ void proto_reg_handoff_h245(void) {
dissector_add_for_decode_as_with_preference("tcp.port", h245_handle);
- dissector_add_for_decode_as("udp.port", MultimediaSystemControlMessage_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", MultimediaSystemControlMessage_handle);
}
static void init_h245_packet_info(h245_packet_info *pi)
diff --git a/epan/dissectors/asn1/h248/packet-h248-template.c b/epan/dissectors/asn1/h248/packet-h248-template.c
index abe81546fb..3dbc8940a4 100644
--- a/epan/dissectors/asn1/h248/packet-h248-template.c
+++ b/epan/dissectors/asn1/h248/packet-h248-template.c
@@ -835,9 +835,8 @@ void gcp_analyze_msg(proto_tree* gcp_tree, packet_info* pinfo, tvbuff_t* gcp_tvb
/* END Gateway Control Protocol -- Context Tracking */
+#define H248_PORT 2945
static gboolean keep_persistent_data = FALSE;
-static guint global_udp_port = 2945;
-#define H248_TCP_PORT 2945
static gboolean h248_desegment = TRUE;
@@ -2373,16 +2372,11 @@ void proto_register_h248(void) {
subdissector_table = register_dissector_table("h248.magic_num", "H248 Magic Num", proto_h248, FT_UINT32, BASE_HEX);
- h248_module = prefs_register_protocol(proto_h248, proto_reg_handoff_h248);
+ h248_module = prefs_register_protocol(proto_h248, NULL);
prefs_register_bool_preference(h248_module, "ctx_info",
"Track Context",
"Maintain relationships between transactions and contexts and display an extra tree showing context data",
&keep_persistent_data);
- prefs_register_uint_preference(h248_module, "udp_port",
- "UDP port",
- "Port to be decoded as h248",
- 10,
- &global_udp_port);
prefs_register_bool_preference(h248_module, "desegment",
"Desegment H.248 over TCP",
"Desegment H.248 messages that span more TCP segments",
@@ -2399,24 +2393,10 @@ void proto_register_h248(void) {
/*--- proto_reg_handoff_h248 -------------------------------------------*/
void proto_reg_handoff_h248(void) {
- static gboolean initialized = FALSE;
- static guint32 udp_port;
-
- if (!initialized) {
- dissector_add_uint("mtp3.service_indicator", MTP_SI_GCP, h248_handle);
- h248_term_handle = find_dissector_add_dependency("h248term", proto_h248);
- dissector_add_uint_with_preference("tcp.port", H248_TCP_PORT, h248_tpkt_handle);
- initialized = TRUE;
- } else {
- if (udp_port != 0)
- dissector_delete_uint("udp.port", udp_port, h248_handle);
- }
-
- udp_port = global_udp_port;
-
- if (udp_port != 0) {
- dissector_add_uint("udp.port", udp_port, h248_handle);
- }
+ dissector_add_uint("mtp3.service_indicator", MTP_SI_GCP, h248_handle);
+ h248_term_handle = find_dissector_add_dependency("h248term", proto_h248);
+ dissector_add_uint_with_preference("tcp.port", H248_PORT, h248_tpkt_handle);
+ dissector_add_uint_with_preference("udp.port", H248_PORT, h248_handle);
ss7pc_address_type = address_type_get_by_name("AT_SS7PC");
exported_pdu_tap = find_tap_id(EXPORT_PDU_TAP_NAME_LAYER_7);
diff --git a/epan/dissectors/asn1/h283/packet-h283-template.c b/epan/dissectors/asn1/h283/packet-h283-template.c
index 14f2818ab2..1c4c8503fc 100644
--- a/epan/dissectors/asn1/h283/packet-h283-template.c
+++ b/epan/dissectors/asn1/h283/packet-h283-template.c
@@ -99,7 +99,7 @@ void proto_register_h283(void) {
/*--- proto_reg_handoff_h283 -------------------------------------------*/
void proto_reg_handoff_h283(void)
{
- dissector_add_for_decode_as("udp.port", h283_udp_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", h283_udp_handle);
rdc_pdu_handle = find_dissector_add_dependency("rdc", proto_h283);
rdc_device_list_handle = find_dissector_add_dependency("rdc.device_list", proto_h283);
diff --git a/epan/dissectors/asn1/h501/packet-h501-template.c b/epan/dissectors/asn1/h501/packet-h501-template.c
index ab7538d1d5..d7f0969c96 100644
--- a/epan/dissectors/asn1/h501/packet-h501-template.c
+++ b/epan/dissectors/asn1/h501/packet-h501-template.c
@@ -51,8 +51,7 @@ static int ett_h501 = -1;
static dissector_handle_t h501_pdu_handle;
/* Preferences */
-#define H501_TCP_PORT 2099
-static guint h501_udp_port = 2099;
+#define H501_PORT 2099
static gboolean h501_desegment_tcp = TRUE;
void proto_reg_handoff_h501(void);
@@ -111,11 +110,7 @@ void proto_register_h501(void) {
h501_pdu_handle = register_dissector(PFNAME, dissect_h501_pdu, proto_h501);
- h501_module = prefs_register_protocol(proto_h501, proto_reg_handoff_h501);
- prefs_register_uint_preference(h501_module, "udp.port",
- "UDP port",
- "Port to be decoded as h501",
- 10, &h501_udp_port);
+ h501_module = prefs_register_protocol(proto_h501, NULL);
prefs_register_bool_preference(h501_module, "desegment",
"Desegment H.501 over TCP",
"Desegment H.501 messages that span more TCP segments",
@@ -126,23 +121,12 @@ void proto_register_h501(void) {
/*--- proto_reg_handoff_h501 -------------------------------------------*/
void proto_reg_handoff_h501(void)
{
- static gboolean h501_prefs_initialized = FALSE;
- static dissector_handle_t h501_udp_handle;
- static dissector_handle_t h501_tcp_handle;
- static guint saved_h501_udp_port;
-
- if (!h501_prefs_initialized) {
- h501_udp_handle = create_dissector_handle(dissect_h501_udp, proto_h501);
- h501_tcp_handle = create_dissector_handle(dissect_h501_tcp, proto_h501);
- dissector_add_uint_with_preference("tcp.port", H501_TCP_PORT, h501_tcp_handle);
- h501_prefs_initialized = TRUE;
- } else {
- dissector_delete_uint("udp.port", saved_h501_udp_port, h501_udp_handle);
- }
-
- /* Set our port number for future use */
- saved_h501_udp_port = h501_udp_port;
- dissector_add_uint("udp.port", saved_h501_udp_port, h501_udp_handle);
+ dissector_handle_t h501_udp_handle;
+ dissector_handle_t h501_tcp_handle;
+ h501_udp_handle = create_dissector_handle(dissect_h501_udp, proto_h501);
+ h501_tcp_handle = create_dissector_handle(dissect_h501_tcp, proto_h501);
+ dissector_add_uint_with_preference("tcp.port", H501_PORT, h501_tcp_handle);
+ dissector_add_uint_with_preference("udp.port", H501_PORT, h501_udp_handle);
}
diff --git a/epan/dissectors/asn1/kerberos/packet-kerberos-template.c b/epan/dissectors/asn1/kerberos/packet-kerberos-template.c
index 7a8a4ab335..c1e3796401 100644
--- a/epan/dissectors/asn1/kerberos/packet-kerberos-template.c
+++ b/epan/dissectors/asn1/kerberos/packet-kerberos-template.c
@@ -2338,7 +2338,7 @@ proto_reg_handoff_kerberos(void)
kerberos_handle_tcp = create_dissector_handle(dissect_kerberos_tcp,
proto_kerberos);
- dissector_add_uint("udp.port", UDP_PORT_KERBEROS, kerberos_handle_udp);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_KERBEROS, kerberos_handle_udp);
dissector_add_uint_with_preference("tcp.port", TCP_PORT_KERBEROS, kerberos_handle_tcp);
register_dcerpc_auth_subdissector(DCE_C_AUTHN_LEVEL_CONNECT,
diff --git a/epan/dissectors/asn1/ldap/packet-ldap-template.c b/epan/dissectors/asn1/ldap/packet-ldap-template.c
index d65c7c6ca3..9298e21377 100644
--- a/epan/dissectors/asn1/ldap/packet-ldap-template.c
+++ b/epan/dissectors/asn1/ldap/packet-ldap-template.c
@@ -2246,7 +2246,7 @@ proto_reg_handoff_ldap(void)
dissector_handle_t cldap_handle;
cldap_handle = create_dissector_handle(dissect_mscldap, proto_cldap);
- dissector_add_uint("udp.port", UDP_PORT_CLDAP, cldap_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_CLDAP, cldap_handle);
gssapi_handle = find_dissector_add_dependency("gssapi", proto_ldap);
gssapi_wrap_handle = find_dissector_add_dependency("gssapi_verf", proto_ldap);
diff --git a/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c b/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c
index 1f6d0f6845..5d10f6cbd3 100644
--- a/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c
+++ b/epan/dissectors/asn1/lte-rrc/packet-lte-rrc-template.c
@@ -4023,7 +4023,7 @@ proto_reg_handoff_lte_rrc(void)
static dissector_handle_t lte_rrc_dl_ccch_handle;
lte_rrc_dl_ccch_handle = find_dissector("lte_rrc.dl_ccch");
- dissector_add_for_decode_as("udp.port", lte_rrc_dl_ccch_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", lte_rrc_dl_ccch_handle);
nas_eps_handle = find_dissector("nas-eps");
rrc_irat_ho_to_utran_cmd_handle = find_dissector("rrc.irat.ho_to_utran_cmd");
rrc_sys_info_cont_handle = find_dissector("rrc.sysinfo.cont");
diff --git a/epan/dissectors/asn1/sabp/packet-sabp-template.c b/epan/dissectors/asn1/sabp/packet-sabp-template.c
index 5f68453dbd..f0058442a6 100644
--- a/epan/dissectors/asn1/sabp/packet-sabp-template.c
+++ b/epan/dissectors/asn1/sabp/packet-sabp-template.c
@@ -288,7 +288,7 @@ void proto_register_sabp(void) {
void
proto_reg_handoff_sabp(void)
{
- dissector_add_uint("udp.port", SABP_PORT, sabp_handle);
+ dissector_add_uint_with_preference("udp.port", SABP_PORT, sabp_handle);
dissector_add_uint_with_preference("tcp.port", SABP_PORT, sabp_tcp_handle);
dissector_add_uint("sctp.ppi", SABP_PAYLOAD_PROTOCOL_ID, sabp_handle);
diff --git a/epan/dissectors/asn1/snmp/packet-snmp-template.c b/epan/dissectors/asn1/snmp/packet-snmp-template.c
index a10b26415d..3b3cfb70a1 100644
--- a/epan/dissectors/asn1/snmp/packet-snmp-template.c
+++ b/epan/dissectors/asn1/snmp/packet-snmp-template.c
@@ -2579,9 +2579,7 @@ void proto_register_snmp(void) {
void proto_reg_handoff_snmp(void) {
dissector_handle_t snmp_tcp_handle;
- dissector_add_uint("udp.port", UDP_PORT_SNMP, snmp_handle);
- dissector_add_uint("udp.port", UDP_PORT_SNMP_TRAP, snmp_handle);
- dissector_add_uint("udp.port", UDP_PORT_SNMP_PATROL, snmp_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_SNMP, snmp_handle);
dissector_add_uint("ethertype", ETHERTYPE_SNMP, snmp_handle);
dissector_add_uint("ipx.socket", IPX_SOCKET_SNMP_AGENT, snmp_handle);
dissector_add_uint("ipx.socket", IPX_SOCKET_SNMP_SINK, snmp_handle);
@@ -2593,6 +2591,8 @@ void proto_reg_handoff_snmp(void) {
the "trap" port doesn't really need a separate preference. Just register
normally */
dissector_add_uint("tcp.port", TCP_PORT_SNMP_TRAP, snmp_tcp_handle);
+ dissector_add_uint("udp.port", UDP_PORT_SNMP_TRAP, snmp_handle);
+ dissector_add_uint("udp.port", UDP_PORT_SNMP_PATROL, snmp_handle);
data_handle = find_dissector("data");
diff --git a/epan/dissectors/asn1/t38/packet-t38-template.c b/epan/dissectors/asn1/t38/packet-t38-template.c
index 51f41b93e9..bdf42f645e 100644
--- a/epan/dissectors/asn1/t38/packet-t38-template.c
+++ b/epan/dissectors/asn1/t38/packet-t38-template.c
@@ -739,7 +739,6 @@ proto_register_t38(void)
"be dissected as RTP packet or T.38 packet. If enabled there is a risk that T.38 UDPTL "
"packets with sequence number higher than 32767 may be dissected as RTP.",
&dissect_possible_rtpv2_packets_as_rtp);
- prefs_register_obsolete_preference(t38_module, "udp.port");
prefs_register_bool_preference(t38_module, "reassembly",
"Reassemble T.38 PDUs over TPKT over TCP",
"Whether the dissector should reassemble T.38 PDUs spanning multiple TCP segments "
diff --git a/epan/dissectors/asn1/tetra/packet-tetra-template.c b/epan/dissectors/asn1/tetra/packet-tetra-template.c
index fbff495526..c04c5f6d22 100644
--- a/epan/dissectors/asn1/tetra/packet-tetra-template.c
+++ b/epan/dissectors/asn1/tetra/packet-tetra-template.c
@@ -48,7 +48,7 @@ static int proto_tetra = -1;
static dissector_handle_t tetra_handle;
-static int global_tetra_port = 7074;
+#define TETRA_UDP_PORT 7074 /* Not IANA assigned */
/* Whether the capture data include carrier numbers */
static gboolean include_carrier_number = TRUE;
@@ -546,13 +546,8 @@ dissect_tetra(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U
void proto_reg_handoff_tetra(void)
{
- static gboolean initialized=FALSE;
-
- if (!initialized) {
- tetra_handle = create_dissector_handle(dissect_tetra, proto_tetra);
- dissector_add_uint("udp.port", global_tetra_port, tetra_handle);
- }
-
+ tetra_handle = create_dissector_handle(dissect_tetra, proto_tetra);
+ dissector_add_uint_with_preference("udp.port", TETRA_UDP_PORT, tetra_handle);
}
diff --git a/epan/dissectors/asn1/ulp/packet-ulp-template.c b/epan/dissectors/asn1/ulp/packet-ulp-template.c
index 4861779d73..669f8dd1d1 100644
--- a/epan/dissectors/asn1/ulp/packet-ulp-template.c
+++ b/epan/dissectors/asn1/ulp/packet-ulp-template.c
@@ -52,7 +52,6 @@ static dissector_handle_t lpp_handle;
* oma-ulp 7275/udp OMA UserPlane Location
*/
#define ULP_PORT 7275
-static guint gbl_ulp_udp_port = ULP_PORT;
/* Initialize the protocol and registered fields */
static int proto_ulp = -1;
@@ -419,21 +418,13 @@ void proto_register_ulp(void) {
proto_register_field_array(proto_ulp, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- ulp_module = prefs_register_protocol(proto_ulp,proto_reg_handoff_ulp);
+ ulp_module = prefs_register_protocol(proto_ulp, NULL);
prefs_register_bool_preference(ulp_module, "desegment_ulp_messages",
"Reassemble ULP messages spanning multiple TCP segments",
"Whether the ULP dissector should reassemble messages spanning multiple TCP segments."
" To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.",
&ulp_desegment);
-
- /* Register a configuration option for port */
- prefs_register_uint_preference(ulp_module, "udp.port",
- "ULP UDP Port",
- "Set the UDP port for ULP messages (IANA registered port is 7275)",
- 10,
- &gbl_ulp_udp_port);
-
}
@@ -441,23 +432,15 @@ void proto_register_ulp(void) {
void
proto_reg_handoff_ulp(void)
{
- static gboolean initialized = FALSE;
- static dissector_handle_t ulp_udp_handle;
- static guint local_ulp_udp_port;
+ dissector_handle_t ulp_udp_handle;
- if (!initialized) {
dissector_add_string("media_type","application/oma-supl-ulp", ulp_tcp_handle);
dissector_add_string("media_type","application/vnd.omaloc-supl-init", ulp_tcp_handle);
ulp_udp_handle = create_dissector_handle(dissect_ULP_PDU_PDU, proto_ulp);
rrlp_handle = find_dissector_add_dependency("rrlp", proto_ulp);
lpp_handle = find_dissector_add_dependency("lpp", proto_ulp);
- dissector_add_uint_with_preference("tcp.port", ULP_PORT, ulp_tcp_handle);
- initialized = TRUE;
- } else {
- dissector_delete_uint("udp.port", local_ulp_udp_port, ulp_udp_handle);
- }
- local_ulp_udp_port = gbl_ulp_udp_port;
- dissector_add_uint("udp.port", gbl_ulp_udp_port, ulp_udp_handle);
+ dissector_add_uint_with_preference("tcp.port", ULP_PORT, ulp_tcp_handle);
+ dissector_add_uint_with_preference("udp.port", ULP_PORT, ulp_udp_handle);
}
diff --git a/epan/dissectors/packet-3com-njack.c b/epan/dissectors/packet-3com-njack.c
index b51673c356..26207c07c5 100644
--- a/epan/dissectors/packet-3com-njack.c
+++ b/epan/dissectors/packet-3com-njack.c
@@ -97,6 +97,7 @@ static int hf_njack_getresp_unknown1 = -1;
#define PROTO_SHORT_NAME "NJACK"
#define PROTO_LONG_NAME "3com Network Jack"
+#define NJACK_PORT_RANGE "5264-5265"
#define PORT_NJACK_PC 5264
#define PORT_NJACK_SWITCH 5265
@@ -784,9 +785,8 @@ proto_reg_handoff_njack(void)
dissector_handle_t njack_handle;
njack_handle = create_dissector_handle(dissect_njack_static, proto_njack);
- dissector_add_uint("udp.port", PORT_NJACK_PC, njack_handle);
+ dissector_add_uint_range_with_preference("udp.port", NJACK_PORT_RANGE, njack_handle);
/* dissector_add_uint_with_preference("tcp.port", PORT_NJACK_PC, njack_handle); */
- dissector_add_uint("udp.port", PORT_NJACK_SWITCH, njack_handle);
/* dissector_add_uint_with_preference("tcp.port", PORT_NJACK_SWITCH, njack_handle); */
heur_dissector_add("udp", dissect_njack_heur, "NJACK over UDP", "njack_udp", proto_njack, HEURISTIC_ENABLE);
diff --git a/epan/dissectors/packet-3g-a11.c b/epan/dissectors/packet-3g-a11.c
index e065ab781a..a1e9205890 100644
--- a/epan/dissectors/packet-3g-a11.c
+++ b/epan/dissectors/packet-3g-a11.c
@@ -224,7 +224,7 @@ static expert_field ei_a11_entry_data_not_dissected = EI_INIT;
static expert_field ei_a11_session_data_not_dissected = EI_INIT;
/* Port used for Mobile IP based Tunneling Protocol (A11) */
-#define UDP_PORT_3GA11 699
+#define UDP_PORT_3GA11 699 /* Not IANA registered */
typedef enum {
REGISTRATION_REQUEST = 1,
@@ -2739,7 +2739,7 @@ proto_reg_handoff_a11(void)
dissector_handle_t a11_handle;
a11_handle = find_dissector("a11");
- dissector_add_uint("udp.port", UDP_PORT_3GA11, a11_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_3GA11, a11_handle);
/* 3GPP2-Service-Option-Profile(74) */
radius_register_avp_dissector(VENDOR_THE3GPP2, 74, dissect_3gpp2_service_option_profile);
diff --git a/epan/dissectors/packet-a21.c b/epan/dissectors/packet-a21.c
index bcb8e8ff1d..4ca1fc4ab4 100644
--- a/epan/dissectors/packet-a21.c
+++ b/epan/dissectors/packet-a21.c
@@ -27,7 +27,6 @@
#include "config.h"
#include <epan/packet.h>
-#include <epan/prefs.h>
#include <epan/expert.h>
#include "packet-e212.h"
@@ -36,11 +35,7 @@
void proto_register_a21(void);
void proto_reg_handoff_a21(void);
-/* Preferences */
#define A21_PORT 23272
-/* Default the port to zero */
-static guint a21_udp_port = 0;
-
static dissector_handle_t gcsna_handle = NULL;
static int proto_a21 = -1;
@@ -931,7 +926,6 @@ void proto_register_a21(void)
&ett_a21_record_content
};
- module_t *a21_module;
expert_module_t *expert_a21;
static ei_register_info ei[] = {
@@ -945,37 +939,15 @@ void proto_register_a21(void)
proto_register_subtree_array(ett_a21_array, array_length(ett_a21_array));
expert_a21 = expert_register_protocol(proto_a21);
expert_register_field_array(expert_a21, ei, array_length(ei));
-
- a21_module = prefs_register_protocol(proto_a21, proto_reg_handoff_a21);
-
- prefs_register_uint_preference(a21_module, "udp.port",
- "A21 UDP Port",
- "UDP port used by A21, usually 23272",
- 10, &a21_udp_port);
-
}
void proto_reg_handoff_a21(void)
{
- static dissector_handle_t a21_handle;
- static gboolean a21_prefs_initialized = FALSE;
- static guint saved_a21_udp_port;
-
-
- if (!a21_prefs_initialized) {
- a21_handle = create_dissector_handle(dissect_a21, proto_a21);
- gcsna_handle = find_dissector_add_dependency("gcsna", proto_a21);
- dissector_add_uint("udp.port", a21_udp_port, a21_handle);
- a21_prefs_initialized = TRUE;
- } else {
- dissector_delete_uint("udp.port", saved_a21_udp_port, a21_handle);
- }
-
- saved_a21_udp_port = a21_udp_port;
- if (a21_udp_port != 0) {
- dissector_add_uint("udp.port", a21_udp_port, a21_handle);
- }
+ dissector_handle_t a21_handle;
+ a21_handle = create_dissector_handle(dissect_a21, proto_a21);
+ gcsna_handle = find_dissector_add_dependency("gcsna", proto_a21);
+ dissector_add_uint_with_preference("udp.port", A21_PORT, a21_handle);
}
/*
diff --git a/epan/dissectors/packet-acn.c b/epan/dissectors/packet-acn.c
index 86037f419c..3553452e5b 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 = create_dissector_handle(dissect_acn, proto_acn); */
- /* dissector_add_for_decode_as("udp.port", acn_handle); */
+ /* dissector_add_for_decode_as_with_preference("udp.port", acn_handle); */
heur_dissector_add("udp", dissect_acn_heur, "ACN over UDP", "acn_udp", proto_acn, HEURISTIC_DISABLE);
}
diff --git a/epan/dissectors/packet-actrace.c b/epan/dissectors/packet-actrace.c
index 48207bebdc..dad7c63857 100644
--- a/epan/dissectors/packet-actrace.c
+++ b/epan/dissectors/packet-actrace.c
@@ -28,7 +28,7 @@
#include <epan/prefs.h>
#include <epan/tap.h>
#include "packet-actrace.h"
-#define UDP_PORT_ACTRACE 2428
+#define UDP_PORT_ACTRACE 2428 /* Not IANA registered */
#define NOT_ACTRACE 0
#define ACTRACE_CAS 1
@@ -426,12 +426,6 @@ static int ett_actrace = -1;
static int actrace_tap = -1;
static actrace_info_t *actrace_pi;
-/*
- * Here are the global variables associated with
- * the user definable characteristics of the dissection
- */
-static guint global_actrace_udp_port = UDP_PORT_ACTRACE;
-
/* Some basic utility functions that are specific to this dissector */
static int is_actrace(tvbuff_t *tvb, gint offset);
@@ -794,13 +788,7 @@ void proto_register_actrace(void)
proto_register_subtree_array(ett, array_length(ett));
/* Register our configuration options */
- actrace_module = prefs_register_protocol(proto_actrace, proto_reg_handoff_actrace);
-
- prefs_register_uint_preference(actrace_module, "udp_port",
- "AudioCodes Trunk Trace UDP port",
- "Set the UDP port for AudioCodes Trunk Traces."
- "Use http://x.x.x.x/TrunkTraces to enable the traces in the Blade",
- 10, &global_actrace_udp_port);
+ actrace_module = prefs_register_protocol(proto_actrace, NULL);
prefs_register_obsolete_preference(actrace_module, "display_dissect_tree");
@@ -810,26 +798,13 @@ void proto_register_actrace(void)
/* The registration hand-off routine */
void proto_reg_handoff_actrace(void)
{
- static gboolean actrace_prefs_initialized = FALSE;
- static dissector_handle_t actrace_handle;
- static guint actrace_udp_port;
-
- if (!actrace_prefs_initialized)
- {
- actrace_handle = create_dissector_handle(dissect_actrace, proto_actrace);
- /* Get a handle for the lapd dissector. */
- lapd_handle = find_dissector_add_dependency("lapd", proto_actrace);
- actrace_prefs_initialized = TRUE;
- }
- else
- {
- dissector_delete_uint("udp.port", actrace_udp_port, actrace_handle);
- }
+ dissector_handle_t actrace_handle;
- /* Set our port number for future use */
- actrace_udp_port = global_actrace_udp_port;
+ /* Get a handle for the lapd dissector. */
+ lapd_handle = find_dissector_add_dependency("lapd", proto_actrace);
- dissector_add_uint("udp.port", global_actrace_udp_port, actrace_handle);
+ actrace_handle = create_dissector_handle(dissect_actrace, proto_actrace);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_ACTRACE, actrace_handle);
}
/*
diff --git a/epan/dissectors/packet-adwin.c b/epan/dissectors/packet-adwin.c
index 033d1ff66e..18f839dfb2 100644
--- a/epan/dissectors/packet-adwin.c
+++ b/epan/dissectors/packet-adwin.c
@@ -30,8 +30,7 @@
void proto_reg_handoff_adwin(void);
void proto_register_adwin(void);
-/* This is registered to a different protocol */
-#define ADWIN_COMM_PORT 6543
+#define ADWIN_COMM_PORT 6543 /* Not IANA registered */
/* lengths of valid packet structures */
#define UDPH1_OLD_LENGTH 52
@@ -442,7 +441,6 @@ static value_string_ext packet_type_mapping_ext = VALUE_STRING_EXT_INIT(packet_t
/* Initialize the protocol and registered fields */
static int proto_adwin = -1;
-static unsigned int global_adwin_udp_port = ADWIN_COMM_PORT;
static int global_adwin_dissect_data = 1;
static int hf_adwin_address = -1;
@@ -1162,19 +1160,10 @@ dissect_adwin(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U
void
proto_reg_handoff_adwin(void)
{
- static int adwin_prefs_initialized = FALSE;
- static dissector_handle_t adwin_handle;
- static unsigned int udp_port;
+ dissector_handle_t adwin_handle;
- if (! adwin_prefs_initialized) {
- adwin_handle = create_dissector_handle(dissect_adwin, proto_adwin);
- adwin_prefs_initialized = TRUE;
- } else {
- dissector_delete_uint("udp.port", udp_port, adwin_handle);
- }
-
- udp_port = global_adwin_udp_port;
- dissector_add_uint("udp.port", global_adwin_udp_port, adwin_handle);
+ adwin_handle = create_dissector_handle(dissect_adwin, proto_adwin);
+ dissector_add_uint_with_preference("udp.port", ADWIN_COMM_PORT, adwin_handle);
}
void
@@ -1439,14 +1428,8 @@ proto_register_adwin(void)
proto_register_field_array(proto_adwin, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- /* Register our configuration options for ADwin, particularly
- our port */
- adwin_module = prefs_register_protocol(proto_adwin, proto_reg_handoff_adwin);
-
- prefs_register_uint_preference(adwin_module, "udp.port", "ADwin UDP Port",
- "Set the UDP port for ADwin packets (if other"
- " than the default of 6543)",
- 10, &global_adwin_udp_port);
+ /* Register our configuration options for ADwin */
+ adwin_module = prefs_register_protocol(proto_adwin, NULL);
prefs_register_bool_preference(adwin_module, "dissect_data",
"Dissect Data sections",
diff --git a/epan/dissectors/packet-aeron.c b/epan/dissectors/packet-aeron.c
index 5f263a0141..ffb7417d90 100644
--- a/epan/dissectors/packet-aeron.c
+++ b/epan/dissectors/packet-aeron.c
@@ -3132,7 +3132,7 @@ void proto_register_aeron(void)
void proto_reg_handoff_aeron(void)
{
aeron_dissector_handle = create_dissector_handle(dissect_aeron, proto_aeron);
- dissector_add_for_decode_as("udp.port", aeron_dissector_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", aeron_dissector_handle);
heur_dissector_add("udp", test_aeron_packet, "Aeron over UDP", "aeron_udp", proto_aeron, HEURISTIC_DISABLE);
}
diff --git a/epan/dissectors/packet-alljoyn.c b/epan/dissectors/packet-alljoyn.c
index 19fdf407ca..fd9b1dd93e 100644
--- a/epan/dissectors/packet-alljoyn.c
+++ b/epan/dissectors/packet-alljoyn.c
@@ -3027,23 +3027,19 @@ proto_register_AllJoyn(void)
void
proto_reg_handoff_AllJoyn(void)
{
- static gboolean initialized = FALSE;
- static dissector_handle_t alljoyn_handle_ns;
- static dissector_handle_t alljoyn_handle_ardp;
-
- if(!initialized) {
- alljoyn_handle_ns = create_dissector_handle(dissect_AllJoyn_name_server, proto_AllJoyn_ns);
- alljoyn_handle_ardp = create_dissector_handle(dissect_AllJoyn_ardp, proto_AllJoyn_ardp);
- dissector_add_uint_with_preference("tcp.port", ALLJOYN_NAME_SERVER_PORT, alljoyn_handle_ns);
- dissector_add_uint_with_preference("tcp.port", ALLJOYN_MESSAGE_PORT, alljoyn_handle_ardp);
- initialized = TRUE;
- }
+ dissector_handle_t alljoyn_handle_ns;
+ dissector_handle_t alljoyn_handle_ardp;
+
+ alljoyn_handle_ns = create_dissector_handle(dissect_AllJoyn_name_server, proto_AllJoyn_ns);
+ alljoyn_handle_ardp = create_dissector_handle(dissect_AllJoyn_ardp, proto_AllJoyn_ardp);
+ dissector_add_uint_with_preference("tcp.port", ALLJOYN_NAME_SERVER_PORT, alljoyn_handle_ns);
+ dissector_add_uint_with_preference("tcp.port", ALLJOYN_MESSAGE_PORT, alljoyn_handle_ardp);
- dissector_add_uint("udp.port", ALLJOYN_NAME_SERVER_PORT, alljoyn_handle_ns);
+ dissector_add_uint_with_preference("udp.port", ALLJOYN_NAME_SERVER_PORT, alljoyn_handle_ns);
/* The ARDP dissector will directly call the AllJoyn message dissector if needed.
* This includes the case where there is no ARDP data. */
- dissector_add_uint("udp.port", ALLJOYN_MESSAGE_PORT, alljoyn_handle_ardp);
+ dissector_add_uint_with_preference("udp.port", ALLJOYN_MESSAGE_PORT, alljoyn_handle_ardp);
}
/*
diff --git a/epan/dissectors/packet-amr.c b/epan/dissectors/packet-amr.c
index c09712c406..db48e94e6a 100644
--- a/epan/dissectors/packet-amr.c
+++ b/epan/dissectors/packet-amr.c
@@ -850,7 +850,7 @@ proto_reg_handoff_amr(void)
create_dissector_handle(ftr->content_pdu, proto_amr));
}
/* Activate the next line for testing with the randpkt tool
- dissector_add_uint("udp.port", 55555, amr_handle);
+ dissector_add_uint_with_preference("udp.port", 55555, amr_handle);
*/
amr_prefs_initialized = TRUE;
} else {
diff --git a/epan/dissectors/packet-aodv.c b/epan/dissectors/packet-aodv.c
index 28e8d2148c..8d2576f19a 100644
--- a/epan/dissectors/packet-aodv.c
+++ b/epan/dissectors/packet-aodv.c
@@ -927,7 +927,7 @@ proto_reg_handoff_aodv(void)
aodv_handle = create_dissector_handle(dissect_aodv,
proto_aodv);
- dissector_add_uint("udp.port", UDP_PORT_AODV, aodv_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_AODV, aodv_handle);
}
/*
diff --git a/epan/dissectors/packet-ar_drone.c b/epan/dissectors/packet-ar_drone.c
index b98a4ba20d..aa9655a887 100644
--- a/epan/dissectors/packet-ar_drone.c
+++ b/epan/dissectors/packet-ar_drone.c
@@ -27,14 +27,11 @@
#include "config.h"
#include <epan/packet.h>
-#include <epan/prefs.h>
#include <epan/expert.h>
void proto_register_ar_drone(void);
void proto_reg_handoff_ar_drone(void);
-static guint ar_drone_port = 0;
-
/* ************************************************ */
/* Begin static variable declaration/initialization */
/* ************************************************ */
@@ -761,59 +758,27 @@ proto_register_ar_drone(void)
{ &ei_NO_CR, { "ar_drone.no_cr", PI_MALFORMED, PI_ERROR, "Carriage return delimiter (0x0d) not found", EXPFILL }},
};
- module_t *drone_module;
expert_module_t* expert_drone;
/* Setup protocol info */
- proto_ar_drone = proto_register_protocol (
- "AR Drone Packet", /* name */
- "AR Drone", /* short name */
- "ar_drone" /* abbrev */
- );
+ proto_ar_drone = proto_register_protocol("AR Drone Packet", "AR Drone", "ar_drone");
proto_register_field_array(proto_ar_drone, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
expert_drone = expert_register_protocol(proto_ar_drone);
expert_register_field_array(expert_drone, ei, array_length(ei));
-
- drone_module = prefs_register_protocol(proto_ar_drone, NULL);
-
- prefs_register_uint_preference(drone_module, "udp.port",
- "AR Drone UDP Port",
- "AR Drone UDP port",
- 10,
- &ar_drone_port);
}
void
proto_reg_handoff_ar_drone(void)
{
- static dissector_handle_t ar_drone_handle;
- static guint old_port = 0;
- static gboolean initialized = FALSE;
+ dissector_handle_t ar_drone_handle;
- if (initialized == FALSE)
- {
- ar_drone_handle = create_dissector_handle(dissect_ar_drone, proto_ar_drone);
-
- heur_dissector_add("udp", dissect_ar_drone, "AR Drone over UDP", "ar_drone_udp", proto_ar_drone, HEURISTIC_ENABLE);
-
- initialized = TRUE;
- }
-
- /* Register UDP port for dissection */
- if (old_port != 0 && old_port != ar_drone_port)
- {
- dissector_delete_uint("udp.port", old_port, ar_drone_handle);
- }
-
- if (ar_drone_port != 0 && old_port != ar_drone_port)
- {
- dissector_add_uint("udp.port", ar_drone_port, ar_drone_handle);
- }
+ ar_drone_handle = create_dissector_handle(dissect_ar_drone, proto_ar_drone);
- old_port = ar_drone_port;
+ heur_dissector_add("udp", dissect_ar_drone, "AR Drone over UDP", "ar_drone_udp", proto_ar_drone, HEURISTIC_ENABLE);
+ dissector_add_for_decode_as_with_preference("udp.port", ar_drone_handle);
}
/*
diff --git a/epan/dissectors/packet-armagetronad.c b/epan/dissectors/packet-armagetronad.c
index 0ae37def07..733152e1c1 100644
--- a/epan/dissectors/packet-armagetronad.c
+++ b/epan/dissectors/packet-armagetronad.c
@@ -40,8 +40,7 @@ static int hf_armagetronad_msg_subtree = -1;
static gint ett_armagetronad = -1;
static gint ett_message = -1;
-#define UDP_PORT_ARMAGETRONAD 4534
-#define UDP_PORT_MASTER 4533
+#define ARMAGETRONAD_UDP_PORT_RANGE "4533-4534" /* 4533 is not IANA registered, 4534 is */
/*
* The ACK packet is so common that we treat it
@@ -322,8 +321,7 @@ void proto_reg_handoff_armagetronad(void)
armagetronad_handle = find_dissector("armagetronad");
- dissector_add_uint("udp.port", UDP_PORT_ARMAGETRONAD, armagetronad_handle);
- dissector_add_uint("udp.port", UDP_PORT_MASTER, armagetronad_handle);
+ dissector_add_uint_range_with_preference("udp.port", ARMAGETRONAD_UDP_PORT_RANGE, armagetronad_handle);
}
/*
diff --git a/epan/dissectors/packet-artnet.c b/epan/dissectors/packet-artnet.c
index 3f4f3f01e6..db244a43ce 100644
--- a/epan/dissectors/packet-artnet.c
+++ b/epan/dissectors/packet-artnet.c
@@ -5368,7 +5368,7 @@ proto_reg_handoff_artnet(void) {
dissector_handle_t artnet_handle;
artnet_handle = create_dissector_handle(dissect_artnet, proto_artnet);
- dissector_add_for_decode_as("udp.port", artnet_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", artnet_handle);
rdm_handle = find_dissector_add_dependency("rdm", proto_artnet);
dmx_chan_handle = find_dissector_add_dependency("dmx-chan", proto_artnet);
diff --git a/epan/dissectors/packet-aruba-adp.c b/epan/dissectors/packet-aruba-adp.c
index 3b30ffce78..5fb9589ac7 100644
--- a/epan/dissectors/packet-aruba-adp.c
+++ b/epan/dissectors/packet-aruba-adp.c
@@ -27,7 +27,7 @@
#include <epan/packet.h>
#include <epan/addr_resolv.h>
-#define UDP_PORT_ADP 8200
+#define UDP_PORT_ADP 8200 /* Not IANA registered */
#define ADP_REQUEST 1
#define ADP_RESPONSE 2
@@ -148,7 +148,7 @@ proto_reg_handoff_aruba_adp(void)
dissector_handle_t adp_handle;
adp_handle = create_dissector_handle(dissect_aruba_adp, proto_aruba_adp);
- dissector_add_uint("udp.port", UDP_PORT_ADP, adp_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_ADP, adp_handle);
}
/*
diff --git a/epan/dissectors/packet-aruba-erm.c b/epan/dissectors/packet-aruba-erm.c
index b58b8adcb2..d751838b40 100644
--- a/epan/dissectors/packet-aruba-erm.c
+++ b/epan/dissectors/packet-aruba-erm.c
@@ -122,7 +122,6 @@ void proto_register_aruba_erm(void);
void proto_reg_handoff_aruba_erm(void);
void proto_reg_handoff_aruba_erm_radio(void);
-static range_t *global_aruba_erm_port_range;
#if 0
static gint aruba_erm_type = 0;
#endif
@@ -435,15 +434,8 @@ proto_register_aruba_erm(void)
proto_aruba_erm_type4 = proto_register_protocol("Aruba Networks encapsulated remote mirroring - PPI (Type 4)", "ARUBA ERM PPI (Type 4)", "aruba_erm_type4");
proto_aruba_erm_type5 = proto_register_protocol("Aruba Networks encapsulated remote mirroring - PEEK (Type 5)", "ARUBA ERM PEEK-NG (type 5)", "aruba_erm_type5");
- range_convert_str (&global_aruba_erm_port_range, "0", MAX_UDP_PORT);
+ aruba_erm_module = prefs_register_protocol(proto_aruba_erm, NULL);
- aruba_erm_module = prefs_register_protocol(proto_aruba_erm, proto_reg_handoff_aruba_erm);
-
- prefs_register_range_preference(aruba_erm_module, "udp.ports", "ARUBA_ERM UDP Port numbers",
- "Set the UDP port numbers (typically the range 5555 to 5560) used for Aruba Networks"
- " encapsulated remote mirroring frames;\n"
- "0 (default) means that the ARUBA_ERM dissector is not active\n",
- &global_aruba_erm_port_range, MAX_UDP_PORT);
#if 0
/* Obso...*/
prefs_register_enum_preference(aruba_erm_module, "type.captured",
@@ -470,32 +462,19 @@ proto_register_aruba_erm(void)
void
proto_reg_handoff_aruba_erm(void)
{
- static range_t *aruba_erm_port_range;
- static range_t *aruba_erm_radio_port_range;
- static gboolean initialized = FALSE;
-
- if (!initialized) {
- wlan_radio_handle = find_dissector_add_dependency("wlan_radio", proto_aruba_erm);
- wlan_withfcs_handle = find_dissector_add_dependency("wlan_withfcs", proto_aruba_erm);
- ppi_handle = find_dissector_add_dependency("ppi", proto_aruba_erm);
- peek_handle = find_dissector_add_dependency("peekremote", proto_aruba_erm);
- aruba_erm_handle = create_dissector_handle(dissect_aruba_erm, proto_aruba_erm);
- aruba_erm_handle_type0 = create_dissector_handle(dissect_aruba_erm_type0, proto_aruba_erm_type0);
- aruba_erm_handle_type1 = create_dissector_handle(dissect_aruba_erm_type1, proto_aruba_erm_type1);
- aruba_erm_handle_type2 = create_dissector_handle(dissect_aruba_erm_type2, proto_aruba_erm_type2);
- aruba_erm_handle_type3 = create_dissector_handle(dissect_aruba_erm_type3, proto_aruba_erm_type3);
- aruba_erm_handle_type4 = create_dissector_handle(dissect_aruba_erm_type4, proto_aruba_erm_type4);
- aruba_erm_handle_type5 = create_dissector_handle(dissect_aruba_erm_type5, proto_aruba_erm_type5);
- initialized = TRUE;
- } else {
- dissector_delete_uint_range("udp.port", aruba_erm_port_range, aruba_erm_handle);
- g_free(aruba_erm_port_range);
- g_free(aruba_erm_radio_port_range);
- }
-
- aruba_erm_port_range = range_copy(global_aruba_erm_port_range);
-
- dissector_add_uint_range("udp.port", aruba_erm_port_range, aruba_erm_handle);
+ wlan_radio_handle = find_dissector_add_dependency("wlan_radio", proto_aruba_erm);
+ wlan_withfcs_handle = find_dissector_add_dependency("wlan_withfcs", proto_aruba_erm);
+ ppi_handle = find_dissector_add_dependency("ppi", proto_aruba_erm);
+ peek_handle = find_dissector_add_dependency("peekremote", proto_aruba_erm);
+ aruba_erm_handle = create_dissector_handle(dissect_aruba_erm, proto_aruba_erm);
+ aruba_erm_handle_type0 = create_dissector_handle(dissect_aruba_erm_type0, proto_aruba_erm_type0);
+ aruba_erm_handle_type1 = create_dissector_handle(dissect_aruba_erm_type1, proto_aruba_erm_type1);
+ aruba_erm_handle_type2 = create_dissector_handle(dissect_aruba_erm_type2, proto_aruba_erm_type2);
+ aruba_erm_handle_type3 = create_dissector_handle(dissect_aruba_erm_type3, proto_aruba_erm_type3);
+ aruba_erm_handle_type4 = create_dissector_handle(dissect_aruba_erm_type4, proto_aruba_erm_type4);
+ aruba_erm_handle_type5 = create_dissector_handle(dissect_aruba_erm_type5, proto_aruba_erm_type5);
+
+ dissector_add_uint_range_with_preference("udp.port", "", aruba_erm_handle);
dissector_add_for_decode_as("aruba_erm.type", aruba_erm_handle_type0);
dissector_add_for_decode_as("aruba_erm.type", aruba_erm_handle_type1);
dissector_add_for_decode_as("aruba_erm.type", aruba_erm_handle_type2);
diff --git a/epan/dissectors/packet-aruba-papi.c b/epan/dissectors/packet-aruba-papi.c
index 3293bf1e98..b0247cb107 100644
--- a/epan/dissectors/packet-aruba-papi.c
+++ b/epan/dissectors/packet-aruba-papi.c
@@ -662,7 +662,7 @@ proto_reg_handoff_papi(void)
dissector_handle_t papi_handle;
papi_handle = create_dissector_handle(dissect_papi, proto_papi);
- dissector_add_uint("udp.port", UDP_PORT_PAPI, papi_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_PAPI, papi_handle);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
diff --git a/epan/dissectors/packet-asap.c b/epan/dissectors/packet-asap.c
index 170a1e1db6..4079ef5d2b 100644
--- a/epan/dissectors/packet-asap.c
+++ b/epan/dissectors/packet-asap.c
@@ -923,7 +923,7 @@ proto_reg_handoff_asap(void)
asap_handle = create_dissector_handle(dissect_asap, proto_asap);
dissector_add_uint("sctp.ppi", ASAP_PAYLOAD_PROTOCOL_ID, asap_handle);
- dissector_add_uint("udp.port", ASAP_UDP_PORT, asap_handle);
+ dissector_add_uint_with_preference("udp.port", ASAP_UDP_PORT, asap_handle);
dissector_add_uint_with_preference("tcp.port", ASAP_TCP_PORT, asap_handle);
dissector_add_uint("sctp.port", ASAP_SCTP_PORT, asap_handle);
}
diff --git a/epan/dissectors/packet-asterix.c b/epan/dissectors/packet-asterix.c
index 8dd80594bf..e0bb56f61b 100644
--- a/epan/dissectors/packet-asterix.c
+++ b/epan/dissectors/packet-asterix.c
@@ -11431,7 +11431,7 @@ void proto_register_asterix (void)
void proto_reg_handoff_asterix (void)
{
- dissector_add_uint ("udp.port", ASTERIX_PORT, asterix_handle);
+ dissector_add_uint_with_preference("udp.port", ASTERIX_PORT, asterix_handle);
}
/*
diff --git a/epan/dissectors/packet-atalk.c b/epan/dissectors/packet-atalk.c
index 5d4d64e133..d8fc4454ce 100644
--- a/epan/dissectors/packet-atalk.c
+++ b/epan/dissectors/packet-atalk.c
@@ -2058,7 +2058,7 @@ proto_reg_handoff_atalk(void)
nbp_handle = create_dissector_handle(dissect_nbp, proto_nbp);
dissector_add_uint("ddp.type", DDP_NBP, nbp_handle);
- dissector_add_for_decode_as("udp.port", nbp_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", nbp_handle);
atp_handle = create_dissector_handle(dissect_atp, proto_atp);
dissector_add_uint("ddp.type", DDP_ATP, atp_handle);
diff --git a/epan/dissectors/packet-ath.c b/epan/dissectors/packet-ath.c
index 55983c703b..292f1698f9 100644
--- a/epan/dissectors/packet-ath.c
+++ b/epan/dissectors/packet-ath.c
@@ -48,7 +48,7 @@ void proto_reg_handoff_ath(void);
*
*/
-#define ATH_PORT 45564
+#define ATH_PORT 45564 /* Not IANA registered */
static int proto_ath = -1;
@@ -438,10 +438,10 @@ proto_register_ath(void)
void
proto_reg_handoff_ath(void)
{
- static dissector_handle_t ath_handle;
+ dissector_handle_t ath_handle;
ath_handle = create_dissector_handle(dissect_ath, proto_ath);
- dissector_add_uint("udp.port", ATH_PORT, ath_handle);
+ dissector_add_uint_with_preference("udp.port", ATH_PORT, ath_handle);
}
/*
diff --git a/epan/dissectors/packet-auto_rp.c b/epan/dissectors/packet-auto_rp.c
index 74c83f1c16..f761644051 100644
--- a/epan/dissectors/packet-auto_rp.c
+++ b/epan/dissectors/packet-auto_rp.c
@@ -284,12 +284,9 @@ void proto_register_auto_rp(void)
&ett_auto_rp_group
};
- proto_auto_rp = proto_register_protocol("Cisco Auto-RP",
- "Auto-RP", "auto_rp");
+ proto_auto_rp = proto_register_protocol("Cisco Auto-RP", "Auto-RP", "auto_rp");
proto_register_field_array(proto_auto_rp, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
-
- return;
}
void
@@ -297,9 +294,8 @@ proto_reg_handoff_auto_rp(void)
{
dissector_handle_t auto_rp_handle;
- auto_rp_handle = create_dissector_handle(dissect_auto_rp,
- proto_auto_rp);
- dissector_add_uint("udp.port", UDP_PORT_PIM_RP_DISC, auto_rp_handle);
+ auto_rp_handle = create_dissector_handle(dissect_auto_rp, proto_auto_rp);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_PIM_RP_DISC, auto_rp_handle);
}
/*
diff --git a/epan/dissectors/packet-ax4000.c b/epan/dissectors/packet-ax4000.c
index 6855a35a0d..8b2f35c72e 100644
--- a/epan/dissectors/packet-ax4000.c
+++ b/epan/dissectors/packet-ax4000.c
@@ -163,11 +163,11 @@ proto_reg_handoff_ax4000(void)
{
dissector_handle_t ax4000_handle;
- ax4000_handle = create_dissector_handle(dissect_ax4000,
- proto_ax4000);
+ ax4000_handle = create_dissector_handle(dissect_ax4000, proto_ax4000);
+
dissector_add_uint("ip.proto", IP_PROTO_AX4000, ax4000_handle);
dissector_add_uint_with_preference("tcp.port", AX4000_TCP_PORT, ax4000_handle);
- dissector_add_uint("udp.port", AX4000_UDP_PORT, ax4000_handle);
+ dissector_add_uint_with_preference("udp.port", AX4000_UDP_PORT, ax4000_handle);
}
/*
diff --git a/epan/dissectors/packet-ayiya.c b/epan/dissectors/packet-ayiya.c
index 4f9dccfa70..6f237e2752 100644
--- a/epan/dissectors/packet-ayiya.c
+++ b/epan/dissectors/packet-ayiya.c
@@ -208,7 +208,7 @@ proto_reg_handoff_ayiya(void)
dissector_handle_t ayiya_handle;
ayiya_handle = find_dissector("ayiya");
- dissector_add_uint("udp.port", UDP_PORT_AYIYA, ayiya_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_AYIYA, ayiya_handle);
ip_dissector_table = find_dissector_table("ip.proto");
}
diff --git a/epan/dissectors/packet-babel.c b/epan/dissectors/packet-babel.c
index 3b4b805b33..9c0d0cb46a 100644
--- a/epan/dissectors/packet-babel.c
+++ b/epan/dissectors/packet-babel.c
@@ -54,8 +54,7 @@ static int hf_babel_message_hopcount = -1;
static gint ett_subtree = -1;
-#define UDP_PORT_BABEL 6696
-#define UDP_PORT_BABEL_OLD 6697
+#define UDP_PORT_RANGE_BABEL "6696-6697" /* 6697 Not IANA registered, 6696 is */
#define MESSAGE_PAD1 0
#define MESSAGE_PADN 1
@@ -527,8 +526,7 @@ proto_reg_handoff_babel(void)
dissector_handle_t babel_handle;
babel_handle = create_dissector_handle(dissect_babel, proto_babel);
- dissector_add_uint("udp.port", UDP_PORT_BABEL, babel_handle);
- dissector_add_uint("udp.port", UDP_PORT_BABEL_OLD, babel_handle);
+ dissector_add_uint_range_with_preference("udp.port", UDP_PORT_RANGE_BABEL, babel_handle);
}
/*
diff --git a/epan/dissectors/packet-bat.c b/epan/dissectors/packet-bat.c
index bf9143922b..02b424355b 100644
--- a/epan/dissectors/packet-bat.c
+++ b/epan/dissectors/packet-bat.c
@@ -24,16 +24,14 @@
#include "config.h"
#include <epan/packet.h>
-#include <epan/prefs.h>
#include <epan/tap.h>
#include <epan/addr_resolv.h>
void proto_register_bat(void);
void proto_reg_handoff_bat(void);
-/* Start content from packet-bat.h */
#define BAT_BATMAN_PORT 4305
-#define BAT_GW_PORT 4306
-#define BAT_VIS_PORT 4307
+#define BAT_GW_PORT 4306 /* Not IANA registered */
+#define BAT_VIS_PORT 4307 /* Not IANA registered */
#define UNIDIRECTIONAL 0x80
#define DIRECTLINK 0x40
@@ -179,13 +177,6 @@ static int proto_bat_vis = -1;
static int bat_tap = -1;
static int bat_follow_tap = -1;
-/* values changed by preferences */
-static guint global_bat_batman_udp_port = BAT_BATMAN_PORT;
-static guint global_bat_gw_udp_port = BAT_GW_PORT;
-static guint global_bat_vis_udp_port = BAT_VIS_PORT;
-
-
-
static int dissect_bat_batman(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
guint8 version;
@@ -690,8 +681,6 @@ static void dissect_vis_entry_v23(tvbuff_t *tvb, packet_info *pinfo _U_, proto_t
void proto_register_bat(void)
{
- module_t *bat_module;
-
static hf_register_info hf[] = {
{ &hf_bat_batman_version,
{ "Version", "bat.batman.version",
@@ -850,59 +839,28 @@ void proto_register_bat(void)
proto_bat_gw = proto_register_protocol("B.A.T.M.A.N. GW", "BAT GW", "bat.gw");
proto_bat_vis = proto_register_protocol("B.A.T.M.A.N. Vis", "BAT VIS", "bat.vis");
- /* Register our configuration options for B.A.T.M.A.N. */
- bat_module = prefs_register_protocol(proto_bat_plugin, proto_reg_handoff_bat);
-
proto_register_field_array(proto_bat_plugin, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
-
- prefs_register_uint_preference(bat_module, "batman.bat.port", "BAT UDP Port",
- "Set the port for B.A.T.M.A.N. BAT "
- "messages (if other than the default of 4305)",
- 10, &global_bat_batman_udp_port);
- prefs_register_uint_preference(bat_module, "batman.gw.port", "GW UDP Port",
- "Set the port for B.A.T.M.A.N. Gateway "
- "messages (if other than the default of 4306)",
- 10, &global_bat_gw_udp_port);
- prefs_register_uint_preference(bat_module, "batman.vis.port", "VIS UDP Port",
- "Set the port for B.A.T.M.A.N. VIS "
- "messages (if other than the default of 4307)",
- 10, &global_bat_vis_udp_port);
}
void proto_reg_handoff_bat(void)
{
- static gboolean inited = FALSE;
- static dissector_handle_t batman_handle;
- static dissector_handle_t gw_handle;
- static dissector_handle_t vis_handle;
- static guint batman_udp_port;
- static guint gw_udp_port;
- static guint vis_udp_port;
-
- if (!inited) {
- bat_tap = register_tap("batman");
- bat_follow_tap = register_tap("batman_follow");
-
- batman_handle = create_dissector_handle(dissect_bat_batman, proto_bat_plugin);
- gw_handle = create_dissector_handle(dissect_bat_gw, proto_bat_gw);
- vis_handle = create_dissector_handle(dissect_bat_vis, proto_bat_vis);
-
- ip_handle = find_dissector_add_dependency("ip", proto_bat_gw);
-
- inited = TRUE;
- } else {
- dissector_delete_uint("udp.port", batman_udp_port, batman_handle);
- dissector_delete_uint("udp.port", gw_udp_port, gw_handle);
- dissector_delete_uint("udp.port", vis_udp_port, vis_handle);
- }
+ dissector_handle_t batman_handle;
+ dissector_handle_t gw_handle;
+ dissector_handle_t vis_handle;
+
+ bat_tap = register_tap("batman");
+ bat_follow_tap = register_tap("batman_follow");
+
+ batman_handle = create_dissector_handle(dissect_bat_batman, proto_bat_plugin);
+ gw_handle = create_dissector_handle(dissect_bat_gw, proto_bat_gw);
+ vis_handle = create_dissector_handle(dissect_bat_vis, proto_bat_vis);
+
+ ip_handle = find_dissector_add_dependency("ip", proto_bat_gw);
- batman_udp_port = global_bat_batman_udp_port;
- gw_udp_port = global_bat_gw_udp_port;
- vis_udp_port = global_bat_vis_udp_port;
- dissector_add_uint("udp.port", batman_udp_port, batman_handle);
- dissector_add_uint("udp.port", gw_udp_port, gw_handle);
- dissector_add_uint("udp.port", vis_udp_port, vis_handle);
+ dissector_add_uint_with_preference("udp.port", BAT_BATMAN_PORT, batman_handle);
+ dissector_add_uint_with_preference("udp.port", BAT_GW_PORT, gw_handle);
+ dissector_add_uint_with_preference("udp.port", BAT_VIS_PORT, vis_handle);
}
/*
diff --git a/epan/dissectors/packet-bfcp.c b/epan/dissectors/packet-bfcp.c
index c4ea596970..925ba6e89e 100644
--- a/epan/dissectors/packet-bfcp.c
+++ b/epan/dissectors/packet-bfcp.c
@@ -713,7 +713,7 @@ void proto_reg_handoff_bfcp(void)
heur_dissector_add("tcp", dissect_bfcp_heur, "BFCP over TCP", "bfcp_tcp", proto_bfcp, HEURISTIC_DISABLE);
heur_dissector_add("udp", dissect_bfcp_heur, "BFCP over UDP", "bfcp_udp", proto_bfcp, HEURISTIC_DISABLE);
dissector_add_for_decode_as_with_preference("tcp.port", bfcp_handle);
- dissector_add_for_decode_as("udp.port", bfcp_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", bfcp_handle);
}
/*
diff --git a/epan/dissectors/packet-bfd.c b/epan/dissectors/packet-bfd.c
index df8289fb49..8658e4c28d 100644
--- a/epan/dissectors/packet-bfd.c
+++ b/epan/dissectors/packet-bfd.c
@@ -43,8 +43,7 @@
void proto_register_bfd(void);
void proto_reg_handoff_bfd(void);
-#define UDP_PORT_BFD_1HOP_CONTROL 3784 /* draft-katz-ward-bfd-v4v6-1hop-00.txt */
-#define UDP_PORT_BFD_MULTIHOP_CONTROL 4784 /* draft-ietf-bfd-multihop-05.txt */
+#define UDP_PORT_RANGE_BFD "3784,4784" /* draft-katz-ward-bfd-v4v6-1hop-00.txt */ /* draft-ietf-bfd-multihop-05.txt */
/* As per RFC 6428 : http://tools.ietf.org/html/rfc6428
Section: 3.5 */
@@ -869,8 +868,7 @@ proto_reg_handoff_bfd(void)
dissector_handle_t bfd_control_handle;
bfd_control_handle = find_dissector("bfd");
- dissector_add_uint("udp.port", UDP_PORT_BFD_1HOP_CONTROL, bfd_control_handle);
- dissector_add_uint("udp.port", UDP_PORT_BFD_MULTIHOP_CONTROL, bfd_control_handle);
+ dissector_add_uint_range_with_preference("udp.port", UDP_PORT_RANGE_BFD, bfd_control_handle);
dissector_add_uint("pwach.channel_type", ACH_TYPE_BFD_CC, bfd_control_handle);
dissector_add_uint("pwach.channel_type", ACH_TYPE_BFD_CV, bfd_control_handle);
diff --git a/epan/dissectors/packet-bjnp.c b/epan/dissectors/packet-bjnp.c
index c63d27dd82..953ec39c4e 100644
--- a/epan/dissectors/packet-bjnp.c
+++ b/epan/dissectors/packet-bjnp.c
@@ -29,10 +29,7 @@
#define PSNAME "BJNP"
#define PFNAME "bjnp"
-#define BJNP_PORT1 8611
-#define BJNP_PORT2 8612
-#define BJNP_PORT3 8613
-#define BJNP_PORT4 8614
+#define BJNP_PORT_RANGE "8611-8614"
/* dev_type */
#define PRINTER_COMMAND 0x01
@@ -180,10 +177,7 @@ void proto_register_bjnp (void)
void proto_reg_handoff_bjnp (void)
{
- dissector_add_uint ("udp.port", BJNP_PORT1, bjnp_handle);
- dissector_add_uint ("udp.port", BJNP_PORT2, bjnp_handle);
- dissector_add_uint ("udp.port", BJNP_PORT3, bjnp_handle);
- dissector_add_uint ("udp.port", BJNP_PORT4, bjnp_handle);
+ dissector_add_uint_range_with_preference("udp.port", BJNP_PORT_RANGE, bjnp_handle);
}
/*
diff --git a/epan/dissectors/packet-bootp.c b/epan/dissectors/packet-bootp.c
index c005eb4e6b..e793accff0 100644
--- a/epan/dissectors/packet-bootp.c
+++ b/epan/dissectors/packet-bootp.c
@@ -843,8 +843,7 @@ static const enum_val_t bootp_uuid_endian_vals[] = {
{ NULL, NULL, 0 }
};
-#define UDP_PORT_BOOTPS 67
-#define UDP_PORT_BOOTPC 68
+#define BOOTP_UDP_PORT_RANGE "67-68"
#define BOOTP_BC 0x8000
#define BOOTP_MBZ 0x7FFF
@@ -8683,8 +8682,7 @@ proto_register_bootp(void)
void
proto_reg_handoff_bootp(void)
{
- dissector_add_uint("udp.port", UDP_PORT_BOOTPS, bootp_handle);
- dissector_add_uint("udp.port", UDP_PORT_BOOTPC, bootp_handle);
+ dissector_add_uint_range_with_preference("udp.port", BOOTP_UDP_PORT_RANGE, bootp_handle);
}
/*
diff --git a/epan/dissectors/packet-brp.c b/epan/dissectors/packet-brp.c
index a0430bd812..e641f65c78 100644
--- a/epan/dissectors/packet-brp.c
+++ b/epan/dissectors/packet-brp.c
@@ -30,7 +30,6 @@
#include <epan/packet.h>
#include <epan/expert.h>
-#include <epan/prefs.h>
/* Forward declaration we need below */
void proto_register_brp(void);
@@ -43,8 +42,6 @@ static int proto_brp = -1;
static dissector_handle_t brp_handle;
-/*static int global_brp_port = 1958; *//* The port is registered for another protocol */
-
static const value_string brp_packettype_names[] = {
{ 0, "BRP" },
{ 1, "Setup Request - BRC -> BRS" },
@@ -127,9 +124,6 @@ static gint ett_brp_fltype = -1;
static expert_field ei_brp_type_unknown = EI_INIT;
-/* Preferences */
-static guint global_brp_port = 0;
-
static int
dissect_brp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
@@ -324,7 +318,6 @@ return offset;
/*--- proto_register_brp ----------------------------------------------*/
void proto_register_brp (void)
{
- module_t *brp_module;
expert_module_t* expert_brp;
/* A data field is something you can search/filter on.
@@ -402,38 +395,13 @@ void proto_register_brp (void)
expert_brp = expert_register_protocol(proto_brp);
expert_register_field_array(expert_brp, ei, array_length(ei));
- /* Register preferences module */
- brp_module = prefs_register_protocol(proto_brp, proto_reg_handoff_brp);
-
- /* Register preferences */
- prefs_register_uint_preference(brp_module, "port",
- "BRP Port",
- "Set the UDP port for BRP messages",
- 10, &global_brp_port);
-
brp_handle = register_dissector("brp", dissect_brp, proto_brp);
}
/*--- proto_reg_handoff_brp -------------------------------------------*/
void proto_reg_handoff_brp(void)
{
- static gboolean initialized = FALSE;
- static guint saved_brp_port;
-
- if (!initialized) {
- dissector_add_for_decode_as("udp.port", brp_handle);
- initialized = TRUE;
- } else {
- if (saved_brp_port != 0) {
- dissector_delete_uint("udp.port", saved_brp_port, brp_handle);
- }
- }
-
- /* Set the port number */
- if (global_brp_port != 0) {
- dissector_add_uint("udp.port", global_brp_port, brp_handle);
- }
- saved_brp_port = global_brp_port;
+ dissector_add_for_decode_as_with_preference("udp.port", brp_handle);
}
/*
diff --git a/epan/dissectors/packet-bt-dht.c b/epan/dissectors/packet-bt-dht.c
index c5da3e349c..19bf16eaa0 100644
--- a/epan/dissectors/packet-bt-dht.c
+++ b/epan/dissectors/packet-bt-dht.c
@@ -567,13 +567,9 @@ proto_register_bt_dht(void)
module_t *bt_dht_module;
- proto_bt_dht = proto_register_protocol (
- "BitTorrent DHT Protocol", /* name */
- "BT-DHT", /* short name */
- "bt-dht" /* abbrev */
- );
+ proto_bt_dht = proto_register_protocol ("BitTorrent DHT Protocol", "BT-DHT", "bt-dht");
- bt_dht_module = prefs_register_protocol(proto_bt_dht, proto_reg_handoff_bt_dht);
+ bt_dht_module = prefs_register_protocol(proto_bt_dht, NULL);
prefs_register_obsolete_preference(bt_dht_module, "enable");
proto_register_field_array(proto_bt_dht, hf, array_length(hf));
@@ -583,20 +579,14 @@ proto_register_bt_dht(void)
void
proto_reg_handoff_bt_dht(void)
{
- static gboolean prefs_initialized = FALSE;
-
/* "Decode As" is always available;
* Heuristic dissection in disabled by default since the heuristic is quite weak.
* XXX - Still too weak?
*/
- if (!prefs_initialized) {
- heur_dissector_add("udp", dissect_bt_dht_heur, "BitTorrent DHT over UDP", "bittorrent_dht_udp", proto_bt_dht, HEURISTIC_DISABLE);
-
- bt_dht_handle = create_dissector_handle(dissect_bt_dht, proto_bt_dht);
- dissector_add_for_decode_as("udp.port", bt_dht_handle);
+ heur_dissector_add("udp", dissect_bt_dht_heur, "BitTorrent DHT over UDP", "bittorrent_dht_udp", proto_bt_dht, HEURISTIC_DISABLE);
- prefs_initialized = TRUE;
- }
+ bt_dht_handle = create_dissector_handle(dissect_bt_dht, proto_bt_dht);
+ dissector_add_for_decode_as_with_preference("udp.port", bt_dht_handle);
}
/*
diff --git a/epan/dissectors/packet-bt-utp.c b/epan/dissectors/packet-bt-utp.c
index adf19effdb..b1ff2b1403 100644
--- a/epan/dissectors/packet-bt-utp.c
+++ b/epan/dissectors/packet-bt-utp.c
@@ -466,13 +466,9 @@ proto_register_bt_utp(void)
module_t *bt_utp_module;
/* Register protocol */
- proto_bt_utp = proto_register_protocol (
- "uTorrent Transport Protocol", /* name */
- "BT-uTP", /* short name */
- "bt-utp" /* abbrev */
- );
+ proto_bt_utp = proto_register_protocol ("uTorrent Transport Protocol", "BT-uTP", "bt-utp");
- bt_utp_module = prefs_register_protocol(proto_bt_utp, proto_reg_handoff_bt_utp);
+ bt_utp_module = prefs_register_protocol(proto_bt_utp, NULL);
prefs_register_obsolete_preference(bt_utp_module, "enable");
proto_register_field_array(proto_bt_utp, hf, array_length(hf));
@@ -482,17 +478,11 @@ proto_register_bt_utp(void)
void
proto_reg_handoff_bt_utp(void)
{
- static gboolean prefs_initialized = FALSE;
+ /* disabled by default since heuristic is weak */
+ heur_dissector_add("udp", dissect_bt_utp, "BitTorrent UTP over UDP", "bt_utp_udp", proto_bt_utp, HEURISTIC_DISABLE);
- if (!prefs_initialized) {
- /* disabled by default since heuristic is weak */
- heur_dissector_add("udp", dissect_bt_utp, "BitTorrent UTP over UDP", "bt_utp_udp", proto_bt_utp, HEURISTIC_DISABLE);
-
- bt_utp_handle = create_dissector_handle(dissect_bt_utp, proto_bt_utp);
- dissector_add_for_decode_as("udp.port", bt_utp_handle);
-
- prefs_initialized = TRUE;
- }
+ bt_utp_handle = create_dissector_handle(dissect_bt_utp, proto_bt_utp);
+ dissector_add_for_decode_as_with_preference("udp.port", bt_utp_handle);
}
/*
diff --git a/epan/dissectors/packet-bvlc.c b/epan/dissectors/packet-bvlc.c
index a3bf4e409d..68fe08248e 100644
--- a/epan/dissectors/packet-bvlc.c
+++ b/epan/dissectors/packet-bvlc.c
@@ -26,21 +26,11 @@
#include "config.h"
#include <epan/packet.h>
-#include <epan/prefs.h>
void proto_register_bvlc(void);
void proto_reg_handoff_bvlc(void);
-/* Taken from add-135a (BACnet-IP-standard paper):
- *
- * The default UDP port for both directed messages and broadcasts shall
- * be X'BAC0' and all B/IP devices shall support it. In some cases,
- * e.g., a situation where it is desirable for two groups of BACnet devices
- * to coexist independently on the same IP subnet, the UDP port may be
- * configured locally to a different value without it being considered
- * a violation of this protocol.
- */
-static guint global_additional_bvlc_udp_port = 0;
+#define BVLC_UDP_PORT 0xBAC0
static int proto_bvlc = -1;
static int hf_bvlc_type = -1;
@@ -389,20 +379,12 @@ proto_register_bvlc(void)
&ett_fdt,
};
- module_t *bvlc_module;
- proto_bvlc = proto_register_protocol("BACnet Virtual Link Control",
- "BVLC", "bvlc");
+ proto_bvlc = proto_register_protocol("BACnet Virtual Link Control", "BVLC", "bvlc");
proto_register_field_array(proto_bvlc, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- bvlc_module = prefs_register_protocol(proto_bvlc, proto_reg_handoff_bvlc);
- prefs_register_uint_preference(bvlc_module, "additional_udp_port",
- "Additional UDP port", "Set an additional UDP port, "
- "besides the standard X'BAC0' (47808) port.",
- 10, &global_additional_bvlc_udp_port);
-
register_dissector("bvlc", dissect_bvlc, proto_bvlc);
bvlc_dissector_table = register_dissector_table("bvlc.function",
@@ -412,27 +394,10 @@ proto_register_bvlc(void)
void
proto_reg_handoff_bvlc(void)
{
- static gboolean bvlc_initialized = FALSE;
- static dissector_handle_t bvlc_handle;
- static guint additional_bvlc_udp_port;
-
- if (!bvlc_initialized)
- {
- bvlc_handle = find_dissector("bvlc");
- dissector_add_uint("udp.port", 0xBAC0, bvlc_handle);
- bvlc_initialized = TRUE;
- }
- else
- {
- if (additional_bvlc_udp_port != 0) {
- dissector_delete_uint("udp.port", additional_bvlc_udp_port, bvlc_handle);
- }
- }
+ dissector_handle_t bvlc_handle;
- if (global_additional_bvlc_udp_port != 0) {
- dissector_add_uint("udp.port", global_additional_bvlc_udp_port, bvlc_handle);
- }
- additional_bvlc_udp_port = global_additional_bvlc_udp_port;
+ bvlc_handle = find_dissector("bvlc");
+ dissector_add_uint_with_preference("udp.port", BVLC_UDP_PORT, bvlc_handle);
}
/*
diff --git a/epan/dissectors/packet-c1222.c b/epan/dissectors/packet-c1222.c
index a68da36555..e463cd9988 100644
--- a/epan/dissectors/packet-c1222.c
+++ b/epan/dissectors/packet-c1222.c
@@ -242,7 +242,6 @@ static expert_field ei_c1222_epsem_field_length_error = EI_INIT;
static expert_field ei_c1222_mac_missing = EI_INIT;
/* Preferences */
-static int global_c1222_port = C1222_PORT;
static gboolean c1222_desegment = TRUE;
#ifdef HAVE_LIBGCRYPT
static gboolean c1222_decrypt = TRUE;
@@ -2059,7 +2058,7 @@ proto_reg_handoff_c1222(void)
c1222_handle = create_dissector_handle(dissect_c1222, proto_c1222);
c1222_udp_handle = create_dissector_handle(dissect_c1222_common, proto_c1222);
dissector_add_uint_with_preference("tcp.port", C1222_PORT, c1222_handle);
- dissector_add_uint("udp.port", global_c1222_port, c1222_udp_handle);
+ dissector_add_uint_with_preference("udp.port", C1222_PORT, c1222_udp_handle);
initialized = TRUE;
}
if (c1222_baseoid_str && (c1222_baseoid_str[0] != '\0') &&
diff --git a/epan/dissectors/packet-capwap.c b/epan/dissectors/packet-capwap.c
index 0eed93d43f..bf7bcfd087 100644
--- a/epan/dissectors/packet-capwap.c
+++ b/epan/dissectors/packet-capwap.c
@@ -25,6 +25,7 @@
#include <epan/packet.h>
#include <epan/prefs.h>
+#include <epan/prefs-int.h>
#include <epan/reassemble.h>
#include <epan/expert.h>
@@ -37,7 +38,6 @@ void proto_reg_handoff_capwap(void);
#define UDP_PORT_CAPWAP_CONTROL 5246
#define UDP_PORT_CAPWAP_DATA 5247
-static guint global_capwap_control_udp_port = UDP_PORT_CAPWAP_CONTROL;
static guint global_capwap_data_udp_port = UDP_PORT_CAPWAP_DATA;
static gboolean global_capwap_draft_8_cisco = FALSE;
static gboolean global_capwap_reassemble = TRUE;
@@ -3395,6 +3395,13 @@ dissect_capwap_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* d
return tvb_captured_length(tvb);
}
+static void
+apply_capwap_prefs(void)
+{
+ pref_t *control_port = prefs_find_preference(prefs_find_module("capwap.data"), "udp.port");
+ global_capwap_data_udp_port = *control_port->varp.uint;
+}
+
void
proto_register_capwap_control(void)
{
@@ -5764,15 +5771,9 @@ proto_register_capwap_control(void)
register_init_routine(&capwap_reassemble_init);
register_cleanup_routine(&capwap_reassemble_cleanup);
- capwap_module = prefs_register_protocol(proto_capwap_control, proto_reg_handoff_capwap);
-
- prefs_register_uint_preference(capwap_module, "udp.port.control", "CAPWAP Control UDP Port",
- "Set the port for CAPWAP Control messages (if other than the default of 5246)",
- 10, &global_capwap_control_udp_port);
-
- prefs_register_uint_preference(capwap_module, "udp.port.data", "CAPWAP Data UDP Port",
- "Set the port for CAPWAP Data messages (if other than the default of 5247)",
- 10, &global_capwap_data_udp_port);
+ capwap_module = prefs_register_protocol(proto_capwap_control, NULL);
+ /* Need to create a placeholder for "port" preferences so there is a callback */
+ prefs_register_protocol(proto_capwap_data, apply_capwap_prefs);
prefs_register_bool_preference(capwap_module, "draft_8_cisco", "Cisco Wireless Controller Support",
"Enable support of Cisco Wireless Controller (based on old 8 draft revision).",
@@ -5791,29 +5792,18 @@ proto_register_capwap_control(void)
void
proto_reg_handoff_capwap(void)
{
- static gboolean inited = FALSE;
- static dissector_handle_t capwap_control_handle, capwap_data_handle;
- static guint capwap_control_udp_port, capwap_data_udp_port;
-
- if (!inited) {
- capwap_control_handle = create_dissector_handle(dissect_capwap_control, proto_capwap_control);
- capwap_data_handle = create_dissector_handle(dissect_capwap_data, proto_capwap_data);
- dtls_handle = find_dissector_add_dependency("dtls", proto_capwap_control);
- find_dissector_add_dependency("dtls", proto_capwap_data);
- ieee8023_handle = find_dissector_add_dependency("eth_withoutfcs", proto_capwap_data);
- ieee80211_handle = find_dissector_add_dependency("wlan_withoutfcs", proto_capwap_data);
- ieee80211_bsfc_handle = find_dissector_add_dependency("wlan_bsfc", proto_capwap_data);
-
- inited = TRUE;
- } else {
- dissector_delete_uint("udp.port", capwap_control_udp_port, capwap_control_handle);
- dissector_delete_uint("udp.port", capwap_data_udp_port, capwap_data_handle);
- }
- dissector_add_uint("udp.port", global_capwap_control_udp_port, capwap_control_handle);
- dissector_add_uint("udp.port", global_capwap_data_udp_port, capwap_data_handle);
-
- capwap_control_udp_port = global_capwap_control_udp_port;
- capwap_data_udp_port = global_capwap_data_udp_port;
+ dissector_handle_t capwap_control_handle, capwap_data_handle;
+
+ capwap_control_handle = create_dissector_handle(dissect_capwap_control, proto_capwap_control);
+ capwap_data_handle = create_dissector_handle(dissect_capwap_data, proto_capwap_data);
+ dtls_handle = find_dissector_add_dependency("dtls", proto_capwap_control);
+ find_dissector_add_dependency("dtls", proto_capwap_data);
+ ieee8023_handle = find_dissector_add_dependency("eth_withoutfcs", proto_capwap_data);
+ ieee80211_handle = find_dissector_add_dependency("wlan_withoutfcs", proto_capwap_data);
+ ieee80211_bsfc_handle = find_dissector_add_dependency("wlan_bsfc", proto_capwap_data);
+
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_CAPWAP_CONTROL, capwap_control_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_CAPWAP_DATA, capwap_data_handle);
}
/*
* Editor modelines
diff --git a/epan/dissectors/packet-cattp.c b/epan/dissectors/packet-cattp.c
index 9237e5a4f5..9e293f4002 100644
--- a/epan/dissectors/packet-cattp.c
+++ b/epan/dissectors/packet-cattp.c
@@ -560,7 +560,7 @@ proto_register_cattp(void)
expert_cattp = expert_register_protocol(proto_cattp);
expert_register_field_array(expert_cattp, ei, array_length(ei));
- cattp_module = prefs_register_protocol(proto_cattp, proto_reg_handoff_cattp);
+ cattp_module = prefs_register_protocol(proto_cattp, NULL);
prefs_register_bool_preference(cattp_module, "checksum",
"Validate checksum of all messages",
"Whether the checksum of all messages should be validated or not",
@@ -573,18 +573,13 @@ proto_register_cattp(void)
void
proto_reg_handoff_cattp(void)
{
- static gboolean initialized = FALSE;
+ dissector_handle_t cattp_handle;
- if (!initialized) {
- dissector_handle_t cattp_handle;
+ /* Create dissector handle */
+ cattp_handle = create_dissector_handle(dissect_cattp, proto_cattp);
- /* Create dissector handle */
- cattp_handle = create_dissector_handle(dissect_cattp, proto_cattp);
-
- heur_dissector_add("udp", dissect_cattp_heur, "CAT-TP over UDP", "cattp_udp", proto_cattp, HEURISTIC_ENABLE);
- dissector_add_for_decode_as("udp.port", cattp_handle);
- initialized = TRUE;
- }
+ heur_dissector_add("udp", dissect_cattp_heur, "CAT-TP over UDP", "cattp_udp", proto_cattp, HEURISTIC_ENABLE);
+ dissector_add_for_decode_as_with_preference("udp.port", cattp_handle);
}
/*
diff --git a/epan/dissectors/packet-ccsds.c b/epan/dissectors/packet-ccsds.c
index fd6b27f98d..1180ea06ea 100644
--- a/epan/dissectors/packet-ccsds.c
+++ b/epan/dissectors/packet-ccsds.c
@@ -722,7 +722,7 @@ proto_register_ccsds(void)
void
proto_reg_handoff_ccsds(void)
{
- dissector_add_for_decode_as ( "udp.port", find_dissector("ccsds") );
+ dissector_add_for_decode_as_with_preference( "udp.port", find_dissector("ccsds") );
}
/*
diff --git a/epan/dissectors/packet-cfdp.c b/epan/dissectors/packet-cfdp.c
index 82ee1512fd..a9b24a081a 100644
--- a/epan/dissectors/packet-cfdp.c
+++ b/epan/dissectors/packet-cfdp.c
@@ -1631,7 +1631,7 @@ void
proto_reg_handoff_cfdp(void)
{
dissector_add_uint("ccsds.apid", CFDP_APID, cfdp_handle);
- dissector_add_for_decode_as("udp.port", cfdp_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", cfdp_handle);
}
/*
diff --git a/epan/dissectors/packet-chargen.c b/epan/dissectors/packet-chargen.c
index c800655a7a..dd27f68e24 100644
--- a/epan/dissectors/packet-chargen.c
+++ b/epan/dissectors/packet-chargen.c
@@ -93,7 +93,7 @@ proto_reg_handoff_chargen(void)
dissector_handle_t chargen_handle;
chargen_handle = create_dissector_handle(dissect_chargen, proto_chargen);
- dissector_add_uint("udp.port", CHARGEN_PORT_UDP, chargen_handle);
+ dissector_add_uint_with_preference("udp.port", CHARGEN_PORT_UDP, chargen_handle);
dissector_add_uint_with_preference("tcp.port", CHARGEN_PORT_TCP, chargen_handle);
}
diff --git a/epan/dissectors/packet-cigi.c b/epan/dissectors/packet-cigi.c
index 1a23ce0b2c..c08f4e7c19 100644
--- a/epan/dissectors/packet-cigi.c
+++ b/epan/dissectors/packet-cigi.c
@@ -12040,7 +12040,7 @@ proto_reg_handoff_cigi(void)
if( !inited ) {
cigi_handle = create_dissector_handle(dissect_cigi, proto_cigi);
- dissector_add_for_decode_as("udp.port", cigi_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", cigi_handle);
dissector_add_for_decode_as_with_preference("tcp.port", cigi_handle);
heur_dissector_add("udp", dissect_cigi_heur, "CIGI over UDP", "cigi_udp", proto_cigi, HEURISTIC_ENABLE);
diff --git a/epan/dissectors/packet-cisco-marker.c b/epan/dissectors/packet-cisco-marker.c
index 4d2fda2809..b3dd887792 100644
--- a/epan/dissectors/packet-cisco-marker.c
+++ b/epan/dissectors/packet-cisco-marker.c
@@ -209,7 +209,7 @@ proto_register_erpsan_marker(void)
void
proto_reg_handoff_erspan_marker(void)
{
- dissector_add_for_decode_as("udp.port", marker_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", marker_handle);
}
/*
diff --git a/epan/dissectors/packet-cisco-wids.c b/epan/dissectors/packet-cisco-wids.c
index fd26ecf606..7199c05727 100644
--- a/epan/dissectors/packet-cisco-wids.c
+++ b/epan/dissectors/packet-cisco-wids.c
@@ -50,11 +50,8 @@
#include <epan/packet.h>
#include <epan/exceptions.h>
#include <epan/expert.h>
-#include <epan/prefs.h>
#include <epan/show_exception.h>
-static guint global_udp_port = 0;
-
static int proto_cwids = -1;
static int hf_cwids_version = -1;
static int hf_cwids_timestamp = -1;
@@ -179,7 +176,6 @@ proto_register_cwids(void)
{ &ie_ieee80211_subpacket, { "cwids.ieee80211_malformed", PI_MALFORMED, PI_ERROR, "Malformed or short IEEE80211 subpacket", EXPFILL }},
};
- module_t *cwids_module;
expert_module_t* expert_cwids;
proto_cwids = proto_register_protocol("Cisco Wireless IDS Captures", "CWIDS", "cwids");
@@ -187,36 +183,16 @@ proto_register_cwids(void)
proto_register_subtree_array(ett, array_length(ett));
expert_cwids = expert_register_protocol(proto_cwids);
expert_register_field_array(expert_cwids, ei, array_length(ei));
-
- cwids_module = prefs_register_protocol(proto_cwids, proto_reg_handoff_cwids);
- prefs_register_uint_preference(cwids_module, "udp.port",
- "CWIDS port",
- "Set the destination UDP port Cisco wireless IDS messages",
- 10, &global_udp_port);
-
}
void
proto_reg_handoff_cwids(void)
{
- static dissector_handle_t cwids_handle;
- static guint saved_udp_port;
- static gboolean initialized = FALSE;
-
- if (!initialized) {
- cwids_handle = create_dissector_handle(dissect_cwids, proto_cwids);
- dissector_add_for_decode_as("udp.port", cwids_handle);
- ieee80211_radio_handle = find_dissector_add_dependency("wlan_noqos_radio", proto_cwids);
- initialized = TRUE;
- } else {
- if (saved_udp_port != 0) {
- dissector_delete_uint("udp.port", saved_udp_port, cwids_handle);
- }
- }
- if (global_udp_port != 0) {
- dissector_add_uint("udp.port", global_udp_port, cwids_handle);
- }
- saved_udp_port = global_udp_port;
+ dissector_handle_t cwids_handle;
+
+ cwids_handle = create_dissector_handle(dissect_cwids, proto_cwids);
+ dissector_add_for_decode_as_with_preference("udp.port", cwids_handle);
+ ieee80211_radio_handle = find_dissector_add_dependency("wlan_noqos_radio", proto_cwids);
}
/*
diff --git a/epan/dissectors/packet-classicstun.c b/epan/dissectors/packet-classicstun.c
index 23f1c532ae..c0d9e5e7ef 100644
--- a/epan/dissectors/packet-classicstun.c
+++ b/epan/dissectors/packet-classicstun.c
@@ -705,7 +705,7 @@ proto_reg_handoff_classicstun(void)
classicstun_handle = find_dissector("classicstun");
dissector_add_uint_with_preference("tcp.port", TCP_PORT_STUN, classicstun_handle);
- dissector_add_uint("udp.port", UDP_PORT_STUN, classicstun_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_STUN, classicstun_handle);
#endif
heur_dissector_add("udp", dissect_classicstun_heur, "Classic STUN over UDP", "classicstun_udp", proto_classicstun, HEURISTIC_ENABLE);
heur_dissector_add("tcp", dissect_classicstun_heur, "Classic STUN over TCP", "classicstun_tcp", proto_classicstun, HEURISTIC_ENABLE);
diff --git a/epan/dissectors/packet-cnip.c b/epan/dissectors/packet-cnip.c
index 0b94e29474..17a80ef8b1 100644
--- a/epan/dissectors/packet-cnip.c
+++ b/epan/dissectors/packet-cnip.c
@@ -29,6 +29,8 @@
#define DATA_PACKET 0x01
+#define CNIP_UDP_PORT_RANGE "1628-1629" /* Not IANA registered */
+
static const value_string type_tuple[]=
{
{0x01, "Data Packet"},
@@ -243,8 +245,7 @@ void proto_reg_handoff_cnip(void)
cnip_handle = create_dissector_handle(dissect_cnip, proto_cnip);
- dissector_add_uint ("udp.port", 1628, cnip_handle);
- dissector_add_uint ("udp.port", 1629, cnip_handle);
+ dissector_add_uint_range_with_preference("udp.port", CNIP_UDP_PORT_RANGE, cnip_handle);
}
/*
diff --git a/epan/dissectors/packet-coap.c b/epan/dissectors/packet-coap.c
index 639f06c5e1..0246de8214 100644
--- a/epan/dissectors/packet-coap.c
+++ b/epan/dissectors/packet-coap.c
@@ -33,7 +33,6 @@
#include <epan/conversation.h>
#include <epan/packet.h>
-#include <epan/prefs.h>
#include <epan/expert.h>
#include <epan/wmem/wmem.h>
@@ -97,8 +96,6 @@ static expert_field ei_coap_option_length_bad = EI_INIT;
#define DEFAULT_COAP_CTYPE_VALUE ~0U
#define DEFAULT_COAP_BLOCK_NUMBER ~0U
-static guint global_coap_port_number = DEFAULT_COAP_PORT;
-
static const gchar *coap_ctype_str = NULL;
static guint coap_ctype_value = DEFAULT_COAP_CTYPE_VALUE;
static guint coap_block_number = DEFAULT_COAP_BLOCK_NUMBER;
@@ -1244,7 +1241,6 @@ proto_register_coap(void)
{ "coap.option_length_bad", PI_MALFORMED, PI_WARN, "Option length bad", EXPFILL }},
};
- module_t *coap_module;
expert_module_t *expert_coap;
proto_coap = proto_register_protocol("Constrained Application Protocol", "CoAP", "coap");
@@ -1254,34 +1250,17 @@ proto_register_coap(void)
expert_register_field_array(expert_coap, ei, array_length(ei));
register_dissector("coap", dissect_coap, proto_coap);
-
- /* Register our configuration options */
- coap_module = prefs_register_protocol (proto_coap, proto_reg_handoff_coap);
-
- prefs_register_uint_preference (coap_module, "udp_port",
- "CoAP port number",
- "Port number used for CoAP traffic",
- 10, &global_coap_port_number);
}
void
proto_reg_handoff_coap(void)
{
- static gboolean coap_prefs_initialized = FALSE;
- static dissector_handle_t coap_handle;
- static guint coap_port_number;
-
- if (!coap_prefs_initialized) {
- coap_handle = find_dissector("coap");
- media_type_dissector_table = find_dissector_table("media_type");
- dissector_add_uint_with_preference("tcp.port", DEFAULT_COAP_PORT, coap_handle);
- coap_prefs_initialized = TRUE;
- } else {
- dissector_delete_uint("udp.port", coap_port_number, coap_handle);
- }
+ dissector_handle_t coap_handle;
- coap_port_number = global_coap_port_number;
- dissector_add_uint("udp.port", coap_port_number, coap_handle);
+ coap_handle = find_dissector("coap");
+ media_type_dissector_table = find_dissector_table("media_type");
+ dissector_add_uint_with_preference("tcp.port", DEFAULT_COAP_PORT, coap_handle);
+ dissector_add_uint_with_preference("udp.port", DEFAULT_COAP_PORT, coap_handle);
}
/*
diff --git a/epan/dissectors/packet-collectd.c b/epan/dissectors/packet-collectd.c
index fafccdc63d..417bde5d05 100644
--- a/epan/dissectors/packet-collectd.c
+++ b/epan/dissectors/packet-collectd.c
@@ -26,7 +26,6 @@
#include "config.h"
#include <epan/packet.h>
-#include <epan/prefs.h>
#include <epan/expert.h>
#include <epan/stats_tree.h>
#include <epan/to_str.h>
@@ -144,8 +143,7 @@ static const val64_string severity_names[] = {
{ 0, NULL }
};
-#define UDP_PORT_COLLECTD 25826
-static guint collectd_udp_port = UDP_PORT_COLLECTD;
+#define UDP_PORT_COLLECTD 25826 /* Not IANA registered */
static gint proto_collectd = -1;
static gint tap_collectd = -1;
@@ -1348,7 +1346,6 @@ dissect_collectd (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* dat
void proto_register_collectd(void)
{
- module_t *collectd_module;
expert_module_t* expert_collectd;
/* Setup list of header fields */
@@ -1484,43 +1481,16 @@ void proto_register_collectd(void)
expert_register_field_array(expert_collectd, ei, array_length(ei));
tap_collectd = register_tap ("collectd");
-
- /*
- * Create an unsigned integer preference to allow the user to specify the
- * UDP port on which to capture DIS packets.
- */
- collectd_module = prefs_register_protocol (proto_collectd,
- proto_reg_handoff_collectd);
-
- prefs_register_uint_preference (collectd_module, "udp.port",
- "collectd UDP port",
- "Set the UDP port for collectd messages",
- 10, &collectd_udp_port);
-} /* void proto_register_collectd */
+}
void proto_reg_handoff_collectd (void)
{
- static gboolean first_run = TRUE;
- static gint registered_udp_port = -1;
- static dissector_handle_t collectd_handle;
-
- if (first_run)
- collectd_handle = create_dissector_handle (dissect_collectd,
- proto_collectd);
-
- /* Change the dissector registration if the preferences have been
- * changed. */
- if (registered_udp_port != -1)
- dissector_delete_uint ("udp.port", registered_udp_port,
- collectd_handle);
-
- dissector_add_uint ("udp.port", collectd_udp_port, collectd_handle);
- registered_udp_port = collectd_udp_port;
+ dissector_handle_t collectd_handle;
- if (first_run)
- collectd_stats_tree_register ();
+ collectd_handle = create_dissector_handle(dissect_collectd, proto_collectd);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_COLLECTD, collectd_handle);
- first_run = FALSE;
+ collectd_stats_tree_register ();
} /* void proto_reg_handoff_collectd */
/*
diff --git a/epan/dissectors/packet-componentstatus.c b/epan/dissectors/packet-componentstatus.c
index 0a964b5204..1a4040bebb 100644
--- a/epan/dissectors/packet-componentstatus.c
+++ b/epan/dissectors/packet-componentstatus.c
@@ -75,7 +75,7 @@ static gint ett_message_flags = -1;
static gint ett_association = -1;
-#define COMPONENTSTATUSPROTOCOL_PORT 2960
+#define COMPONENTSTATUSPROTOCOL_PORT 2960 /* Not IANA registered */
#define COMPONENTSTATUSPROTOCOL_VERSION 0x0200
@@ -292,7 +292,7 @@ proto_reg_handoff_componentstatusprotocol(void)
dissector_handle_t componentstatusprotocol_handle;
componentstatusprotocol_handle = create_dissector_handle(dissect_componentstatusprotocol, proto_componentstatusprotocol);
- dissector_add_uint("udp.port", COMPONENTSTATUSPROTOCOL_PORT, componentstatusprotocol_handle);
+ dissector_add_uint_with_preference("udp.port", COMPONENTSTATUSPROTOCOL_PORT, componentstatusprotocol_handle);
}
/*
diff --git a/epan/dissectors/packet-corosync-totemnet.c b/epan/dissectors/packet-corosync-totemnet.c
index 2a21c733f2..afaf8f6a68 100644
--- a/epan/dissectors/packet-corosync-totemnet.c
+++ b/epan/dissectors/packet-corosync-totemnet.c
@@ -40,7 +40,7 @@ static dissector_handle_t corosync_totemsrp_handle;
* Dissector body
*/
-#define PORT_COROSYNC_TOTEMNET 5405
+#define PORT_COROSYNC_TOTEMNET_RANGE "5404-5405" /* Not IANA registered */
/* Forward declaration we need below */
void proto_register_corosync_totemnet(void);
@@ -56,7 +56,6 @@ static int hf_corosync_totemnet_security_crypto_type = -1;
static int hf_corosync_totemnet_security_crypto_key = -1;
/* configurable parameters */
-static guint corosync_totemnet_port = PORT_COROSYNC_TOTEMNET;
static gchar* corosync_totemnet_private_keys = NULL;
static gchar** corosync_totemnet_private_keys_list = NULL;
@@ -455,11 +454,6 @@ proto_register_corosync_totemnet(void)
corosync_totemnet_module = prefs_register_protocol(proto_corosync_totemnet,
proto_reg_handoff_corosync_totemnet);
- prefs_register_uint_preference(corosync_totemnet_module, "udp.port",
- "UDP Port",
- "Set the UDP port for totem ring protocol implemented in corosync cluster engine",
- 10,
- &corosync_totemnet_port);
prefs_register_string_preference(corosync_totemnet_module, "private_keys", "Private keys",
"Semicolon-separated list of keys for decryption(e.g. key1;key2;..." ,
(const gchar **)&corosync_totemnet_private_keys);
@@ -470,33 +464,22 @@ proto_reg_handoff_corosync_totemnet(void)
{
static gboolean initialized = FALSE;
static dissector_handle_t corosync_totemnet_handle;
- static int port = 0;
- if (initialized)
- {
- dissector_delete_uint("udp.port", port, corosync_totemnet_handle);
- dissector_delete_uint("udp.port", port - 1, corosync_totemnet_handle);
- }
- else
- {
- corosync_totemnet_handle = create_dissector_handle(dissect_corosynec_totemnet,
- proto_corosync_totemnet);
- corosync_totemsrp_handle = find_dissector_add_dependency("corosync_totemsrp", proto_corosync_totemnet);
+ if (!initialized)
+ {
+ corosync_totemnet_handle = create_dissector_handle(dissect_corosynec_totemnet, proto_corosync_totemnet);
+ corosync_totemsrp_handle = find_dissector_add_dependency("corosync_totemsrp", proto_corosync_totemnet);
- initialized = TRUE;
- }
+ dissector_add_uint_range_with_preference("udp.port", PORT_COROSYNC_TOTEMNET_RANGE, corosync_totemnet_handle);
+ initialized = TRUE;
+ }
if (corosync_totemnet_private_keys_list) {
g_strfreev(corosync_totemnet_private_keys_list);
corosync_totemnet_private_keys_list = NULL;
}
- corosync_totemnet_private_keys_list = g_strsplit(corosync_totemnet_private_keys,
- ";",
- 0);
- port = corosync_totemnet_port;
- dissector_add_uint("udp.port", port, corosync_totemnet_handle);
- dissector_add_uint("udp.port", port - 1, corosync_totemnet_handle);
+ corosync_totemnet_private_keys_list = g_strsplit(corosync_totemnet_private_keys, ";", 0);
}
/*
diff --git a/epan/dissectors/packet-cpfi.c b/epan/dissectors/packet-cpfi.c
index 68665772c0..671febe62d 100644
--- a/epan/dissectors/packet-cpfi.c
+++ b/epan/dissectors/packet-cpfi.c
@@ -36,8 +36,8 @@
void proto_register_cpfi(void);
void proto_reg_handoff_cpfi(void);
-#define CPFI_DEFAULT_UDP_PORT 5000
-#define CPFI_DEFAULT_TTOT_UDP_PORT 5001
+#define CPFI_DEFAULT_UDP_PORT 5000 /* Not IANA registered */
+#define CPFI_DEFAULT_TTOT_UDP_PORT 5001 /* Not IANA registered */
#define FIRST_TIO_CARD_ADDRESS 0x380
@@ -59,7 +59,6 @@ void proto_reg_handoff_cpfi(void);
#define CPFI_EOF_ERROR_MASK 0x7FE00000
/* configurable parameters */
-static guint gbl_cpfi_udp_port = CPFI_DEFAULT_UDP_PORT;
static guint gbl_cpfi_ttot_udp_port = CPFI_DEFAULT_TTOT_UDP_PORT;
static gboolean cpfi_arrow_moves = TRUE;
@@ -506,10 +505,6 @@ proto_register_cpfi(void)
/* Register our configuration options for CPFI */
cpfi_module = prefs_register_protocol(proto_cpfi, proto_reg_handoff_cpfi);
- prefs_register_uint_preference(cpfi_module, "udp.port", "CPFI UDP Port",
- "Set the port for CPFI messages (if other"
- " than the default of 5000)",
- 10, &gbl_cpfi_udp_port);
prefs_register_uint_preference(cpfi_module, "udp.port2", "InstanceToInstance UDP Port",
"Set the port for InstanceToInstance messages (if other"
" than the default of 5001)",
@@ -530,25 +525,24 @@ proto_reg_handoff_cpfi(void)
{
static gboolean cpfi_init_complete = FALSE;
static dissector_handle_t cpfi_handle;
- static guint cpfi_udp_port;
static guint cpfi_ttot_udp_port;
if ( !cpfi_init_complete )
{
fc_handle = find_dissector_add_dependency("fc", proto_cpfi);
cpfi_handle = create_dissector_handle(dissect_cpfi, proto_cpfi);
+ dissector_add_uint_with_preference("udp.port", CPFI_DEFAULT_UDP_PORT, cpfi_handle);
cpfi_init_complete = TRUE;
}
else
{
- dissector_delete_uint("udp.port", cpfi_udp_port, cpfi_handle);
dissector_delete_uint("udp.port", cpfi_ttot_udp_port, cpfi_handle);
}
- cpfi_udp_port = gbl_cpfi_udp_port;
cpfi_ttot_udp_port = gbl_cpfi_ttot_udp_port;
- dissector_add_uint("udp.port", cpfi_udp_port, cpfi_handle);
+ /* Port preference has a specific enough name to not use
+ the "auto" preference */
dissector_add_uint("udp.port", cpfi_ttot_udp_port, cpfi_handle);
}
diff --git a/epan/dissectors/packet-cpha.c b/epan/dissectors/packet-cpha.c
index 2e07d77089..d401212bdb 100644
--- a/epan/dissectors/packet-cpha.c
+++ b/epan/dissectors/packet-cpha.c
@@ -522,8 +522,7 @@ proto_register_cpha(void)
&ett_cphap,
};
- proto_cphap = proto_register_protocol("Check Point High Availability Protocol",
- "CPHA", "cpha");
+ proto_cphap = proto_register_protocol("Check Point High Availability Protocol", "CPHA", "cpha");
proto_register_field_array(proto_cphap, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
}
@@ -534,7 +533,7 @@ proto_reg_handoff_cpha(void)
dissector_handle_t cpha_handle;
cpha_handle = create_dissector_handle(dissect_cpha, proto_cphap);
- dissector_add_uint("udp.port", UDP_PORT_CPHA, cpha_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_CPHA, cpha_handle);
}
/*
* Editor modelines
diff --git a/epan/dissectors/packet-cups.c b/epan/dissectors/packet-cups.c
index 1367d35f67..d4b472b79f 100644
--- a/epan/dissectors/packet-cups.c
+++ b/epan/dissectors/packet-cups.c
@@ -389,9 +389,7 @@ proto_register_cups(void)
&ett_cups_ptype
};
- proto_cups = proto_register_protocol(
- "Common Unix Printing System (CUPS) Browsing Protocol",
- "CUPS", "cups");
+ proto_cups = proto_register_protocol("Common Unix Printing System (CUPS) Browsing Protocol", "CUPS", "cups");
proto_register_field_array(proto_cups, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
@@ -405,7 +403,7 @@ proto_reg_handoff_cups(void)
dissector_handle_t cups_handle;
cups_handle = create_dissector_handle(dissect_cups, proto_cups);
- dissector_add_uint("udp.port", UDP_PORT_CUPS, cups_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_CUPS, cups_handle);
}
/*
diff --git a/epan/dissectors/packet-daytime.c b/epan/dissectors/packet-daytime.c
index a0b73df852..ddeb25edef 100644
--- a/epan/dissectors/packet-daytime.c
+++ b/epan/dissectors/packet-daytime.c
@@ -105,7 +105,7 @@ proto_register_daytime(void)
void
proto_reg_handoff_daytime(void)
{
- dissector_add_uint("udp.port", DAYTIME_PORT, daytime_handle);
+ dissector_add_uint_with_preference("udp.port", DAYTIME_PORT, daytime_handle);
dissector_add_uint_with_preference("tcp.port", DAYTIME_PORT, daytime_handle);
}
diff --git a/epan/dissectors/packet-db-lsp.c b/epan/dissectors/packet-db-lsp.c
index cab92beb7a..14ec08f8fa 100644
--- a/epan/dissectors/packet-db-lsp.c
+++ b/epan/dissectors/packet-db-lsp.c
@@ -272,7 +272,7 @@ proto_reg_handoff_db_lsp (void)
db_lsp_udp_handle = find_dissector ("db-lsp.udp");
dissector_add_uint_with_preference("tcp.port", DB_LSP_PORT, db_lsp_tcp_handle);
- dissector_add_uint ("udp.port", DB_LSP_PORT, db_lsp_udp_handle);
+ dissector_add_uint_with_preference("udp.port", DB_LSP_PORT, db_lsp_udp_handle);
}
/*
diff --git a/epan/dissectors/packet-ddtp.c b/epan/dissectors/packet-ddtp.c
index f303ea9d6e..8cad915bda 100644
--- a/epan/dissectors/packet-ddtp.c
+++ b/epan/dissectors/packet-ddtp.c
@@ -210,8 +210,7 @@ proto_register_ddtp(void)
expert_module_t* expert_ddtp;
- proto_ddtp = proto_register_protocol("Dynamic DNS Tools Protocol",
- "DDTP", "ddtp");
+ proto_ddtp = proto_register_protocol("Dynamic DNS Tools Protocol", "DDTP", "ddtp");
proto_register_field_array(proto_ddtp, hf_ddtp, array_length(hf_ddtp));
proto_register_subtree_array(ett, array_length(ett));
expert_ddtp = expert_register_protocol(proto_ddtp);
@@ -224,7 +223,7 @@ proto_reg_handoff_ddtp(void)
dissector_handle_t ddtp_handle;
ddtp_handle = create_dissector_handle(dissect_ddtp, proto_ddtp);
- dissector_add_uint("udp.port", UDP_PORT_DDTP, ddtp_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_DDTP, ddtp_handle);
}
/*
diff --git a/epan/dissectors/packet-dhcpv6.c b/epan/dissectors/packet-dhcpv6.c
index 703689f5b4..95c58c0b87 100644
--- a/epan/dissectors/packet-dhcpv6.c
+++ b/epan/dissectors/packet-dhcpv6.c
@@ -228,8 +228,8 @@ static expert_field ei_dhcpv6_bulk_leasequery_bad_msg_type = EI_INIT;
static dissector_handle_t dhcpv6_handle;
-#define UDP_PORT_DHCPV6_DOWNSTREAM 546
-#define UDP_PORT_DHCPV6_UPSTREAM 547
+#define TCP_PORT_DHCPV6_UPSTREAM 547
+#define UDP_PORT_DHCPV6_RANGE "546-547" /* Downstream + Upstream */
#define DHCPV6_LEASEDURATION_INFINITY 0xffffffff
#define HOP_COUNT_LIMIT 32
@@ -2459,12 +2459,11 @@ proto_reg_handoff_dhcpv6(void)
{
dissector_handle_t dhcpv6_bulkquery_handle;
- dissector_add_uint("udp.port", UDP_PORT_DHCPV6_DOWNSTREAM, dhcpv6_handle);
- dissector_add_uint("udp.port", UDP_PORT_DHCPV6_UPSTREAM, dhcpv6_handle);
+ dissector_add_uint_range_with_preference("udp.port", UDP_PORT_DHCPV6_RANGE, dhcpv6_handle);
dhcpv6_bulkquery_handle = create_dissector_handle(dissect_dhcpv6_bulk_leasequery,
proto_dhcpv6_bulk_leasequery);
- dissector_add_uint_with_preference("tcp.port", UDP_PORT_DHCPV6_UPSTREAM, dhcpv6_bulkquery_handle);
+ dissector_add_uint_with_preference("tcp.port", TCP_PORT_DHCPV6_UPSTREAM, dhcpv6_bulkquery_handle);
}
/*
diff --git a/epan/dissectors/packet-diameter.c b/epan/dissectors/packet-diameter.c
index 161bc93c23..706bf05bfa 100644
--- a/epan/dissectors/packet-diameter.c
+++ b/epan/dissectors/packet-diameter.c
@@ -303,7 +303,6 @@ static dissector_handle_t diameter_udp_handle;
static dissector_handle_t diameter_tcp_handle;
static dissector_handle_t diameter_sctp_handle;
static range_t *global_diameter_sctp_port_range;
-static range_t *global_diameter_udp_port_range;
/* This is used for TCP and SCTP */
#define DEFAULT_DIAMETER_PORT_RANGE "3868"
@@ -2334,11 +2333,9 @@ proto_register_diameter(void)
/* Set default TCP ports */
range_convert_str(&global_diameter_sctp_port_range, DEFAULT_DIAMETER_PORT_RANGE, MAX_SCTP_PORT);
- range_convert_str(&global_diameter_udp_port_range, "", MAX_UDP_PORT);
/* Register configuration options for ports */
- diameter_module = prefs_register_protocol(proto_diameter,
- proto_reg_handoff_diameter);
+ diameter_module = prefs_register_protocol(proto_diameter, proto_reg_handoff_diameter);
prefs_register_range_preference(diameter_module, "sctp.ports",
"Diameter SCTP Ports",
@@ -2353,11 +2350,6 @@ proto_register_diameter(void)
" To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.",
&gbl_diameter_desegment);
- prefs_register_range_preference(diameter_module, "udp.ports", "Diameter UDP ports",
- "UDP ports to be decoded as Diameter (default: 0 as Diameter over UDP is nonstandard)",
- &global_diameter_udp_port_range, MAX_UDP_PORT);
-
-
/* Register some preferences we no longer support, so we can report
* them as obsolete rather than just illegal.
*/
@@ -2381,7 +2373,6 @@ proto_reg_handoff_diameter(void)
{
static gboolean Initialized=FALSE;
static range_t *diameter_sctp_port_range;
- static range_t *diameter_udp_port_range;
if (!Initialized) {
diameter_sctp_handle = find_dissector("diameter");
@@ -2424,20 +2415,18 @@ proto_reg_handoff_diameter(void)
/* Register dissector for Experimental result code, with 3GPP2's vendor Id */
dissector_add_uint("diameter.vnd_exp_res", VENDOR_THE3GPP2, create_dissector_handle(dissect_diameter_3gpp2_exp_res, proto_diameter));
+ dissector_add_uint_range_with_preference("tcp.port", DEFAULT_DIAMETER_PORT_RANGE, diameter_tcp_handle);
+ dissector_add_uint_range_with_preference("udp.port", "", diameter_udp_handle);
+
Initialized=TRUE;
} else {
dissector_delete_uint_range("sctp.port", diameter_sctp_port_range, diameter_sctp_handle);
- dissector_delete_uint_range("udp.port", diameter_udp_port_range, diameter_udp_handle);
g_free(diameter_sctp_port_range);
- g_free(diameter_udp_port_range);
}
/* set port for future deletes */
diameter_sctp_port_range = range_copy(global_diameter_sctp_port_range);
- diameter_udp_port_range = range_copy(global_diameter_udp_port_range);
- dissector_add_uint_range_with_preference("tcp.port", DEFAULT_DIAMETER_PORT_RANGE, diameter_tcp_handle);
dissector_add_uint_range("sctp.port", diameter_sctp_port_range, diameter_sctp_handle);
- dissector_add_uint_range("udp.port", diameter_udp_port_range, diameter_udp_handle);
exported_pdu_tap = find_tap_id(EXPORT_PDU_TAP_NAME_LAYER_7);
diff --git a/epan/dissectors/packet-dis.c b/epan/dissectors/packet-dis.c
index dcfab75624..c467da365f 100644
--- a/epan/dissectors/packet-dis.c
+++ b/epan/dissectors/packet-dis.c
@@ -33,10 +33,9 @@
#include "config.h"
#include <epan/packet.h>
-#include <epan/prefs.h>
#include "packet-link16.h"
-#define DEFAULT_DIS_UDP_PORT 3000
+#define DEFAULT_DIS_UDP_PORT 3000 /* Not IANA registered */
/* Encoding type the last 14 bits */
#define DIS_ENCODING_TYPE(word) ((word) & 0x3FFF)
@@ -7009,8 +7008,6 @@ static const true_false_string dis_time_hopping_value = {
"Time hopping modulation not used"
};
-static guint dis_udp_port = DEFAULT_DIS_UDP_PORT;
-
typedef struct dis_header
{
guint8 version;
@@ -9653,22 +9650,9 @@ void proto_register_dis(void)
&ett_iff_parameter_6,
};
- module_t *dis_module;
-
proto_dis = proto_register_protocol("Distributed Interactive Simulation", "DIS", "dis");
proto_register_field_array(proto_dis, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
-
- dis_module = prefs_register_protocol(proto_dis, proto_reg_handoff_dis);
-
- /* Create an unsigned integer preference to allow the user to specify the
- * UDP port on which to capture DIS packets.
- */
- prefs_register_uint_preference(dis_module, "udp.port",
- "DIS UDP Port",
- "Set the UDP port for DIS messages",
- 10, &dis_udp_port);
-
}
/* Register handoff routine for DIS dissector. This will be invoked initially
@@ -9677,23 +9661,12 @@ void proto_register_dis(void)
*/
void proto_reg_handoff_dis(void)
{
- static gboolean dis_prefs_initialized = FALSE;
- static dissector_handle_t dis_dissector_handle;
- static guint saved_dis_udp_port;
+ dissector_handle_t dis_dissector_handle;
- if (!dis_prefs_initialized)
- {
- dis_dissector_handle = create_dissector_handle(dissect_dis, proto_dis);
- link16_handle = find_dissector_add_dependency("link16", proto_dis);
- dis_prefs_initialized = TRUE;
- }
- else
- {
- dissector_delete_uint("udp.port", saved_dis_udp_port, dis_dissector_handle);
- }
+ dis_dissector_handle = create_dissector_handle(dissect_dis, proto_dis);
+ dissector_add_uint_with_preference("udp.port", DEFAULT_DIS_UDP_PORT, dis_dissector_handle);
- dissector_add_uint("udp.port", dis_udp_port, dis_dissector_handle);
- saved_dis_udp_port = dis_udp_port;
+ link16_handle = find_dissector_add_dependency("link16", proto_dis);
}
/*
diff --git a/epan/dissectors/packet-dlsw.c b/epan/dissectors/packet-dlsw.c
index daf2896193..ff68a08843 100644
--- a/epan/dissectors/packet-dlsw.c
+++ b/epan/dissectors/packet-dlsw.c
@@ -686,7 +686,7 @@ proto_reg_handoff_dlsw(void)
dissector_handle_t dlsw_udp_handle, dlsw_tcp_handle;
dlsw_udp_handle = create_dissector_handle(dissect_dlsw_udp, proto_dlsw);
- dissector_add_uint("udp.port", UDP_PORT_DLSW, dlsw_udp_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_DLSW, dlsw_udp_handle);
dlsw_tcp_handle = create_dissector_handle(dissect_dlsw_tcp, proto_dlsw);
dissector_add_uint_with_preference("tcp.port", TCP_PORT_DLSW, dlsw_tcp_handle);
diff --git a/epan/dissectors/packet-dmp.c b/epan/dissectors/packet-dmp.c
index 5b77aaae84..fccb32083a 100644
--- a/epan/dissectors/packet-dmp.c
+++ b/epan/dissectors/packet-dmp.c
@@ -532,7 +532,6 @@ static struct dmp_data {
} dmp;
/* User definable values */
-static range_t *global_dmp_port_range;
static gint dmp_nat_decode = NAT_DECODE_DMP;
static gint dmp_local_nation = 0;
static gboolean use_seq_ack_analysis = TRUE;
@@ -4922,23 +4921,15 @@ void proto_register_dmp (void)
register_init_routine (&dmp_init_routine);
register_cleanup_routine (&dmp_cleanup_routine);
- /* Set default UDP ports */
- range_convert_str (&global_dmp_port_range, DEFAULT_DMP_PORT_RANGE,
- MAX_UDP_PORT);
-
/* Build national values */
build_national_strings ();
/* Register our configuration options */
- dmp_module = prefs_register_protocol (proto_dmp, proto_reg_handoff_dmp);
+ dmp_module = prefs_register_protocol (proto_dmp, NULL);
prefs_register_obsolete_preference (dmp_module, "udp_port");
prefs_register_obsolete_preference (dmp_module, "udp_port_second");
- prefs_register_range_preference (dmp_module, "udp_ports",
- "DMP port numbers",
- "Port numbers used for DMP traffic",
- &global_dmp_port_range, MAX_UDP_PORT);
prefs_register_enum_preference (dmp_module, "national_decode",
"National decoding",
"Select the type of decoding for nationally-defined values",
@@ -4975,21 +4966,8 @@ void proto_register_dmp (void)
void proto_reg_handoff_dmp (void)
{
- static range_t *dmp_port_range;
- static gboolean dmp_prefs_initialized = FALSE;
-
- if (!dmp_prefs_initialized) {
- dmp_prefs_initialized = TRUE;
- dissector_add_uint ("s5066sis.ctl.appid", S5066_CLIENT_S4406_ANNEX_E_TMI_4_DMP, dmp_handle);
- } else {
- dissector_delete_uint_range ("udp.port", dmp_port_range, dmp_handle);
- g_free (dmp_port_range);
- }
-
- /* Save port number for later deletion */
- dmp_port_range = range_copy (global_dmp_port_range);
-
- dissector_add_uint_range ("udp.port", dmp_port_range, dmp_handle);
+ dissector_add_uint ("s5066sis.ctl.appid", S5066_CLIENT_S4406_ANNEX_E_TMI_4_DMP, dmp_handle);
+ dissector_add_uint_range_with_preference("udp.port", DEFAULT_DMP_PORT_RANGE, dmp_handle);
}
/*
diff --git a/epan/dissectors/packet-dnp.c b/epan/dissectors/packet-dnp.c
index 18461f31a0..93af56f301 100644
--- a/epan/dissectors/packet-dnp.c
+++ b/epan/dissectors/packet-dnp.c
@@ -4600,7 +4600,7 @@ proto_reg_handoff_dnp3(void)
dnp3_tcp_handle = create_dissector_handle(dissect_dnp3_tcp, proto_dnp3);
dnp3_udp_handle = create_dissector_handle(dissect_dnp3_udp, proto_dnp3);
dissector_add_uint_with_preference("tcp.port", TCP_PORT_DNP, dnp3_tcp_handle);
- dissector_add_uint("udp.port", UDP_PORT_DNP, dnp3_udp_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_DNP, dnp3_udp_handle);
dissector_add_for_decode_as("rtacser.data", dnp3_udp_handle);
}
diff --git a/epan/dissectors/packet-dns.c b/epan/dissectors/packet-dns.c
index 7916fc6db9..281d7b9268 100644
--- a/epan/dissectors/packet-dns.c
+++ b/epan/dissectors/packet-dns.c
@@ -421,8 +421,6 @@ static dissector_table_t dns_tsig_dissector_table=NULL;
static dissector_handle_t dns_handle;
-static range_t *global_dns_udp_port_range;
-
/* desegmentation of DNS over TCP */
static gboolean dns_desegment = TRUE;
@@ -4078,18 +4076,13 @@ static int dns_stats_tree_packet(stats_tree* st, packet_info* pinfo _U_, epan_di
void
proto_reg_handoff_dns(void)
{
- static range_t *dns_udp_port_range;
-
- static gboolean Initialized = FALSE;
-
- if (!Initialized) {
dissector_handle_t mdns_udp_handle;
dissector_handle_t llmnr_udp_handle;
mdns_udp_handle = create_dissector_handle(dissect_mdns_udp, proto_mdns);
llmnr_udp_handle = create_dissector_handle(dissect_llmnr_udp, proto_llmnr);
- dissector_add_uint("udp.port", UDP_PORT_MDNS, mdns_udp_handle);
- dissector_add_uint("udp.port", UDP_PORT_LLMNR, llmnr_udp_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_MDNS, mdns_udp_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_LLMNR, llmnr_udp_handle);
dissector_add_uint("sctp.port", SCTP_PORT_DNS, dns_handle);
#if 0
dissector_add_uint("sctp.ppi", DNS_PAYLOAD_PROTOCOL_ID, dns_handle);
@@ -4100,15 +4093,7 @@ proto_reg_handoff_dns(void)
ssl_dissector_add(TCP_PORT_DNS_TLS, dns_handle);
dtls_dissector_add(UDP_PORT_DNS_DTLS, dns_handle);
dissector_add_uint_range_with_preference("tcp.port", DEFAULT_DNS_TCP_PORT_RANGE, dns_handle);
- Initialized = TRUE;
-
- } else {
- dissector_delete_uint_range("udp.port", dns_udp_port_range, dns_handle);
- g_free(dns_udp_port_range);
- }
-
- dns_udp_port_range = range_copy(global_dns_udp_port_range);
- dissector_add_uint_range("udp.port", dns_udp_port_range, dns_handle);
+ dissector_add_uint_range_with_preference("udp.port", DEFAULT_DNS_PORT_RANGE, dns_handle);
}
void
@@ -5571,15 +5556,7 @@ proto_register_dns(void)
expert_dns = expert_register_protocol(proto_dns);
expert_register_field_array(expert_dns, ei, array_length(ei));
- /* Set default ports */
- range_convert_str(&global_dns_udp_port_range, DEFAULT_DNS_PORT_RANGE, MAX_UDP_PORT);
-
- dns_module = prefs_register_protocol(proto_dns, proto_reg_handoff_dns);
-
- prefs_register_range_preference(dns_module, "udp.ports", "DNS UDP ports",
- "UDP ports to be decoded as DNS (default: "
- DEFAULT_DNS_PORT_RANGE ")",
- &global_dns_udp_port_range, MAX_UDP_PORT);
+ dns_module = prefs_register_protocol(proto_dns, NULL);
prefs_register_bool_preference(dns_module, "desegment_dns_messages",
"Reassemble DNS messages spanning multiple TCP segments",
diff --git a/epan/dissectors/packet-dof.c b/epan/dissectors/packet-dof.c
index 3e7f20d90d..486562d1c4 100644
--- a/epan/dissectors/packet-dof.c
+++ b/epan/dissectors/packet-dof.c
@@ -877,11 +877,10 @@ static void dof_packet_delete_proto_data(dof_packet_data *packet, int proto);
* source address, and the DPS dissector is associated with that port. In this
* way, servers on non-standard ports will automatically be decoded using DPS.
*/
-#define DOF_P2P_NEG_SEC_UDP_PORT 3567
+#define DOF_NEG_SEC_UDP_PORT_RANGE "3567,5567" /* P2P + Multicast */
#define DOF_P2P_NEG_SEC_TCP_PORT 3567
/* Reserved UDP port 3568*/
#define DOF_TUN_SEC_TCP_PORT 3568
-#define DOF_MCAST_NEG_SEC_UDP_PORT 5567
#define DOF_P2P_SEC_TCP_PORT 5567
/* Reserved UDP port 8567*/
#define DOF_TUN_NON_SEC_TCP_PORT 8567
@@ -11051,8 +11050,7 @@ static void dof_handoff(void)
undissected_data_handle = find_dissector("data");
dissector_add_uint_with_preference("tcp.port", DOF_P2P_NEG_SEC_TCP_PORT, tcp_handle);
- dissector_add_uint("udp.port", DOF_P2P_NEG_SEC_UDP_PORT, dof_udp_handle);
- dissector_add_uint("udp.port", DOF_MCAST_NEG_SEC_UDP_PORT, dof_udp_handle);
+ dissector_add_uint_range_with_preference("udp.port", DOF_NEG_SEC_UDP_PORT_RANGE, dof_udp_handle);
}
/* OID Registration Support */
diff --git a/epan/dissectors/packet-dtn.c b/epan/dissectors/packet-dtn.c
index d1ce3e002f..881f5fd4c6 100644
--- a/epan/dissectors/packet-dtn.c
+++ b/epan/dissectors/packet-dtn.c
@@ -51,7 +51,6 @@
#include <stdio.h>
#include <epan/packet.h>
-#include <epan/prefs.h>
#include <epan/reassemble.h>
#include <epan/expert.h>
#include "packet-dtn.h"
@@ -290,7 +289,6 @@ static expert_field ei_tcp_convergence_ack_length = EI_INIT;
static dissector_handle_t bundle_handle;
#define BUNDLE_PORT 4556
-static guint bundle_udp_port = BUNDLE_PORT;
typedef struct dictionary_data {
int bundle_header_dict_length;
@@ -3049,21 +3047,13 @@ proto_register_bundle(void)
},
};
- module_t *bundle_module;
expert_module_t *expert_bundle, *expert_tcpcl;
proto_bundle = proto_register_protocol("Bundle Protocol", "Bundle", "bundle");
bundle_handle = register_dissector("bundle", dissect_bundle, proto_bundle);
- bundle_module = prefs_register_protocol(proto_bundle, proto_reg_handoff_bundle);
proto_tcp_conv = proto_register_protocol ("DTN TCP Convergence Layer Protocol", "TCPCL", "tcpcl");
- prefs_register_uint_preference(bundle_module, "udp.port",
- "Bundle Protocol UDP Port",
- "UDP Port to Accept Bundle Protocol Connections",
- 10,
- &bundle_udp_port);
-
proto_register_field_array(proto_bundle, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
expert_bundle = expert_register_protocol(proto_bundle);
@@ -3081,21 +3071,11 @@ proto_register_bundle(void)
void
proto_reg_handoff_bundle(void)
{
- static dissector_handle_t tcpcl_handle;
- static guint udp_port;
-
- static int Initialized = FALSE;
+ dissector_handle_t tcpcl_handle;
- if (!Initialized) {
- tcpcl_handle = create_dissector_handle(dissect_tcpcl, proto_bundle);
- dissector_add_uint_with_preference("tcp.port", BUNDLE_PORT, tcpcl_handle);
- Initialized = TRUE;
- }
- else {
- dissector_delete_uint("udp.port", udp_port, bundle_handle);
- }
- udp_port = bundle_udp_port;
- dissector_add_uint("udp.port", udp_port, bundle_handle);
+ tcpcl_handle = create_dissector_handle(dissect_tcpcl, proto_bundle);
+ dissector_add_uint_with_preference("tcp.port", BUNDLE_PORT, tcpcl_handle);
+ dissector_add_uint_with_preference("udp.port", BUNDLE_PORT, bundle_handle);
}
/*
diff --git a/epan/dissectors/packet-dvb-ipdc.c b/epan/dissectors/packet-dvb-ipdc.c
index d2167e46e9..806f48d2d1 100644
--- a/epan/dissectors/packet-dvb-ipdc.c
+++ b/epan/dissectors/packet-dvb-ipdc.c
@@ -104,7 +104,7 @@ proto_reg_handoff_dvb_ipdc(void)
sub_handles[DVB_IPDC_SUB_FLUTE] = find_dissector_add_dependency("alc", proto_ipdc);
ipdc_handle = create_dissector_handle(dissect_ipdc, proto_ipdc);
- dissector_add_uint("udp.port", UDP_PORT_IPDC_ESG_BOOTSTRAP, ipdc_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_IPDC_ESG_BOOTSTRAP, ipdc_handle);
}
/*
diff --git a/epan/dissectors/packet-echo.c b/epan/dissectors/packet-echo.c
index a6aa6bb59e..591c8811ee 100644
--- a/epan/dissectors/packet-echo.c
+++ b/epan/dissectors/packet-echo.c
@@ -114,7 +114,7 @@ void proto_reg_handoff_echo(void)
echo_handle = create_dissector_handle(dissect_echo, proto_echo);
- dissector_add_uint("udp.port", ECHO_PORT, echo_handle);
+ dissector_add_uint_with_preference("udp.port", ECHO_PORT, echo_handle);
dissector_add_uint_with_preference("tcp.port", ECHO_PORT, echo_handle);
}
diff --git a/epan/dissectors/packet-ecmp.c b/epan/dissectors/packet-ecmp.c
index 9352c81f47..adcdbfe158 100644
--- a/epan/dissectors/packet-ecmp.c
+++ b/epan/dissectors/packet-ecmp.c
@@ -51,9 +51,6 @@ static int proto_modbus = -1;
/* These are the handles of our subdissectors */
static dissector_handle_t modbus_handle = NULL;
-/*stores the port number for our protocol (ECMP)*/
-static const guint16 global_ecmp_port = 6160;
-
/*smallest size of a packet, number of bytes*/
static const gint ecmp_min_packet_size = 6;
@@ -3565,18 +3562,14 @@ void proto_register_ecmp (void)
/* Wireshark literally scans this file (packet-ecmp.c) to find this function */
void proto_reg_handoff_ecmp(void)
{
- static gboolean initialized = FALSE;
- static dissector_handle_t ecmp_tcp_handle, ecmp_udp_handle;
+ dissector_handle_t ecmp_tcp_handle, ecmp_udp_handle;
- if (!initialized) {
- ecmp_tcp_handle = create_dissector_handle(dissect_ecmp_tcp, proto_ecmp);
- ecmp_udp_handle = create_dissector_handle(dissect_ecmp_udp, proto_ecmp);
+ ecmp_tcp_handle = create_dissector_handle(dissect_ecmp_tcp, proto_ecmp);
+ ecmp_udp_handle = create_dissector_handle(dissect_ecmp_udp, proto_ecmp);
- /* Cyclic frames are over UDP and non-cyclic are over TCP */
- dissector_add_uint("udp.port", global_ecmp_port, ecmp_udp_handle);
- dissector_add_uint_with_preference("tcp.port", ECMP_TCP_PORT, ecmp_tcp_handle);
- initialized = TRUE;
- }
+ /* Cyclic frames are over UDP and non-cyclic are over TCP */
+ dissector_add_uint_with_preference("udp.port", ECMP_TCP_PORT, ecmp_udp_handle);
+ dissector_add_uint_with_preference("tcp.port", ECMP_TCP_PORT, ecmp_tcp_handle);
/* Modbus dissector hooks */
modbus_handle = find_dissector_add_dependency("modbus", proto_ecmp);
diff --git a/epan/dissectors/packet-edonkey.c b/epan/dissectors/packet-edonkey.c
index 332e24bc85..f9a848b959 100644
--- a/epan/dissectors/packet-edonkey.c
+++ b/epan/dissectors/packet-edonkey.c
@@ -183,6 +183,7 @@ static expert_field ei_kademlia_tag_type = EI_INIT;
static expert_field ei_kademlia_search_expression_type = EI_INIT;
#define EDONKEY_TCP_PORT_RANGE "4661-4663" /* Not IANA registered */
+#define EDONKEY_UDP_PORT_RANGE "4665,4672" /* Not IANA registered */
/* desegmentation of eDonkey over TCP */
static gboolean edonkey_desegment = TRUE;
@@ -3408,9 +3409,7 @@ void proto_reg_handoff_edonkey(void) {
edonkey_udp_handle = create_dissector_handle(dissect_edonkey_udp, proto_edonkey);
dissector_add_uint_range_with_preference("tcp.port", EDONKEY_TCP_PORT_RANGE, edonkey_tcp_handle);
- dissector_add_uint("udp.port", 4665, edonkey_udp_handle);
- dissector_add_uint("udp.port", 4672, edonkey_udp_handle);
-
+ dissector_add_uint_range_with_preference("udp.port", EDONKEY_UDP_PORT_RANGE, edonkey_udp_handle);
}
/*
diff --git a/epan/dissectors/packet-egd.c b/epan/dissectors/packet-egd.c
index 4d1ee44635..f3c33d2a8e 100644
--- a/epan/dissectors/packet-egd.c
+++ b/epan/dissectors/packet-egd.c
@@ -28,7 +28,7 @@
#include <epan/packet.h>
-#define EGD_PORT 18246 /* 0x4746 */
+#define EGD_PORT 18246 /* 0x4746 - Not IANA registered */
#define EGD_ST_NONEW 0
#define EGD_ST_NOERROR 1
@@ -226,11 +226,7 @@ void proto_register_egd(void)
&ett_status_item
};
- proto_egd = proto_register_protocol (
- "Ethernet Global Data", /* name */
- "EGD", /* short name */
- "egd" /* abbrev */
- );
+ proto_egd = proto_register_protocol ("Ethernet Global Data", "EGD", "egd");
proto_register_field_array(proto_egd, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
}
@@ -240,7 +236,7 @@ void proto_reg_handoff_egd(void)
dissector_handle_t egd_handle;
egd_handle = create_dissector_handle(dissect_egd, proto_egd);
- dissector_add_uint("udp.port", EGD_PORT, egd_handle);
+ dissector_add_uint_with_preference("udp.port", EGD_PORT, egd_handle);
}
/*
diff --git a/epan/dissectors/packet-ehs.c b/epan/dissectors/packet-ehs.c
index 0f168807a3..893ca7b72f 100644
--- a/epan/dissectors/packet-ehs.c
+++ b/epan/dissectors/packet-ehs.c
@@ -1959,7 +1959,7 @@ proto_register_ehs(void)
void
proto_reg_handoff_ehs(void)
{
- dissector_add_for_decode_as ( "udp.port", find_dissector("ehs") );
+ dissector_add_for_decode_as_with_preference( "udp.port", find_dissector("ehs") );
ccsds_handle = find_dissector_add_dependency ( "ccsds", proto_ehs );
}
diff --git a/epan/dissectors/packet-elasticsearch.c b/epan/dissectors/packet-elasticsearch.c
index 461ebdac7c..2dca06b9ac 100644
--- a/epan/dissectors/packet-elasticsearch.c
+++ b/epan/dissectors/packet-elasticsearch.c
@@ -26,7 +26,7 @@
#include <epan/expert.h>
#include "packet-tcp.h"
-#define ELASTICSEARCH_DISCOVERY_PORT 54328
+#define ELASTICSEARCH_DISCOVERY_PORT 54328 /* Not IANA registered */
#define ELASTICSEARCH_BINARY_PORT 9300 /* Not IANA registered */
#define IPv4_ADDRESS_LENGTH 4
@@ -727,7 +727,7 @@ void proto_reg_handoff_elasticsearch(void) {
elasticsearch_handle_binary = create_dissector_handle(dissect_elasticsearch_binary, proto_elasticsearch);
elasticsearch_zen_handle = create_dissector_handle(dissect_elasticsearch_zen_ping, proto_elasticsearch);
- dissector_add_uint("udp.port", ELASTICSEARCH_DISCOVERY_PORT, elasticsearch_zen_handle);
+ dissector_add_uint_with_preference("udp.port", ELASTICSEARCH_DISCOVERY_PORT, elasticsearch_zen_handle);
dissector_add_uint_with_preference("tcp.port", ELASTICSEARCH_BINARY_PORT, elasticsearch_handle_binary);
}
diff --git a/epan/dissectors/packet-enip.c b/epan/dissectors/packet-enip.c
index 73f8333b42..f664818124 100644
--- a/epan/dissectors/packet-enip.c
+++ b/epan/dissectors/packet-enip.c
@@ -4427,11 +4427,11 @@ proto_reg_handoff_enip(void)
/* Register for EtherNet/IP, using UDP */
enip_udp_handle = create_dissector_handle(dissect_enip_udp, proto_enip);
- dissector_add_uint("udp.port", ENIP_ENCAP_PORT, enip_udp_handle);
+ dissector_add_uint_with_preference("udp.port", ENIP_ENCAP_PORT, enip_udp_handle);
/* Register for EtherNet/IP IO data (UDP) */
enipio_handle = find_dissector("enip_io");
- dissector_add_uint("udp.port", ENIP_IO_PORT, enipio_handle);
+ dissector_add_uint_with_preference("udp.port", ENIP_IO_PORT, enipio_handle);
/* Register for EtherNet/IP TLS */
ssl_dissector_add(ENIP_SECURE_PORT, enip_tcp_handle);
diff --git a/epan/dissectors/packet-enrp.c b/epan/dissectors/packet-enrp.c
index 11cf7d5ad8..96cec01364 100644
--- a/epan/dissectors/packet-enrp.c
+++ b/epan/dissectors/packet-enrp.c
@@ -1092,7 +1092,7 @@ proto_reg_handoff_enrp(void)
enrp_handle = create_dissector_handle(dissect_enrp, proto_enrp);
dissector_add_uint("sctp.ppi", ENRP_PAYLOAD_PROTOCOL_ID, enrp_handle);
dissector_add_uint("sctp.port", ENRP_SCTP_PORT, enrp_handle);
- dissector_add_uint("udp.port", ENRP_UDP_PORT, enrp_handle);
+ dissector_add_uint_with_preference("udp.port", ENRP_UDP_PORT, enrp_handle);
}
/*
diff --git a/epan/dissectors/packet-enttec.c b/epan/dissectors/packet-enttec.c
index 4b55e6b085..fcd9745682 100644
--- a/epan/dissectors/packet-enttec.c
+++ b/epan/dissectors/packet-enttec.c
@@ -36,7 +36,7 @@
/* Define UDP/TCP ports for ENTTEC */
-#define UDP_PORT_ENTTEC 0x0D05
+#define UDP_PORT_ENTTEC 0x0D05 /* Not IANA registered */
#define TCP_PORT_ENTTEC 0x0D05 /* Not IANA registered */
@@ -107,8 +107,6 @@ static int ett_enttec = -1;
* for enttec
*/
-static guint global_udp_port_enttec = UDP_PORT_ENTTEC;
-
static gint global_disp_chan_val_type = 0;
static gint global_disp_col_count = 16;
static gint global_disp_chan_nr_type = 0;
@@ -544,12 +542,7 @@ proto_register_enttec(void)
proto_register_field_array(proto_enttec,hf,array_length(hf));
proto_register_subtree_array(ett,array_length(ett));
- enttec_module = prefs_register_protocol(proto_enttec,
- proto_reg_handoff_enttec);
- prefs_register_uint_preference(enttec_module, "udp_port",
- "ENTTEC UDP Port",
- "The UDP port on which ENTTEC packets will be sent",
- 10,&global_udp_port_enttec);
+ enttec_module = prefs_register_protocol(proto_enttec, NULL);
prefs_register_enum_preference(enttec_module, "dmx_disp_chan_val_type",
"DMX Display channel value type",
@@ -573,22 +566,13 @@ proto_register_enttec(void)
/* The registration hand-off routing */
void
proto_reg_handoff_enttec(void) {
- static gboolean enttec_initialized = FALSE;
- static dissector_handle_t enttec_udp_handle, enttec_tcp_handle;
- static guint udp_port_enttec;
-
- if(!enttec_initialized) {
- enttec_udp_handle = create_dissector_handle(dissect_enttec_udp,proto_enttec);
- enttec_tcp_handle = create_dissector_handle(dissect_enttec_tcp,proto_enttec);
- dissector_add_uint_with_preference("tcp.port",TCP_PORT_ENTTEC,enttec_tcp_handle);
- enttec_initialized = TRUE;
- } else {
- dissector_delete_uint("udp.port",udp_port_enttec,enttec_udp_handle);
- }
+ dissector_handle_t enttec_udp_handle, enttec_tcp_handle;
- udp_port_enttec = global_udp_port_enttec;
+ enttec_udp_handle = create_dissector_handle(dissect_enttec_udp,proto_enttec);
+ enttec_tcp_handle = create_dissector_handle(dissect_enttec_tcp,proto_enttec);
- dissector_add_uint("udp.port",global_udp_port_enttec,enttec_udp_handle);
+ dissector_add_uint_with_preference("tcp.port",TCP_PORT_ENTTEC,enttec_tcp_handle);
+ dissector_add_uint_with_preference("udp.port",UDP_PORT_ENTTEC,enttec_udp_handle);
}
/*
diff --git a/epan/dissectors/packet-epl.c b/epan/dissectors/packet-epl.c
index 3dca5b06ce..b8546a9185 100644
--- a/epan/dissectors/packet-epl.c
+++ b/epan/dissectors/packet-epl.c
@@ -4562,7 +4562,7 @@ proto_reg_handoff_epl(void)
dissector_handle_t epl_udp_handle = create_dissector_handle( dissect_epludp, proto_epl );
dissector_add_uint("ethertype", ETHERTYPE_EPL_V2, epl_handle);
- dissector_add_uint("udp.port", UDP_PORT_EPL, epl_udp_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_EPL, epl_udp_handle);
/* register frame init routine */
register_init_routine( setup_dissector );
diff --git a/epan/dissectors/packet-esio.c b/epan/dissectors/packet-esio.c
index 8726a42fd1..0b5a2fde77 100644
--- a/epan/dissectors/packet-esio.c
+++ b/epan/dissectors/packet-esio.c
@@ -33,6 +33,8 @@
void proto_register_esio(void);
void proto_reg_handoff_esio(void);
+#define ESIO_UDP_PORT 6060 /* Not IANA registered */
+
/* Initialize the protocol and registered fields */
static int proto_esio = -1;
static int hf_esio_type = -1;
@@ -419,7 +421,7 @@ proto_reg_handoff_esio(void)
dissector_handle_t esio_handle;
esio_handle = create_dissector_handle(dissect_esio, proto_esio);
- dissector_add_uint("udp.port", 6060, esio_handle);
+ dissector_add_uint_with_preference("udp.port", ESIO_UDP_PORT, esio_handle);
}
/*
diff --git a/epan/dissectors/packet-eth.c b/epan/dissectors/packet-eth.c
index 4d82e8f448..605acfeddf 100644
--- a/epan/dissectors/packet-eth.c
+++ b/epan/dissectors/packet-eth.c
@@ -1034,7 +1034,7 @@ proto_reg_handoff_eth(void)
* command - it encapsulates Ethernet frames in UDP packets, but
* the UDP port is user-defined.
*/
- dissector_add_for_decode_as("udp.port", eth_withoutfcs_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", eth_withoutfcs_handle);
dissector_add_for_decode_as("pcli.payload", eth_withoutfcs_handle);
diff --git a/epan/dissectors/packet-ff.c b/epan/dissectors/packet-ff.c
index 496b8ce65e..a56ef51494 100644
--- a/epan/dissectors/packet-ff.c
+++ b/epan/dissectors/packet-ff.c
@@ -15289,32 +15289,14 @@ proto_reg_handoff_ff(void)
* 4.8.4.2. Use
*
* - Device Annunciation
- */
- dissector_add_uint("udp.port", UDP_PORT_FF_ANNUNC, ff_udp_handle);
-
- /*
- * 4.8.4.2. Use
- *
* - Client / Server
- */
- dissector_add_uint("udp.port", UDP_PORT_FF_FMS, ff_udp_handle);
- dissector_add_uint_with_preference("tcp.port", TCP_PORT_FF_FMS, ff_tcp_handle);
-
- /*
- * 4.8.4.2. Use
- *
* - Set/Clear Assignment Info and Clear Address
* - SM Identify
* - SM Find Tag
- */
- dissector_add_uint("udp.port", UDP_PORT_FF_SM, ff_udp_handle);
-
- /*
- * 4.8.4.2. Use
- *
* - LAN Redundancy Get and Put Information
*/
- dissector_add_uint("udp.port", UDP_PORT_FF_LR_PORT, ff_udp_handle);
+ dissector_add_uint_range_with_preference("udp.port", UDP_PORT_FF_RANGE, ff_udp_handle);
+ dissector_add_uint_with_preference("tcp.port", TCP_PORT_FF_FMS, ff_tcp_handle);
}
/*
diff --git a/epan/dissectors/packet-ff.h b/epan/dissectors/packet-ff.h
index 7ac7cff660..768d644070 100644
--- a/epan/dissectors/packet-ff.h
+++ b/epan/dissectors/packet-ff.h
@@ -42,16 +42,13 @@
#ifndef __PACKET_FF_H__
#define __PACKET_FF_H__
-#define UDP_PORT_FF_ANNUNC 1089
+#define UDP_PORT_FF_RANGE "1089-1091,3622"
#define TCP_PORT_FF_ANNUNC 1089
-#define UDP_PORT_FF_FMS 1090
#define TCP_PORT_FF_FMS 1090
-#define UDP_PORT_FF_SM 1091
#define TCP_PORT_FF_SM 1091
-#define UDP_PORT_FF_LR_PORT 3622
#define TCP_PORT_FF_LR_PORT 3622
diff --git a/epan/dissectors/packet-forces.c b/epan/dissectors/packet-forces.c
index fcadd6a0f5..745e90d09f 100644
--- a/epan/dissectors/packet-forces.c
+++ b/epan/dissectors/packet-forces.c
@@ -144,8 +144,6 @@ static int hf_forces_unknown_tlv = -1;
For other type TMLs,no need to add these 2 bytes.*/
#define TCP_UDP_TML_FOCES_MESSAGE_OFFSET_TCP 2
-/*TCP+UDP TML*/
-static guint forces_alternate_udp_port = 0;
/*SCTP TML*/
static guint forces_alternate_sctp_high_prio_channel_port = 0;
static guint forces_alternate_sctp_med_prio_channel_port = 0;
@@ -832,11 +830,6 @@ proto_register_forces(void)
forces_module = prefs_register_protocol(proto_forces,proto_reg_handoff_forces);
- prefs_register_uint_preference(forces_module, "udp_alternate_port",
- "UDP port",
- "Decode packets on this UDP port as ForCES",
- 10, &forces_alternate_udp_port);
-
prefs_register_uint_preference(forces_module, "sctp_high_prio_port",
"SCTP High Priority channel port",
"Decode packets on this sctp port as ForCES",
@@ -858,7 +851,6 @@ proto_reg_handoff_forces(void)
{
static gboolean inited = FALSE;
- static guint alternate_udp_port = 0;
static guint alternate_sctp_high_prio_channel_port = 0; /* 6700 */
static guint alternate_sctp_med_prio_channel_port = 0;
static guint alternate_sctp_low_prio_channel_port = 0;
@@ -871,18 +863,12 @@ proto_reg_handoff_forces(void)
ip_handle = find_dissector_add_dependency("ip", proto_forces);
/* Register TCP port for dissection */
dissector_add_for_decode_as_with_preference("tcp.port", forces_handle_tcp);
+ /* Register UDP port for dissection */
+ dissector_add_for_decode_as_with_preference("udp.port", forces_handle);
inited = TRUE;
}
-
- /* Register UDP port for dissection */
- if ((alternate_udp_port != 0) && (alternate_udp_port != forces_alternate_udp_port))
- dissector_delete_uint("udp.port", alternate_udp_port, forces_handle);
- if ((forces_alternate_udp_port != 0) && (alternate_udp_port != forces_alternate_udp_port))
- dissector_add_uint("udp.port", forces_alternate_udp_port, forces_handle);
- alternate_udp_port = forces_alternate_udp_port;
-
/* Register SCTP port for high priority dissection */
if ((alternate_sctp_high_prio_channel_port != 0) &&
(alternate_sctp_high_prio_channel_port != forces_alternate_sctp_high_prio_channel_port))
diff --git a/epan/dissectors/packet-geneve.c b/epan/dissectors/packet-geneve.c
index aefdeee4ab..0b76ff2ce6 100644
--- a/epan/dissectors/packet-geneve.c
+++ b/epan/dissectors/packet-geneve.c
@@ -451,8 +451,7 @@ proto_reg_handoff_geneve(void)
dissector_handle_t geneve_handle;
geneve_handle = create_dissector_handle(dissect_geneve, proto_geneve);
- dissector_add_uint("udp.port", UDP_PORT_GENEVE, geneve_handle);
- dissector_add_for_decode_as("udp.port", geneve_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_GENEVE, geneve_handle);
ethertype_dissector_table = find_dissector_table("ethertype");
}
diff --git a/epan/dissectors/packet-glbp.c b/epan/dissectors/packet-glbp.c
index f7ef19be28..09d44c301a 100644
--- a/epan/dissectors/packet-glbp.c
+++ b/epan/dissectors/packet-glbp.c
@@ -44,6 +44,8 @@
void proto_register_glbp(void);
void proto_reg_handoff_glbp(void);
+#define GLBP_UDP_PORT 3222
+
static int proto_glbp = -1;
/* glbp header? */
static gint hf_glbp_version = -1;
@@ -596,8 +598,8 @@ proto_register_glbp(void)
expert_module_t* expert_glbp;
- proto_glbp = proto_register_protocol(
- "Gateway Load Balancing Protocol", "GLBP", "glbp");
+ proto_glbp = proto_register_protocol("Gateway Load Balancing Protocol", "GLBP", "glbp");
+
proto_register_field_array(proto_glbp, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
expert_glbp = expert_register_protocol(proto_glbp);
@@ -610,7 +612,7 @@ proto_reg_handoff_glbp(void)
dissector_handle_t glbp_handle;
glbp_handle = create_dissector_handle(dissect_glbp_static, proto_glbp);
- dissector_add_uint("udp.port", 3222, glbp_handle);
+ dissector_add_uint_with_preference("udp.port", GLBP_UDP_PORT, glbp_handle);
}
/*
diff --git a/epan/dissectors/packet-gsm_ipa.c b/epan/dissectors/packet-gsm_ipa.c
index 8298d0fd2a..1572b3442f 100644
--- a/epan/dissectors/packet-gsm_ipa.c
+++ b/epan/dissectors/packet-gsm_ipa.c
@@ -72,12 +72,9 @@ void proto_reg_handoff_gsm_ipa(void);
************************************************************************
*/
#define IPA_TCP_PORTS "3002,3003,3006,4249,4250,5000"
-#define IPA_UDP_PORTS "3006"
-#define IPA_UDP_PORTS_DEFAULT "0"
static dissector_handle_t ipa_tcp_handle;
static dissector_handle_t ipa_udp_handle;
-static range_t *global_ipa_udp_ports = NULL;
static gboolean global_ipa_in_root = FALSE;
static gboolean global_ipa_in_info = FALSE;
@@ -456,15 +453,7 @@ void proto_register_ipa(void)
"GSM over IP ip.access Protocol", proto_ipa,
FT_UINT8, BASE_DEC);
-
- range_convert_str(&global_ipa_udp_ports, IPA_UDP_PORTS_DEFAULT, MAX_UDP_PORT);
- ipa_module = prefs_register_protocol(proto_ipa, proto_reg_handoff_gsm_ipa);
-
- prefs_register_range_preference(ipa_module, "udp_ports",
- "GSM IPA UDP Port(s)",
- "Set the port(s) for ip.access IPA"
- " (usually: " IPA_UDP_PORTS ")",
- &global_ipa_udp_ports, MAX_UDP_PORT);
+ ipa_module = prefs_register_protocol(proto_ipa, NULL);
prefs_register_bool_preference(ipa_module, "hsl_debug_in_root_tree",
"HSL Debug messages in root protocol tree",
@@ -476,28 +465,16 @@ void proto_register_ipa(void)
void proto_reg_handoff_gsm_ipa(void)
{
- static gboolean ipa_initialized = FALSE;
- static range_t *ipa_udp_ports;
-
- if (!ipa_initialized) {
- sub_handles[SUB_RSL] = find_dissector_add_dependency("gsm_abis_rsl", proto_ipa);
- sub_handles[SUB_OML] = find_dissector_add_dependency("gsm_abis_oml", proto_ipa);
- sub_handles[SUB_SCCP] = find_dissector_add_dependency("sccp", proto_ipa);
- sub_handles[SUB_MGCP] = find_dissector_add_dependency("mgcp", proto_ipa);
- sub_handles[SUB_DATA] = find_dissector("data");
-
- ipa_tcp_handle = create_dissector_handle(dissect_ipa_tcp, proto_ipa);
- ipa_udp_handle = create_dissector_handle(dissect_ipa_udp, proto_ipa);
- dissector_add_uint_range_with_preference("tcp.port", IPA_TCP_PORTS, ipa_tcp_handle);
- ipa_initialized = TRUE;
- } else {
- dissector_delete_uint_range("udp.port", ipa_udp_ports, ipa_udp_handle);
- g_free(ipa_udp_ports);
- }
-
- ipa_udp_ports = range_copy(global_ipa_udp_ports);
-
- dissector_add_uint_range("udp.port", ipa_udp_ports, ipa_udp_handle);
+ sub_handles[SUB_RSL] = find_dissector_add_dependency("gsm_abis_rsl", proto_ipa);
+ sub_handles[SUB_OML] = find_dissector_add_dependency("gsm_abis_oml", proto_ipa);
+ sub_handles[SUB_SCCP] = find_dissector_add_dependency("sccp", proto_ipa);
+ sub_handles[SUB_MGCP] = find_dissector_add_dependency("mgcp", proto_ipa);
+ sub_handles[SUB_DATA] = find_dissector("data");
+
+ ipa_tcp_handle = create_dissector_handle(dissect_ipa_tcp, proto_ipa);
+ ipa_udp_handle = create_dissector_handle(dissect_ipa_udp, proto_ipa);
+ dissector_add_uint_range_with_preference("tcp.port", IPA_TCP_PORTS, ipa_tcp_handle);
+ dissector_add_uint_range_with_preference("udp.port", "", ipa_udp_handle);
}
/*
diff --git a/epan/dissectors/packet-gsm_osmux.c b/epan/dissectors/packet-gsm_osmux.c
index c15734f017..039c3d76fe 100644
--- a/epan/dissectors/packet-gsm_osmux.c
+++ b/epan/dissectors/packet-gsm_osmux.c
@@ -282,17 +282,14 @@ void proto_register_osmux(void)
void proto_reg_handoff_osmux(void)
{
- static gboolean osmux_initialized = FALSE;
-
- if (!osmux_initialized) {
- osmux_handle = create_dissector_handle(dissect_osmux, proto_osmux);
- dissector_add_for_decode_as("udp.port", osmux_handle);
- osmux_tap = register_tap("osmux");
- osmux_initialized = TRUE;
- stats_tree_register("osmux", "osmux", "Osmux/Packets", 0,
- osmux_stats_tree_packet, osmux_stats_tree_init,
- NULL);
- }
+ osmux_handle = create_dissector_handle(dissect_osmux, proto_osmux);
+ dissector_add_for_decode_as_with_preference("udp.port", osmux_handle);
+
+ osmux_tap = register_tap("osmux");
+
+ stats_tree_register("osmux", "osmux", "Osmux/Packets", 0,
+ osmux_stats_tree_packet, osmux_stats_tree_init,
+ NULL);
}
/*
diff --git a/epan/dissectors/packet-gsmtap.c b/epan/dissectors/packet-gsmtap.c
index d4ed1764a5..3c28d909aa 100644
--- a/epan/dissectors/packet-gsmtap.c
+++ b/epan/dissectors/packet-gsmtap.c
@@ -869,7 +869,7 @@ proto_reg_handoff_gsmtap(void)
rrc_sub_handles[GSMTAP_RRC_SUB_TargetRNC_ToSourceRNC_Container] = find_dissector_add_dependency("rrc.t_to_srnc_cont", proto_gsmtap);
gsmtap_handle = create_dissector_handle(dissect_gsmtap, proto_gsmtap);
- dissector_add_uint("udp.port", GSMTAP_UDP_PORT, gsmtap_handle);
+ dissector_add_uint_with_preference("udp.port", GSMTAP_UDP_PORT, gsmtap_handle);
}
/*
diff --git a/epan/dissectors/packet-gtp.c b/epan/dissectors/packet-gtp.c
index 7378e39ea1..1ec06599c2 100644
--- a/epan/dissectors/packet-gtp.c
+++ b/epan/dissectors/packet-gtp.c
@@ -10101,6 +10101,8 @@ proto_reg_handoff_gtp(void)
gtpv1c_port = g_gtpv1c_port;
gtpv1u_port = g_gtpv1u_port;
+ /* This doesn't use the "auto preference" API because the port
+ description is too specific */
dissector_add_uint("udp.port", g_gtpv0_port, gtp_prime_handle);
dissector_add_uint("udp.port", g_gtpv1c_port, gtp_handle);
dissector_add_uint("udp.port", g_gtpv1u_port, gtp_handle);
diff --git a/epan/dissectors/packet-gvsp.c b/epan/dissectors/packet-gvsp.c
index 9a8b5e80c5..2f165d44af 100644
--- a/epan/dissectors/packet-gvsp.c
+++ b/epan/dissectors/packet-gvsp.c
@@ -2274,19 +2274,14 @@ void proto_register_gvsp(void)
proto_register_field_array(proto_gvsp, hfgvsp, array_length(hfgvsp));
proto_register_subtree_array(ett, array_length(ett));
- gvsp_module = prefs_register_protocol(proto_gvsp, proto_reg_handoff_gvsp);
+ gvsp_module = prefs_register_protocol(proto_gvsp, NULL);
prefs_register_obsolete_preference(gvsp_module, "enable_heuristic");
}
void proto_reg_handoff_gvsp(void)
{
- static gboolean initialized = FALSE;
-
- if (!initialized) {
- dissector_add_for_decode_as("udp.port", gvsp_handle);
- heur_dissector_add("udp", dissect_gvsp_heur, "GigE Vision over UDP", "gvsp_udp", proto_gvsp, HEURISTIC_ENABLE);
- initialized = TRUE;
- }
+ dissector_add_for_decode_as_with_preference("udp.port", gvsp_handle);
+ heur_dissector_add("udp", dissect_gvsp_heur, "GigE Vision over UDP", "gvsp_udp", proto_gvsp, HEURISTIC_ENABLE);
}
/*
diff --git a/epan/dissectors/packet-h225.c b/epan/dissectors/packet-h225.c
index bf76021286..a36bc43255 100644
--- a/epan/dissectors/packet-h225.c
+++ b/epan/dissectors/packet-h225.c
@@ -65,8 +65,7 @@
#define PSNAME "H.225.0"
#define PFNAME "h225"
-#define UDP_PORT_RAS1 1718
-#define UDP_PORT_RAS2 1719
+#define UDP_PORT_RAS_RANGE "1718-1719"
#define TCP_PORT_CS 1720
#define TLS_PORT_CS 1300
@@ -910,7 +909,7 @@ static int hf_h225_stopped = -1; /* NULL */
static int hf_h225_notAvailable = -1; /* NULL */
/*--- End of included file: packet-h225-hf.c ---*/
-#line 130 "./asn1/h225/packet-h225-template.c"
+#line 129 "./asn1/h225/packet-h225-template.c"
/* Initialize the subtree pointers */
static gint ett_h225 = -1;
@@ -1158,7 +1157,7 @@ static gint ett_h225_ServiceControlResponse = -1;
static gint ett_h225_T_result = -1;
/*--- End of included file: packet-h225-ett.c ---*/
-#line 134 "./asn1/h225/packet-h225-template.c"
+#line 133 "./asn1/h225/packet-h225-template.c"
/* Preferences */
static guint h225_tls_port = TLS_PORT_CS;
@@ -7825,7 +7824,7 @@ static int dissect_RasMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, pro
/*--- End of included file: packet-h225-fn.c ---*/
-#line 250 "./asn1/h225/packet-h225-template.c"
+#line 249 "./asn1/h225/packet-h225-template.c"
/* Forward declaration we need below */
void proto_reg_handoff_h225(void);
@@ -11507,7 +11506,7 @@ void proto_register_h225(void) {
NULL, HFILL }},
/*--- End of included file: packet-h225-hfarr.c ---*/
-#line 843 "./asn1/h225/packet-h225-template.c"
+#line 842 "./asn1/h225/packet-h225-template.c"
};
/* List of subtrees */
@@ -11757,7 +11756,7 @@ void proto_register_h225(void) {
&ett_h225_T_result,
/*--- End of included file: packet-h225-ettarr.c ---*/
-#line 849 "./asn1/h225/packet-h225-template.c"
+#line 848 "./asn1/h225/packet-h225-template.c"
};
static tap_param h225_stat_params[] = {
@@ -11848,8 +11847,7 @@ proto_reg_handoff_h225(void)
static guint saved_h225_tls_port;
if (!h225_prefs_initialized) {
- dissector_add_uint("udp.port", UDP_PORT_RAS1, h225ras_handle);
- dissector_add_uint("udp.port", UDP_PORT_RAS2, h225ras_handle);
+ dissector_add_uint_range_with_preference("udp.port", UDP_PORT_RAS_RANGE, h225ras_handle);
h245_handle = find_dissector("h245");
h245dg_handle = find_dissector("h245dg");
diff --git a/epan/dissectors/packet-h245.c b/epan/dissectors/packet-h245.c
index 791523f9f3..809414fb46 100644
--- a/epan/dissectors/packet-h245.c
+++ b/epan/dissectors/packet-h245.c
@@ -20832,7 +20832,7 @@ void proto_reg_handoff_h245(void) {
dissector_add_for_decode_as_with_preference("tcp.port", h245_handle);
- dissector_add_for_decode_as("udp.port", MultimediaSystemControlMessage_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", MultimediaSystemControlMessage_handle);
}
static void init_h245_packet_info(h245_packet_info *pi)
diff --git a/epan/dissectors/packet-h248.c b/epan/dissectors/packet-h248.c
index f9b876a021..e35e98f9f7 100644
--- a/epan/dissectors/packet-h248.c
+++ b/epan/dissectors/packet-h248.c
@@ -1310,9 +1310,8 @@ void gcp_analyze_msg(proto_tree* gcp_tree, packet_info* pinfo, tvbuff_t* gcp_tvb
/* END Gateway Control Protocol -- Context Tracking */
+#define H248_PORT 2945
static gboolean keep_persistent_data = FALSE;
-static guint global_udp_port = 2945;
-#define H248_TCP_PORT 2945
static gboolean h248_desegment = TRUE;
@@ -6087,7 +6086,7 @@ dissect_h248_SigParameterV1(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
/*--- End of included file: packet-h248-fn.c ---*/
-#line 2165 "./asn1/h248/packet-h248-template.c"
+#line 2164 "./asn1/h248/packet-h248-template.c"
static int dissect_h248_tpkt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_) {
dissect_tpkt_encap(tvb, pinfo, tree, h248_desegment, h248_handle);
@@ -7512,7 +7511,7 @@ void proto_register_h248(void) {
NULL, HFILL }},
/*--- End of included file: packet-h248-hfarr.c ---*/
-#line 2333 "./asn1/h248/packet-h248-template.c"
+#line 2332 "./asn1/h248/packet-h248-template.c"
GCP_HF_ARR_ELEMS("h248",h248_arrel)
@@ -7678,7 +7677,7 @@ void proto_register_h248(void) {
&ett_h248_SigParameterV1,
/*--- End of included file: packet-h248-ettarr.c ---*/
-#line 2351 "./asn1/h248/packet-h248-template.c"
+#line 2350 "./asn1/h248/packet-h248-template.c"
};
static ei_register_info ei[] = {
@@ -7704,16 +7703,11 @@ void proto_register_h248(void) {
subdissector_table = register_dissector_table("h248.magic_num", "H248 Magic Num", proto_h248, FT_UINT32, BASE_HEX);
- h248_module = prefs_register_protocol(proto_h248, proto_reg_handoff_h248);
+ h248_module = prefs_register_protocol(proto_h248, NULL);
prefs_register_bool_preference(h248_module, "ctx_info",
"Track Context",
"Maintain relationships between transactions and contexts and display an extra tree showing context data",
&keep_persistent_data);
- prefs_register_uint_preference(h248_module, "udp_port",
- "UDP port",
- "Port to be decoded as h248",
- 10,
- &global_udp_port);
prefs_register_bool_preference(h248_module, "desegment",
"Desegment H.248 over TCP",
"Desegment H.248 messages that span more TCP segments",
@@ -7730,24 +7724,10 @@ void proto_register_h248(void) {
/*--- proto_reg_handoff_h248 -------------------------------------------*/
void proto_reg_handoff_h248(void) {
- static gboolean initialized = FALSE;
- static guint32 udp_port;
-
- if (!initialized) {
- dissector_add_uint("mtp3.service_indicator", MTP_SI_GCP, h248_handle);
- h248_term_handle = find_dissector_add_dependency("h248term", proto_h248);
- dissector_add_uint_with_preference("tcp.port", H248_TCP_PORT, h248_tpkt_handle);
- initialized = TRUE;
- } else {
- if (udp_port != 0)
- dissector_delete_uint("udp.port", udp_port, h248_handle);
- }
-
- udp_port = global_udp_port;
-
- if (udp_port != 0) {
- dissector_add_uint("udp.port", udp_port, h248_handle);
- }
+ dissector_add_uint("mtp3.service_indicator", MTP_SI_GCP, h248_handle);
+ h248_term_handle = find_dissector_add_dependency("h248term", proto_h248);
+ dissector_add_uint_with_preference("tcp.port", H248_PORT, h248_tpkt_handle);
+ dissector_add_uint_with_preference("udp.port", H248_PORT, h248_handle);
ss7pc_address_type = address_type_get_by_name("AT_SS7PC");
exported_pdu_tap = find_tap_id(EXPORT_PDU_TAP_NAME_LAYER_7);
diff --git a/epan/dissectors/packet-h283.c b/epan/dissectors/packet-h283.c
index c85358be32..0ae8f5375f 100644
--- a/epan/dissectors/packet-h283.c
+++ b/epan/dissectors/packet-h283.c
@@ -764,7 +764,7 @@ void proto_register_h283(void) {
/*--- proto_reg_handoff_h283 -------------------------------------------*/
void proto_reg_handoff_h283(void)
{
- dissector_add_for_decode_as("udp.port", h283_udp_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", h283_udp_handle);
rdc_pdu_handle = find_dissector_add_dependency("rdc", proto_h283);
rdc_device_list_handle = find_dissector_add_dependency("rdc.device_list", proto_h283);
diff --git a/epan/dissectors/packet-h501.c b/epan/dissectors/packet-h501.c
index 61b525de72..b824cd9a61 100644
--- a/epan/dissectors/packet-h501.c
+++ b/epan/dissectors/packet-h501.c
@@ -418,8 +418,7 @@ static gint ett_h501_TerminationCause = -1;
static dissector_handle_t h501_pdu_handle;
/* Preferences */
-#define H501_TCP_PORT 2099
-static guint h501_udp_port = 2099;
+#define H501_PORT 2099
static gboolean h501_desegment_tcp = TRUE;
void proto_reg_handoff_h501(void);
@@ -2514,7 +2513,7 @@ static int dissect_Message_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_
/*--- End of included file: packet-h501-fn.c ---*/
-#line 61 "./asn1/h501/packet-h501-template.c"
+#line 60 "./asn1/h501/packet-h501-template.c"
static int
dissect_h501_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
@@ -3555,7 +3554,7 @@ void proto_register_h501(void) {
"INTEGER_1_65535", HFILL }},
/*--- End of included file: packet-h501-hfarr.c ---*/
-#line 97 "./asn1/h501/packet-h501-template.c"
+#line 96 "./asn1/h501/packet-h501-template.c"
};
/* List of subtrees */
@@ -3665,7 +3664,7 @@ void proto_register_h501(void) {
&ett_h501_TerminationCause,
/*--- End of included file: packet-h501-ettarr.c ---*/
-#line 103 "./asn1/h501/packet-h501-template.c"
+#line 102 "./asn1/h501/packet-h501-template.c"
};
/* Register protocol */
@@ -3677,11 +3676,7 @@ void proto_register_h501(void) {
h501_pdu_handle = register_dissector(PFNAME, dissect_h501_pdu, proto_h501);
- h501_module = prefs_register_protocol(proto_h501, proto_reg_handoff_h501);
- prefs_register_uint_preference(h501_module, "udp.port",
- "UDP port",
- "Port to be decoded as h501",
- 10, &h501_udp_port);
+ h501_module = prefs_register_protocol(proto_h501, NULL);
prefs_register_bool_preference(h501_module, "desegment",
"Desegment H.501 over TCP",
"Desegment H.501 messages that span more TCP segments",
@@ -3692,23 +3687,12 @@ void proto_register_h501(void) {
/*--- proto_reg_handoff_h501 -------------------------------------------*/
void proto_reg_handoff_h501(void)
{
- static gboolean h501_prefs_initialized = FALSE;
- static dissector_handle_t h501_udp_handle;
- static dissector_handle_t h501_tcp_handle;
- static guint saved_h501_udp_port;
-
- if (!h501_prefs_initialized) {
- h501_udp_handle = create_dissector_handle(dissect_h501_udp, proto_h501);
- h501_tcp_handle = create_dissector_handle(dissect_h501_tcp, proto_h501);
- dissector_add_uint_with_preference("tcp.port", H501_TCP_PORT, h501_tcp_handle);
- h501_prefs_initialized = TRUE;
- } else {
- dissector_delete_uint("udp.port", saved_h501_udp_port, h501_udp_handle);
- }
-
- /* Set our port number for future use */
- saved_h501_udp_port = h501_udp_port;
- dissector_add_uint("udp.port", saved_h501_udp_port, h501_udp_handle);
+ dissector_handle_t h501_udp_handle;
+ dissector_handle_t h501_tcp_handle;
+ h501_udp_handle = create_dissector_handle(dissect_h501_udp, proto_h501);
+ h501_tcp_handle = create_dissector_handle(dissect_h501_tcp, proto_h501);
+ dissector_add_uint_with_preference("tcp.port", H501_PORT, h501_tcp_handle);
+ dissector_add_uint_with_preference("udp.port", H501_PORT, h501_udp_handle);
}
diff --git a/epan/dissectors/packet-hartip.c b/epan/dissectors/packet-hartip.c
index 9968f2b588..84212fbe46 100644
--- a/epan/dissectors/packet-hartip.c
+++ b/epan/dissectors/packet-hartip.c
@@ -2210,7 +2210,7 @@ proto_reg_handoff_hartip(void)
{
hartip_tcp_handle = create_dissector_handle(dissect_hartip_tcp, proto_hartip);
hartip_udp_handle = create_dissector_handle(dissect_hartip_udp, proto_hartip);
- dissector_add_uint("udp.port", HARTIP_PORT, hartip_udp_handle);
+ dissector_add_uint_with_preference("udp.port", HARTIP_PORT, hartip_udp_handle);
dissector_add_uint_with_preference("tcp.port", HARTIP_PORT, hartip_tcp_handle);
stats_tree_register("hart_ip", "hart_ip", "HART-IP", 0,
diff --git a/epan/dissectors/packet-hcrt.c b/epan/dissectors/packet-hcrt.c
index 1698241ebd..5f71b00a3a 100644
--- a/epan/dissectors/packet-hcrt.c
+++ b/epan/dissectors/packet-hcrt.c
@@ -32,8 +32,6 @@
static int proto_hcrt = -1;
-static range_t *hcrt_port_range_default;
-
#define HCRT_UDP_PORTS_DEFAULT "47000"
static gint ethertype_pref = 0xf052;
@@ -462,26 +460,14 @@ void proto_register_hcrt(void)
&ett_hcrt_body,
};
- proto_hcrt = proto_register_protocol (
- "Hotline Command-Response Transaction protocol", /* name */
- "HCrt", /* short name */
- "hcrt" /* abbrev */
- );
+ proto_hcrt = proto_register_protocol ("Hotline Command-Response Transaction protocol", "HCrt", "hcrt");
proto_register_field_array(proto_hcrt, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
expert_hcrt = expert_register_protocol(proto_hcrt);
expert_register_field_array(expert_hcrt, ei, array_length(ei));
- /* Set default UDP ports */
- range_convert_str(&hcrt_port_range_default, HCRT_UDP_PORTS_DEFAULT, MAX_UDP_PORT);
-
hcrt_module = prefs_register_protocol(proto_hcrt, proto_reg_handoff_hcrt);
- prefs_register_range_preference(hcrt_module,
- "dissector_udp_port",
- "UDP port",
- "The UDP port used in L3 communications (default " HCRT_UDP_PORTS_DEFAULT ")",
- &hcrt_port_range_default, MAX_UDP_PORT);
prefs_register_uint_preference(hcrt_module,
"dissector_ethertype",
"Ethernet type",
@@ -493,7 +479,6 @@ void proto_reg_handoff_hcrt(void)
{
static dissector_handle_t hcrt_handle;
static gboolean hcrt_prefs_initialized = FALSE;
- static range_t* hcrt_port_range;
static gint hcrt_ethertype;
if (!hcrt_prefs_initialized) {
@@ -501,18 +486,15 @@ void proto_reg_handoff_hcrt(void)
/* Also register as a dissector that can be selected by a TCP port number via
"decode as" */
dissector_add_for_decode_as_with_preference("tcp.port", hcrt_handle);
+ dissector_add_uint_range_with_preference("udp.port", HCRT_UDP_PORTS_DEFAULT, hcrt_handle);
hcrt_prefs_initialized = TRUE;
} else {
dissector_delete_uint("ethertype", hcrt_ethertype, hcrt_handle);
- dissector_delete_uint_range("udp.port", hcrt_port_range, hcrt_handle);
- g_free(hcrt_port_range);
}
- hcrt_port_range = range_copy(hcrt_port_range_default);
hcrt_ethertype = ethertype_pref;
dissector_add_uint("ethertype", hcrt_ethertype, hcrt_handle);
- dissector_add_uint_range("udp.port", hcrt_port_range, hcrt_handle);
}
/*
diff --git a/epan/dissectors/packet-hip.c b/epan/dissectors/packet-hip.c
index 463e73507f..0c318fbe0c 100644
--- a/epan/dissectors/packet-hip.c
+++ b/epan/dissectors/packet-hip.c
@@ -43,6 +43,8 @@
void proto_register_hip(void);
void proto_reg_handoff_hip(void);
+#define HIP_UDP_PORT 10500
+
#define HI_ALG_DSA 3
#define HI_ALG_RSA 5
@@ -1607,7 +1609,7 @@ proto_reg_handoff_hip(void)
dissector_add_uint("ip.proto", IP_PROTO_HIP, hip_handle);
hip_handle2 = create_dissector_handle(dissect_hip_in_udp, proto_hip);
- dissector_add_uint("udp.port", 10500, hip_handle2);
+ dissector_add_uint_with_preference("udp.port", HIP_UDP_PORT, hip_handle2);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
diff --git a/epan/dissectors/packet-hiqnet.c b/epan/dissectors/packet-hiqnet.c
index 374442066d..382b26baee 100644
--- a/epan/dissectors/packet-hiqnet.c
+++ b/epan/dissectors/packet-hiqnet.c
@@ -1818,7 +1818,7 @@ proto_reg_handoff_hiqnet(void)
hiqnet_udp_handle = create_dissector_handle(dissect_hiqnet_udp, proto_hiqnet);
hiqnet_tcp_handle = create_dissector_handle(dissect_hiqnet_tcp, proto_hiqnet);
- dissector_add_uint("udp.port", HIQNET_PORT, hiqnet_udp_handle);
+ dissector_add_uint_with_preference("udp.port", HIQNET_PORT, hiqnet_udp_handle);
dissector_add_uint_with_preference("tcp.port", HIQNET_PORT, hiqnet_tcp_handle);
}
diff --git a/epan/dissectors/packet-hp-erm.c b/epan/dissectors/packet-hp-erm.c
index 73255703b0..2bcba313ee 100644
--- a/epan/dissectors/packet-hp-erm.c
+++ b/epan/dissectors/packet-hp-erm.c
@@ -46,7 +46,6 @@
#include "config.h"
#include <epan/packet.h>
-#include <epan/prefs.h>
void proto_register_hp_erm(void);
void proto_reg_handoff_hp_erm(void);
@@ -54,8 +53,6 @@ void proto_reg_handoff_hp_erm(void);
#define PROTO_SHORT_NAME "HP_ERM"
#define PROTO_LONG_NAME "HP encapsulated remote mirroring"
-static guint global_hp_erm_udp_port = 0;
-
static int proto_hp_erm = -1;
static gint ett_hp_erm = -1;
static int hf_hp_erm_unknown1 = -1;
@@ -149,17 +146,8 @@ proto_register_hp_erm(void)
&ett_hp_erm,
};
- module_t *hp_erm_module;
-
proto_hp_erm = proto_register_protocol(PROTO_LONG_NAME, PROTO_SHORT_NAME, "hp_erm");
- hp_erm_module = prefs_register_protocol(proto_hp_erm, proto_reg_handoff_hp_erm);
- prefs_register_uint_preference(hp_erm_module, "udp.port", "HP_ERM UDP Port",
- "Set the UDP port (source or destination) used for HP"
- " encapsulated remote mirroring frames;\n"
- "0 (default) means that the HP_ERM dissector is not active",
- 10, &global_hp_erm_udp_port);
-
proto_register_field_array(proto_hp_erm, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
}
@@ -167,23 +155,11 @@ proto_register_hp_erm(void)
void
proto_reg_handoff_hp_erm(void)
{
- static dissector_handle_t hp_erm_handle;
- static guint hp_erm_udp_port;
- static gboolean initialized = FALSE;
-
- if (!initialized) {
- eth_withoutfcs_handle = find_dissector_add_dependency("eth_withoutfcs", proto_hp_erm);
- hp_erm_handle = create_dissector_handle(dissect_hp_erm, proto_hp_erm);
- initialized = TRUE;
- } else {
- if (hp_erm_udp_port != 0)
- dissector_delete_uint("udp.port", hp_erm_udp_port, hp_erm_handle);
- }
-
- hp_erm_udp_port = global_hp_erm_udp_port;
-
- if (hp_erm_udp_port != 0)
- dissector_add_uint("udp.port", hp_erm_udp_port, hp_erm_handle);
+ dissector_handle_t hp_erm_handle;
+
+ eth_withoutfcs_handle = find_dissector_add_dependency("eth_withoutfcs", proto_hp_erm);
+ hp_erm_handle = create_dissector_handle(dissect_hp_erm, proto_hp_erm);
+ dissector_add_for_decode_as_with_preference("udp.port", hp_erm_handle);
}
/*
* Editor modelines
diff --git a/epan/dissectors/packet-hsrp.c b/epan/dissectors/packet-hsrp.c
index c796f35853..3426681810 100644
--- a/epan/dissectors/packet-hsrp.c
+++ b/epan/dissectors/packet-hsrp.c
@@ -200,6 +200,7 @@ static expert_field ei_hsrp_unknown_tlv = EI_INIT;
#define UDP_PORT_HSRP 1985
#define UDP_PORT_HSRP2_V6 2029
+#define UDP_PORT_HSRP_RANGE "1985,2009"
#define HSRP_DST_IP_ADDR 0xE0000002
#define HSRP2_DST_IP_ADDR 0xE0000066
@@ -835,14 +836,12 @@ void proto_register_hsrp(void)
{ &ei_hsrp_unknown_tlv, { "hsrp.unknown_tlv", PI_UNDECODED, PI_WARN, "Unknown TLV sequence (HSRPv1)", EXPFILL }},
};
- proto_hsrp = proto_register_protocol("Cisco Hot Standby Router Protocol",
- "HSRP", "hsrp");
+ proto_hsrp = proto_register_protocol("Cisco Hot Standby Router Protocol", "HSRP", "hsrp");
+
proto_register_field_array(proto_hsrp, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
expert_hsrp = expert_register_protocol(proto_hsrp);
expert_register_field_array(expert_hsrp, ei, array_length(ei));
-
- return;
}
void
@@ -851,8 +850,7 @@ proto_reg_handoff_hsrp(void)
dissector_handle_t hsrp_handle;
hsrp_handle = create_dissector_handle(dissect_hsrp, proto_hsrp);
- dissector_add_uint("udp.port", UDP_PORT_HSRP, hsrp_handle);
- dissector_add_uint("udp.port", UDP_PORT_HSRP2_V6, hsrp_handle);
+ dissector_add_uint_range_with_preference("udp.port", UDP_PORT_HSRP_RANGE, hsrp_handle);
}
/*
diff --git a/epan/dissectors/packet-http.c b/epan/dissectors/packet-http.c
index 2c7f724817..507bd93cbf 100644
--- a/epan/dissectors/packet-http.c
+++ b/epan/dissectors/packet-http.c
@@ -3750,7 +3750,7 @@ proto_reg_handoff_http(void)
* request or reply? I.e., should there be an SSDP dissector?
*/
ssdp_handle = create_dissector_handle(dissect_ssdp, proto_ssdp);
- dissector_add_uint("udp.port", UDP_PORT_SSDP, ssdp_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_SSDP, ssdp_handle);
ntlmssp_handle = find_dissector_add_dependency("ntlmssp", proto_http);
gssapi_handle = find_dissector_add_dependency("gssapi", proto_http);
diff --git a/epan/dissectors/packet-iapp.c b/epan/dissectors/packet-iapp.c
index 160d3497fd..c1484a7612 100644
--- a/epan/dissectors/packet-iapp.c
+++ b/epan/dissectors/packet-iapp.c
@@ -480,7 +480,7 @@ proto_reg_handoff_iapp(void)
dissector_handle_t iapp_handle;
iapp_handle = create_dissector_handle(dissect_iapp, proto_iapp);
- dissector_add_uint("udp.port", UDP_PORT_IAPP, iapp_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_IAPP, iapp_handle);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
diff --git a/epan/dissectors/packet-iax2.c b/epan/dissectors/packet-iax2.c
index f01a98df36..da9d402dd2 100644
--- a/epan/dissectors/packet-iax2.c
+++ b/epan/dissectors/packet-iax2.c
@@ -3216,7 +3216,7 @@ proto_reg_handoff_iax2(void)
{
dissector_handle_t v110_handle;
- dissector_add_uint("udp.port", IAX2_PORT, find_dissector("iax2"));
+ dissector_add_uint_with_preference("udp.port", IAX2_PORT, find_dissector("iax2"));
v110_handle = find_dissector("v110");
if (v110_handle)
dissector_add_uint("iax2.dataformat", AST_DATAFORMAT_V110, v110_handle);
diff --git a/epan/dissectors/packet-icep.c b/epan/dissectors/packet-icep.c
index fe9344f1b7..5b525d3f39 100644
--- a/epan/dissectors/packet-icep.c
+++ b/epan/dissectors/packet-icep.c
@@ -124,7 +124,6 @@ static expert_field ei_icep_context_too_long = EI_INIT;
static guint icep_max_batch_requests = 64;
static guint icep_max_ice_string_len = 512;
static guint icep_max_ice_context_pairs = 64;
-static guint icep_udp_port = 0;
static const value_string icep_msgtype_vals[] = {
@@ -1294,12 +1293,6 @@ void proto_register_icep(void)
expert_register_field_array(expert_icep, ei, array_length(ei));
icep_module = prefs_register_protocol(proto_icep, NULL);
- prefs_register_uint_preference(icep_module, "udp.port",
- "ICEP UDP Port",
- "ICEP UDP port",
- 10,
- &icep_udp_port);
-
prefs_register_uint_preference(icep_module, "max_batch_requests",
"Maximum batch requests",
"Maximum number of batch requests allowed",
@@ -1319,34 +1312,19 @@ void proto_register_icep(void)
void proto_reg_handoff_icep(void)
{
- static gboolean icep_prefs_initialized = FALSE;
- static dissector_handle_t icep_tcp_handle, icep_udp_handle;
- static guint old_icep_udp_port = 0;
+ dissector_handle_t icep_tcp_handle, icep_udp_handle;
/* Register as a heuristic TCP/UDP dissector */
- if (icep_prefs_initialized == FALSE) {
- icep_tcp_handle = create_dissector_handle(dissect_icep_tcp, proto_icep);
- icep_udp_handle = create_dissector_handle(dissect_icep_udp, proto_icep);
-
- heur_dissector_add("tcp", dissect_icep_tcp, "ICEP over TCP", "icep_tcp", proto_icep, HEURISTIC_ENABLE);
- heur_dissector_add("udp", dissect_icep_udp, "ICEP over UDP", "icep_udp", proto_icep, HEURISTIC_ENABLE);
+ icep_tcp_handle = create_dissector_handle(dissect_icep_tcp, proto_icep);
+ icep_udp_handle = create_dissector_handle(dissect_icep_udp, proto_icep);
- /* Register TCP port for dissection */
- dissector_add_for_decode_as_with_preference("tcp.port", icep_tcp_handle);
-
- icep_prefs_initialized = TRUE;
- }
+ heur_dissector_add("tcp", dissect_icep_tcp, "ICEP over TCP", "icep_tcp", proto_icep, HEURISTIC_ENABLE);
+ heur_dissector_add("udp", dissect_icep_udp, "ICEP over UDP", "icep_udp", proto_icep, HEURISTIC_ENABLE);
+ /* Register TCP port for dissection */
+ dissector_add_for_decode_as_with_preference("tcp.port", icep_tcp_handle);
/* Register UDP port for dissection */
- if(old_icep_udp_port != 0 && old_icep_udp_port != icep_udp_port){
- dissector_delete_uint("udp.port", old_icep_udp_port, icep_udp_handle);
- }
-
- if(icep_udp_port != 0 && old_icep_udp_port != icep_udp_port) {
- dissector_add_uint("udp.port", icep_udp_port, icep_udp_handle);
- }
-
- old_icep_udp_port = icep_udp_port;
+ dissector_add_for_decode_as_with_preference("udp.port", icep_udp_handle);
}
/*
diff --git a/epan/dissectors/packet-icp.c b/epan/dissectors/packet-icp.c
index 12c973949f..56f4920604 100644
--- a/epan/dissectors/packet-icp.c
+++ b/epan/dissectors/packet-icp.c
@@ -258,7 +258,7 @@ proto_reg_handoff_icp(void)
dissector_handle_t icp_handle;
icp_handle = create_dissector_handle(dissect_icp, proto_icp);
- dissector_add_uint("udp.port", UDP_PORT_ICP, icp_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_ICP, icp_handle);
}
/*
diff --git a/epan/dissectors/packet-icq.c b/epan/dissectors/packet-icq.c
index a7a1124750..5ca6810250 100644
--- a/epan/dissectors/packet-icq.c
+++ b/epan/dissectors/packet-icq.c
@@ -1398,7 +1398,7 @@ proto_reg_handoff_icq(void)
dissector_handle_t icq_handle;
icq_handle = create_dissector_handle(dissect_icq, proto_icq);
- dissector_add_uint("udp.port", UDP_PORT_ICQ, icq_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_ICQ, icq_handle);
}
/*
diff --git a/epan/dissectors/packet-infiniband.c b/epan/dissectors/packet-infiniband.c
index 3922b3e1e3..5daa7f1c75 100644
--- a/epan/dissectors/packet-infiniband.c
+++ b/epan/dissectors/packet-infiniband.c
@@ -7480,7 +7480,8 @@ void proto_reg_handoff_infiniband(void)
dissector_delete_uint("udp.port", prev_rroce_udp_port, rroce_handle);
}
/*we are saving the previous value of rroce udp port so we will be able to remove the dissector
- * the next time user pref is updated and we get called back to proto_reg_handoff_infiniband.*/
+ * the next time user pref is updated and we get called back to proto_reg_handoff_infiniband.
+ "Auto" preference not used because port isn't for infiniband protocol itself */
prev_rroce_udp_port = pref_rroce_udp_port;
dissector_add_uint("udp.port", pref_rroce_udp_port, rroce_handle);
diff --git a/epan/dissectors/packet-interlink.c b/epan/dissectors/packet-interlink.c
index 6b7a36800f..48e507c724 100644
--- a/epan/dissectors/packet-interlink.c
+++ b/epan/dissectors/packet-interlink.c
@@ -230,7 +230,7 @@ proto_reg_handoff_interlink(void)
interlink_handle = find_dissector("interlink");
/* Allow "Decode As" with any UDP packet. */
- dissector_add_for_decode_as("udp.port", interlink_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", interlink_handle);
/* Add our heuristic packet finder. */
heur_dissector_add("udp", dissect_interlink_heur, "Interlink over UDP", "interlink_udp", proto_interlink, HEURISTIC_ENABLE);
diff --git a/epan/dissectors/packet-ip.c b/epan/dissectors/packet-ip.c
index 054ffcc6e2..7002ab7ecc 100644
--- a/epan/dissectors/packet-ip.c
+++ b/epan/dissectors/packet-ip.c
@@ -3160,7 +3160,7 @@ proto_reg_handoff_ip(void)
dissector_add_uint("pwach.channel_type", 0x21, ip_handle); /* IPv4, RFC4385 clause 6. */
dissector_add_uint("sflow_245.header_protocol", SFLOW_245_HEADER_IPv4, ip_handle);
dissector_add_uint("l2tp.pw_type", L2TPv3_PROTOCOL_IP, ip_handle);
- dissector_add_for_decode_as("udp.port", ip_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", ip_handle);
dissector_add_for_decode_as("pcli.payload", ip_handle);
dissector_add_uint("wtap_encap", WTAP_ENCAP_RAW_IP4, ip_handle);
dissector_add_uint("enc", BSD_AF_INET, ip_handle);
diff --git a/epan/dissectors/packet-ipsec-udp.c b/epan/dissectors/packet-ipsec-udp.c
index 0463066b9b..6863d656bb 100644
--- a/epan/dissectors/packet-ipsec-udp.c
+++ b/epan/dissectors/packet-ipsec-udp.c
@@ -29,6 +29,8 @@
void proto_register_udpencap(void);
void proto_reg_handoff_udpencap(void);
+#define UDPENCAP_PORT 4500
+
static int proto_udpencap = -1;
static int hf_nat_keepalive = -1;
@@ -93,8 +95,7 @@ proto_register_udpencap(void)
&ett_udpencap,
};
- proto_udpencap = proto_register_protocol(
- "UDP Encapsulation of IPsec Packets", "UDPENCAP", "udpencap");
+ proto_udpencap = proto_register_protocol("UDP Encapsulation of IPsec Packets", "UDPENCAP", "udpencap");
proto_register_field_array(proto_udpencap, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
}
@@ -108,7 +109,7 @@ proto_reg_handoff_udpencap(void)
isakmp_handle = find_dissector_add_dependency("isakmp", proto_udpencap);
udpencap_handle = create_dissector_handle(dissect_udpencap, proto_udpencap);
- dissector_add_uint("udp.port", 4500, udpencap_handle);
+ dissector_add_uint_with_preference("udp.port", UDPENCAP_PORT, udpencap_handle);
}
/*
diff --git a/epan/dissectors/packet-ipv6.c b/epan/dissectors/packet-ipv6.c
index 55c2df8600..4cd90cd719 100644
--- a/epan/dissectors/packet-ipv6.c
+++ b/epan/dissectors/packet-ipv6.c
@@ -3586,7 +3586,7 @@ proto_reg_handoff_ipv6(void)
dissector_add_uint("enc", BSD_AF_INET6_BSD, ipv6_handle);
dissector_add_uint("vxlan.next_proto", VXLAN_IPV6, ipv6_handle);
- dissector_add_for_decode_as("udp.port", ipv6_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", ipv6_handle);
ipv6_hopopts_handle = create_dissector_handle(dissect_hopopts, proto_ipv6_hopopts);
dissector_add_uint("ip.proto", IP_PROTO_HOPOPTS, ipv6_hopopts_handle);
diff --git a/epan/dissectors/packet-ipvs-syncd.c b/epan/dissectors/packet-ipvs-syncd.c
index a66a72fac8..521283f010 100644
--- a/epan/dissectors/packet-ipvs-syncd.c
+++ b/epan/dissectors/packet-ipvs-syncd.c
@@ -60,7 +60,7 @@ static int ett_conn = -1;
static int ett_flags = -1;
#define IPVS_SYNCD_MC_GROUP "224.0.0.18"
-#define IPVS_SYNCD_PORT 8848
+#define IPVS_SYNCD_PORT 8848 /* Not IANA registered */
static const value_string proto_strings[] = {
{0x06, "TCP"},
@@ -322,8 +322,7 @@ proto_register_ipvs_syncd(void)
&ett_flags,
};
- proto_ipvs_syncd = proto_register_protocol("IP Virtual Services Sync Daemon",
- "IPVS", "ipvs");
+ proto_ipvs_syncd = proto_register_protocol("IP Virtual Services Sync Daemon", "IPVS", "ipvs");
proto_register_field_array(proto_ipvs_syncd, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
}
@@ -334,7 +333,7 @@ proto_reg_handoff_ipvs_syncd(void)
dissector_handle_t ipvs_syncd_handle;
ipvs_syncd_handle = create_dissector_handle(dissect_ipvs_syncd, proto_ipvs_syncd);
- dissector_add_uint("udp.port", IPVS_SYNCD_PORT, ipvs_syncd_handle);
+ dissector_add_uint_with_preference("udp.port", IPVS_SYNCD_PORT, ipvs_syncd_handle);
}
/*
diff --git a/epan/dissectors/packet-ipx.c b/epan/dissectors/packet-ipx.c
index acdbf29a6e..b5419394ad 100644
--- a/epan/dissectors/packet-ipx.c
+++ b/epan/dissectors/packet-ipx.c
@@ -1594,7 +1594,7 @@ proto_reg_handoff_ipx(void)
dissector_handle_t serialization_handle, ipxmsg_handle;
ipx_handle = find_dissector("ipx");
- dissector_add_uint("udp.port", UDP_PORT_IPX, ipx_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_IPX, ipx_handle);
dissector_add_uint("ethertype", ETHERTYPE_IPX, ipx_handle);
dissector_add_uint("chdlc.protocol", ETHERTYPE_IPX, ipx_handle);
dissector_add_uint("ppp.protocol", PPP_IPX, ipx_handle);
diff --git a/epan/dissectors/packet-isakmp.c b/epan/dissectors/packet-isakmp.c
index 1fb812d20c..d644ddf8c3 100644
--- a/epan/dissectors/packet-isakmp.c
+++ b/epan/dissectors/packet-isakmp.c
@@ -7150,7 +7150,7 @@ proto_reg_handoff_isakmp(void)
isakmp_handle = find_dissector("isakmp");
eap_handle = find_dissector_add_dependency("eap", proto_isakmp);
- dissector_add_uint("udp.port", UDP_PORT_ISAKMP, isakmp_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_ISAKMP, isakmp_handle);
dissector_add_uint_with_preference("tcp.port", TCP_PORT_ISAKMP, isakmp_handle);
}
diff --git a/epan/dissectors/packet-isns.c b/epan/dissectors/packet-isns.c
index 78d852e42d..1de7c1c0b9 100644
--- a/epan/dissectors/packet-isns.c
+++ b/epan/dissectors/packet-isns.c
@@ -1728,7 +1728,7 @@ proto_reg_handoff_isns(void)
isns_udp_handle = create_dissector_handle(dissect_isns_udp,proto_isns);
dissector_add_uint_with_preference("tcp.port",ISNS_TCP_PORT,isns_tcp_handle);
- dissector_add_uint("udp.port",ISNS_UDP_PORT,isns_udp_handle);
+ dissector_add_uint_with_preference("udp.port",ISNS_UDP_PORT,isns_udp_handle);
}
/*
diff --git a/epan/dissectors/packet-jmirror.c b/epan/dissectors/packet-jmirror.c
index f5e3b78f64..cc2ffbb809 100644
--- a/epan/dissectors/packet-jmirror.c
+++ b/epan/dissectors/packet-jmirror.c
@@ -26,7 +26,6 @@
#include "config.h"
#include <epan/packet.h>
-#include <epan/prefs.h>
void proto_register_jmirror(void);
void proto_reg_handoff_jmirror(void);
@@ -34,7 +33,7 @@ void proto_reg_handoff_jmirror(void);
#define MIRROR_HDR_SZ 8
#define MIRROR_ID_SZ 4
#define SESSION_ID_SZ 4
-#define DEF_JMIRROR_UDP_PORT 30030 /* a product of primes (1*2*3*5*7*11*13) :-) */
+#define DEF_JMIRROR_UDP_PORT 30030 /* a product of primes (1*2*3*5*7*11*13) :-) Not IANA registered */
/*
* See www.juniper.net JUNOSe Packet Mirroring documentation
@@ -51,8 +50,6 @@ static dissector_handle_t ipv4_handle;
static dissector_handle_t ipv6_handle;
static dissector_handle_t hdlc_handle;
-static guint global_jmirror_udp_port = DEF_JMIRROR_UDP_PORT;
-
/* Routine to return the dissector handle based on heuristic packet inspection */
static dissector_handle_t
get_heuristic_handle(tvbuff_t *tvb)
@@ -158,8 +155,6 @@ dissect_jmirror(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
void
proto_register_jmirror(void)
{
- module_t *jmirror_module = NULL;
-
/* Used by the Expression dialog and filter box */
static hf_register_info jmirror_hf[] = {
{ &hf_jmirror_mid,
@@ -178,14 +173,6 @@ proto_register_jmirror(void)
/* Register the Jmirror protocol with Wireshark */
proto_jmirror = proto_register_protocol("Juniper Packet Mirror", "Jmirror", "jmirror");
- /* Register the Jmirror preferences with Wireshark */
- jmirror_module = prefs_register_protocol(proto_jmirror, proto_reg_handoff_jmirror);
-
- /* Allow the user to set the UDP port for the decode under the Edit -> Preferences menu */
- prefs_register_uint_preference(jmirror_module, "udp.port", "JMirror UDP Port",
- "Set the port for JMirror Port (if other than the default of 30030)",
- 10, &global_jmirror_udp_port);
-
/* Register the Jmirror subfields for filters */
proto_register_field_array(proto_jmirror, jmirror_hf, array_length(jmirror_hf));
proto_register_subtree_array(jmirror_ett, array_length(jmirror_ett));
@@ -195,34 +182,21 @@ proto_register_jmirror(void)
void
proto_reg_handoff_jmirror(void)
{
- static int jmirror_inited = FALSE;
- static guint jmirror_udp_port;
- static dissector_handle_t jmirror_handle;
-
- if ( !jmirror_inited )
- {
- /* register as heuristic dissector for UDP */
- /* heur_dissector_add("udp", dissect_jmirror, proto_jmirror); */
-
- /* Create a dissector handle for the Jmirror protocol */
- jmirror_handle = create_dissector_handle(dissect_jmirror, proto_jmirror);
+ dissector_handle_t jmirror_handle;
- /* Create pointer to ipv4, ipv6, ppp and data dissectors */
- ipv4_handle = find_dissector("ip");
- ipv6_handle = find_dissector("ipv6");
- hdlc_handle = find_dissector("pw_hdlc_nocw_hdlc_ppp");
+ /* register as heuristic dissector for UDP */
+ /* heur_dissector_add("udp", dissect_jmirror, proto_jmirror); */
- /* Set the init flag */
- jmirror_inited = TRUE;
- } else {
- /* Unregister from the old UDP port */
- dissector_delete_uint("udp.port", jmirror_udp_port, jmirror_handle);
- }
+ /* Create a dissector handle for the Jmirror protocol */
+ jmirror_handle = create_dissector_handle(dissect_jmirror, proto_jmirror);
- jmirror_udp_port = global_jmirror_udp_port;
+ /* Create pointer to ipv4, ipv6, ppp and data dissectors */
+ ipv4_handle = find_dissector("ip");
+ ipv6_handle = find_dissector("ipv6");
+ hdlc_handle = find_dissector("pw_hdlc_nocw_hdlc_ppp");
/* Register as a normal IP dissector with default UDP port 30030 */
- dissector_add_uint("udp.port", jmirror_udp_port, jmirror_handle);
+ dissector_add_uint_with_preference("udp.port", DEF_JMIRROR_UDP_PORT, jmirror_handle);
}
/*
diff --git a/epan/dissectors/packet-juniper.c b/epan/dissectors/packet-juniper.c
index d03379dfdc..45830f7315 100644
--- a/epan/dissectors/packet-juniper.c
+++ b/epan/dissectors/packet-juniper.c
@@ -1600,7 +1600,7 @@ proto_reg_handoff_juniper(void)
dissector_add_uint("wtap_encap", WTAP_ENCAP_JUNIPER_VP, juniper_vp_handle);
dissector_add_uint("wtap_encap", WTAP_ENCAP_JUNIPER_SVCS, juniper_svcs_handle);
dissector_add_uint("wtap_encap", WTAP_ENCAP_JUNIPER_VN, juniper_vn_handle);
- dissector_add_for_decode_as("udp.port", juniper_vn_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", juniper_vn_handle);
}
diff --git a/epan/dissectors/packet-kdp.c b/epan/dissectors/packet-kdp.c
index e676731acc..f964286584 100644
--- a/epan/dissectors/packet-kdp.c
+++ b/epan/dissectors/packet-kdp.c
@@ -29,7 +29,7 @@
void proto_register_kdp(void);
void proto_reg_handoff_kdp(void);
-#define KDP_PORT 19948
+#define KDP_PORT 19948 /* Not IANA registered */
#define BUFFER_SIZE 80
static int proto_kdp = -1;
static gint ett_kdp = -1;
@@ -406,7 +406,7 @@ void
proto_reg_handoff_kdp(void) {
dissector_handle_t kdp_handle;
kdp_handle = create_dissector_handle(dissect_kdp, proto_kdp);
- dissector_add_uint("udp.port", KDP_PORT, kdp_handle);
+ dissector_add_uint_with_preference("udp.port", KDP_PORT, kdp_handle);
}
/*
diff --git a/epan/dissectors/packet-kerberos.c b/epan/dissectors/packet-kerberos.c
index 57315e2c60..72a017661b 100644
--- a/epan/dissectors/packet-kerberos.c
+++ b/epan/dissectors/packet-kerberos.c
@@ -5433,7 +5433,7 @@ proto_reg_handoff_kerberos(void)
kerberos_handle_tcp = create_dissector_handle(dissect_kerberos_tcp,
proto_kerberos);
- dissector_add_uint("udp.port", UDP_PORT_KERBEROS, kerberos_handle_udp);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_KERBEROS, kerberos_handle_udp);
dissector_add_uint_with_preference("tcp.port", TCP_PORT_KERBEROS, kerberos_handle_tcp);
register_dcerpc_auth_subdissector(DCE_C_AUTHN_LEVEL_CONNECT,
diff --git a/epan/dissectors/packet-kerberos4.c b/epan/dissectors/packet-kerberos4.c
index 0cf44af2d8..fae0108330 100644
--- a/epan/dissectors/packet-kerberos4.c
+++ b/epan/dissectors/packet-kerberos4.c
@@ -452,7 +452,7 @@ proto_reg_handoff_krb4(void)
dissector_handle_t krb4_handle;
krb4_handle = find_dissector("krb4");
- dissector_add_uint("udp.port", UDP_PORT_KRB4, krb4_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_KRB4, krb4_handle);
}
/*
diff --git a/epan/dissectors/packet-kingfisher.c b/epan/dissectors/packet-kingfisher.c
index d6cc0f4b1c..a934871f60 100644
--- a/epan/dissectors/packet-kingfisher.c
+++ b/epan/dissectors/packet-kingfisher.c
@@ -34,12 +34,12 @@ void proto_reg_handoff_kingfisher(void);
#define SUPPORT_KINGFISHER_SERIES_2
-#define UDP_PORT_KINGFISHER 4058
#ifdef SUPPORT_KINGFISHER_SERIES_2
#define TCP_PORT_KINGFISHER_RANGE "473,4058" /* 473 not IANA registered */
-#define UDP_PORT_KINGFISHER_OLD 473
+#define UDP_PORT_KINGFISHER_RANGE "473,4058" /* 473 not IANA registered */
#else
#define TCP_PORT_KINGFISHER_RANGE "4058"
+#define UDP_PORT_KINGFISHER_RANGE "4058"
#endif
static int proto_kingfisher = -1;
@@ -382,15 +382,12 @@ proto_register_kingfisher( void )
void
proto_reg_handoff_kingfisher( void )
{
- dissector_handle_t kingfisher_handle=NULL;
+ dissector_handle_t kingfisher_handle;
kingfisher_handle = create_dissector_handle(dissect_kingfisher_heur, proto_kingfisher);
dissector_add_uint_range_with_preference("tcp.port", TCP_PORT_KINGFISHER_RANGE, kingfisher_handle);
- dissector_add_uint("udp.port", UDP_PORT_KINGFISHER, kingfisher_handle);
+ dissector_add_uint_range_with_preference("udp.port", UDP_PORT_KINGFISHER_RANGE, kingfisher_handle);
-#ifdef SUPPORT_KINGFISHER_SERIES_2
- dissector_add_uint("udp.port", UDP_PORT_KINGFISHER_OLD, kingfisher_handle);
-#endif
kingfisher_conv_handle = create_dissector_handle(dissect_kingfisher_conv, proto_kingfisher);
}
diff --git a/epan/dissectors/packet-kink.c b/epan/dissectors/packet-kink.c
index 16fc8fec82..c7cd83928a 100644
--- a/epan/dissectors/packet-kink.c
+++ b/epan/dissectors/packet-kink.c
@@ -35,7 +35,7 @@
void proto_register_kink(void);
void proto_reg_handoff_kink(void);
-#define KINK_PORT 57203
+#define KINK_PORT 57203 /* Not IANA registered */
#define KINK_ISAKMP_PAYLOAD_BASE 14
@@ -990,11 +990,11 @@ proto_register_kink(void) {
void proto_reg_handoff_kink(void) {
- dissector_handle_t kink_handle = NULL;
+ dissector_handle_t kink_handle;
kink_handle = create_dissector_handle(dissect_kink, proto_kink);
- dissector_add_uint("udp.port", KINK_PORT, kink_handle);
+ dissector_add_uint_with_preference("udp.port", KINK_PORT, kink_handle);
}
diff --git a/epan/dissectors/packet-knet.c b/epan/dissectors/packet-knet.c
index ecaa151fa2..8f50dd9c88 100644
--- a/epan/dissectors/packet-knet.c
+++ b/epan/dissectors/packet-knet.c
@@ -119,7 +119,6 @@ static dissector_handle_t knet_handle_udp;
/* Ports used by the dissectors */
static guint32 knet_sctp_port = PORT; /*!< Port used by kNet SCTP */
-static guint32 knet_udp_port = PORT; /*!< Port used by kNet UDP */
static const value_string packettypenames[] = { /*!< Messageid List */
{ PINGREQUEST, "Ping Request" },
@@ -756,10 +755,6 @@ proto_register_knet(void)
prefs_register_uint_preference(knet_module, "sctp.port", "kNet SCTP Port",
"Set the SCTP port for kNet messages",
10, &knet_sctp_port);
-
- prefs_register_uint_preference(knet_module, "udp.port", "kNet UDP Port",
- "Set the UDP port for kNet messages",
- 10, &knet_udp_port);
}
/**
@@ -772,24 +767,20 @@ proto_reg_handoff_knet(void)
static gboolean initialized = FALSE;
static guint current_sctp_port;
- static guint current_udp_port;
if(!initialized)
{
dissector_add_uint_with_preference("tcp.port", PORT, knet_handle_tcp);
+ dissector_add_uint_with_preference("udp.port", PORT, knet_handle_udp);
initialized = TRUE;
}
else
{
dissector_delete_uint("sctp.port", current_sctp_port, knet_handle_sctp);
- dissector_delete_uint("udp.port", current_udp_port, knet_handle_udp);
}
current_sctp_port = knet_sctp_port;
dissector_add_uint("sctp.port", current_sctp_port, knet_handle_sctp);
-
- current_udp_port = knet_udp_port;
- dissector_add_uint("udp.port", current_udp_port, knet_handle_udp);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
diff --git a/epan/dissectors/packet-kpasswd.c b/epan/dissectors/packet-kpasswd.c
index ef434c7ac6..a950b89182 100644
--- a/epan/dissectors/packet-kpasswd.c
+++ b/epan/dissectors/packet-kpasswd.c
@@ -328,7 +328,7 @@ proto_reg_handoff_kpasswd(void)
kpasswd_handle_udp = create_dissector_handle(dissect_kpasswd_udp, proto_kpasswd);
kpasswd_handle_tcp = create_dissector_handle(dissect_kpasswd_tcp, proto_kpasswd);
- dissector_add_uint("udp.port", UDP_PORT_KPASSWD, kpasswd_handle_udp);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_KPASSWD, kpasswd_handle_udp);
dissector_add_uint_with_preference("tcp.port", TCP_PORT_KPASSWD, kpasswd_handle_tcp);
}
diff --git a/epan/dissectors/packet-l2tp.c b/epan/dissectors/packet-l2tp.c
index 97efd2e92e..84ab019951 100644
--- a/epan/dissectors/packet-l2tp.c
+++ b/epan/dissectors/packet-l2tp.c
@@ -3771,7 +3771,7 @@ proto_reg_handoff_l2tp(void)
dissector_handle_t atm_oam_llc_handle;
l2tp_udp_handle = create_dissector_handle(dissect_l2tp_udp, proto_l2tp);
- dissector_add_uint("udp.port", UDP_PORT_L2TP, l2tp_udp_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_L2TP, l2tp_udp_handle);
l2tp_ip_handle = create_dissector_handle(dissect_l2tp_ip, proto_l2tp);
dissector_add_uint("ip.proto", IP_PROTO_L2TP, l2tp_ip_handle);
diff --git a/epan/dissectors/packet-laplink.c b/epan/dissectors/packet-laplink.c
index 717d7a0804..7e34d59427 100644
--- a/epan/dissectors/packet-laplink.c
+++ b/epan/dissectors/packet-laplink.c
@@ -239,7 +239,7 @@ proto_reg_handoff_laplink(void)
dissector_add_uint_with_preference("tcp.port", TCP_PORT_LAPLINK, laplink_tcp_handle);
laplink_udp_handle = create_dissector_handle(dissect_laplink_udp, proto_laplink);
- dissector_add_uint("udp.port", UDP_PORT_LAPLINK, laplink_udp_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_LAPLINK, laplink_udp_handle);
}
/*
diff --git a/epan/dissectors/packet-lbmr.c b/epan/dissectors/packet-lbmr.c
index 0963f6c787..de3e11d894 100644
--- a/epan/dissectors/packet-lbmr.c
+++ b/epan/dissectors/packet-lbmr.c
@@ -6690,7 +6690,7 @@ void proto_reg_handoff_lbmr(void)
if (!already_registered)
{
lbmr_dissector_handle = create_dissector_handle(dissect_lbmr, proto_lbmr);
- dissector_add_for_decode_as("udp.port", lbmr_dissector_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", lbmr_dissector_handle);
heur_dissector_add("udp", test_lbmr_packet, "LBM Topic Resolution over UDP", "lbmr_udp", proto_lbmr, HEURISTIC_ENABLE);
}
diff --git a/epan/dissectors/packet-lbtrm.c b/epan/dissectors/packet-lbtrm.c
index 16bbbf64e8..f201d8b1ec 100644
--- a/epan/dissectors/packet-lbtrm.c
+++ b/epan/dissectors/packet-lbtrm.c
@@ -1866,7 +1866,7 @@ void proto_reg_handoff_lbtrm(void)
if (!already_registered)
{
lbtrm_dissector_handle = create_dissector_handle(dissect_lbtrm, proto_lbtrm);
- dissector_add_for_decode_as("udp.port", lbtrm_dissector_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", lbtrm_dissector_handle);
heur_dissector_add("udp", test_lbtrm_packet, "LBT Reliable Multicast over UDP", "lbtrm_udp", proto_lbtrm, HEURISTIC_ENABLE);
lbtrm_tap_handle = register_tap("lbm_lbtrm");
}
diff --git a/epan/dissectors/packet-lbtru.c b/epan/dissectors/packet-lbtru.c
index 91fc8bea82..4adaa1cb90 100644
--- a/epan/dissectors/packet-lbtru.c
+++ b/epan/dissectors/packet-lbtru.c
@@ -2004,7 +2004,7 @@ void proto_reg_handoff_lbtru(void)
if (!already_registered)
{
lbtru_dissector_handle = create_dissector_handle(dissect_lbtru, proto_lbtru);
- dissector_add_for_decode_as("udp.port", lbtru_dissector_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", lbtru_dissector_handle);
heur_dissector_add("udp", test_lbtru_packet, "LBT Reliable Unicast over UDP", "lbtru_udp", proto_lbtru, HEURISTIC_ENABLE);
lbtru_tap_handle = register_tap("lbm_lbtru");
}
diff --git a/epan/dissectors/packet-ldap.c b/epan/dissectors/packet-ldap.c
index a8398c4f36..17b54f4b22 100644
--- a/epan/dissectors/packet-ldap.c
+++ b/epan/dissectors/packet-ldap.c
@@ -5795,7 +5795,7 @@ proto_reg_handoff_ldap(void)
dissector_handle_t cldap_handle;
cldap_handle = create_dissector_handle(dissect_mscldap, proto_cldap);
- dissector_add_uint("udp.port", UDP_PORT_CLDAP, cldap_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_CLDAP, cldap_handle);
gssapi_handle = find_dissector_add_dependency("gssapi", proto_ldap);
gssapi_wrap_handle = find_dissector_add_dependency("gssapi_verf", proto_ldap);
diff --git a/epan/dissectors/packet-ldp.c b/epan/dissectors/packet-ldp.c
index 721a19a7d2..544025e93f 100644
--- a/epan/dissectors/packet-ldp.c
+++ b/epan/dissectors/packet-ldp.c
@@ -345,8 +345,6 @@ static expert_field ei_ldp_tlv_fec = EI_INIT;
/* desegmentation of LDP over TCP */
static gboolean ldp_desegment = TRUE;
-static guint32 global_ldp_udp_port = UDP_PORT_LDP;
-
/*
* The following define all the TLV types I know about
* http://www.iana.org/assignments/ldp-namespaces
@@ -4275,8 +4273,7 @@ proto_register_ldp(void)
module_t *ldp_module;
expert_module_t* expert_ldp;
- proto_ldp = proto_register_protocol("Label Distribution Protocol",
- "LDP", "ldp");
+ proto_ldp = proto_register_protocol("Label Distribution Protocol", "LDP", "ldp");
proto_register_field_array(proto_ldp, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
@@ -4285,12 +4282,7 @@ proto_register_ldp(void)
/* Register our configuration options for , particularly our port */
- ldp_module = prefs_register_protocol(proto_ldp, proto_reg_handoff_ldp);
-
- prefs_register_uint_preference(ldp_module, "udp.port", "LDP UDP Port",
- "Set the UDP port for messages (if other"
- " than the default of 646)",
- 10, &global_ldp_udp_port);
+ ldp_module = prefs_register_protocol(proto_ldp, NULL);
prefs_register_bool_preference(ldp_module, "desegment_ldp_messages",
"Reassemble LDP messages spanning multiple TCP segments",
@@ -4304,30 +4296,12 @@ proto_register_ldp(void)
void
proto_reg_handoff_ldp(void)
{
- static gboolean ldp_prefs_initialized = FALSE;
- static dissector_handle_t ldp_tcp_handle, ldp_handle;
- static int udp_port;
-
- if (!ldp_prefs_initialized) {
-
- ldp_tcp_handle = create_dissector_handle(dissect_ldp_tcp, proto_ldp);
- ldp_handle = create_dissector_handle(dissect_ldp, proto_ldp);
- dissector_add_uint_with_preference("tcp.port", TCP_PORT_LDP, ldp_tcp_handle);
-
- ldp_prefs_initialized = TRUE;
-
- }
- else {
-
- dissector_delete_uint("udp.port", udp_port, ldp_handle);
-
- }
-
- /* Set our port number for future use */
- udp_port = global_ldp_udp_port;
-
- dissector_add_uint("udp.port", global_ldp_udp_port, ldp_handle);
+ dissector_handle_t ldp_tcp_handle, ldp_handle;
+ ldp_tcp_handle = create_dissector_handle(dissect_ldp_tcp, proto_ldp);
+ ldp_handle = create_dissector_handle(dissect_ldp, proto_ldp);
+ dissector_add_uint_with_preference("tcp.port", TCP_PORT_LDP, ldp_tcp_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_LDP, ldp_handle);
}
/*
diff --git a/epan/dissectors/packet-ldss.c b/epan/dissectors/packet-ldss.c
index cb8d87d234..56f33188fb 100644
--- a/epan/dissectors/packet-ldss.c
+++ b/epan/dissectors/packet-ldss.c
@@ -40,7 +40,6 @@
#include <math.h>
#include <epan/packet.h>
-#include <epan/prefs.h>
#include <epan/expert.h>
#include <epan/strutil.h>
#include "packet-tcp.h"
@@ -204,9 +203,6 @@ static expert_field ei_ldss_unrecognized_line = EI_INIT;
static dissector_handle_t ldss_udp_handle;
static dissector_handle_t ldss_tcp_handle;
-/* Global variables associated with the preferences for ldss */
-static guint global_udp_port_ldss = UDP_PORT_LDSS;
-
/* Avoid creating conversations and data twice */
static unsigned int highest_num_seen = 0;
@@ -957,7 +953,6 @@ proto_register_ldss (void) {
{ &ei_ldss_unrecognized_line, { "ldss.unrecognized_line", PI_PROTOCOL, PI_WARN, "Unrecognized line ignored", EXPFILL }},
};
- module_t *ldss_module;
expert_module_t* expert_ldss;
proto_ldss = proto_register_protocol("Local Download Sharing Service", "LDSS", "ldss");
@@ -966,14 +961,6 @@ proto_register_ldss (void) {
expert_ldss = expert_register_protocol(proto_ldss);
expert_register_field_array(expert_ldss, ei, array_length(ei));
- ldss_module = prefs_register_protocol( proto_ldss, proto_reg_handoff_ldss);
- prefs_register_uint_preference( ldss_module, "udp_port",
- "LDSS UDP Port",
- "The UDP port on which "
- "Local Download Sharing Service "
- "broadcasts will be sent",
- 10, &global_udp_port_ldss);
-
register_init_routine(&ldss_init_protocol);
}
@@ -982,19 +969,9 @@ proto_register_ldss (void) {
void
proto_reg_handoff_ldss (void)
{
- static guint saved_udp_port_ldss;
- static gboolean ldss_initialized = FALSE;
-
- if (!ldss_initialized) {
- ldss_udp_handle = create_dissector_handle(dissect_ldss, proto_ldss);
- ldss_tcp_handle = create_dissector_handle(dissect_ldss_transfer, proto_ldss);
- ldss_initialized = TRUE;
- }
- else {
- dissector_delete_uint("udp.port", saved_udp_port_ldss, ldss_udp_handle);
- }
- dissector_add_uint("udp.port", global_udp_port_ldss, ldss_udp_handle);
- saved_udp_port_ldss = global_udp_port_ldss;
+ ldss_udp_handle = create_dissector_handle(dissect_ldss, proto_ldss);
+ ldss_tcp_handle = create_dissector_handle(dissect_ldss_transfer, proto_ldss);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_LDSS, ldss_udp_handle);
}
/*
diff --git a/epan/dissectors/packet-lge_monitor.c b/epan/dissectors/packet-lge_monitor.c
index f51f0fef7f..4ac982c81f 100644
--- a/epan/dissectors/packet-lge_monitor.c
+++ b/epan/dissectors/packet-lge_monitor.c
@@ -26,7 +26,6 @@
#include "config.h"
#include <epan/packet.h>
-#include <epan/prefs.h>
void proto_reg_handoff_lge_monitor(void);
void proto_register_lge_monitor(void);
@@ -43,7 +42,6 @@ static int hf_lge_monitor_data = -1;
static int ett_lge_monitor = -1;
static int ett_lge_header = -1;
-static guint LGEMonitorUDPPort = 0;
static dissector_handle_t mtp3_handle, m3ua_handle, sccp_handle, sctp_handle;
static const value_string lge_monitor_dir_vals[] = {
@@ -116,37 +114,20 @@ dissect_lge_monitor(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* d
void
proto_reg_handoff_lge_monitor(void)
{
- static dissector_handle_t lge_monitor_handle;
- static guint saved_udp_port;
- static gboolean lge_monitor_prefs_initialized = FALSE;
-
- if (!lge_monitor_prefs_initialized) {
- lge_monitor_handle = create_dissector_handle(dissect_lge_monitor, proto_lge_monitor);
- dissector_add_for_decode_as("udp.port", lge_monitor_handle);
- mtp3_handle = find_dissector_add_dependency("mtp3", proto_lge_monitor);
- m3ua_handle = find_dissector_add_dependency("m3ua", proto_lge_monitor);
- sccp_handle = find_dissector_add_dependency("sccp", proto_lge_monitor);
- sctp_handle = find_dissector_add_dependency("sctp", proto_lge_monitor);
- lge_monitor_prefs_initialized = TRUE;
- }
- else {
- if (saved_udp_port != 0) {
- dissector_delete_uint("udp.port", saved_udp_port, lge_monitor_handle);
- }
- }
-
- if (LGEMonitorUDPPort != 0) {
- dissector_add_uint("udp.port", LGEMonitorUDPPort, lge_monitor_handle);
- }
- saved_udp_port = LGEMonitorUDPPort;
+ dissector_handle_t lge_monitor_handle;
+
+ lge_monitor_handle = create_dissector_handle(dissect_lge_monitor, proto_lge_monitor);
+ dissector_add_for_decode_as_with_preference("udp.port", lge_monitor_handle);
+ mtp3_handle = find_dissector_add_dependency("mtp3", proto_lge_monitor);
+ m3ua_handle = find_dissector_add_dependency("m3ua", proto_lge_monitor);
+ sccp_handle = find_dissector_add_dependency("sccp", proto_lge_monitor);
+ sctp_handle = find_dissector_add_dependency("sctp", proto_lge_monitor);
}
void
proto_register_lge_monitor(void)
{
- module_t *lge_monitor_module;
-
/* Setup list of header fields */
static hf_register_info hf[] = {
{ &hf_lge_monitor_dir,
@@ -183,17 +164,6 @@ proto_register_lge_monitor(void)
/* Required function calls to register the header fields and subtrees used */
proto_register_field_array(proto_lge_monitor, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- /* Register a configuration option for port */
-
-
- lge_monitor_module = prefs_register_protocol(proto_lge_monitor, proto_reg_handoff_lge_monitor);
-
- prefs_register_uint_preference(lge_monitor_module, "udp.port",
- "LGE Monitor UDP Port",
- "Set UDP port for LGE Monitor messages",
- 10,
- &LGEMonitorUDPPort);
-
}
/*
diff --git a/epan/dissectors/packet-lisp-data.c b/epan/dissectors/packet-lisp-data.c
index 28669ade6e..ff9e831c91 100644
--- a/epan/dissectors/packet-lisp-data.c
+++ b/epan/dissectors/packet-lisp-data.c
@@ -289,7 +289,7 @@ proto_reg_handoff_lisp_data(void)
lisp_data_handle = create_dissector_handle(dissect_lisp_data,
proto_lisp_data);
- dissector_add_uint("udp.port", LISP_DATA_PORT, lisp_data_handle);
+ dissector_add_uint_with_preference("udp.port", LISP_DATA_PORT, lisp_data_handle);
ipv4_handle = find_dissector_add_dependency("ip", proto_lisp_data);
ipv6_handle = find_dissector_add_dependency("ipv6", proto_lisp_data);
lisp_handle = find_dissector_add_dependency("lisp", proto_lisp_data);
diff --git a/epan/dissectors/packet-lisp.c b/epan/dissectors/packet-lisp.c
index 7ac5bf292c..1eae61d85f 100644
--- a/epan/dissectors/packet-lisp.c
+++ b/epan/dissectors/packet-lisp.c
@@ -3623,7 +3623,7 @@ proto_register_lisp(void)
void
proto_reg_handoff_lisp(void)
{
- dissector_add_uint("udp.port", LISP_CONTROL_PORT, lisp_handle);
+ dissector_add_uint_with_preference("udp.port", LISP_CONTROL_PORT, lisp_handle);
ipv4_handle = find_dissector_add_dependency("ip", proto_lisp);
ipv6_handle = find_dissector_add_dependency("ipv6", proto_lisp);
}
diff --git a/epan/dissectors/packet-llc.c b/epan/dissectors/packet-llc.c
index 8b7db4b1cb..17a86b7565 100644
--- a/epan/dissectors/packet-llc.c
+++ b/epan/dissectors/packet-llc.c
@@ -47,11 +47,7 @@ void proto_register_basicxid(void);
void proto_register_llc(void);
void proto_reg_handoff_llc(void);
-#define UDP_PORT_LLC1 12000
-#define UDP_PORT_LLC2 12001
-#define UDP_PORT_LLC3 12002
-#define UDP_PORT_LLC4 12003
-#define UDP_PORT_LLC5 12004
+#define UDP_PORT_LLC_RANGE "12000-12004"
static int proto_llc = -1;
static int hf_llc_dsap = -1;
@@ -885,11 +881,7 @@ proto_reg_handoff_llc(void)
/* RFC 2043 */
dissector_add_uint("ppp.protocol", PPP_LLC, llc_handle);
/* RFC 2353 */
- dissector_add_uint("udp.port", UDP_PORT_LLC1, llc_handle);
- dissector_add_uint("udp.port", UDP_PORT_LLC2, llc_handle);
- dissector_add_uint("udp.port", UDP_PORT_LLC3, llc_handle);
- dissector_add_uint("udp.port", UDP_PORT_LLC4, llc_handle);
- dissector_add_uint("udp.port", UDP_PORT_LLC5, llc_handle);
+ dissector_add_uint_range_with_preference("udp.port", UDP_PORT_LLC_RANGE, llc_handle);
/* IP-over-FC when we have the full FC frame */
dissector_add_uint("fc.ftype", FC_FTYPE_IP, llc_handle);
diff --git a/epan/dissectors/packet-lmp.c b/epan/dissectors/packet-lmp.c
index c1d3942203..5c90e636c4 100644
--- a/epan/dissectors/packet-lmp.c
+++ b/epan/dissectors/packet-lmp.c
@@ -58,8 +58,6 @@ void proto_reg_handoff_lmp(void);
static int proto_lmp = -1;
#define UDP_PORT_LMP_DEFAULT 701
-static guint lmp_udp_port = UDP_PORT_LMP_DEFAULT;
-static guint lmp_udp_port_config = UDP_PORT_LMP_DEFAULT;
static gboolean lmp_checksum_config = FALSE;
@@ -1875,30 +1873,16 @@ dissect_lmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
}
static void
-lmp_prefs_applied (void)
-{
- if (lmp_udp_port != lmp_udp_port_config) {
- dissector_delete_uint("udp.port", lmp_udp_port, lmp_handle);
- lmp_udp_port = lmp_udp_port_config;
- dissector_add_uint("udp.port", lmp_udp_port, lmp_handle);
- }
-}
-
-static void
register_lmp_prefs (void)
{
module_t *lmp_module;
- lmp_module = prefs_register_protocol(proto_lmp, lmp_prefs_applied);
+ lmp_module = prefs_register_protocol(proto_lmp, NULL);
- prefs_register_uint_preference(
- lmp_module, "udp_port", "LMP UDP Port",
- "UDP port number to use for LMP", 10, &lmp_udp_port_config);
prefs_register_bool_preference(
lmp_module, "checksum", "LMP checksum field",
"Whether LMP contains a checksum which can be checked", &lmp_checksum_config);
- prefs_register_obsolete_preference(
- lmp_module, "version");
+ prefs_register_obsolete_preference(lmp_module, "version");
}
void
@@ -2635,8 +2619,7 @@ proto_register_lmp(void)
}
- proto_lmp = proto_register_protocol("Link Management Protocol (LMP)",
- "LMP", "lmp");
+ proto_lmp = proto_register_protocol("Link Management Protocol (LMP)", "LMP", "lmp");
expert_lmp = expert_register_protocol(proto_lmp);
expert_register_field_array(expert_lmp, ei, array_length(ei));
@@ -2651,7 +2634,7 @@ void
proto_reg_handoff_lmp(void)
{
lmp_handle = create_dissector_handle(dissect_lmp, proto_lmp);
- dissector_add_uint("udp.port", lmp_udp_port, lmp_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_LMP_DEFAULT, lmp_handle);
}
/*
diff --git a/epan/dissectors/packet-lsc.c b/epan/dissectors/packet-lsc.c
index 969118aead..c0780dfbed 100644
--- a/epan/dissectors/packet-lsc.c
+++ b/epan/dissectors/packet-lsc.c
@@ -24,7 +24,6 @@
#include "config.h"
#include <epan/packet.h>
-#include <epan/prefs.h>
#include "packet-tcp.h"
@@ -123,9 +122,6 @@ static int hf_lsc_scale_num = -1;
static int hf_lsc_scale_denom = -1;
static int hf_lsc_mode = -1;
-/* Preferences */
-static guint global_lsc_port = 0;
-
/* Initialize the subtree pointers */
static gint ett_lsc = -1;
@@ -340,8 +336,6 @@ dissect_lsc_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
void
proto_register_lsc(void)
{
- module_t *lsc_module;
-
/* Setup list of header fields */
static hf_register_info hf[] = {
{ &hf_lsc_version,
@@ -412,42 +406,18 @@ proto_register_lsc(void)
/* Required function calls to register the header fields and subtrees used */
proto_register_field_array(proto_lsc, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
-
- /* Register preferences module */
- lsc_module = prefs_register_protocol(proto_lsc, proto_reg_handoff_lsc);
-
- /* Register preferences */
- prefs_register_uint_preference(lsc_module, "port",
- "LSC Port",
- "Set the TCP or UDP port for Pegasus LSC messages",
- 10, &global_lsc_port);
}
void
proto_reg_handoff_lsc(void)
{
- static gboolean initialized = FALSE;
- static dissector_handle_t lsc_udp_handle;
- static dissector_handle_t lsc_tcp_handle;
- static guint saved_lsc_port;
-
- if (!initialized) {
- lsc_udp_handle = create_dissector_handle(dissect_lsc_udp, proto_lsc);
- lsc_tcp_handle = create_dissector_handle(dissect_lsc_tcp, proto_lsc);
- dissector_add_for_decode_as("udp.port", lsc_udp_handle);
- dissector_add_for_decode_as_with_preference("tcp.port", lsc_tcp_handle);
- initialized = TRUE;
- } else {
- if (saved_lsc_port != 0) {
- dissector_delete_uint("udp.port", saved_lsc_port, lsc_udp_handle);
- }
- }
+ dissector_handle_t lsc_udp_handle;
+ dissector_handle_t lsc_tcp_handle;
- /* Set the port number */
- if (global_lsc_port != 0) {
- dissector_add_uint("udp.port", global_lsc_port, lsc_udp_handle);
- }
- saved_lsc_port = global_lsc_port;
+ lsc_udp_handle = create_dissector_handle(dissect_lsc_udp, proto_lsc);
+ lsc_tcp_handle = create_dissector_handle(dissect_lsc_tcp, proto_lsc);
+ dissector_add_for_decode_as_with_preference("udp.port", lsc_udp_handle);
+ dissector_add_for_decode_as_with_preference("tcp.port", lsc_tcp_handle);
}
/*
diff --git a/epan/dissectors/packet-lte-rrc.c b/epan/dissectors/packet-lte-rrc.c
index 827c5ba4c3..f5f5959320 100644
--- a/epan/dissectors/packet-lte-rrc.c
+++ b/epan/dissectors/packet-lte-rrc.c
@@ -91299,7 +91299,7 @@ proto_reg_handoff_lte_rrc(void)
static dissector_handle_t lte_rrc_dl_ccch_handle;
lte_rrc_dl_ccch_handle = find_dissector("lte_rrc.dl_ccch");
- dissector_add_for_decode_as("udp.port", lte_rrc_dl_ccch_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", lte_rrc_dl_ccch_handle);
nas_eps_handle = find_dissector("nas-eps");
rrc_irat_ho_to_utran_cmd_handle = find_dissector("rrc.irat.ho_to_utran_cmd");
rrc_sys_info_cont_handle = find_dissector("rrc.sysinfo.cont");
diff --git a/epan/dissectors/packet-ltp.c b/epan/dissectors/packet-ltp.c
index 52b85f789d..3b4c88ff17 100644
--- a/epan/dissectors/packet-ltp.c
+++ b/epan/dissectors/packet-ltp.c
@@ -43,7 +43,6 @@
#include "config.h"
#include <epan/packet.h>
-#include <epan/prefs.h>
#include <epan/expert.h>
#include <epan/reassemble.h>
@@ -187,8 +186,7 @@ static const value_string client_service_id_info[] = {
{0, NULL}
};
-
-static guint ltp_port = 1113;
+#define LTP_PORT 1113
/* Initialize the subtree pointers */
static gint ett_ltp = -1;
@@ -837,8 +835,6 @@ ltp_defragment_init(void) {
void
proto_register_ltp(void)
{
- module_t *ltp_module;
-
static hf_register_info hf[] = {
{&hf_ltp_version,
{"LTP Version","ltp.version",
@@ -1032,43 +1028,26 @@ proto_register_ltp(void)
expert_module_t* expert_ltp;
/* Register the protocol name and description */
- proto_ltp = proto_register_protocol("Licklider Transmission Protocol",
- "LTP", "ltp");
+ proto_ltp = proto_register_protocol("Licklider Transmission Protocol", "LTP", "ltp");
proto_register_field_array(proto_ltp, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
expert_ltp = expert_register_protocol(proto_ltp);
expert_register_field_array(expert_ltp, ei, array_length(ei));
- ltp_module = prefs_register_protocol(proto_ltp, proto_reg_handoff_ltp);
-
- prefs_register_obsolete_preference(ltp_module, "udp.port");
- prefs_register_uint_preference(ltp_module, "port", "LTP Port",
- "The UDP or DCCP port to accept LTP Connections",
- 10, &ltp_port);
register_init_routine(ltp_defragment_init);
}
void
proto_reg_handoff_ltp(void)
{
- static gboolean initialized = FALSE;
- static dissector_handle_t ltp_handle;
- static int currentPort;
-
- if (!initialized) {
- ltp_handle = create_dissector_handle(dissect_ltp, proto_ltp);
- bundle_handle = find_dissector_add_dependency("bundle", proto_ltp);
- initialized = TRUE;
- } else {
- dissector_delete_uint("udp.port", currentPort, ltp_handle);
- dissector_delete_uint("dccp.port", currentPort, ltp_handle);
- }
+ dissector_handle_t ltp_handle;
- currentPort = ltp_port;
+ ltp_handle = create_dissector_handle(dissect_ltp, proto_ltp);
+ bundle_handle = find_dissector_add_dependency("bundle", proto_ltp);
- dissector_add_uint("udp.port", currentPort, ltp_handle);
- dissector_add_uint("dccp.port", currentPort, ltp_handle);
+ dissector_add_uint_with_preference("udp.port", LTP_PORT, ltp_handle);
+ dissector_add_uint_with_preference("dccp.port", LTP_PORT, ltp_handle);
}
/*
diff --git a/epan/dissectors/packet-lwapp.c b/epan/dissectors/packet-lwapp.c
index 09007fde95..ee315b3bd1 100644
--- a/epan/dissectors/packet-lwapp.c
+++ b/epan/dissectors/packet-lwapp.c
@@ -32,6 +32,9 @@
void proto_register_lwapp(void);
void proto_reg_handoff_lwapp(void);
+#define LWAPP_8023_PORT 12220 /* Not IANA registered */
+#define LWAPP_UDP_PORT_RANGE "12222-12223" /* Not IANA registered */
+
#define LWAPP_FLAGS_T 0x04
#define LWAPP_FLAGS_F 0x02
#define LWAPP_FLAGS_FT 0x01
@@ -573,12 +576,10 @@ proto_reg_handoff_lwapp(void)
*/
/* Obsoleted LWAPP via encapsulated 802.3 over UDP */
-
- dissector_add_uint("udp.port", 12220, lwapp_l3_handle);
+ dissector_add_uint_with_preference("udp.port", LWAPP_8023_PORT, lwapp_l3_handle);
/* new-style lwapp directly over UDP: L3-lwapp*/
- dissector_add_uint("udp.port", 12222, lwapp_handle);
- dissector_add_uint("udp.port", 12223, lwapp_handle);
+ dissector_add_uint_range_with_preference("udp.port", LWAPP_UDP_PORT_RANGE, lwapp_handle);
/* Lwapp over L2 */
dissector_add_uint("ethertype", 0x88bb, lwapp_handle);
diff --git a/epan/dissectors/packet-lwres.c b/epan/dissectors/packet-lwres.c
index e9d618b257..2ea66a1aff 100644
--- a/epan/dissectors/packet-lwres.c
+++ b/epan/dissectors/packet-lwres.c
@@ -26,7 +26,6 @@
#include <epan/packet.h>
-#include <epan/prefs.h>
#include <epan/to_str.h>
#include "packet-dns.h"
@@ -180,10 +179,7 @@ static int ett_ns_rec_item = -1;
-#define LWRES_UDP_PORT 921
-
-static guint global_lwres_port = LWRES_UDP_PORT;
-
+#define LWRES_UDP_PORT 921 /* Not IANA registered */
/* Define the lwres proto */
static int proto_lwres = -1;
@@ -1129,44 +1125,20 @@ proto_register_lwres(void)
&ett_noop,
};
-
- module_t *lwres_module;
-
- proto_lwres = proto_register_protocol("Light Weight DNS RESolver (BIND9)",
- "LWRES", "lwres");
+ proto_lwres = proto_register_protocol("Light Weight DNS RESolver (BIND9)", "LWRES", "lwres");
proto_register_field_array(proto_lwres, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
-
- lwres_module = prefs_register_protocol(proto_lwres, proto_reg_handoff_lwres);
-
- prefs_register_uint_preference(lwres_module, "udp.lwres_port",
- "lwres listener UDP Port",
- "Set the UDP port for lwres daemon"
- "(if other than the default of 921)",
- 10, &global_lwres_port);
-
}
/* The registration hand-off routine */
void
proto_reg_handoff_lwres(void)
{
- static gboolean lwres_prefs_initialized = FALSE;
- static dissector_handle_t lwres_handle;
- static guint lwres_port;
-
- if(!lwres_prefs_initialized) {
- lwres_handle = create_dissector_handle(dissect_lwres, proto_lwres);
- lwres_prefs_initialized = TRUE;
- }
- else {
- dissector_delete_uint("udp.port", lwres_port, lwres_handle);
- }
-
- dissector_add_uint("udp.port", global_lwres_port, lwres_handle);
- lwres_port = global_lwres_port;
+ dissector_handle_t lwres_handle;
+ lwres_handle = create_dissector_handle(dissect_lwres, proto_lwres);
+ dissector_add_uint_with_preference("udp.port", LWRES_UDP_PORT, lwres_handle);
}
/*
diff --git a/epan/dissectors/packet-mactelnet.c b/epan/dissectors/packet-mactelnet.c
index 262885c4dd..8e1670f1b3 100644
--- a/epan/dissectors/packet-mactelnet.c
+++ b/epan/dissectors/packet-mactelnet.c
@@ -29,7 +29,6 @@
#include "config.h"
#include <epan/packet.h>
-#include <epan/prefs.h>
#include <epan/to_str.h>
void proto_register_mactelnet(void);
@@ -57,8 +56,7 @@ static gint hf_mactelnet_control_terminal = -1;
static gint hf_mactelnet_control_width = -1;
static gint hf_mactelnet_control_height = -1;
-/* Global port preference */
-static guint global_mactelnet_port = 20561;
+#define MACTELNET_UDP_PORT 20561 /* Not IANA registered */
/* Control packet definition */
static const guint32 control_packet = 0x563412FF;
@@ -373,38 +371,21 @@ proto_register_mactelnet(void)
&ett_mactelnet_control,
};
- module_t *mactelnet_module;
-
/* Register the protocol name and description */
proto_mactelnet = proto_register_protocol ("MikroTik MAC-Telnet Protocol", PROTO_TAG_MACTELNET, "mactelnet");
/* Required function calls to register the header fields and subtrees used */
proto_register_field_array (proto_mactelnet, hf, array_length (hf));
proto_register_subtree_array (ett, array_length (ett));
-
- mactelnet_module = prefs_register_protocol(proto_mactelnet, proto_reg_handoff_mactelnet);
-
- prefs_register_uint_preference(mactelnet_module, "port", "UDP Port",
- "MAC-Telnet UDP port if other than the default",
- 10, &global_mactelnet_port);
}
void
proto_reg_handoff_mactelnet(void)
{
- static gboolean initialized = FALSE;
- static guint current_port;
- static dissector_handle_t mactelnet_handle;
-
- if (!initialized) {
- mactelnet_handle = create_dissector_handle(dissect_mactelnet, proto_mactelnet);
- initialized = TRUE;
- } else {
- dissector_delete_uint("udp.port", current_port, mactelnet_handle);
- }
+ dissector_handle_t mactelnet_handle;
- current_port = global_mactelnet_port;
- dissector_add_uint("udp.port", current_port, mactelnet_handle);
+ mactelnet_handle = create_dissector_handle(dissect_mactelnet, proto_mactelnet);
+ dissector_add_uint_with_preference("udp.port", MACTELNET_UDP_PORT, mactelnet_handle);
}
/*
diff --git a/epan/dissectors/packet-manolito.c b/epan/dissectors/packet-manolito.c
index fecbcecb25..17026e2606 100644
--- a/epan/dissectors/packet-manolito.c
+++ b/epan/dissectors/packet-manolito.c
@@ -31,6 +31,8 @@
void proto_register_manolito(void);
void proto_reg_handoff_manolito(void);
+#define MANOLITO_PORT 41170 /* Not IANA registered */
+
static int proto_manolito = -1;
static int hf_manolito_checksum = -1;
@@ -294,9 +296,8 @@ proto_reg_handoff_manolito(void)
{
dissector_handle_t manolito_handle;
- manolito_handle = create_dissector_handle(dissect_manolito,
- proto_manolito);
- dissector_add_uint("udp.port", 41170, manolito_handle);
+ manolito_handle = create_dissector_handle(dissect_manolito, proto_manolito);
+ dissector_add_uint_with_preference("udp.port", MANOLITO_PORT, manolito_handle);
}
/*
diff --git a/epan/dissectors/packet-mausb.c b/epan/dissectors/packet-mausb.c
index 00a450f173..52ff45ae85 100644
--- a/epan/dissectors/packet-mausb.c
+++ b/epan/dissectors/packet-mausb.c
@@ -27,7 +27,6 @@
#include "config.h"
#include <epan/packet.h>
-#include <epan/prefs.h>
#include <epan/expert.h>
#include <epan/oui.h>
#include "packet-tcp.h"
@@ -673,9 +672,6 @@ static guint mausb_get_pkt_len(packet_info *pinfo _U_, tvbuff_t *tvb,
return tvb_get_letohs(tvb, offset + 2);
}
-/* Global Port Preference */
-static unsigned int mausb_udp_port_pref = 0;
-
/* Initialize the subtree pointers */
static gint ett_mausb = -1;
static gint ett_mausb_flags = -1;
@@ -2249,12 +2245,10 @@ proto_register_mausb(void)
},
};
- module_t *mausb_module;
expert_module_t* expert_mausb;
/* Register the protocol name and description */
- proto_mausb = proto_register_protocol("Media Agnostic USB",
- "MAUSB", "mausb");
+ proto_mausb = proto_register_protocol("Media Agnostic USB", "MAUSB", "mausb");
/* Required function calls to register the header fields and subtrees */
proto_register_field_array(proto_mausb, hf, array_length(hf));
@@ -2267,45 +2261,23 @@ proto_register_mausb(void)
expert_mausb = expert_register_protocol(proto_mausb);
expert_register_field_array(expert_mausb, ei, array_length(ei));
- /* Register Protocol preferences */
- mausb_module = prefs_register_protocol(proto_mausb, proto_reg_handoff_mausb);
-
- /* Register UDP port preference */
- prefs_register_uint_preference(mausb_module, "udp.port", "MAUSB UDP Port",
- "Set the port for Media Agnostic Packets",
- 10, &mausb_udp_port_pref);
-
llc_add_oui(OUI_WFA, "llc.wfa_pid", "LLC WFA OUI PID", oui_hf, proto_mausb);
}
void
proto_reg_handoff_mausb(void)
{
- static gboolean initialized = FALSE;
- static dissector_handle_t mausb_tcp_handle;
- static dissector_handle_t mausb_pkt_handle;
- static guint saved_mausb_udp_port_pref;
-
- if (!initialized) {
- /* only initialize once */
- mausb_tcp_handle = create_dissector_handle(dissect_mausb,
- proto_mausb);
+ dissector_handle_t mausb_tcp_handle;
+ dissector_handle_t mausb_pkt_handle;
- mausb_pkt_handle = create_dissector_handle(dissect_mausb_pkt,
- proto_mausb);
+ mausb_tcp_handle = create_dissector_handle(dissect_mausb, proto_mausb);
- dissector_add_uint("llc.wfa_pid", PID_MAUSB, mausb_pkt_handle);
- initialized = TRUE;
-
- dissector_add_uint_range_with_preference("tcp.port", "", mausb_tcp_handle);
- } else {
- /* if we have already been initialized */
- dissector_delete_uint("udp.port", saved_mausb_udp_port_pref, mausb_pkt_handle);
- }
+ mausb_pkt_handle = create_dissector_handle(dissect_mausb_pkt, proto_mausb);
- saved_mausb_udp_port_pref = mausb_udp_port_pref;
+ dissector_add_uint("llc.wfa_pid", PID_MAUSB, mausb_pkt_handle);
- dissector_add_uint("udp.port", mausb_udp_port_pref, mausb_pkt_handle);
+ dissector_add_uint_range_with_preference("tcp.port", "", mausb_tcp_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", mausb_pkt_handle);
}
/*
diff --git a/epan/dissectors/packet-mcpe.c b/epan/dissectors/packet-mcpe.c
index 1c486c73a6..1f99be9104 100644
--- a/epan/dissectors/packet-mcpe.c
+++ b/epan/dissectors/packet-mcpe.c
@@ -42,7 +42,7 @@
* http://wiki.vg/Pocket_Edition_Protocol_Documentation
*/
-#define MCPE_UDP_PORT_DEFAULT 19132
+#define MCPE_UDP_PORT_DEFAULT 19132 /* Not IANA registered */
static guint mcpe_udp_port_requested = MCPE_UDP_PORT_DEFAULT;
static int proto_mcpe = -1;
@@ -673,11 +673,7 @@ proto_register_mcpe(void)
/*
* Register the protocol with wireshark.
*/
- proto_mcpe = proto_register_protocol (
- "Minecraft Pocket Edition", /* name */
- "MCPE", /* short name */
- "mcpe" /* abbrev */
- );
+ proto_mcpe = proto_register_protocol ("Minecraft Pocket Edition", "MCPE", "mcpe");
/*
* Register expert support.
diff --git a/epan/dissectors/packet-megaco.c b/epan/dissectors/packet-megaco.c
index 96c96017cc..19a640fd24 100644
--- a/epan/dissectors/packet-megaco.c
+++ b/epan/dissectors/packet-megaco.c
@@ -189,7 +189,6 @@ static ws_mempbrk_pattern pbrk_braces;
* decode.
*/
static guint global_megaco_txt_sctp_port = PORT_MEGACO_TXT;
-static guint global_megaco_txt_udp_port = PORT_MEGACO_TXT;
#if 0
static guint global_megaco_bin_sctp_port = PORT_MEGACO_BIN;
static guint global_megaco_bin_tcp_port = PORT_MEGACO_BIN;
@@ -3792,11 +3791,6 @@ proto_register_megaco(void)
"Set the SCTP port for MEGACO text messages",
10, &global_megaco_txt_sctp_port);
- prefs_register_uint_preference(megaco_module, "udp.txt_port",
- "MEGACO Text UDP Port",
- "Set the UDP port for MEGACO text messages",
- 10, &global_megaco_txt_udp_port);
-
#if 0
prefs_register_uint_preference(megaco_module, "sctp.bin_port",
"MEGACO Binary SCTP Port",
@@ -3856,7 +3850,6 @@ proto_reg_handoff_megaco(void)
* the user changes port from the gui.
*/
static guint txt_sctp_port;
- static guint txt_udp_port;
#if 0
static guint bin_sctp_port;
static guint bin_tcp_port;
@@ -3874,21 +3867,19 @@ proto_reg_handoff_megaco(void)
megaco_text_tcp_handle = create_dissector_handle(dissect_megaco_text_tcp, proto_megaco);
dissector_add_uint_with_preference("tcp.port", PORT_MEGACO_TXT, megaco_text_tcp_handle);
+ dissector_add_uint_with_preference("udp.port", PORT_MEGACO_TXT, megaco_text_handle);
dissector_add_uint("sctp.ppi", H248_PAYLOAD_PROTOCOL_ID, megaco_text_handle);
megaco_prefs_initialized = TRUE;
} else {
dissector_delete_uint("sctp.port", txt_sctp_port, megaco_text_handle);
- dissector_delete_uint("udp.port", txt_udp_port, megaco_text_handle);
}
/* Set our port number for future use */
txt_sctp_port = global_megaco_txt_sctp_port;
- txt_udp_port = global_megaco_txt_udp_port;
dissector_add_uint("sctp.port", global_megaco_txt_sctp_port, megaco_text_handle);
- dissector_add_uint("udp.port", global_megaco_txt_udp_port, megaco_text_handle);
exported_pdu_tap = find_tap_id(EXPORT_PDU_TAP_NAME_LAYER_7);
diff --git a/epan/dissectors/packet-memcache.c b/epan/dissectors/packet-memcache.c
index 66c5e4559d..3e61cbab18 100644
--- a/epan/dissectors/packet-memcache.c
+++ b/epan/dissectors/packet-memcache.c
@@ -104,7 +104,6 @@ void proto_reg_handoff_memcache(void);
static int proto_memcache = -1;
-static range_t *memcache_udp_port_range = NULL;
static dissector_handle_t memcache_tcp_handle;
static dissector_handle_t memcache_udp_handle;
@@ -2121,7 +2120,7 @@ proto_register_memcache (void)
expert_register_field_array(expert_memcache, ei, array_length(ei));
/* Register our configuration options */
- memcache_module = prefs_register_protocol (proto_memcache, proto_reg_handoff_memcache);
+ memcache_module = prefs_register_protocol (proto_memcache, NULL);
prefs_register_bool_preference (memcache_module, "desegment_headers",
"Reassemble MEMCACHE headers spanning multiple TCP segments",
@@ -2138,27 +2137,14 @@ proto_register_memcache (void)
" To use this option, you must also enable \"Allow subdissectors"
" to reassemble TCP streams\" in the TCP protocol settings.",
&memcache_desegment_body);
-
- range_convert_str(&memcache_udp_port_range, MEMCACHE_DEFAULT_RANGE, 65535);
-
- prefs_register_range_preference(memcache_module, "udp.ports", \
- "MEMCACHE UDP Port range", \
- "MEMCACHE UDP Port range", \
- &memcache_udp_port_range, \
- 65535);
}
/* Register the tcp and udp memcache dissectors. */
void
proto_reg_handoff_memcache (void)
{
- static range_t *orig_memcache_udp_port_range = NULL;
-
- g_free(orig_memcache_udp_port_range);
-
- orig_memcache_udp_port_range = range_copy(memcache_udp_port_range);
dissector_add_uint_range_with_preference("tcp.port", MEMCACHE_DEFAULT_RANGE, memcache_tcp_handle);
- dissector_add_uint_range("udp.port", orig_memcache_udp_port_range, memcache_udp_handle);
+ dissector_add_uint_range_with_preference("udp.port", MEMCACHE_DEFAULT_RANGE, memcache_udp_handle);
}
/*
diff --git a/epan/dissectors/packet-mih.c b/epan/dissectors/packet-mih.c
index c5c885115b..daa5984343 100644
--- a/epan/dissectors/packet-mih.c
+++ b/epan/dissectors/packet-mih.c
@@ -4871,7 +4871,7 @@ void proto_reg_handoff_mih(void)
mih_handle = create_dissector_handle(dissect_mih, proto_mih);
/*Layer 3 handle*/
- dissector_add_uint("udp.port", MIH_PORT, mih_handle);
+ dissector_add_uint_with_preference("udp.port", MIH_PORT, mih_handle);
dissector_add_uint_with_preference("tcp.port", MIH_PORT, mih_handle);
/*Layer 2 handle*/
diff --git a/epan/dissectors/packet-mikey.c b/epan/dissectors/packet-mikey.c
index abb6693982..900793dc6c 100644
--- a/epan/dissectors/packet-mikey.c
+++ b/epan/dissectors/packet-mikey.c
@@ -38,7 +38,6 @@
#include "config.h"
#include <epan/packet.h>
-#include <epan/prefs.h>
#include <epan/asn1.h>
#include <epan/proto_data.h>
#include "packet-x509af.h"
@@ -47,7 +46,6 @@ void proto_register_mikey(void);
void proto_reg_handoff_mikey(void);
#define PORT_MIKEY 2269
-static guint global_mikey_udp_port = PORT_MIKEY;
static const value_string on_off_vals[] = {
{ 0, "Off" },
@@ -1835,44 +1833,23 @@ proto_register_mikey(void)
&ett_mikey_enc_data
};
- module_t *mikey_module;
-
/* Register the protocol name and description */
- proto_mikey = proto_register_protocol("Multimedia Internet KEYing",
- "MIKEY", "mikey");
+ proto_mikey = proto_register_protocol("Multimedia Internet KEYing", "MIKEY", "mikey");
mikey_handle = register_dissector("mikey", dissect_mikey, proto_mikey);
/* Required function calls to register the header fields and subtrees used */
proto_register_field_array(proto_mikey, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
-
- /* Register our configuration options */
- mikey_module = prefs_register_protocol(proto_mikey, proto_reg_handoff_mikey);
-
- prefs_register_uint_preference(mikey_module, "udp.port", "MIKEY UDP Port",
- "Set the port for MIKEY messages (if other than the default of 2269)",
- 10, &global_mikey_udp_port);
}
void
proto_reg_handoff_mikey(void)
{
- static guint mikey_udp_port;
- static gboolean inited = FALSE;
-
- if (!inited) {
- dissector_add_string("key_mgmt", "mikey", mikey_handle);
- dissector_add_uint_with_preference("tcp.port", PORT_MIKEY, mikey_handle);
- inited = TRUE;
- } else {
- dissector_delete_uint("udp.port", mikey_udp_port, mikey_handle);
- }
-
- dissector_add_uint("udp.port", global_mikey_udp_port, mikey_handle);
-
- mikey_udp_port = global_mikey_udp_port;
+ dissector_add_string("key_mgmt", "mikey", mikey_handle);
+ dissector_add_uint_with_preference("tcp.port", PORT_MIKEY, mikey_handle);
+ dissector_add_uint_with_preference("udp.port", PORT_MIKEY, mikey_handle);
}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
diff --git a/epan/dissectors/packet-mint.c b/epan/dissectors/packet-mint.c
index 32cc2d2f4f..f2cc30dbba 100644
--- a/epan/dissectors/packet-mint.c
+++ b/epan/dissectors/packet-mint.c
@@ -54,6 +54,7 @@ void proto_reg_handoff_mint(void);
#define PORT_MINT_CONTROL_TUNNEL 24576
/* 0x6001 */
#define PORT_MINT_DATA_TUNNEL 24577
+#define PORT_MINT_RANGE "24576-24577"
static dissector_handle_t eth_handle;
@@ -736,8 +737,7 @@ proto_register_mint(void)
void
proto_reg_handoff_mint(void)
{
- dissector_add_uint("udp.port", PORT_MINT_CONTROL_TUNNEL, mint_control_handle);
- dissector_add_uint("udp.port", PORT_MINT_DATA_TUNNEL, mint_data_handle);
+ dissector_add_uint_range_with_preference("udp.port", PORT_MINT_RANGE, mint_control_handle);
dissector_add_uint("ethertype", ETHERTYPE_MINT, mint_eth_handle);
eth_handle = find_dissector_add_dependency("eth_withoutfcs", hfi_mint->id);
diff --git a/epan/dissectors/packet-miop.c b/epan/dissectors/packet-miop.c
index ef60769a67..7d3985c4f4 100644
--- a/epan/dissectors/packet-miop.c
+++ b/epan/dissectors/packet-miop.c
@@ -316,7 +316,7 @@ void proto_reg_handoff_miop (void) {
dissector_handle_t miop_handle;
miop_handle = find_dissector("miop");
- dissector_add_for_decode_as("udp.port", miop_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", miop_handle);
heur_dissector_add("udp", dissect_miop_heur, "MIOP over UDP", "miop_udp", proto_miop, HEURISTIC_ENABLE);
diff --git a/epan/dissectors/packet-mip.c b/epan/dissectors/packet-mip.c
index ee8b2c3668..810b81b6f0 100644
--- a/epan/dissectors/packet-mip.c
+++ b/epan/dissectors/packet-mip.c
@@ -1481,7 +1481,7 @@ proto_reg_handoff_mip(void)
mip_handle = find_dissector("mip");
ip_handle = find_dissector_add_dependency("ip", proto_mip);
- dissector_add_uint("udp.port", UDP_PORT_MIP, mip_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_MIP, mip_handle);
/* Register as dissector for 3GPP2 NVSE */
dissector_add_uint("mip.nvse_ext", VENDOR_THE3GPP2,
diff --git a/epan/dissectors/packet-mip6.c b/epan/dissectors/packet-mip6.c
index b5d42fd08a..5cf0b4308b 100644
--- a/epan/dissectors/packet-mip6.c
+++ b/epan/dissectors/packet-mip6.c
@@ -5436,7 +5436,7 @@ proto_reg_handoff_mip6(void)
dissector_add_uint("ip.proto", IP_PROTO_MIPV6, mip6_handle);
/* Add support for PMIPv6 control messages over IPV4 */
- dissector_add_uint("udp.port", UDP_PORT_PMIP6_CNTL, mip6_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_PMIP6_CNTL, mip6_handle);
ip_dissector_table = find_dissector_table("ip.proto");
dissector_add_uint("mip6.vsm", VENDOR_THE3GPP, create_dissector_handle(dissect_mip6_opt_vsm_3gpp, proto_mip6));
diff --git a/epan/dissectors/packet-mndp.c b/epan/dissectors/packet-mndp.c
index a1e0f0c481..668290eb04 100644
--- a/epan/dissectors/packet-mndp.c
+++ b/epan/dissectors/packet-mndp.c
@@ -66,7 +66,7 @@ static int hf_mndp_interfacename = -1;
#define PROTO_SHORT_NAME "MNDP"
#define PROTO_LONG_NAME "Mikrotik Neighbor Discovery Protocol"
-#define PORT_MNDP 5678
+#define PORT_MNDP 5678 /* Not IANA registered */
/* ============= copy/paste/modify from value_string.[hc] ============== */
typedef struct _ext_value_string {
@@ -359,7 +359,7 @@ proto_reg_handoff_mndp(void)
dissector_handle_t mndp_handle;
mndp_handle = create_dissector_handle(dissect_mndp_static, proto_mndp);
- dissector_add_uint("udp.port", PORT_MNDP, mndp_handle);
+ dissector_add_uint_with_preference("udp.port", PORT_MNDP, mndp_handle);
heur_dissector_add("udp", dissect_mndp_heur, "MNDP over UDP", "mndp_udp", proto_mndp, HEURISTIC_DISABLE);
}
diff --git a/epan/dissectors/packet-mojito.c b/epan/dissectors/packet-mojito.c
index 63f135cbe3..dde239cea3 100644
--- a/epan/dissectors/packet-mojito.c
+++ b/epan/dissectors/packet-mojito.c
@@ -26,7 +26,6 @@
#include "config.h"
#include <epan/packet.h>
-#include <epan/prefs.h>
#include <epan/expert.h>
void proto_register_mojito(void);
@@ -120,9 +119,6 @@ static gint ett_mojito_kuids = -1;
static expert_field ei_mojito_socketaddress_unknown = EI_INIT;
static expert_field ei_mojito_bigint_unsupported = EI_INIT;
-/* Preferences */
-static int udp_mojito_port = 0;
-
typedef struct mojito_header_data {
guint8 opcode;
guint32 payloadlength;
@@ -713,7 +709,6 @@ static gboolean dissect_mojito_heuristic (tvbuff_t *tvb, packet_info *pinfo, pro
void
proto_register_mojito(void)
{
- module_t *mojito_module;
expert_module_t* expert_mojito;
static hf_register_info hf[] = {
@@ -1023,42 +1018,17 @@ proto_register_mojito(void)
proto_register_subtree_array(ett, array_length(ett));
expert_mojito = expert_register_protocol(proto_mojito);
expert_register_field_array(expert_mojito, ei, array_length(ei));
-
- /* Set the Prefs */
- mojito_module = prefs_register_protocol(proto_mojito, NULL);
-
- prefs_register_uint_preference(mojito_module,
- "udp.port",
- "Mojito UDP Port",
- "Mojito UDP Port",
- 10,
- &udp_mojito_port);
}
/* Control the handoff */
void
proto_reg_handoff_mojito(void)
{
- static gboolean initialized = FALSE;
- static int old_mojito_udp_port = 0;
- static dissector_handle_t mojito_handle;
-
- if (!initialized) {
- mojito_handle = create_dissector_handle(dissect_mojito, proto_mojito);
- heur_dissector_add("udp", dissect_mojito_heuristic, "Mojito over UDP", "mojito_udp", proto_mojito, HEURISTIC_ENABLE);
- initialized = TRUE;
- }
-
- /* Register UDP port for dissection */
- if(old_mojito_udp_port != 0 && old_mojito_udp_port != udp_mojito_port){
- dissector_delete_uint("udp.port", old_mojito_udp_port, mojito_handle);
- }
-
- if(udp_mojito_port != 0 && old_mojito_udp_port != udp_mojito_port) {
- dissector_add_uint("udp.port", udp_mojito_port, mojito_handle);
- }
+ dissector_handle_t mojito_handle;
- old_mojito_udp_port = udp_mojito_port;
+ mojito_handle = create_dissector_handle(dissect_mojito, proto_mojito);
+ heur_dissector_add("udp", dissect_mojito_heuristic, "Mojito over UDP", "mojito_udp", proto_mojito, HEURISTIC_ENABLE);
+ dissector_add_for_decode_as_with_preference("udp.port", mojito_handle);
}
/*
diff --git a/epan/dissectors/packet-moldudp.c b/epan/dissectors/packet-moldudp.c
index b121633a2b..7d697ed8f1 100644
--- a/epan/dissectors/packet-moldudp.c
+++ b/epan/dissectors/packet-moldudp.c
@@ -26,7 +26,6 @@
#include "config.h"
#include <epan/packet.h>
-#include <epan/prefs.h>
#include <epan/expert.h>
void proto_register_moldudp(void);
@@ -49,9 +48,6 @@ static int hf_moldudp_msgdata = -1;
#define MOLDUDP_HEARTBEAT 0x0000
-/* Global port pref */
-static guint pf_moldudp_port = 0;
-
/* Initialize the subtree pointers */
static gint ett_moldudp = -1;
static gint ett_moldudp_msgblk = -1;
@@ -187,8 +183,6 @@ dissect_moldudp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
void
proto_register_moldudp(void)
{
- module_t *moldudp_module;
-
/* Setup list of header fields */
static hf_register_info hf[] = {
@@ -235,46 +229,23 @@ proto_register_moldudp(void)
expert_module_t* expert_moldudp;
/* Register the protocol name and description */
- proto_moldudp = proto_register_protocol("MoldUDP",
- "MoldUDP", "moldudp");
+ proto_moldudp = proto_register_protocol("MoldUDP", "MoldUDP", "moldudp");
/* Required function calls to register the header fields and subtrees used */
proto_register_field_array(proto_moldudp, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
expert_moldudp = expert_register_protocol(proto_moldudp);
expert_register_field_array(expert_moldudp, ei, array_length(ei));
-
- /* Register preferences module */
- moldudp_module = prefs_register_protocol(proto_moldudp,
- proto_reg_handoff_moldudp);
-
- /* Register a port preference */
- prefs_register_uint_preference(moldudp_module, "udp.port", "MoldUDP UDP Port",
- "MoldUDP UDP port to capture on.",
- 10, &pf_moldudp_port);
}
void
proto_reg_handoff_moldudp(void)
{
- static gboolean initialized = FALSE;
- static dissector_handle_t moldudp_handle;
- static int currentPort;
-
- if (!initialized) {
- moldudp_handle = create_dissector_handle(dissect_moldudp,
- proto_moldudp);
- initialized = TRUE;
- } else {
-
- dissector_delete_uint("udp.port", currentPort, moldudp_handle);
- }
-
- currentPort = pf_moldudp_port;
-
- dissector_add_uint("udp.port", currentPort, moldudp_handle);
+ dissector_handle_t moldudp_handle;
+ moldudp_handle = create_dissector_handle(dissect_moldudp, proto_moldudp);
+ dissector_add_for_decode_as_with_preference("udp.port", moldudp_handle);
}
/*
diff --git a/epan/dissectors/packet-moldudp64.c b/epan/dissectors/packet-moldudp64.c
index 37b8e65cdb..efa85af34b 100644
--- a/epan/dissectors/packet-moldudp64.c
+++ b/epan/dissectors/packet-moldudp64.c
@@ -26,7 +26,6 @@
#include "config.h"
#include <epan/packet.h>
-#include <epan/prefs.h>
#include <epan/expert.h>
#include <epan/decode_as.h>
@@ -51,9 +50,6 @@ static int hf_moldudp64_msgdata = -1;
#define MOLDUDP64_HEARTBEAT 0x0000
#define MOLDUDP64_ENDOFSESS 0xFFFF
-/* Global port pref */
-static guint pf_moldudp64_port = 0;
-
/* Initialize the subtree pointers */
static gint ett_moldudp64 = -1;
static gint ett_moldudp64_msgblk = -1;
@@ -220,8 +216,6 @@ dissect_moldudp64(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat
void
proto_register_moldudp64(void)
{
- module_t *moldudp64_module;
-
/* Setup list of header fields */
static hf_register_info hf[] = {
@@ -287,15 +281,6 @@ proto_register_moldudp64(void)
expert_moldudp64 = expert_register_protocol(proto_moldudp64);
expert_register_field_array(expert_moldudp64, ei, array_length(ei));
- /* Register preferences module */
- moldudp64_module = prefs_register_protocol(proto_moldudp64,
- proto_reg_handoff_moldudp64);
-
- /* Register a sample port preference */
- prefs_register_uint_preference(moldudp64_module, "udp.port", "MoldUDP64 UDP Port",
- "MoldUDP64 UDP port to dissect on.",
- 10, &pf_moldudp64_port);
-
register_decode_as(&moldudp64_da);
}
@@ -303,24 +288,10 @@ proto_register_moldudp64(void)
void
proto_reg_handoff_moldudp64(void)
{
- static gboolean initialized = FALSE;
- static dissector_handle_t moldudp64_handle;
- static int currentPort;
-
- if (!initialized) {
-
- moldudp64_handle = create_dissector_handle(dissect_moldudp64,
- proto_moldudp64);
- initialized = TRUE;
- } else {
-
- dissector_delete_uint("udp.port", currentPort, moldudp64_handle);
- }
-
- currentPort = pf_moldudp64_port;
-
- dissector_add_uint("udp.port", currentPort, moldudp64_handle);
+ dissector_handle_t moldudp64_handle;
+ moldudp64_handle = create_dissector_handle(dissect_moldudp64, proto_moldudp64);
+ dissector_add_for_decode_as_with_preference("udp.port", moldudp64_handle);
}
/*
diff --git a/epan/dissectors/packet-mp2t.c b/epan/dissectors/packet-mp2t.c
index c5011df8c1..aed4a51136 100644
--- a/epan/dissectors/packet-mp2t.c
+++ b/epan/dissectors/packet-mp2t.c
@@ -1553,7 +1553,7 @@ proto_reg_handoff_mp2t(void)
dissector_add_uint("rtp.pt", PT_MP2T, mp2t_handle);
dissector_add_for_decode_as_with_preference("tcp.port", mp2t_handle);
- dissector_add_for_decode_as("udp.port", mp2t_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", mp2t_handle);
heur_dissector_add("usb.bulk", heur_dissect_mp2t, "MP2T USB bulk endpoint", "mp2t_usb_bulk", proto_mp2t, HEURISTIC_ENABLE);
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-mpls-echo.c b/epan/dissectors/packet-mpls-echo.c
index 4c99b50c15..8960b7fd21 100644
--- a/epan/dissectors/packet-mpls-echo.c
+++ b/epan/dissectors/packet-mpls-echo.c
@@ -33,7 +33,6 @@
#include "config.h"
#include <epan/packet.h>
-#include <epan/prefs.h>
#include <epan/sminmpec.h>
#include <epan/expert.h>
#include <epan/to_str.h>
@@ -242,8 +241,6 @@ static expert_field ei_mpls_echo_unknown_address_type = EI_INIT;
static expert_field ei_mpls_echo_incorrect_address_type = EI_INIT;
static expert_field ei_mpls_echo_malformed = EI_INIT;
-static guint global_mpls_echo_udp_port = UDP_PORT_MPLS_ECHO;
-
static const value_string mpls_echo_msgtype[] = {
{1, "MPLS Echo Request"},
{2, "MPLS Echo Reply"},
@@ -2542,42 +2539,24 @@ proto_register_mpls_echo(void)
{ &ei_mpls_echo_malformed, { "mpls_echo.malformed", PI_MALFORMED, PI_ERROR, "Malformed MPLS message", EXPFILL }},
};
- module_t *mpls_echo_module;
expert_module_t* expert_mpls_echo;
- proto_mpls_echo = proto_register_protocol("Multiprotocol Label Switching Echo",
- "MPLS Echo", "mpls-echo");
+ proto_mpls_echo = proto_register_protocol("Multiprotocol Label Switching Echo", "MPLS Echo", "mpls-echo");
proto_register_field_array(proto_mpls_echo, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
expert_mpls_echo = expert_register_protocol(proto_mpls_echo);
expert_register_field_array(expert_mpls_echo, ei, array_length(ei));
-
- mpls_echo_module = prefs_register_protocol(proto_mpls_echo, proto_reg_handoff_mpls_echo);
- prefs_register_uint_preference(mpls_echo_module, "udp.port", "MPLS Echo UDP Port",
- "Set the UDP port for messages (if other"
- " than the default of 3503)",
- 10, &global_mpls_echo_udp_port);
}
void
proto_reg_handoff_mpls_echo(void)
{
- static gboolean mpls_echo_prefs_initialized = FALSE;
- static dissector_handle_t mpls_echo_handle;
- static guint mpls_echo_udp_port;
-
- if (!mpls_echo_prefs_initialized) {
- mpls_echo_handle = create_dissector_handle(dissect_mpls_echo,
- proto_mpls_echo);
- mpls_echo_prefs_initialized = TRUE;
- } else {
- dissector_delete_uint("udp.port", mpls_echo_udp_port, mpls_echo_handle);
- }
+ dissector_handle_t mpls_echo_handle;
- mpls_echo_udp_port = global_mpls_echo_udp_port;
- dissector_add_uint("udp.port", global_mpls_echo_udp_port, mpls_echo_handle);
+ mpls_echo_handle = create_dissector_handle(dissect_mpls_echo, proto_mpls_echo);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_MPLS_ECHO, mpls_echo_handle);
dissector_add_uint("pwach.channel_type", ACH_TYPE_ONDEMAND_CV, mpls_echo_handle);
}
diff --git a/epan/dissectors/packet-mpls.c b/epan/dissectors/packet-mpls.c
index 519d617d04..91b9dc86d1 100644
--- a/epan/dissectors/packet-mpls.c
+++ b/epan/dissectors/packet-mpls.c
@@ -645,7 +645,7 @@ proto_reg_handoff_mpls(void)
dissector_add_for_decode_as("pwach.channel_type", mpls_handle);
dissector_add_uint("sflow_245.header_protocol", SFLOW_245_HEADER_MPLS, mpls_handle);
dissector_add_uint("l2tp.pw_type", L2TPv3_PROTOCOL_MPLS, mpls_handle);
- dissector_add_uint("udp.port", UDP_PORT_MPLS_OVER_UDP, mpls_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_MPLS_OVER_UDP, mpls_handle);
dissector_add_uint("vxlan.next_proto", VXLAN_MPLS, mpls_handle);
mpls_pwcw_handle = create_dissector_handle( dissect_pw_mcw, proto_pw_mcw );
diff --git a/epan/dissectors/packet-mqtt-sn.c b/epan/dissectors/packet-mqtt-sn.c
index 8ed4725506..b01c721e9a 100644
--- a/epan/dissectors/packet-mqtt-sn.c
+++ b/epan/dissectors/packet-mqtt-sn.c
@@ -697,7 +697,7 @@ void proto_register_mqttsn(void)
/* Dissector Handoff */
void proto_reg_handoff_mqttsn(void)
{
- dissector_add_for_decode_as("udp.port", mqttsn_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", mqttsn_handle);
}
/*
diff --git a/epan/dissectors/packet-ms-mms.c b/epan/dissectors/packet-ms-mms.c
index 626e8d259a..c21361ba01 100644
--- a/epan/dissectors/packet-ms-mms.c
+++ b/epan/dissectors/packet-ms-mms.c
@@ -1882,7 +1882,7 @@ void proto_reg_handoff_msmms_command(void)
/* Control commands using TCP port */
dissector_add_uint_with_preference("tcp.port", MSMMS_PORT, msmms_handle);
/* Data command(s) using UDP port */
- dissector_add_uint("udp.port", MSMMS_PORT, msmms_handle);
+ dissector_add_uint_with_preference("udp.port", MSMMS_PORT, msmms_handle);
}
/*
diff --git a/epan/dissectors/packet-msproxy.c b/epan/dissectors/packet-msproxy.c
index 1dfd049548..ba8ee4a76e 100644
--- a/epan/dissectors/packet-msproxy.c
+++ b/epan/dissectors/packet-msproxy.c
@@ -1268,9 +1268,8 @@ proto_reg_handoff_msproxy(void) {
dissector_handle_t msproxy_handle;
- msproxy_handle = create_dissector_handle(dissect_msproxy,
- proto_msproxy);
- dissector_add_uint("udp.port", UDP_PORT_MSPROXY, msproxy_handle);
+ msproxy_handle = create_dissector_handle(dissect_msproxy, proto_msproxy);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_MSPROXY, msproxy_handle);
}
/*
diff --git a/epan/dissectors/packet-nat-pmp.c b/epan/dissectors/packet-nat-pmp.c
index cf5530129e..5c4f597e62 100644
--- a/epan/dissectors/packet-nat-pmp.c
+++ b/epan/dissectors/packet-nat-pmp.c
@@ -44,8 +44,7 @@
void proto_register_nat_pmp(void);
void proto_reg_handoff_nat_pmp(void);
-#define PCP_STATUS_PORT 5350
-#define PCP_PORT 5351
+#define PCP_PORT_RANGE "5350-5351"
/* NAT Port opcodes */
#define EXTERNAL_ADDRESS_REQUEST 0
@@ -825,17 +824,15 @@ void proto_reg_handoff_nat_pmp(void)
dissector_handle_t nat_pmp_handle;
dissector_handle_t pcp_handle;
-
pcp_handle = create_dissector_handle(dissect_portcontrol, proto_pcp);
- dissector_add_uint("udp.port", PCP_STATUS_PORT, pcp_handle);
- dissector_add_uint("udp.port", PCP_PORT, pcp_handle);
+ dissector_add_uint_range_with_preference("udp.port", PCP_PORT_RANGE, pcp_handle);
nat_pmp_handle = create_dissector_handle(dissect_nat_pmp, proto_nat_pmp);
/* Port Control Protocol (packet-portcontrol.c) shares the same UDP ports as
NAT-PMP, but it backwards compatible. However, still let NAT-PMP
use Decode As
*/
- dissector_add_for_decode_as("udp.port", nat_pmp_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", nat_pmp_handle);
}
/*
diff --git a/epan/dissectors/packet-nb_rtpmux.c b/epan/dissectors/packet-nb_rtpmux.c
index a378f4a6fd..a68975f532 100644
--- a/epan/dissectors/packet-nb_rtpmux.c
+++ b/epan/dissectors/packet-nb_rtpmux.c
@@ -24,7 +24,6 @@
#include "config.h"
#include <epan/packet.h>
-#include <epan/prefs.h>
void proto_register_nb_rtpmux(void);
void proto_reg_handoff_nb_rtpmux(void);
@@ -47,13 +46,6 @@ static gint ett_nb_rtpmux_cmp_rtp_hdr = -1;
static dissector_handle_t rtpdissector;
-/* There appears not to be a standard port or range of ports that can be used here. */
-/* For 3G, could potentially get it from HNB Register Accept... */
-#define UDP_PORT_NB_RTPMUX_RANGE "0"
-
-/* Preference settings */
-static range_t *global_nb_rtpmux_port_range;
-
static int
dissect_nb_rtpmux(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
@@ -248,57 +240,22 @@ proto_register_nb_rtpmux(void)
&ett_nb_rtpmux_cmp_rtp_hdr
};
- module_t *nb_rtpmux_module;
-
/* Register the protocol name and description */
- proto_nb_rtpmux = proto_register_protocol("3GPP Nb Interface RTP Multiplex",
- "NB_RTPMUX", "nb_rtpmux");
+ proto_nb_rtpmux = proto_register_protocol("3GPP Nb Interface RTP Multiplex", "NB_RTPMUX", "nb_rtpmux");
/* Required function calls to register the header fields and subtrees used */
proto_register_field_array(proto_nb_rtpmux, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
-
- /* Set default UDP ports */
- range_convert_str(&global_nb_rtpmux_port_range, UDP_PORT_NB_RTPMUX_RANGE, MAX_UDP_PORT);
-
- nb_rtpmux_module = prefs_register_protocol(proto_nb_rtpmux, proto_reg_handoff_nb_rtpmux);
- prefs_register_range_preference(nb_rtpmux_module, "udp_ports",
- "NB RTPMUX server port numbers",
- "UDP port numbers used for NB RTPMUX traffic "
- "(default " UDP_PORT_NB_RTPMUX_RANGE ")",
- &global_nb_rtpmux_port_range, MAX_UDP_PORT);
}
void
proto_reg_handoff_nb_rtpmux(void)
{
- static range_t *nb_rtpmux_port_range;
- static gboolean nb_rtpmux_initialized = FALSE;
dissector_handle_t nb_rtpmux_handle;
- /* Use create_dissector_handle() to indicate that dissect_nb_rtpmux()
- * returns the number of bytes it dissected (or 0 if it thinks the packet
- * does not belong to PROTONAME).
- */
- nb_rtpmux_handle = create_dissector_handle(dissect_nb_rtpmux,
- proto_nb_rtpmux);
-
- if (!nb_rtpmux_initialized)
- {
- nb_rtpmux_initialized = TRUE;
- }
- else {
- /* Remove and delete previous UDP port range */
- dissector_delete_uint_range("udp.port", nb_rtpmux_port_range, nb_rtpmux_handle);
- g_free(nb_rtpmux_port_range);
- }
-
- /* Set range of ports from preference to use this dissector */
- nb_rtpmux_port_range = range_copy(global_nb_rtpmux_port_range);
- dissector_add_uint_range("udp.port", nb_rtpmux_port_range, nb_rtpmux_handle);
+ nb_rtpmux_handle = create_dissector_handle(dissect_nb_rtpmux, proto_nb_rtpmux);
+ dissector_add_uint_range_with_preference("udp.port", "", nb_rtpmux_handle);
- /* Allow 'decode-as' for UDP ports */
- dissector_add_for_decode_as("udp.port", nb_rtpmux_handle);
rtpdissector = find_dissector_add_dependency("rtp", proto_nb_rtpmux);
}
diff --git a/epan/dissectors/packet-nbt.c b/epan/dissectors/packet-nbt.c
index cceaaee562..d4df6f8a76 100644
--- a/epan/dissectors/packet-nbt.c
+++ b/epan/dissectors/packet-nbt.c
@@ -2086,10 +2086,10 @@ proto_reg_handoff_nbt(void)
dissector_handle_t nbns_handle, nbdgm_handle, nbss_handle;
nbns_handle = create_dissector_handle(dissect_nbns, proto_nbns);
- dissector_add_uint("udp.port", UDP_PORT_NBNS, nbns_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_NBNS, nbns_handle);
nbdgm_handle = create_dissector_handle(dissect_nbdgm, proto_nbdgm);
- dissector_add_uint("udp.port", UDP_PORT_NBDGM, nbdgm_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_NBDGM, nbdgm_handle);
nbss_handle = create_dissector_handle(dissect_nbss, proto_nbss);
dissector_add_uint_range_with_preference("tcp.port", TCP_NBSS_PORT_RANGE, nbss_handle);
diff --git a/epan/dissectors/packet-netdump.c b/epan/dissectors/packet-netdump.c
index 5dec2cc4fd..1246c9b7dd 100644
--- a/epan/dissectors/packet-netdump.c
+++ b/epan/dissectors/packet-netdump.c
@@ -25,7 +25,6 @@
#include "config.h"
#include <epan/packet.h>
-#include <epan/prefs.h>
void proto_register_netdump(void);
void proto_reg_handoff_netdump(void);
@@ -42,9 +41,6 @@ static int hf_netdump_code = -1;
static int hf_netdump_info = -1;
static int hf_netdump_version = -1;
-/* Global sample port pref */
-static guint gPORT_PREF = 0;
-
/* Initialize the subtree pointers */
static gint ett_netdump = -1;
@@ -114,8 +110,6 @@ dissect_netdump(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data
void proto_register_netdump(void)
{
- module_t *netdump_module;
-
/* Setup protocol subtree array */
static gint *ett[] = {
&ett_netdump
@@ -178,45 +172,18 @@ void proto_register_netdump(void)
}
};
- proto_netdump = proto_register_protocol (
- "Netdump Protocol", /* name */
- "Netdump", /* short name */
- "netdump" /* abbrev */
- );
+ proto_netdump = proto_register_protocol ("Netdump Protocol", "Netdump", "netdump" );
proto_register_field_array(proto_netdump, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
-
- netdump_module = prefs_register_protocol(proto_netdump,
- proto_reg_handoff_netdump);
-
- /* Register a sample port preference */
- prefs_register_uint_preference(netdump_module, "udp.port",
- "Netdump UDP port",
- "port if other than the default",
- 10, &gPORT_PREF);
}
void proto_reg_handoff_netdump(void)
{
- static gboolean initalized = FALSE;
- static dissector_handle_t netdump_handle;
- static int CurrentPort;
-
- if (!initalized) {
- netdump_handle = create_dissector_handle(dissect_netdump,
- proto_netdump);
-
- dissector_add_for_decode_as("udp.port", netdump_handle);
- initalized = TRUE;
- } else {
- if (CurrentPort != 0)
- dissector_delete_uint("udp.port", CurrentPort, netdump_handle);
- }
+ dissector_handle_t netdump_handle;
- CurrentPort = gPORT_PREF;
+ netdump_handle = create_dissector_handle(dissect_netdump, proto_netdump);
- if (CurrentPort != 0)
- dissector_add_uint("udp.port", CurrentPort, netdump_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", netdump_handle);
}
/*
diff --git a/epan/dissectors/packet-newmail.c b/epan/dissectors/packet-newmail.c
index 80cbc84d5d..0cf16a599a 100644
--- a/epan/dissectors/packet-newmail.c
+++ b/epan/dissectors/packet-newmail.c
@@ -24,14 +24,10 @@
#include "config.h"
#include <epan/packet.h>
-#include <epan/prefs.h>
void proto_register_newmail(void);
void proto_reg_handoff_newmail(void);
-/* Variables for preferences */
-static guint preference_default_port = 0;
-
/* Initialize the protocol and registered fields */
static int proto_newmail = -1;
static int hf_newmail_payload = -1;
@@ -83,50 +79,21 @@ proto_register_newmail(void)
&ett_newmail,
};
- module_t *newmail_module;
-
- proto_newmail = proto_register_protocol("Microsoft Exchange New Mail Notification",
- "NEWMAIL", "newmail");
+ proto_newmail = proto_register_protocol("Microsoft Exchange New Mail Notification", "NEWMAIL", "newmail");
proto_register_field_array(proto_newmail, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
register_dissector("newmail", dissect_newmail, proto_newmail);
-
- newmail_module = prefs_register_protocol(proto_newmail,
- proto_reg_handoff_newmail);
-
- prefs_register_uint_preference(newmail_module,
- "default_port",
- "Default UDP port (optional)",
- "Always dissect this port's traffic as newmail notifications."
- " Additional ports will be dynamically registered as they"
- " are seen in MAPI register push notification packets.",
- 10, &preference_default_port);
-
}
void
proto_reg_handoff_newmail(void)
{
- static gboolean inited = FALSE;
- static dissector_handle_t newmail_handle;
- static guint preference_default_port_last;
-
- if(!inited) {
- newmail_handle = find_dissector("newmail");
- dissector_add_for_decode_as("udp.port", newmail_handle);
- inited = TRUE;
- } else {
- if (preference_default_port_last != 0) {
- dissector_delete_uint("udp.port", preference_default_port_last, newmail_handle);
- }
- }
+ dissector_handle_t newmail_handle;
- if(preference_default_port != 0) {
- dissector_add_uint("udp.port", preference_default_port, newmail_handle);
- }
- preference_default_port_last = preference_default_port;
+ newmail_handle = find_dissector("newmail");
+ dissector_add_for_decode_as_with_preference("udp.port", newmail_handle);
}
/*
diff --git a/epan/dissectors/packet-nordic_ble.c b/epan/dissectors/packet-nordic_ble.c
index 596cc18117..902bb2df58 100644
--- a/epan/dissectors/packet-nordic_ble.c
+++ b/epan/dissectors/packet-nordic_ble.c
@@ -706,24 +706,19 @@ proto_register_nordic_ble(void)
void
proto_reg_handoff_nordic_ble(void)
{
- static gboolean initialized = FALSE;
- static dissector_handle_t nordic_ble_handle;
+ dissector_handle_t nordic_ble_handle;
/*static int currentPort;*/
- if (!initialized) {
- nordic_ble_handle = create_dissector_handle(dissect_nordic_ble, proto_nordic_ble);
+ nordic_ble_handle = create_dissector_handle(dissect_nordic_ble, proto_nordic_ble);
- btle_dissector_handle = find_dissector("btle");
- debug_handle = find_dissector("nordic_debug");
- initialized = TRUE;
- }
+ btle_dissector_handle = find_dissector("btle");
+ debug_handle = find_dissector("nordic_debug");
#ifdef TRANSPARENT
- dissector_add_uint("udp.port", udp_port, btle_dissector_handle);
+ dissector_add_uint_with_preference("udp.port", udp_port, btle_dissector_handle);
#else
- /*dissector_add_uint("udp.port", udp_port, nordic_ble_handle);*/
/*dissector_add_uint("wtap_encap", user_dlt_num, nordic_ble_handle);*/
- dissector_add_for_decode_as("udp.port", nordic_ble_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", nordic_ble_handle);
#endif
}
diff --git a/epan/dissectors/packet-nsip.c b/epan/dissectors/packet-nsip.c
index 93b9ce68a5..c43386e478 100644
--- a/epan/dissectors/packet-nsip.c
+++ b/epan/dissectors/packet-nsip.c
@@ -37,8 +37,7 @@ void proto_reg_handoff_nsip(void);
#define NSIP_DEBUG 0
#define NSIP_SEP ", " /* Separator string */
-static range_t *global_nsip_udp_port_range;
-#define DEFAULT_NSIP_PORT_RANGE "2157,19999"
+#define DEFAULT_NSIP_PORT_RANGE "2157,19999" /* Not IANA registered */
/* Initialize the protocol and registered fields */
static int proto_nsip = -1;
@@ -1140,8 +1139,7 @@ proto_register_nsip(void)
module_t *nsip_module;
/* Register the protocol name and description */
- proto_nsip = proto_register_protocol("GPRS Network Service",
- "GPRS-NS", "gprs-ns");
+ proto_nsip = proto_register_protocol("GPRS Network Service", "GPRS-NS", "gprs-ns");
/* Required function calls to register the header fields and
subtrees used */
@@ -1150,36 +1148,19 @@ proto_register_nsip(void)
register_dissector("gprs_ns", dissect_nsip, proto_nsip);
- /* Set default UDP ports */
- range_convert_str(&global_nsip_udp_port_range, DEFAULT_NSIP_PORT_RANGE, MAX_UDP_PORT);
-
/* Register configuration options */
- nsip_module = prefs_register_protocol(proto_nsip, proto_reg_handoff_nsip);
+ nsip_module = prefs_register_protocol(proto_nsip, NULL);
prefs_register_obsolete_preference(nsip_module, "udp.port1");
prefs_register_obsolete_preference(nsip_module, "udp.port2");
- prefs_register_range_preference(nsip_module, "udp.ports", "GPRS-NS UDP ports",
- "UDP ports to be decoded as GPRS-NS (default: "
- DEFAULT_NSIP_PORT_RANGE ")",
- &global_nsip_udp_port_range, MAX_UDP_PORT);
}
void
proto_reg_handoff_nsip(void) {
- static gboolean nsip_prefs_initialized = FALSE;
- static range_t *nsip_udp_port_range;
-
- if (!nsip_prefs_initialized) {
- nsip_handle = find_dissector_add_dependency("gprs_ns", proto_nsip);
- bssgp_handle = find_dissector_add_dependency("bssgp", proto_nsip);
- nsip_prefs_initialized = TRUE;
- } else {
- dissector_delete_uint_range("udp.port", nsip_udp_port_range, nsip_handle);
- g_free(nsip_udp_port_range);
- }
- nsip_udp_port_range = range_copy(global_nsip_udp_port_range);
+ nsip_handle = find_dissector_add_dependency("gprs_ns", proto_nsip);
+ bssgp_handle = find_dissector_add_dependency("bssgp", proto_nsip);
- dissector_add_uint_range("udp.port", nsip_udp_port_range, nsip_handle);
+ dissector_add_uint_range_with_preference("udp.port", DEFAULT_NSIP_PORT_RANGE, nsip_handle);
dissector_add_uint("atm.aal5.type", TRAF_GPRS_NS, nsip_handle);
}
diff --git a/epan/dissectors/packet-nt-tpcp.c b/epan/dissectors/packet-nt-tpcp.c
index 8b2f1940f5..d3567b4813 100644
--- a/epan/dissectors/packet-nt-tpcp.c
+++ b/epan/dissectors/packet-nt-tpcp.c
@@ -30,7 +30,7 @@
void proto_register_tpcp(void);
void proto_reg_handoff_tpcp(void);
-#define UDP_PORT_TPCP 3121
+#define UDP_PORT_TPCP 3121 /* Not IANA registered */
/* TPCP version1/2 PDU format */
typedef struct _tpcppdu_t {
@@ -232,8 +232,7 @@ proto_register_tpcp(void)
&ett_tpcp_flags,
};
- proto_tpcp = proto_register_protocol("Alteon - Transparent Proxy Cache Protocol",
- "TPCP", "tpcp");
+ proto_tpcp = proto_register_protocol("Alteon - Transparent Proxy Cache Protocol", "TPCP", "tpcp");
proto_register_field_array(proto_tpcp, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
}
@@ -244,7 +243,7 @@ proto_reg_handoff_tpcp(void)
dissector_handle_t tpcp_handle;
tpcp_handle = create_dissector_handle(dissect_tpcp, proto_tpcp);
- dissector_add_uint("udp.port", UDP_PORT_TPCP, tpcp_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_TPCP, tpcp_handle);
}
/*
diff --git a/epan/dissectors/packet-ntp.c b/epan/dissectors/packet-ntp.c
index b073ae7872..cfd2cf3e3e 100644
--- a/epan/dissectors/packet-ntp.c
+++ b/epan/dissectors/packet-ntp.c
@@ -1704,7 +1704,7 @@ proto_reg_handoff_ntp(void)
dissector_handle_t ntp_handle;
ntp_handle = create_dissector_handle(dissect_ntp, proto_ntp);
- dissector_add_uint("udp.port", UDP_PORT_NTP, ntp_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_NTP, ntp_handle);
dissector_add_uint_with_preference("tcp.port", TCP_PORT_NTP, ntp_handle);
}
diff --git a/epan/dissectors/packet-nwmtp.c b/epan/dissectors/packet-nwmtp.c
index c42386ca27..5df4f0196d 100644
--- a/epan/dissectors/packet-nwmtp.c
+++ b/epan/dissectors/packet-nwmtp.c
@@ -163,7 +163,7 @@ void proto_register_mwmtp(void)
void proto_reg_handoff_nwmtp(void)
{
- dissector_add_for_decode_as("udp.port", nwmtp_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", nwmtp_handle);
mtp_handle = find_dissector_add_dependency("mtp3", proto_nwmtp);
}
diff --git a/epan/dissectors/packet-obex.c b/epan/dissectors/packet-obex.c
index 0c75cdeb73..4b85d7b280 100644
--- a/epan/dissectors/packet-obex.c
+++ b/epan/dissectors/packet-obex.c
@@ -3960,7 +3960,7 @@ proto_reg_handoff_obex(void)
dissector_add_for_decode_as("usb.device", obex_handle);
dissector_add_for_decode_as("usb.protocol", obex_handle);
dissector_add_for_decode_as_with_preference("tcp.port", obex_handle);
- dissector_add_for_decode_as("udp.port", obex_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", obex_handle);
}
/*
diff --git a/epan/dissectors/packet-oicq.c b/epan/dissectors/packet-oicq.c
index 4063038209..8e33dbe0e0 100644
--- a/epan/dissectors/packet-oicq.c
+++ b/epan/dissectors/packet-oicq.c
@@ -48,7 +48,7 @@ void proto_reg_handoff_oicq(void);
*/
/* By default, but can be completely different */
-#define UDP_PORT_OICQ 8000
+#define UDP_PORT_OICQ 8000 /* Not IANA regisrered */
static int proto_oicq = -1;
@@ -185,8 +185,7 @@ proto_register_oicq(void)
&ett_oicq,
};
- proto_oicq = proto_register_protocol("OICQ - IM software, popular in China", "OICQ",
- "oicq");
+ proto_oicq = proto_register_protocol("OICQ - IM software, popular in China", "OICQ", "oicq");
proto_register_field_array(proto_oicq, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
}
@@ -197,7 +196,7 @@ proto_reg_handoff_oicq(void)
dissector_handle_t oicq_handle;
oicq_handle = create_dissector_handle(dissect_oicq, proto_oicq);
- dissector_add_uint("udp.port", UDP_PORT_OICQ, oicq_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_OICQ, oicq_handle);
}
/*
diff --git a/epan/dissectors/packet-olsr.c b/epan/dissectors/packet-olsr.c
index 1a9cd7bedb..a338411f92 100644
--- a/epan/dissectors/packet-olsr.c
+++ b/epan/dissectors/packet-olsr.c
@@ -995,7 +995,7 @@ void proto_reg_handoff_olsr(void) {
dissector_handle_t olsr_handle;
olsr_handle = create_dissector_handle(dissect_olsr, proto_olsr);
- dissector_add_uint("udp.port", UDP_PORT_OLSR, olsr_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_OLSR, olsr_handle);
}
/*
diff --git a/epan/dissectors/packet-omron-fins.c b/epan/dissectors/packet-omron-fins.c
index 6e8dfcf9c5..846b307159 100644
--- a/epan/dissectors/packet-omron-fins.c
+++ b/epan/dissectors/packet-omron-fins.c
@@ -35,7 +35,7 @@
void proto_register_omron_fins(void);
void proto_reg_handoff_omron_fins(void);
-#define OMRON_FINS_UDP_PORT 9600
+#define OMRON_FINS_UDP_PORT 9600 /* Not IANA registered */
static int proto_omron_fins = -1;
static gint ett_omron = -1;
@@ -3969,7 +3969,7 @@ proto_reg_handoff_omron_fins(void)
dissector_handle_t omron_fins_handle;
omron_fins_handle = create_dissector_handle(dissect_omron_fins, proto_omron_fins);
- dissector_add_uint("udp.port", OMRON_FINS_UDP_PORT, omron_fins_handle);
+ dissector_add_uint_with_preference("udp.port", OMRON_FINS_UDP_PORT, omron_fins_handle);
}
/*
diff --git a/epan/dissectors/packet-opensafety.c b/epan/dissectors/packet-opensafety.c
index 9a85c8f01d..6921c61acd 100644
--- a/epan/dissectors/packet-opensafety.c
+++ b/epan/dissectors/packet-opensafety.c
@@ -2439,6 +2439,7 @@ apply_prefs ( void )
opensafety_udp_siii_port_number = global_network_udp_port_sercosiii;
/* Default UDP only based dissector, will hand traffic to SIII dissector if needed */
+ /* Preference names to specific to use "auto" preference */
dissector_add_uint("udp.port", opensafety_udp_port_number, opensafety_udpdata_handle);
dissector_add_uint("udp.port", opensafety_udp_siii_port_number, opensafety_udpdata_handle);
diff --git a/epan/dissectors/packet-openvpn.c b/epan/dissectors/packet-openvpn.c
index 2d40d47085..df7af4982e 100644
--- a/epan/dissectors/packet-openvpn.c
+++ b/epan/dissectors/packet-openvpn.c
@@ -90,7 +90,6 @@ static dissector_handle_t ssl_handle;
static gboolean pref_long_format = TRUE;
static gboolean pref_tls_auth = FALSE;
static gboolean pref_tls_auth_override = FALSE;
-static guint pref_udp_port = OPENVPN_PORT;
static guint tls_auth_hmac_size = 20; /* Default SHA-1 160 Bits */
static const value_string openvpn_message_types[] =
@@ -615,13 +614,8 @@ proto_register_openvpn(void)
register_init_routine(&openvpn_reassemble_init);
register_cleanup_routine(&openvpn_reassemble_cleanup);
- openvpn_module = prefs_register_protocol(proto_openvpn, proto_reg_handoff_openvpn);
+ openvpn_module = prefs_register_protocol(proto_openvpn, NULL);
- prefs_register_uint_preference(openvpn_module,
- "udp.port",
- "OpenVPN UDP Port",
- "UDP Port of the OpenVPN tunnel",
- 10, &pref_udp_port);
prefs_register_bool_preference(openvpn_module,
"tls_auth_detection_override",
"override tls-auth detection",
@@ -655,22 +649,9 @@ proto_register_openvpn(void)
void
proto_reg_handoff_openvpn(void)
{
- static guint udp_port;
- static gboolean initialized = FALSE;
-
- if (! initialized) {
- ssl_handle = find_dissector_add_dependency("ssl", proto_openvpn);
- dissector_add_uint_with_preference("tcp.port", OPENVPN_PORT, openvpn_tcp_handle);
- initialized = TRUE;
- } else {
- if (udp_port > 0)
- dissector_delete_uint("udp.port", udp_port, openvpn_udp_handle);
- }
-
- udp_port = pref_udp_port;
-
- if (udp_port > 0)
- dissector_add_uint("udp.port", udp_port, openvpn_udp_handle);
+ ssl_handle = find_dissector_add_dependency("ssl", proto_openvpn);
+ dissector_add_uint_with_preference("tcp.port", OPENVPN_PORT, openvpn_tcp_handle);
+ dissector_add_uint_with_preference("udp.port", OPENVPN_PORT, openvpn_udp_handle);
}
/*
diff --git a/epan/dissectors/packet-p_mul.c b/epan/dissectors/packet-p_mul.c
index 3f83ce2867..84383625ec 100644
--- a/epan/dissectors/packet-p_mul.c
+++ b/epan/dissectors/packet-p_mul.c
@@ -211,7 +211,6 @@ static GHashTable *p_mul_id_hash_table = NULL;
static GList *p_mul_package_data_list = NULL;
/* User definable values to use for dissection */
-static range_t *global_p_mul_port_range;
static gboolean p_mul_reassemble = TRUE;
static gint decode_option = DECODE_NONE;
static gboolean use_relative_msgid = TRUE;
@@ -1592,23 +1591,14 @@ void proto_register_p_mul (void)
register_init_routine (&p_mul_init_routine);
register_cleanup_routine (&p_mul_cleanup_routine);
- /* Set default UDP ports */
- range_convert_str (&global_p_mul_port_range, DEFAULT_P_MUL_PORT_RANGE,
- MAX_UDP_PORT);
-
/* Register our configuration options */
- p_mul_module = prefs_register_protocol (proto_p_mul,
- proto_reg_handoff_p_mul);
+ p_mul_module = prefs_register_protocol (proto_p_mul, NULL);
prefs_register_obsolete_preference (p_mul_module, "tport");
prefs_register_obsolete_preference (p_mul_module, "rport");
prefs_register_obsolete_preference (p_mul_module, "dport");
prefs_register_obsolete_preference (p_mul_module, "aport");
- prefs_register_range_preference (p_mul_module, "udp_ports",
- "P_Mul port numbers",
- "Port numbers used for P_Mul traffic",
- &global_p_mul_port_range, MAX_UDP_PORT);
prefs_register_bool_preference (p_mul_module, "reassemble",
"Reassemble fragmented P_Mul packets",
"Reassemble fragmented P_Mul packets",
@@ -1630,21 +1620,8 @@ void proto_register_p_mul (void)
void proto_reg_handoff_p_mul (void)
{
- static gboolean p_mul_prefs_initialized = FALSE;
- static range_t *p_mul_port_range;
-
- if (!p_mul_prefs_initialized) {
- p_mul_prefs_initialized = TRUE;
- dissector_add_uint ("s5066sis.ctl.appid", S5066_CLIENT_S4406_ANNEX_E_TMI_1_P_MUL, p_mul_handle);
- } else {
- dissector_delete_uint_range ("udp.port", p_mul_port_range, p_mul_handle);
- g_free (p_mul_port_range);
- }
-
- /* Save port number for later deletion */
- p_mul_port_range = range_copy (global_p_mul_port_range);
-
- dissector_add_uint_range ("udp.port", p_mul_port_range, p_mul_handle);
+ dissector_add_uint ("s5066sis.ctl.appid", S5066_CLIENT_S4406_ANNEX_E_TMI_1_P_MUL, p_mul_handle);
+ dissector_add_uint_range_with_preference("udp.port", DEFAULT_P_MUL_PORT_RANGE, p_mul_handle);
}
/*
diff --git a/epan/dissectors/packet-packetbb.c b/epan/dissectors/packet-packetbb.c
index 6de5857243..2adb62b707 100644
--- a/epan/dissectors/packet-packetbb.c
+++ b/epan/dissectors/packet-packetbb.c
@@ -27,7 +27,6 @@
#include <epan/packet.h>
-#include <epan/prefs.h>
#include <epan/expert.h>
void proto_reg_handoff_packetbb(void);
@@ -100,7 +99,8 @@ const value_string addrtlv_type_vals[] = {
{ 0, NULL }};
static int proto_packetbb = -1;
-static guint global_packetbb_port = 269;
+
+#define PACKETBB_PORT 269 /* Not IANA registered */
static int hf_packetbb_header = -1;
static int hf_packetbb_version = -1;
@@ -789,20 +789,10 @@ static int dissect_packetbb(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
}
void proto_reg_handoff_packetbb(void) {
- static gboolean packetbb_prefs_initialized = FALSE;
- static dissector_handle_t packetbb_handle;
- static guint packetbb_udp_port;
+ dissector_handle_t packetbb_handle;
- if (!packetbb_prefs_initialized) {
- packetbb_handle = create_dissector_handle(dissect_packetbb, proto_packetbb);
- packetbb_prefs_initialized = TRUE;
- }
- else {
- dissector_delete_uint("udp.port", global_packetbb_port, packetbb_handle);
- }
-
- packetbb_udp_port = global_packetbb_port;
- dissector_add_uint("udp.port", packetbb_udp_port, packetbb_handle);
+ packetbb_handle = create_dissector_handle(dissect_packetbb, proto_packetbb);
+ dissector_add_uint_with_preference("udp.port", PACKETBB_PORT, packetbb_handle);
}
void proto_register_packetbb(void) {
@@ -1121,7 +1111,6 @@ void proto_register_packetbb(void) {
};
static gint *ett[array_length(ett_base) + 2*PACKETBB_MSG_TLV_LENGTH];
- module_t *packetbb_module;
expert_module_t* expert_packetbb;
int i,j;
@@ -1136,20 +1125,13 @@ void proto_register_packetbb(void) {
}
/* name, short name, abbrev */
- proto_packetbb = proto_register_protocol("PacketBB Protocol", "PacketBB",
- "packetbb");
+ proto_packetbb = proto_register_protocol("PacketBB Protocol", "PacketBB", "packetbb");
/* Required function calls to register the header fields and subtrees used */
proto_register_field_array(proto_packetbb, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
expert_packetbb = expert_register_protocol(proto_packetbb);
expert_register_field_array(expert_packetbb, ei, array_length(ei));
-
- /* configurable packetbb port */
- packetbb_module = prefs_register_protocol(proto_packetbb, proto_reg_handoff_packetbb);
- prefs_register_uint_preference(packetbb_module, "communication_port",
- "UDP port for packetbb", "UDP communication port for packetbb PDUs",
- 10, &global_packetbb_port);
}
/*
diff --git a/epan/dissectors/packet-pana.c b/epan/dissectors/packet-pana.c
index 6be6c215e8..299230737f 100644
--- a/epan/dissectors/packet-pana.c
+++ b/epan/dissectors/packet-pana.c
@@ -888,7 +888,7 @@ proto_reg_handoff_pana(void)
heur_dissector_add("udp", dissect_pana, "PANA over UDP", "pana_udp", proto_pana, HEURISTIC_ENABLE);
pana_handle = create_dissector_handle(dissect_pana, proto_pana);
- dissector_add_for_decode_as("udp.port", pana_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", pana_handle);
eap_handle = find_dissector_add_dependency("eap", proto_pana);
diff --git a/epan/dissectors/packet-pathport.c b/epan/dissectors/packet-pathport.c
index 23b57eca31..fa57b4debc 100644
--- a/epan/dissectors/packet-pathport.c
+++ b/epan/dissectors/packet-pathport.c
@@ -26,7 +26,7 @@
#include <epan/to_str.h>
-#define PATHPORT_UDP_PORT 3792
+#define PATHPORT_UDP_PORT 3792 /* Not IANA registered */
#define PATHPORT_MIN_LENGTH 24 /* HEADER + 1 PDU */
#define PATHPORT_PROTO_MAGIC 0xed01
@@ -696,7 +696,7 @@ proto_reg_handoff_pathport(void)
pathport_handle = create_dissector_handle(dissect_pathport, proto_pathport);
heur_dissector_add("udp", dissect_pathport_heur, "Pathport over UDP", "pathport_udp", proto_pathport, HEURISTIC_ENABLE);
- dissector_add_uint("udp.port", PATHPORT_UDP_PORT, pathport_handle);
+ dissector_add_uint_with_preference("udp.port", PATHPORT_UDP_PORT, pathport_handle);
}
/*
diff --git a/epan/dissectors/packet-pcli.c b/epan/dissectors/packet-pcli.c
index 3f2611bbad..4f21ac3f71 100644
--- a/epan/dissectors/packet-pcli.c
+++ b/epan/dissectors/packet-pcli.c
@@ -259,7 +259,7 @@ proto_register_pcli(void)
proto_register_field_array(proto_pcli,hf,array_length(hf));
proto_register_subtree_array(ett,array_length(ett));
- pcli_module = prefs_register_protocol(proto_pcli, proto_reg_handoff_pcli);
+ pcli_module = prefs_register_protocol(proto_pcli, NULL);
prefs_register_obsolete_preference(pcli_module, "udp_port");
prefs_register_bool_preference(pcli_module, "summary_in_tree",
@@ -279,21 +279,17 @@ proto_register_pcli(void)
void
proto_reg_handoff_pcli(void)
{
- static gboolean pcli_initialized = FALSE;
- static dissector_handle_t pcli_handle, pcli_handle8, pcli_handle12, pcli_handle20;
-
- if(!pcli_initialized) {
- pcli_handle = create_dissector_handle(dissect_pcli, proto_pcli);
- pcli_handle8 = create_dissector_handle(dissect_pcli8, proto_pcli8);
- pcli_handle12 = create_dissector_handle(dissect_pcli12, proto_pcli12);
- pcli_handle20 = create_dissector_handle(dissect_pcli20, proto_pcli20);
- pcli_initialized = TRUE;
- }
+ dissector_handle_t pcli_handle, pcli_handle8, pcli_handle12, pcli_handle20;
+
+ pcli_handle = create_dissector_handle(dissect_pcli, proto_pcli);
+ pcli_handle8 = create_dissector_handle(dissect_pcli8, proto_pcli8);
+ pcli_handle12 = create_dissector_handle(dissect_pcli12, proto_pcli12);
+ pcli_handle20 = create_dissector_handle(dissect_pcli20, proto_pcli20);
- dissector_add_for_decode_as("udp.port", pcli_handle);
- dissector_add_for_decode_as("udp.port", pcli_handle8);
- dissector_add_for_decode_as("udp.port", pcli_handle12);
- dissector_add_for_decode_as("udp.port", pcli_handle20);
+ dissector_add_for_decode_as_with_preference("udp.port", pcli_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", pcli_handle8);
+ dissector_add_for_decode_as_with_preference("udp.port", pcli_handle12);
+ dissector_add_for_decode_as_with_preference("udp.port", pcli_handle20);
}
/*
diff --git a/epan/dissectors/packet-peekremote.c b/epan/dissectors/packet-peekremote.c
index d497582b62..eb0dc63047 100644
--- a/epan/dissectors/packet-peekremote.c
+++ b/epan/dissectors/packet-peekremote.c
@@ -61,6 +61,8 @@
#define IS_ARUBA 0x01
+#define PEEKREMOTE_PORT 5000 /* Not IANA registered */
+
void proto_register_peekremote(void);
void proto_reg_handoff_peekremote(void);
@@ -688,7 +690,7 @@ proto_reg_handoff_peekremote(void)
{
wlan_radio_handle = find_dissector_add_dependency("wlan_radio", proto_peekremote);
- dissector_add_uint("udp.port", 5000, peekremote_handle);
+ dissector_add_uint_with_preference("udp.port", PEEKREMOTE_PORT, peekremote_handle);
heur_dissector_add("udp", dissect_peekremote_new, "OmniPeek Remote over UDP", "peekremote_udp", proto_peekremote, HEURISTIC_ENABLE);
}
diff --git a/epan/dissectors/packet-pgm.c b/epan/dissectors/packet-pgm.c
index d261ee09a8..7e552647f4 100644
--- a/epan/dissectors/packet-pgm.c
+++ b/epan/dissectors/packet-pgm.c
@@ -109,15 +109,6 @@ static gboolean pgm_check_checksum = TRUE;
#define PGM_OPT_REDIRECT_SIZE 12
#define PGM_OPT_FRAGMENT_SIZE 16
-/*
- * Udp port for UDP encapsulation
- */
-#define DEFAULT_UDP_ENCAP_UCAST_PORT 3055
-#define DEFAULT_UDP_ENCAP_MCAST_PORT 3056
-
-static guint udp_encap_ucast_port = 0;
-static guint udp_encap_mcast_port = 0;
-
static int proto_pgm = -1;
static int ett_pgm = -1;
static int ett_pgm_optbits = -1;
@@ -1383,8 +1374,7 @@ proto_register_pgm(void)
module_t *pgm_module;
expert_module_t* expert_pgm;
- proto_pgm = proto_register_protocol("Pragmatic General Multicast",
- "PGM", "pgm");
+ proto_pgm = proto_register_protocol("Pragmatic General Multicast", "PGM", "pgm");
proto_register_field_array(proto_pgm, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
@@ -1404,25 +1394,12 @@ proto_register_pgm(void)
* dissector_add_for_decode_as is called so that pgm
* is available for 'decode-as'
*/
- pgm_module = prefs_register_protocol(proto_pgm, proto_reg_handoff_pgm);
+ pgm_module = prefs_register_protocol(proto_pgm, NULL);
prefs_register_bool_preference(pgm_module, "check_checksum",
"Check the validity of the PGM checksum when possible",
"Whether to check the validity of the PGM checksum",
&pgm_check_checksum);
-
- prefs_register_uint_preference(pgm_module, "udp.encap_ucast_port",
- "PGM Encap Unicast Port (standard is 3055)",
- "PGM Encap is PGM packets encapsulated in UDP packets"
- " (Note: This option is off, i.e. port is 0, by default)",
- 10, &udp_encap_ucast_port);
-
- prefs_register_uint_preference(pgm_module, "udp.encap_mcast_port",
- "PGM Encap Multicast Port (standard is 3056)",
- "PGM Encap is PGM packets encapsulated in UDP packets"
- " (Note: This option is off, i.e. port is 0, by default)",
- 10, &udp_encap_mcast_port);
-
}
/* The registration hand-off routine */
@@ -1433,33 +1410,11 @@ proto_register_pgm(void)
void
proto_reg_handoff_pgm(void)
{
- static gboolean initialized = FALSE;
- static dissector_handle_t pgm_handle;
- static guint old_udp_encap_ucast_port;
- static guint old_udp_encap_mcast_port;
-
- if (! initialized) {
- pgm_handle = create_dissector_handle(dissect_pgm, proto_pgm);
- dissector_add_for_decode_as("udp.port", pgm_handle);
- dissector_add_uint("ip.proto", IP_PROTO_PGM, pgm_handle);
- initialized = TRUE;
- } else {
- if (old_udp_encap_ucast_port != 0) {
- dissector_delete_uint("udp.port", old_udp_encap_ucast_port, pgm_handle);
- }
- if (old_udp_encap_mcast_port != 0) {
- dissector_delete_uint("udp.port", old_udp_encap_mcast_port, pgm_handle);
- }
- }
+ dissector_handle_t pgm_handle;
- if (udp_encap_ucast_port != 0) {
- dissector_add_uint("udp.port", udp_encap_ucast_port, pgm_handle);
- }
- if (udp_encap_mcast_port != 0) {
- dissector_add_uint("udp.port", udp_encap_mcast_port, pgm_handle);
- }
- old_udp_encap_ucast_port = udp_encap_ucast_port;
- old_udp_encap_mcast_port = udp_encap_mcast_port;
+ pgm_handle = create_dissector_handle(dissect_pgm, proto_pgm);
+ dissector_add_uint_range_with_preference("udp.port", "", pgm_handle);
+ dissector_add_uint("ip.proto", IP_PROTO_PGM, pgm_handle);
}
/*
diff --git a/epan/dissectors/packet-pktc.c b/epan/dissectors/packet-pktc.c
index c1c162ad7d..e98f771adc 100644
--- a/epan/dissectors/packet-pktc.c
+++ b/epan/dissectors/packet-pktc.c
@@ -751,7 +751,7 @@ proto_reg_handoff_pktc(void)
dissector_handle_t pktc_handle;
pktc_handle = create_dissector_handle(dissect_pktc, proto_pktc);
- dissector_add_uint("udp.port", PKTC_PORT, pktc_handle);
+ dissector_add_uint_with_preference("udp.port", PKTC_PORT, pktc_handle);
}
@@ -812,7 +812,7 @@ proto_reg_handoff_pktc_mtafqdn(void)
dissector_handle_t pktc_mtafqdn_handle;
pktc_mtafqdn_handle = create_dissector_handle(dissect_pktc_mtafqdn, proto_pktc_mtafqdn);
- dissector_add_uint("udp.port", PKTC_MTAFQDN_PORT, pktc_mtafqdn_handle);
+ dissector_add_uint_with_preference("udp.port", PKTC_MTAFQDN_PORT, pktc_mtafqdn_handle);
}
/*
diff --git a/epan/dissectors/packet-pnrp.c b/epan/dissectors/packet-pnrp.c
index 5842cf00ee..794e6ca3c5 100644
--- a/epan/dissectors/packet-pnrp.c
+++ b/epan/dissectors/packet-pnrp.c
@@ -1486,7 +1486,7 @@ void proto_reg_handoff_pnrp(void)
{
dissector_handle_t pnrp_handle;
pnrp_handle = create_dissector_handle(dissect_pnrp, proto_pnrp);
- dissector_add_uint("udp.port",PNRP_PORT,pnrp_handle);
+ dissector_add_uint_with_preference("udp.port",PNRP_PORT,pnrp_handle);
}
/*
diff --git a/epan/dissectors/packet-ptp.c b/epan/dissectors/packet-ptp.c
index c74b682da5..117e554261 100644
--- a/epan/dissectors/packet-ptp.c
+++ b/epan/dissectors/packet-ptp.c
@@ -59,8 +59,7 @@
/**********************************************************/
/* Port definition's for PTP */
/**********************************************************/
-#define EVENT_PORT_PTP 319
-#define GENERAL_PORT_PTP 320
+#define PTP_PORT_RANGE "319-320"
/* END Port definition's for PTP */
void proto_register_ptp(void);
@@ -6258,8 +6257,7 @@ proto_reg_handoff_ptp(void)
ptp_handle = create_dissector_handle(dissect_ptp, proto_ptp);
ethertype_ptp_handle = create_dissector_handle(dissect_ptp_oE, proto_ptp);
- dissector_add_uint("udp.port", EVENT_PORT_PTP, ptp_handle);
- dissector_add_uint("udp.port", GENERAL_PORT_PTP, ptp_handle);
+ dissector_add_uint_range_with_preference("udp.port", PTP_PORT_RANGE, ptp_handle);
dissector_add_uint("ethertype", ETHERTYPE_PTP, ethertype_ptp_handle);
}
diff --git a/epan/dissectors/packet-pulse.c b/epan/dissectors/packet-pulse.c
index 658247287f..c08e15f011 100644
--- a/epan/dissectors/packet-pulse.c
+++ b/epan/dissectors/packet-pulse.c
@@ -29,12 +29,8 @@
# include "config.h"
#include <epan/packet.h>
-#include <epan/prefs.h>
-#define PORT_PULSE 539
-
-
-static guint pulse_port = PORT_PULSE;
+#define PORT_PULSE 539 /* Not IANA registered */
void proto_register_pulse(void);
void proto_reg_handoff_pulse(void);
@@ -94,8 +90,6 @@ dissect_pulse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void*
void
proto_register_pulse(void)
{
- module_t *pulse_module;
-
static hf_register_info hf[] = {
{ &hf_pulse_magic,
{ "Magic", "pulse.magic",
@@ -108,42 +102,17 @@ proto_register_pulse(void)
};
- proto_pulse = proto_register_protocol("PULSE protocol for Linux Virtual Server redundancy",
- "PULSE",
- "pulse");
+ proto_pulse = proto_register_protocol("PULSE protocol for Linux Virtual Server redundancy", "PULSE", "pulse");
proto_register_field_array(proto_pulse, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
-
- pulse_module = prefs_register_protocol(proto_pulse, proto_reg_handoff_pulse);
- prefs_register_uint_preference(pulse_module, "udp.port",
- "UDP Port",
- "Set the UDP port for pulse",
- 10,
- &pulse_port);
}
void
proto_reg_handoff_pulse(void)
{
- static gboolean initialized = FALSE;
-
- static int port = 0;
-
- static dissector_handle_t pulse_handle;
-
- if (initialized)
- {
- dissector_delete_uint("udp.port", port, pulse_handle);
- }
- else
- {
- pulse_handle = create_dissector_handle(dissect_pulse,
- proto_pulse);
- initialized = TRUE;
- }
-
- port = pulse_port;
- dissector_add_uint("udp.port", port, pulse_handle);
+ dissector_handle_t pulse_handle;
+ pulse_handle = create_dissector_handle(dissect_pulse, proto_pulse);
+ dissector_add_uint_with_preference("udp.port", PORT_PULSE, pulse_handle);
}
/*
diff --git a/epan/dissectors/packet-pw-cesopsn.c b/epan/dissectors/packet-pw-cesopsn.c
index 085c24fca8..5f581341c4 100644
--- a/epan/dissectors/packet-pw-cesopsn.c
+++ b/epan/dissectors/packet-pw-cesopsn.c
@@ -457,7 +457,7 @@ void proto_reg_handoff_pw_cesopsn(void)
pw_cesopsn_mpls_handle = create_dissector_handle( dissect_pw_cesopsn_mpls, proto );
dissector_add_for_decode_as("mpls.label", pw_cesopsn_mpls_handle);
- dissector_add_for_decode_as("udp.port", find_dissector("pw_cesopsn_udp"));
+ dissector_add_for_decode_as_with_preference("udp.port", find_dissector("pw_cesopsn_udp"));
return;
}
diff --git a/epan/dissectors/packet-pw-satop.c b/epan/dissectors/packet-pw-satop.c
index a66dc070a1..5905bf9170 100644
--- a/epan/dissectors/packet-pw-satop.c
+++ b/epan/dissectors/packet-pw-satop.c
@@ -473,7 +473,7 @@ void proto_reg_handoff_pw_satop(void)
pw_satop_mpls_handle = create_dissector_handle( dissect_pw_satop_mpls, proto );
dissector_add_for_decode_as("mpls.label", pw_satop_mpls_handle);
- dissector_add_for_decode_as("udp.port", find_dissector("pw_satop_udp"));
+ dissector_add_for_decode_as_with_preference("udp.port", find_dissector("pw_satop_udp"));
}
/*
diff --git a/epan/dissectors/packet-quake.c b/epan/dissectors/packet-quake.c
index 58c57d6994..77cde0daae 100644
--- a/epan/dissectors/packet-quake.c
+++ b/epan/dissectors/packet-quake.c
@@ -29,7 +29,6 @@
#include <epan/packet.h>
#include <epan/conversation.h>
-#include <epan/prefs.h>
void proto_register_quake(void);
@@ -80,7 +79,6 @@ static dissector_handle_t quake_handle;
/* I took these names directly out of the Q1 source. */
#define NET_HEADERSIZE 8
#define DEFAULTnet_hostport 26000
-static guint gbl_quakeServerPort=DEFAULTnet_hostport;
#define NETFLAG_DATA 0x0001
#define NETFLAG_ACK 0x0002
@@ -581,40 +579,18 @@ proto_register_quake(void)
&ett_quake_control_colors,
&ett_quake_flags,
};
- module_t *quake_module;
- proto_quake = proto_register_protocol("Quake Network Protocol",
- "QUAKE", "quake");
+ proto_quake = proto_register_protocol("Quake Network Protocol", "QUAKE", "quake");
proto_register_field_array(proto_quake, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
-
- /* Register a configuration option for port */
- quake_module = prefs_register_protocol(proto_quake,
- proto_reg_handoff_quake);
- prefs_register_uint_preference(quake_module, "udp.port",
- "Quake Server UDP Port",
- "Set the UDP port for the Quake Server",
- 10, &gbl_quakeServerPort);
}
void
proto_reg_handoff_quake(void)
{
- static gboolean Initialized=FALSE;
- static guint ServerPort;
-
- if (!Initialized) {
- quake_handle = create_dissector_handle(dissect_quake, proto_quake);
- Initialized=TRUE;
- } else {
- dissector_delete_uint("udp.port", ServerPort, quake_handle);
- }
-
- /* set port for future deletes */
- ServerPort=gbl_quakeServerPort;
-
- dissector_add_uint("udp.port", gbl_quakeServerPort, quake_handle);
+ quake_handle = create_dissector_handle(dissect_quake, proto_quake);
+ dissector_add_uint_with_preference("udp.port", DEFAULTnet_hostport, quake_handle);
}
/*
diff --git a/epan/dissectors/packet-quake2.c b/epan/dissectors/packet-quake2.c
index 5ca865a874..030c61a8b9 100644
--- a/epan/dissectors/packet-quake2.c
+++ b/epan/dissectors/packet-quake2.c
@@ -32,8 +32,10 @@
#include <epan/packet.h>
#include <epan/prefs.h>
+#include <epan/prefs-int.h>
void proto_register_quake2(void);
+void proto_reg_handoff_quake2(void);
static int proto_quake2 = -1;
@@ -79,7 +81,7 @@ static gint ett_quake2_game_clc_cmd_move_bitfield = -1;
static gint ett_quake2_game_clc_cmd_move_moves = -1;
-#define PORT_MASTER 27910
+#define PORT_MASTER 27910 /* Not IANA registered */
static guint gbl_quake2ServerPort=PORT_MASTER;
@@ -681,8 +683,13 @@ dissect_quake2(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _
return tvb_captured_length(tvb);
}
-
-void proto_reg_handoff_quake2(void);
+static void
+apply_quake2_prefs(void)
+{
+ /* Port preference used to determine client/server */
+ pref_t *quake2_port = prefs_find_preference(prefs_find_module("quake2"), "udp.port");
+ gbl_quake2ServerPort = *quake2_port->varp.uint;
+}
void
proto_register_quake2(void)
@@ -822,42 +829,22 @@ proto_register_quake2(void)
&ett_quake2_game_clc_cmd_move_moves,
&ett_quake2_game_clc_cmd_move_bitfield
};
- module_t *quake2_module;
- proto_quake2 = proto_register_protocol("Quake II Network Protocol",
- "QUAKE2", "quake2");
+ proto_quake2 = proto_register_protocol("Quake II Network Protocol", "QUAKE2", "quake2");
proto_register_field_array(proto_quake2, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
/* Register a configuration option for port */
- quake2_module = prefs_register_protocol(proto_quake2,
- proto_reg_handoff_quake2);
- prefs_register_uint_preference(quake2_module, "udp.port",
- "Quake II Server UDP Port",
- "Set the UDP port for the Quake II Server",
- 10, &gbl_quake2ServerPort);
+ prefs_register_protocol(proto_quake2, apply_quake2_prefs);
}
-
void
proto_reg_handoff_quake2(void)
{
- static gboolean Initialized=FALSE;
- static dissector_handle_t quake2_handle;
- static guint ServerPort;
-
- if (!Initialized) {
- quake2_handle = create_dissector_handle(dissect_quake2,
- proto_quake2);
- Initialized=TRUE;
- } else {
- dissector_delete_uint("udp.port", ServerPort, quake2_handle);
- }
-
- /* set port for future deletes */
- ServerPort=gbl_quake2ServerPort;
+ dissector_handle_t quake2_handle;
+ quake2_handle = create_dissector_handle(dissect_quake2, proto_quake2);
- dissector_add_uint("udp.port", gbl_quake2ServerPort, quake2_handle);
+ dissector_add_uint("udp.port", PORT_MASTER, quake2_handle);
}
/*
diff --git a/epan/dissectors/packet-quake3.c b/epan/dissectors/packet-quake3.c
index ed39a3c7ec..c3fa719827 100644
--- a/epan/dissectors/packet-quake3.c
+++ b/epan/dissectors/packet-quake3.c
@@ -557,14 +557,12 @@ proto_register_quake3(void)
};
module_t *quake3_module;
- proto_quake3 = proto_register_protocol("Quake III Arena Network Protocol",
- "QUAKE3", "quake3");
+ proto_quake3 = proto_register_protocol("Quake III Arena Network Protocol", "QUAKE3", "quake3");
proto_register_field_array(proto_quake3, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
/* Register a configuration option for port */
- quake3_module = prefs_register_protocol(proto_quake3,
- proto_reg_handoff_quake3);
+ quake3_module = prefs_register_protocol(proto_quake3, proto_reg_handoff_quake3);
prefs_register_uint_preference(quake3_module, "udp.arena_port",
"Quake III Arena Server UDP Base Port",
"Set the UDP base port for the Quake III Arena Server",
@@ -600,7 +598,7 @@ proto_reg_handoff_quake3(void)
server_port = gbl_quake3_server_port;
master_port = gbl_quake3_master_port;
- /* add dissectors */
+ /* add dissectors. Port preference names to specific to use "auto" */
for (i=0;i<4;i++)
dissector_add_uint("udp.port", gbl_quake3_server_port + i,
quake3_handle);
diff --git a/epan/dissectors/packet-quakeworld.c b/epan/dissectors/packet-quakeworld.c
index d22e3d13d1..e3616e34b8 100644
--- a/epan/dissectors/packet-quakeworld.c
+++ b/epan/dissectors/packet-quakeworld.c
@@ -30,7 +30,10 @@
#include <stdlib.h>
#include <epan/packet.h>
#include <epan/prefs.h>
+#include <epan/prefs-int.h>
+
void proto_register_quakeworld(void);
+void proto_reg_handoff_quakeworld(void);
static int proto_quakeworld = -1;
@@ -313,7 +316,7 @@ static const value_string names_direction[] = {
/* I took this name and value directly out of the QW source. */
-#define PORT_MASTER 27500
+#define PORT_MASTER 27500 /* Not IANA registered */
static guint gbl_quakeworldServerPort=PORT_MASTER;
@@ -685,8 +688,13 @@ dissect_quakeworld(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* da
return tvb_captured_length(tvb);
}
-
-void proto_reg_handoff_quakeworld(void);
+static void
+apply_quakeworld_prefs(void)
+{
+ /* Port preference used to determine client/server */
+ pref_t *quakeworld_port = prefs_find_preference(prefs_find_module("quakeworld"), "udp.port");
+ gbl_quakeworldServerPort = *quakeworld_port->varp.uint;
+}
void
proto_register_quakeworld(void)
@@ -794,42 +802,23 @@ proto_register_quakeworld(void)
&ett_quakeworld_game_clc,
&ett_quakeworld_game_svc
};
- module_t *quakeworld_module;
- proto_quakeworld = proto_register_protocol("QuakeWorld Network Protocol",
- "QUAKEWORLD", "quakeworld");
+ proto_quakeworld = proto_register_protocol("QuakeWorld Network Protocol", "QUAKEWORLD", "quakeworld");
proto_register_field_array(proto_quakeworld, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
/* Register a configuration option for port */
- quakeworld_module = prefs_register_protocol(proto_quakeworld,
- proto_reg_handoff_quakeworld);
- prefs_register_uint_preference(quakeworld_module, "udp.port",
- "QuakeWorld Server UDP Port",
- "Set the UDP port for the QuakeWorld Server",
- 10, &gbl_quakeworldServerPort);
+ prefs_register_protocol(proto_quakeworld, apply_quakeworld_prefs);
}
void
proto_reg_handoff_quakeworld(void)
{
- static gboolean Initialized=FALSE;
- static dissector_handle_t quakeworld_handle;
- static guint ServerPort;
-
- if (!Initialized) {
- quakeworld_handle = create_dissector_handle(dissect_quakeworld,
- proto_quakeworld);
- Initialized=TRUE;
- } else {
- dissector_delete_uint("udp.port", ServerPort, quakeworld_handle);
- }
-
- /* set port for future deletes */
- ServerPort=gbl_quakeworldServerPort;
+ dissector_handle_t quakeworld_handle;
- dissector_add_uint("udp.port", gbl_quakeworldServerPort, quakeworld_handle);
+ quakeworld_handle = create_dissector_handle(dissect_quakeworld, proto_quakeworld);
+ dissector_add_uint("udp.port", PORT_MASTER, quakeworld_handle);
}
/*
diff --git a/epan/dissectors/packet-quic.c b/epan/dissectors/packet-quic.c
index b2b6c92c62..b906eee64a 100644
--- a/epan/dissectors/packet-quic.c
+++ b/epan/dissectors/packet-quic.c
@@ -177,8 +177,7 @@ static int hf_quic_padding = -1;
static int hf_quic_stream_data = -1;
static int hf_quic_payload = -1;
-static guint g_quic_port = 80;
-static guint g_quics_port = 443;
+#define QUIC_PORT_RANGE "80,443"
static gboolean g_quic_debug = FALSE;
static gint ett_quic = -1;
@@ -2847,22 +2846,12 @@ proto_register_quic(void)
expert_module_t *expert_quic;
- proto_quic = proto_register_protocol("QUIC (Quick UDP Internet Connections)",
- "QUIC", "quic");
+ proto_quic = proto_register_protocol("QUIC (Quick UDP Internet Connections)", "QUIC", "quic");
proto_register_field_array(proto_quic, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- quic_module = prefs_register_protocol(proto_quic, proto_reg_handoff_quic);
-
-
- prefs_register_uint_preference(quic_module, "udp.quic.port", "QUIC UDP Port",
- "QUIC UDP port if other than the default",
- 10, &g_quic_port);
-
- prefs_register_uint_preference(quic_module, "udp.quics.port", "QUICS UDP Port",
- "QUICS (Secure) UDP port if other than the default",
- 10, &g_quics_port);
+ quic_module = prefs_register_protocol(proto_quic, NULL);
prefs_register_bool_preference(quic_module, "debug.quic",
"Force decode of all QUIC Payload",
@@ -2876,27 +2865,10 @@ proto_register_quic(void)
void
proto_reg_handoff_quic(void)
{
- static gboolean initialized = FALSE;
- static dissector_handle_t quic_handle;
- static int current_quic_port;
- static int current_quics_port;
-
- if (!initialized) {
- quic_handle = create_dissector_handle(dissect_quic,
- proto_quic);
- initialized = TRUE;
-
- } else {
- dissector_delete_uint("udp.port", current_quic_port, quic_handle);
- dissector_delete_uint("udp.port", current_quics_port, quic_handle);
- }
-
- current_quic_port = g_quic_port;
- current_quics_port = g_quics_port;
-
+ dissector_handle_t quic_handle;
- dissector_add_uint("udp.port", current_quic_port, quic_handle);
- dissector_add_uint("udp.port", current_quics_port, quic_handle);
+ quic_handle = create_dissector_handle(dissect_quic, proto_quic);
+ dissector_add_uint_range_with_preference("udp.port", QUIC_PORT_RANGE, quic_handle);
}
diff --git a/epan/dissectors/packet-radius.c b/epan/dissectors/packet-radius.c
index b49f0967d1..0352a9b12b 100644
--- a/epan/dissectors/packet-radius.c
+++ b/epan/dissectors/packet-radius.c
@@ -221,8 +221,6 @@ static dissector_handle_t eap_handle;
static const gchar *shared_secret = "";
static gboolean validate_authenticator = FALSE;
static gboolean show_length = FALSE;
-static guint alt_port_pref = 0;
-static range_t *global_ports_range;
static guint8 authenticator[AUTHENTICATOR_LENGTH];
@@ -2635,7 +2633,7 @@ proto_register_radius(void)
proto_radius = proto_register_protocol("RADIUS Protocol", "RADIUS", "radius");
register_dissector("radius", dissect_radius, proto_radius);
register_init_routine(&radius_init_protocol);
- radius_module = prefs_register_protocol(proto_radius, proto_reg_handoff_radius);
+ radius_module = prefs_register_protocol(proto_radius, NULL);
prefs_register_string_preference(radius_module, "shared_secret", "Shared Secret",
"Shared secret used to decode User Passwords and validate Response Authenticators",
&shared_secret);
@@ -2645,12 +2643,6 @@ proto_register_radius(void)
prefs_register_bool_preference(radius_module, "show_length", "Show AVP Lengths",
"Whether to add or not to the tree the AVP's payload length",
&show_length);
- prefs_register_uint_preference(radius_module, "alternate_port", "Alternate Port",
- "An alternate UDP port to decode as RADIUS", 10, &alt_port_pref);
-
- range_convert_str(&global_ports_range, DEFAULT_RADIUS_PORT_RANGE, MAX_UDP_PORT);
- prefs_register_range_preference(radius_module, "ports", "RADIUS ports",
- "A list of UDP ports to decode as RADIUS", &global_ports_range, MAX_UDP_PORT);
prefs_register_obsolete_preference(radius_module, "request_ttl");
radius_tap = register_tap("radius");
@@ -2669,34 +2661,11 @@ proto_register_radius(void)
void
proto_reg_handoff_radius(void)
{
- static gboolean initialized = FALSE;
- static dissector_handle_t radius_handle;
- static range_t *ports_range;
-
- if (!initialized) {
- radius_handle = find_dissector("radius");
- eap_handle = find_dissector_add_dependency("eap", proto_radius);
-
- initialized = TRUE;
- } else {
- dissector_delete_uint_range("udp.port", ports_range, radius_handle);
- g_free(ports_range);
- }
-
- if (alt_port_pref != 0) {
- /* Append it to the range of ports but only if necessary */
- if (!value_is_in_range(global_ports_range, alt_port_pref)) {
- global_ports_range = (range_t *)g_realloc(global_ports_range,
- /* see epan/range.c:range_copy function */
- sizeof (range_t) - sizeof (range_admin_t) + (global_ports_range->nranges + 1) * sizeof (range_admin_t));
- global_ports_range->ranges[global_ports_range->nranges].low = alt_port_pref;
- global_ports_range->ranges[global_ports_range->nranges].high = alt_port_pref;
- global_ports_range->nranges++;
- }
- }
+ dissector_handle_t radius_handle;
- ports_range = range_copy(global_ports_range);
- dissector_add_uint_range("udp.port", ports_range, radius_handle);
+ radius_handle = find_dissector("radius");
+ eap_handle = find_dissector_add_dependency("eap", proto_radius);
+ dissector_add_uint_range_with_preference("udp.port", DEFAULT_RADIUS_PORT_RANGE, radius_handle);
}
/*
diff --git a/epan/dissectors/packet-rdt.c b/epan/dissectors/packet-rdt.c
index 1f622723c4..30e6546561 100644
--- a/epan/dissectors/packet-rdt.c
+++ b/epan/dissectors/packet-rdt.c
@@ -163,9 +163,7 @@ static gint ett_rdt_bw_probing_flags = -1;
static expert_field ei_rdt_packet_length = EI_INIT;
-/* Port preference settings */
-static gboolean global_rdt_register_udp_port = FALSE;
-static guint global_rdt_udp_port = 6970;
+#define RDT_UDP_PORT 6970
void proto_register_rdt(void);
void proto_reg_handoff_rdt(void);
@@ -2165,62 +2163,20 @@ void proto_register_rdt(void)
register_dissector("rdt", dissect_rdt, proto_rdt);
/* Preference settings */
- rdt_module = prefs_register_protocol(proto_rdt, proto_reg_handoff_rdt);
+ rdt_module = prefs_register_protocol(proto_rdt, NULL);
prefs_register_bool_preference(rdt_module, "show_setup_info",
"Show stream setup information",
"Where available, show which protocol and frame caused "
"this RDT stream to be created",
&global_rdt_show_setup_info);
- prefs_register_bool_preference(rdt_module, "register_udp_port",
- "Register default UDP client port",
- "Register a client UDP port for RDT traffic",
- &global_rdt_register_udp_port);
-
- /* TODO: better to specify a range of ports instead? */
- prefs_register_uint_preference(rdt_module, "default_udp_port",
- "Default UDP client port",
- "Set the UDP port for clients",
- 10, &global_rdt_udp_port);
-
+ prefs_register_obsolete_preference(rdt_module, "register_udp_port");
}
void proto_reg_handoff_rdt(void)
{
- static gboolean rdt_prefs_initialized = FALSE;
- /* Also store this so can delete registered setting properly */
- static gboolean rdt_register_udp_port;
- static guint rdt_udp_port;
-
- if (!rdt_prefs_initialized)
- {
- /* Register this dissector as one that can be selected by a
- UDP port number. */
- rdt_handle = find_dissector("rdt");
- dissector_add_for_decode_as("udp.port", rdt_handle);
- rdt_prefs_initialized = TRUE;
- }
- else
- {
- /* Undo any current port registrations */
- if (rdt_register_udp_port)
- {
- dissector_delete_uint("udp.port", rdt_udp_port, rdt_handle);
- }
- }
-
- /* Remember whether a port is set for next time */
- rdt_register_udp_port = global_rdt_register_udp_port;
-
- /* Add any new port registration */
- if (global_rdt_register_udp_port)
- {
- /* Set our port number for future use */
- rdt_udp_port = global_rdt_udp_port;
-
- /* And register with this port */
- dissector_add_uint("udp.port", global_rdt_udp_port, rdt_handle);
- }
+ rdt_handle = find_dissector("rdt");
+ dissector_add_uint_with_preference("udp.port", RDT_UDP_PORT, rdt_handle);
}
/*
diff --git a/epan/dissectors/packet-redbackli.c b/epan/dissectors/packet-redbackli.c
index ac64c51f9f..46cb174976 100644
--- a/epan/dissectors/packet-redbackli.c
+++ b/epan/dissectors/packet-redbackli.c
@@ -276,8 +276,7 @@ void proto_register_redbackli(void) {
&ett_redbackli
};
- proto_redbackli = proto_register_protocol("Redback Lawful Intercept",
- "RedbackLI", "redbackli");
+ proto_redbackli = proto_register_protocol("Redback Lawful Intercept", "RedbackLI", "redbackli");
proto_register_field_array(proto_redbackli, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
@@ -291,7 +290,7 @@ void proto_reg_handoff_redbackli(void) {
ip_handle = find_dissector_add_dependency("ip", proto_redbackli);
redbackli_handle = find_dissector("redbackli");
- dissector_add_for_decode_as("udp.port", redbackli_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", redbackli_handle);
heur_dissector_add("udp", redbackli_dissect_heur, "Redback Lawful Intercept over UDP", "redbackli_udp", proto_redbackli, HEURISTIC_ENABLE);
}
diff --git a/epan/dissectors/packet-reload-framing.c b/epan/dissectors/packet-reload-framing.c
index 142c0cdc7c..42de6f4311 100644
--- a/epan/dissectors/packet-reload-framing.c
+++ b/epan/dissectors/packet-reload-framing.c
@@ -593,7 +593,7 @@ proto_reg_handoff_reload_framing(void)
reload_handle = find_dissector_add_dependency("reload", proto_reload_framing);
dissector_add_uint_with_preference("tcp.port", TCP_PORT_RELOAD, reload_framing_tcp_handle);
- dissector_add_uint("udp.port", UDP_PORT_RELOAD, reload_framing_udp_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_RELOAD, reload_framing_udp_handle);
heur_dissector_add("udp", dissect_reload_framing_heur, "RELOAD Framing over UDP", "reload_framing_udp", proto_reload_framing, HEURISTIC_ENABLE);
heur_dissector_add("tcp", dissect_reload_framing_heur, "RELOAD Framing over TCP", "reload_framing_tcp", proto_reload_framing, HEURISTIC_ENABLE);
diff --git a/epan/dissectors/packet-riemann.c b/epan/dissectors/packet-riemann.c
index 5ee4093fd1..261c718ee4 100644
--- a/epan/dissectors/packet-riemann.c
+++ b/epan/dissectors/packet-riemann.c
@@ -75,7 +75,6 @@
#include "config.h"
#include <epan/packet.h>
-#include <epan/prefs.h>
#include <epan/expert.h>
#include "packet-tcp.h"
@@ -111,8 +110,6 @@ static int hf_riemann_state_time = -1;
static int hf_riemann_state_state = -1;
static int hf_riemann_state_once = -1;
-static guint udp_port_pref = 0;
-
static gint ett_riemann = -1;
static gint ett_query = -1;
static gint ett_event = -1;
@@ -672,7 +669,6 @@ dissect_riemann_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *d
void
proto_register_riemann(void)
{
- module_t *riemann_module;
expert_module_t *riemann_expert_module;
static hf_register_info hf[] = {
@@ -812,31 +808,17 @@ proto_register_riemann(void)
proto_register_field_array(proto_riemann, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
-
- riemann_module = prefs_register_protocol(proto_riemann, proto_reg_handoff_riemann);
-
- prefs_register_uint_preference(riemann_module, "udp.port", "Riemann UDP Port",
- " riemann UDP port if other than the default",
- 10, &udp_port_pref);
}
void
proto_reg_handoff_riemann(void)
{
- static gboolean initialized = FALSE;
- static dissector_handle_t riemann_udp_handle, riemann_tcp_handle;
- static int current_udp_port;
-
- if (!initialized) {
- riemann_udp_handle = create_dissector_handle(dissect_riemann_udp, proto_riemann);
- riemann_tcp_handle = create_dissector_handle(dissect_riemann_tcp, proto_riemann);
- dissector_add_for_decode_as_with_preference("tcp.port", riemann_tcp_handle);
- initialized = TRUE;
- } else {
- dissector_delete_uint("udp.port", current_udp_port, riemann_udp_handle);
- }
- current_udp_port = udp_port_pref;
- dissector_add_uint("udp.port", current_udp_port, riemann_udp_handle);
+ dissector_handle_t riemann_udp_handle, riemann_tcp_handle;
+
+ riemann_udp_handle = create_dissector_handle(dissect_riemann_udp, proto_riemann);
+ riemann_tcp_handle = create_dissector_handle(dissect_riemann_tcp, proto_riemann);
+ dissector_add_for_decode_as_with_preference("tcp.port", riemann_tcp_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", riemann_udp_handle);
}
/*
diff --git a/epan/dissectors/packet-rip.c b/epan/dissectors/packet-rip.c
index 93e42c6542..9cd2108b36 100644
--- a/epan/dissectors/packet-rip.c
+++ b/epan/dissectors/packet-rip.c
@@ -393,7 +393,7 @@ proto_register_rip(void)
void
proto_reg_handoff_rip(void)
{
- dissector_add_uint("udp.port", UDP_PORT_RIP, rip_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_RIP, rip_handle);
}
/*
diff --git a/epan/dissectors/packet-ripng.c b/epan/dissectors/packet-ripng.c
index 7991b666b1..a81c4bf2dc 100644
--- a/epan/dissectors/packet-ripng.c
+++ b/epan/dissectors/packet-ripng.c
@@ -172,7 +172,7 @@ proto_reg_handoff_ripng(void)
dissector_handle_t ripng_handle;
ripng_handle = create_dissector_handle(dissect_ripng, proto_ripng);
- dissector_add_uint("udp.port", UDP_PORT_RIPNG, ripng_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_RIPNG, ripng_handle);
}
/*
diff --git a/epan/dissectors/packet-rmcp.c b/epan/dissectors/packet-rmcp.c
index 2df5acd1bb..6a880d3806 100644
--- a/epan/dissectors/packet-rmcp.c
+++ b/epan/dissectors/packet-rmcp.c
@@ -255,7 +255,7 @@ proto_reg_handoff_rmcp(void)
dissector_handle_t rmcp_handle;
rmcp_handle = create_dissector_handle(dissect_rmcp, proto_rmcp);
- dissector_add_uint("udp.port", UDP_PORT_RMCP, rmcp_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_RMCP, rmcp_handle);
}
void
@@ -264,7 +264,7 @@ proto_reg_handoff_rsp(void)
dissector_handle_t rsp_handle;
rsp_handle = create_dissector_handle(dissect_rsp, proto_rsp);
- dissector_add_uint("udp.port", UDP_PORT_RMCP_SECURE, rsp_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_RMCP_SECURE, rsp_handle);
}
/*
diff --git a/epan/dissectors/packet-rmt-alc.c b/epan/dissectors/packet-rmt-alc.c
index 68de96c4d0..9ea477387c 100644
--- a/epan/dissectors/packet-rmt-alc.c
+++ b/epan/dissectors/packet-rmt-alc.c
@@ -63,7 +63,6 @@ static dissector_handle_t xml_handle;
static dissector_handle_t rmt_lct_handle;
static dissector_handle_t rmt_fec_handle;
-static guint g_default_udp_port = 0; /* 4001 */
static gboolean g_codepoint_as_fec_encoding = TRUE;
static gint g_ext_192 = LCT_PREFS_EXT_192_FLUTE;
static gint g_ext_193 = LCT_PREFS_EXT_193_FLUTE;
@@ -193,16 +192,10 @@ void proto_register_alc(void)
expert_register_field_array(expert_rmt_alc, ei, array_length(ei));
/* Register preferences */
- module = prefs_register_protocol(proto_rmt_alc, proto_reg_handoff_alc);
+ module = prefs_register_protocol(proto_rmt_alc, NULL);
prefs_register_obsolete_preference(module, "default.udp_port.enabled");
- prefs_register_uint_preference(module,
- "default.udp_port",
- "UDP destination port",
- "Specifies the UDP destination port for automatic dissection of ALC packets",
- 10, &g_default_udp_port);
-
prefs_register_bool_preference(module,
"lct.codepoint_as_fec_id",
"LCT Codepoint as FEC Encoding ID",
@@ -228,30 +221,13 @@ void proto_register_alc(void)
void proto_reg_handoff_alc(void)
{
- static dissector_handle_t handle;
- static gboolean preferences_initialized = FALSE;
- static guint old_udp_port = 0;
-
- if (!preferences_initialized)
- {
- preferences_initialized = TRUE;
- handle = create_dissector_handle(dissect_alc, proto_rmt_alc);
- dissector_add_for_decode_as("udp.port", handle);
- xml_handle = find_dissector_add_dependency("xml", proto_rmt_alc);
- rmt_lct_handle = find_dissector_add_dependency("rmt-lct", proto_rmt_alc);
- rmt_fec_handle = find_dissector_add_dependency("rmt-fec", proto_rmt_alc);
- }
-
- /* Register UDP port for dissection */
- if(old_udp_port != 0 && old_udp_port != g_default_udp_port){
- dissector_delete_uint("udp.port", old_udp_port, handle);
- }
-
- if(g_default_udp_port != 0 && old_udp_port != g_default_udp_port) {
- dissector_add_uint("udp.port", g_default_udp_port, handle);
- }
+ dissector_handle_t handle;
- old_udp_port = g_default_udp_port;
+ handle = create_dissector_handle(dissect_alc, proto_rmt_alc);
+ dissector_add_for_decode_as_with_preference("udp.port", handle);
+ xml_handle = find_dissector_add_dependency("xml", proto_rmt_alc);
+ rmt_lct_handle = find_dissector_add_dependency("rmt-lct", proto_rmt_alc);
+ rmt_fec_handle = find_dissector_add_dependency("rmt-fec", proto_rmt_alc);
}
/*
diff --git a/epan/dissectors/packet-rmt-norm.c b/epan/dissectors/packet-rmt-norm.c
index ffdb6e877c..d5afcfbdad 100644
--- a/epan/dissectors/packet-rmt-norm.c
+++ b/epan/dissectors/packet-rmt-norm.c
@@ -977,7 +977,7 @@ void proto_reg_handoff_norm(void)
static dissector_handle_t handle;
handle = create_dissector_handle(dissect_norm, proto_rmt_norm);
- dissector_add_for_decode_as("udp.port", handle);
+ dissector_add_for_decode_as_with_preference("udp.port", handle);
heur_dissector_add("udp", dissect_norm_heur, "NORM over UDP", "rmt_norm_udp", proto_rmt_norm, HEURISTIC_DISABLE);
rmt_fec_handle = find_dissector_add_dependency("rmt-fec", proto_rmt_norm);
diff --git a/epan/dissectors/packet-rpc.c b/epan/dissectors/packet-rpc.c
index 498c4bd94f..e6bd7fa9ca 100644
--- a/epan/dissectors/packet-rpc.c
+++ b/epan/dissectors/packet-rpc.c
@@ -4438,7 +4438,7 @@ proto_reg_handoff_rpc(void)
rpc_tcp_handle = find_dissector("rpc-tcp");
dissector_add_uint_with_preference("tcp.port", RPC_TCP_PORT, rpc_tcp_handle);
rpc_handle = find_dissector("rpc");
- dissector_add_uint("udp.port", 111, rpc_handle);
+ dissector_add_uint_with_preference("udp.port", RPC_TCP_PORT, rpc_handle);
heur_dissector_add("tcp", dissect_rpc_tcp_heur, "RPC over TCP", "rpc_tcp", proto_rpc, HEURISTIC_ENABLE);
heur_dissector_add("udp", dissect_rpc_heur, "RPC over UDP", "rpc_udp", proto_rpc, HEURISTIC_ENABLE);
diff --git a/epan/dissectors/packet-rsip.c b/epan/dissectors/packet-rsip.c
index 2c4689038a..5d30c56874 100644
--- a/epan/dissectors/packet-rsip.c
+++ b/epan/dissectors/packet-rsip.c
@@ -1245,7 +1245,7 @@ proto_reg_handoff_rsip(void)
dissector_handle_t rsip_handle;
rsip_handle = create_dissector_handle(dissect_rsip, proto_rsip);
- dissector_add_uint("udp.port", UDP_PORT_RSIP, rsip_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_RSIP, rsip_handle);
dissector_add_uint_with_preference("tcp.port", TCP_PORT_RSIP, rsip_handle);
}
diff --git a/epan/dissectors/packet-rsvp.c b/epan/dissectors/packet-rsvp.c
index 3c5307f2c6..e2ef83cff0 100644
--- a/epan/dissectors/packet-rsvp.c
+++ b/epan/dissectors/packet-rsvp.c
@@ -9574,7 +9574,7 @@ proto_reg_handoff_rsvp(void)
rsvpe2ei_handle = create_dissector_handle(dissect_rsvp_e2ei, proto_rsvp_e2e1);
dissector_add_uint("ip.proto", IP_PROTO_RSVP, rsvp_handle);
dissector_add_uint("ip.proto", IP_PROTO_RSVPE2EI, rsvpe2ei_handle);
- dissector_add_uint("udp.port", UDP_PORT_PRSVP, rsvp_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_PRSVP, rsvp_handle);
rsvp_tap = register_tap("rsvp");
}
diff --git a/epan/dissectors/packet-rtcp.c b/epan/dissectors/packet-rtcp.c
index d991e22aa4..1c5e02b188 100644
--- a/epan/dissectors/packet-rtcp.c
+++ b/epan/dissectors/packet-rtcp.c
@@ -6544,7 +6544,7 @@ proto_reg_handoff_rtcp(void)
* UDP port number.
*/
rtcp_handle = find_dissector("rtcp");
- dissector_add_for_decode_as("udp.port", rtcp_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", rtcp_handle);
dissector_add_for_decode_as("flip.payload", rtcp_handle );
heur_dissector_add( "udp", dissect_rtcp_heur_udp, "RTCP over UDP", "rtcp_udp", proto_rtcp, HEURISTIC_ENABLE);
diff --git a/epan/dissectors/packet-rtls.c b/epan/dissectors/packet-rtls.c
index 5c18bda9c2..9e17ce779a 100644
--- a/epan/dissectors/packet-rtls.c
+++ b/epan/dissectors/packet-rtls.c
@@ -787,7 +787,7 @@ proto_reg_handoff_rtls(void)
dissector_handle_t rtls_handle;
rtls_handle = create_dissector_handle(dissect_rtls, proto_rtls);
- dissector_add_for_decode_as("udp.port", rtls_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", rtls_handle);
}
/*
diff --git a/epan/dissectors/packet-rtp.c b/epan/dissectors/packet-rtp.c
index 9868e08df8..ab01da6cde 100644
--- a/epan/dissectors/packet-rtp.c
+++ b/epan/dissectors/packet-rtp.c
@@ -267,9 +267,6 @@ static gint ett_pkt_ccc = -1;
static expert_field ei_rtp_fragment_unfinished = EI_INIT;
static expert_field ei_rtp_padding_missing = EI_INIT;
-/* PacketCable CCC port preference */
-static guint global_pkt_ccc_udp_port = 0;
-
/* RFC 5285 Header extensions */
static int hf_rtp_ext_rfc5285_id = -1;
static int hf_rtp_ext_rfc5285_length = -1;
@@ -2760,21 +2757,11 @@ proto_register_pkt_ccc(void)
&ett_pkt_ccc,
};
- module_t *pkt_ccc_module;
-
- proto_pkt_ccc = proto_register_protocol("PacketCable Call Content Connection",
- "PKT CCC", "pkt_ccc");
+ proto_pkt_ccc = proto_register_protocol("PacketCable Call Content Connection", "PKT CCC", "pkt_ccc");
proto_register_field_array(proto_pkt_ccc, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
register_dissector("pkt_ccc", dissect_pkt_ccc, proto_pkt_ccc);
-
- pkt_ccc_module = prefs_register_protocol(proto_pkt_ccc, proto_reg_handoff_pkt_ccc);
-
- prefs_register_uint_preference(pkt_ccc_module, "udp_port",
- "UDP port",
- "Decode packets on this UDP port as PacketCable CCC",
- 10, &global_pkt_ccc_udp_port);
}
void
@@ -2784,24 +2771,10 @@ proto_reg_handoff_pkt_ccc(void)
* Register this dissector as one that can be selected by a
* UDP port number.
*/
- static gboolean initialized = FALSE;
- static dissector_handle_t pkt_ccc_handle;
- static guint saved_pkt_ccc_udp_port;
-
- if (!initialized) {
- pkt_ccc_handle = find_dissector("pkt_ccc");
- dissector_add_for_decode_as("udp.port", pkt_ccc_handle);
- initialized = TRUE;
- } else {
- if (saved_pkt_ccc_udp_port != 0) {
- dissector_delete_uint("udp.port", saved_pkt_ccc_udp_port, pkt_ccc_handle);
- }
- }
+ dissector_handle_t pkt_ccc_handle;
- if (global_pkt_ccc_udp_port != 0) {
- dissector_add_uint("udp.port", global_pkt_ccc_udp_port, pkt_ccc_handle);
- }
- saved_pkt_ccc_udp_port = global_pkt_ccc_udp_port;
+ pkt_ccc_handle = find_dissector("pkt_ccc");
+ dissector_add_for_decode_as_with_preference("udp.port", pkt_ccc_handle);
}
/* Register RTP */
diff --git a/epan/dissectors/packet-rtpproxy.c b/epan/dissectors/packet-rtpproxy.c
index 3600e56d9a..7323afdf5a 100644
--- a/epan/dissectors/packet-rtpproxy.c
+++ b/epan/dissectors/packet-rtpproxy.c
@@ -277,7 +277,6 @@ static gint ett_rtpproxy_ng_bencode = -1;
/* Default values */
#define RTPPROXY_PORT 22222 /* Not IANA registered */
-static guint rtpproxy_udp_port = RTPPROXY_PORT;
static gboolean rtpproxy_establish_conversation = TRUE;
/* See - https://www.opensips.org/html/docs/modules/1.10.x/rtpproxy.html#id293555 */
/* See - http://www.kamailio.org/docs/modules/4.3.x/modules/rtpproxy.html#idp15794952 */
@@ -1440,11 +1439,7 @@ proto_register_rtpproxy(void)
&ett_rtpproxy_ng_bencode
};
- proto_rtpproxy = proto_register_protocol (
- "Sippy RTPproxy Protocol", /* name */
- "RTPproxy", /* short name */
- "rtpproxy" /* abbrev */
- );
+ proto_rtpproxy = proto_register_protocol ("Sippy RTPproxy Protocol", "RTPproxy", "rtpproxy");
proto_register_field_array(proto_rtpproxy, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
@@ -1454,12 +1449,6 @@ proto_register_rtpproxy(void)
rtpproxy_module = prefs_register_protocol(proto_rtpproxy, proto_reg_handoff_rtpproxy);
- prefs_register_uint_preference(rtpproxy_module, "udp.port",
- "RTPproxy UDP Port", /* Title */
- "RTPproxy UDP Port", /* Descr */
- 10,
- &rtpproxy_udp_port);
-
prefs_register_bool_preference(rtpproxy_module, "establish_conversation",
"Establish Media Conversation",
"Specifies that RTP/RTCP/T.38/MSRP/etc streams are decoded based "
@@ -1476,11 +1465,9 @@ proto_register_rtpproxy(void)
void
proto_reg_handoff_rtpproxy(void)
{
- static guint old_rtpproxy_udp_port = 0;
-
static gboolean rtpproxy_initialized = FALSE;
- static dissector_handle_t rtpproxy_tcp_handle, rtpproxy_udp_handle;
+ dissector_handle_t rtpproxy_tcp_handle, rtpproxy_udp_handle;
if(!rtpproxy_initialized){
rtpproxy_tcp_handle = create_dissector_handle(dissect_rtpproxy, proto_rtpproxy);
@@ -1488,16 +1475,10 @@ proto_reg_handoff_rtpproxy(void)
/* Register TCP port for dissection */
dissector_add_uint_with_preference("tcp.port", RTPPROXY_PORT, rtpproxy_tcp_handle);
+ dissector_add_uint_with_preference("udp.port", RTPPROXY_PORT, rtpproxy_udp_handle);
rtpproxy_initialized = TRUE;
}
- /* Register UDP port for dissection */
- if(old_rtpproxy_udp_port != 0 && old_rtpproxy_udp_port != rtpproxy_udp_port)
- dissector_delete_uint("udp.port", old_rtpproxy_udp_port, rtpproxy_udp_handle);
- if(rtpproxy_udp_port != 0 && old_rtpproxy_udp_port != rtpproxy_udp_port)
- dissector_add_uint("udp.port", rtpproxy_udp_port, rtpproxy_udp_handle);
- old_rtpproxy_udp_port = rtpproxy_udp_port;
-
rtcp_handle = find_dissector_add_dependency("rtcp", proto_rtpproxy);
rtp_events_handle = find_dissector_add_dependency("rtpevent", proto_rtpproxy);
rtp_handle = find_dissector_add_dependency("rtp", proto_rtpproxy);
diff --git a/epan/dissectors/packet-rudp.c b/epan/dissectors/packet-rudp.c
index ea8d25f5ed..8e1478dc20 100644
--- a/epan/dissectors/packet-rudp.c
+++ b/epan/dissectors/packet-rudp.c
@@ -43,21 +43,10 @@
#include "config.h"
#include <epan/packet.h>
-#include <epan/prefs.h>
void proto_register_rudp(void);
-/* Disable rudp by default. The previously hardcoded value of
- * 7000 (used by Cisco) collides with afs and as the draft states:
- * "RUDP doesn't place any restrictions on which UDP port numbers are used.
- * Valid port numbers are ports not defined in RFC 1700."
- */
-/* FIXME: The proper solution would be to convert this dissector into
- * heuristic dissector, but it isn't complete anyway.
- */
-static guint udp_port = 0;
-
void proto_reg_handoff_rudp(void);
static int proto_rudp = -1;
@@ -213,50 +202,29 @@ proto_register_rudp(void)
};
- proto_rudp = proto_register_protocol (
- "Reliable UDP", /* name */
- "RUDP", /* short name */
- "rudp" /* abbrev */
- );
+ proto_rudp = proto_register_protocol ("Reliable UDP", "RUDP", "rudp");
proto_register_field_array(proto_rudp, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
-
- {
- module_t *rudp_module;
- rudp_module = prefs_register_protocol(proto_rudp, proto_reg_handoff_rudp);
- prefs_register_uint_preference(rudp_module,
- "udp.port",
- "UDP port for RUDP",
- "Set the UDP port for Reliable UDP traffic",
- 10,
- &udp_port);
- }
-
}
void
proto_reg_handoff_rudp(void) {
- static gboolean initialized = FALSE;
- static dissector_handle_t rudp_handle;
- static guint saved_udp_port;
-
- if (!initialized) {
- rudp_handle = create_dissector_handle(dissect_rudp, proto_rudp);
- dissector_add_for_decode_as("udp.port", rudp_handle);
- sm_handle = find_dissector_add_dependency("sm", proto_rudp);
- initialized = TRUE;
- } else {
- if (saved_udp_port != 0) {
- dissector_delete_uint("udp.port", saved_udp_port, rudp_handle);
- }
- }
+ dissector_handle_t rudp_handle;
- if (udp_port != 0) {
- dissector_add_uint("udp.port", udp_port, rudp_handle);
- }
- saved_udp_port = udp_port;
+/* Disable rudp by default. The previously hardcoded value of
+ * 7000 (used by Cisco) collides with afs and as the draft states:
+ * "RUDP doesn't place any restrictions on which UDP port numbers are used.
+ * Valid port numbers are ports not defined in RFC 1700."
+ */
+/* FIXME: The proper solution would be to convert this dissector into
+ * heuristic dissector, but it isn't complete anyway.
+ */
+
+ rudp_handle = create_dissector_handle(dissect_rudp, proto_rudp);
+ dissector_add_for_decode_as_with_preference("udp.port", rudp_handle);
+ sm_handle = find_dissector_add_dependency("sm", proto_rudp);
}
/*
diff --git a/epan/dissectors/packet-rx.c b/epan/dissectors/packet-rx.c
index 0d514b9022..34533307bf 100644
--- a/epan/dissectors/packet-rx.c
+++ b/epan/dissectors/packet-rx.c
@@ -42,9 +42,7 @@
void proto_register_rx(void);
void proto_reg_handoff_rx(void);
-#define UDP_PORT_RX_LOW 7000
-#define UDP_PORT_RX_HIGH 7009
-#define UDP_PORT_RX_AFS_BACKUPS 7021
+#define UDP_PORT_RX_RANGE "7000-7009,7021"
static const value_string rx_types[] = {
{ RX_PACKET_TYPE_DATA, "data" },
@@ -755,19 +753,13 @@ proto_reg_handoff_rx(void)
{
dissector_handle_t rx_handle;
- int port;
-
/*
* Get handle for the AFS dissector.
*/
afs_handle = find_dissector_add_dependency("afs", proto_rx);
- /* Ports in the range UDP_PORT_RX_LOW to UDP_PORT_RX_HIGH
- are all used for various AFS services. */
rx_handle = create_dissector_handle(dissect_rx, proto_rx);
- for (port = UDP_PORT_RX_LOW; port <= UDP_PORT_RX_HIGH; port++)
- dissector_add_uint("udp.port", port, rx_handle);
- dissector_add_uint("udp.port", UDP_PORT_RX_AFS_BACKUPS, rx_handle);
+ dissector_add_uint_range_with_preference("udp.port", UDP_PORT_RX_RANGE, rx_handle);
}
/*
diff --git a/epan/dissectors/packet-sabp.c b/epan/dissectors/packet-sabp.c
index f7297d81e1..a5e7b7a2ca 100644
--- a/epan/dissectors/packet-sabp.c
+++ b/epan/dissectors/packet-sabp.c
@@ -2290,7 +2290,7 @@ void proto_register_sabp(void) {
void
proto_reg_handoff_sabp(void)
{
- dissector_add_uint("udp.port", SABP_PORT, sabp_handle);
+ dissector_add_uint_with_preference("udp.port", SABP_PORT, sabp_handle);
dissector_add_uint_with_preference("tcp.port", SABP_PORT, sabp_tcp_handle);
dissector_add_uint("sctp.ppi", SABP_PAYLOAD_PROTOCOL_ID, sabp_handle);
diff --git a/epan/dissectors/packet-sap.c b/epan/dissectors/packet-sap.c
index 7701627724..6dc2c036e1 100644
--- a/epan/dissectors/packet-sap.c
+++ b/epan/dissectors/packet-sap.c
@@ -383,7 +383,7 @@ proto_reg_handoff_sap(void)
dissector_handle_t sap_handle;
sap_handle = create_dissector_handle(dissect_sap, proto_sap);
- dissector_add_uint("udp.port", UDP_PORT_SAP, sap_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_SAP, sap_handle);
/*
* Get a handle for the SDP dissector.
diff --git a/epan/dissectors/packet-sbus.c b/epan/dissectors/packet-sbus.c
index f761eff181..a81abd7f45 100644
--- a/epan/dissectors/packet-sbus.c
+++ b/epan/dissectors/packet-sbus.c
@@ -30,6 +30,8 @@
void proto_register_sbus(void);
void proto_reg_handoff_sbus(void);
+#define SBUS_UDP_PORT 5050 /* Not IANA registered */
+
/* Attribute values*/
#define SBUS_REQUEST 0x00
#define SBUS_RESPONSE 0x01
@@ -2314,7 +2316,7 @@ proto_reg_handoff_sbus(void)
dissector_handle_t sbus_handle;
sbus_handle = create_dissector_handle(dissect_sbus, proto_sbus);
- dissector_add_uint("udp.port", 5050, sbus_handle);
+ dissector_add_uint_with_preference("udp.port", SBUS_UDP_PORT, sbus_handle);
}
/*
diff --git a/epan/dissectors/packet-scop.c b/epan/dissectors/packet-scop.c
index 2996962212..953a038710 100644
--- a/epan/dissectors/packet-scop.c
+++ b/epan/dissectors/packet-scop.c
@@ -23,12 +23,10 @@
#include "config.h"
#include <epan/packet.h>
-#include <epan/prefs.h>
#include "packet-tcp.h"
/* Default SCOP Port numbers. */
-#define SCOP_DEFAULT_PORT 17755
-#define SCOP_DEFAULT_PORT_SECURED 17756
+#define SCOP_DEFAULT_PORT_RANGE "17755-17756"
void proto_register_scop(void);
@@ -117,9 +115,6 @@ static const value_string scop_services [] = {
{ 0, NULL }
};
-static guint32 gPREF_scop_port = SCOP_DEFAULT_PORT;
-static guint32 gPREF_scop_port_secured = SCOP_DEFAULT_PORT_SECURED;
-
/* Dissector handle */
static dissector_handle_t ieee802154_handle;
@@ -323,8 +318,6 @@ dissect_scop_bridge(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
*/
void proto_register_scop(void)
{
- module_t *scop_module;
-
static hf_register_info hf[] = {
{ &hf_scop_transport,
{ "Transport Type", "scop.transport", FT_UINT8, BASE_DEC, VALS(scop_transports), 0x0,
@@ -362,17 +355,6 @@ void proto_register_scop(void)
proto_register_field_array(proto_scop, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- /* Register preferences module */
- scop_module = prefs_register_protocol(proto_scop, proto_reg_handoff_scop);
-
- /* Register preferences */
- prefs_register_uint_preference(scop_module, "port", "SCoP Port",
- "Set the port for SCoP\n",
- 10, &gPREF_scop_port);
- prefs_register_uint_preference(scop_module, "port_secure", "SCoP Secured Port",
- "Set the port for secured SCoP\n",
- 10, &gPREF_scop_port_secured);
-
/* Register dissector with Wireshark. */
register_dissector("scop.udp", dissect_scop, proto_scop);
register_dissector("scop.tcp", dissect_scop_tcp, proto_scop);
@@ -392,33 +374,16 @@ void proto_register_scop(void)
*/
void proto_reg_handoff_scop(void)
{
- static gboolean inited = FALSE;
- static guint32 lastPort;
- static guint32 lastPort_secured;
-
- static dissector_handle_t scop_udp_handle;
- static dissector_handle_t scop_tcp_handle;
-
- if (!inited){
- scop_udp_handle = find_dissector("scop.udp");
- scop_tcp_handle = find_dissector("scop.tcp");
- ieee802154_handle = find_dissector_add_dependency("wpan_nofcs", proto_scop);
- inited = TRUE;
- } else {
- dissector_delete_uint("udp.port", lastPort, scop_udp_handle);
- dissector_delete_uint("tcp.port", lastPort, scop_tcp_handle);
- dissector_delete_uint("udp.port", lastPort_secured, scop_udp_handle);
- dissector_delete_uint("tcp.port", lastPort_secured, scop_tcp_handle);
- }
- /* XXX - Should this be a range with "auto" preference? */
- dissector_add_uint("udp.port", gPREF_scop_port, scop_udp_handle);
- dissector_add_uint("tcp.port", gPREF_scop_port, scop_tcp_handle);
- dissector_add_uint("udp.port", gPREF_scop_port_secured, scop_udp_handle);
- dissector_add_uint("tcp.port", gPREF_scop_port_secured, scop_tcp_handle);
-
- lastPort = gPREF_scop_port;
- lastPort_secured = gPREF_scop_port_secured;
-} /* proto_reg_handoff_scop */
+ dissector_handle_t scop_udp_handle;
+ dissector_handle_t scop_tcp_handle;
+
+ scop_udp_handle = find_dissector("scop.udp");
+ scop_tcp_handle = find_dissector("scop.tcp");
+ ieee802154_handle = find_dissector_add_dependency("wpan_nofcs", proto_scop);
+
+ dissector_add_uint_range_with_preference("udp.port", SCOP_DEFAULT_PORT_RANGE, scop_udp_handle);
+ dissector_add_uint_range_with_preference("tcp.port", SCOP_DEFAULT_PORT_RANGE, scop_tcp_handle);
+}
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
diff --git a/epan/dissectors/packet-sctp.c b/epan/dissectors/packet-sctp.c
index 2f5ebd1a50..dbc5af532b 100644
--- a/epan/dissectors/packet-sctp.c
+++ b/epan/dissectors/packet-sctp.c
@@ -5098,7 +5098,7 @@ proto_reg_handoff_sctp(void)
sctp_handle = find_dissector("sctp");
dissector_add_uint("wtap_encap", WTAP_ENCAP_SCTP, sctp_handle);
dissector_add_uint("ip.proto", IP_PROTO_SCTP, sctp_handle);
- dissector_add_uint("udp.port", UDP_TUNNELING_PORT, sctp_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_TUNNELING_PORT, sctp_handle);
register_capture_dissector("ip.proto", IP_PROTO_SCTP, capture_sctp, proto_sctp);
}
diff --git a/epan/dissectors/packet-sebek.c b/epan/dissectors/packet-sebek.c
index e7530fbcb8..0b801167cd 100644
--- a/epan/dissectors/packet-sebek.c
+++ b/epan/dissectors/packet-sebek.c
@@ -77,7 +77,7 @@
*/
/* By default, but can be completely different */
-#define UDP_PORT_SEBEK 1101
+#define UDP_PORT_SEBEK 1101 /* Not IANA registered */
void proto_register_sebek(void);
void proto_reg_handoff_sebek(void);
@@ -342,7 +342,7 @@ proto_reg_handoff_sebek(void)
dissector_handle_t sebek_handle;
sebek_handle = create_dissector_handle(dissect_sebek, proto_sebek);
- dissector_add_uint("udp.port", UDP_PORT_SEBEK, sebek_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_SEBEK, sebek_handle);
}
/*
diff --git a/epan/dissectors/packet-sflow.c b/epan/dissectors/packet-sflow.c
index 5ea293c10c..2292d34ce7 100644
--- a/epan/dissectors/packet-sflow.c
+++ b/epan/dissectors/packet-sflow.c
@@ -64,11 +64,6 @@ void proto_register_sflow(void);
static dissector_handle_t sflow_handle;
/*
- * global_sflow_ports : holds the configured range of ports for sflow
- */
-static range_t *global_sflow_ports = NULL;
-
-/*
* sflow_245_ports : holds the currently used range of ports for sflow
*/
static gboolean global_dissect_samp_headers = TRUE;
@@ -3621,11 +3616,7 @@ proto_register_sflow(void) {
expert_module_t* expert_sflow;
/* Register the protocol name and description */
- proto_sflow = proto_register_protocol(
- "InMon sFlow", /* name */
- "sFlow", /* short name */
- "sflow" /* abbrev */
- );
+ proto_sflow = proto_register_protocol("InMon sFlow", "sFlow", "sflow");
/* Required function calls to register the header fields and subtrees used */
proto_register_field_array(proto_sflow, hf, array_length(hf));
@@ -3636,18 +3627,7 @@ proto_register_sflow(void) {
header_subdissector_table = register_dissector_table("sflow_245.header_protocol", "SFLOW header protocol", proto_sflow, FT_UINT32, BASE_DEC);
/* Register our configuration options for sFlow */
- sflow_245_module = prefs_register_protocol(proto_sflow, proto_reg_handoff_sflow_245);
-
- /* Set default Neflow port(s) */
- range_convert_str(&global_sflow_ports, SFLOW_UDP_PORTS, MAX_UDP_PORT);
-
- prefs_register_obsolete_preference(sflow_245_module, "udp.port");
-
- prefs_register_range_preference(sflow_245_module, "ports",
- "sFlow UDP Port(s)",
- "Set the port(s) for sFlow messages"
- " (default: " SFLOW_UDP_PORTS ")",
- &global_sflow_ports, MAX_UDP_PORT);
+ sflow_245_module = prefs_register_protocol(proto_sflow, NULL);
/*
If I use a filter like "ip.src == 10.1.1.1" this will, in
@@ -3679,19 +3659,9 @@ proto_register_sflow(void) {
void
proto_reg_handoff_sflow_245(void) {
- static range_t *sflow_ports;
- static gboolean sflow_245_prefs_initialized = FALSE;
-
- if (!sflow_245_prefs_initialized) {
- sflow_handle = create_dissector_handle(dissect_sflow_245, proto_sflow);
- sflow_245_prefs_initialized = TRUE;
- } else {
- dissector_delete_uint_range("udp.port", sflow_ports, sflow_handle);
- g_free(sflow_ports);
- }
- sflow_ports = range_copy(global_sflow_ports);
- dissector_add_uint_range("udp.port", sflow_ports, sflow_handle);
+ sflow_handle = create_dissector_handle(dissect_sflow_245, proto_sflow);
+ dissector_add_uint_range_with_preference("udp.port", SFLOW_UDP_PORTS, sflow_handle);
}
/*
diff --git a/epan/dissectors/packet-sigcomp.c b/epan/dissectors/packet-sigcomp.c
index 4a4e78770c..93e28e5e4d 100644
--- a/epan/dissectors/packet-sigcomp.c
+++ b/epan/dissectors/packet-sigcomp.c
@@ -168,9 +168,6 @@ static expert_field ei_sigcomp_sigcomp_message_decompression_failure = EI_INIT;
static expert_field ei_sigcomp_execution_of_this_instruction_is_not_implemented = EI_INIT;
static dissector_handle_t sip_handle;
-/* set the udp ports */
-static guint SigCompUDPPort1 = 5555;
-static guint SigCompUDPPort2 = 6666;
/* set the tcp ports */
#define SIGCOMP_TCP_PORT_RANGE "5555,6666" /* Not IANA registered */
@@ -6704,20 +6701,7 @@ proto_register_sigcomp(void)
expert_register_field_array(expert_sigcomp, ei, array_length(ei));
/* Register a configuration option for port */
- sigcomp_module = prefs_register_protocol(proto_sigcomp,
- proto_reg_handoff_sigcomp);
-
- prefs_register_uint_preference(sigcomp_module, "udp.port",
- "Sigcomp UDP Port 1",
- "Set UDP port 1 for SigComp messages",
- 10,
- &SigCompUDPPort1);
-
- prefs_register_uint_preference(sigcomp_module, "udp.port2",
- "Sigcomp UDP Port 2",
- "Set UDP port 2 for SigComp messages",
- 10,
- &SigCompUDPPort2);
+ sigcomp_module = prefs_register_protocol(proto_sigcomp, NULL);
prefs_register_bool_preference(sigcomp_module, "display.udvm.code",
"Dissect the UDVM code",
@@ -6755,28 +6739,14 @@ proto_register_sigcomp(void)
void
proto_reg_handoff_sigcomp(void)
{
- static dissector_handle_t sigcomp_handle;
- static dissector_handle_t sigcomp_tcp_handle;
- static gboolean Initialized = FALSE;
- static guint udp_port1;
- static guint udp_port2;
-
- if (!Initialized) {
- sigcomp_handle = find_dissector("sigcomp");
- sigcomp_tcp_handle = create_dissector_handle(dissect_sigcomp_tcp,proto_sigcomp);
- sip_handle = find_dissector_add_dependency("sip",proto_sigcomp);
- dissector_add_uint_range_with_preference("tcp.port", SIGCOMP_TCP_PORT_RANGE, sigcomp_tcp_handle);
- Initialized=TRUE;
- } else {
- dissector_delete_uint("udp.port", udp_port1, sigcomp_handle);
- dissector_delete_uint("udp.port", udp_port2, sigcomp_handle);
- }
-
- udp_port1 = SigCompUDPPort1;
- udp_port2 = SigCompUDPPort2;
-
- dissector_add_uint("udp.port", SigCompUDPPort1, sigcomp_handle);
- dissector_add_uint("udp.port", SigCompUDPPort2, sigcomp_handle);
+ dissector_handle_t sigcomp_handle;
+ dissector_handle_t sigcomp_tcp_handle;
+
+ sigcomp_handle = find_dissector("sigcomp");
+ sigcomp_tcp_handle = create_dissector_handle(dissect_sigcomp_tcp,proto_sigcomp);
+ sip_handle = find_dissector_add_dependency("sip",proto_sigcomp);
+ dissector_add_uint_range_with_preference("tcp.port", SIGCOMP_TCP_PORT_RANGE, sigcomp_tcp_handle);
+ dissector_add_uint_range_with_preference("udp.port", SIGCOMP_TCP_PORT_RANGE, sigcomp_handle);
}
/*
diff --git a/epan/dissectors/packet-simple.c b/epan/dissectors/packet-simple.c
index 396efb2ef0..18838aa5ce 100644
--- a/epan/dissectors/packet-simple.c
+++ b/epan/dissectors/packet-simple.c
@@ -685,7 +685,7 @@ void proto_reg_handoff_simple(void)
{
dissector_handle_t simple_dissector_handle;
simple_dissector_handle = create_dissector_handle(dissect_simple, proto_simple);
- dissector_add_for_decode_as("udp.port", simple_dissector_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", simple_dissector_handle);
dissector_add_for_decode_as_with_preference("tcp.port", simple_dissector_handle);
link16_handle = find_dissector_add_dependency("link16", proto_simple);
diff --git a/epan/dissectors/packet-simulcrypt.c b/epan/dissectors/packet-simulcrypt.c
index 7f16632044..65218c621b 100644
--- a/epan/dissectors/packet-simulcrypt.c
+++ b/epan/dissectors/packet-simulcrypt.c
@@ -73,7 +73,6 @@ static void dissect_simulcrypt_data(proto_tree *simulcrypt_tree, proto_item *sim
static guint proto_simulcrypt = -1;
/* Preferences (with default values) */
-static guint global_simulcrypt_udp_port = 0; /* Simulcrypt registered only if pref set to non-zero value */
static int ca_system_id_mikey = CA_SYSTEM_ID_MIKEY; /* MIKEY ECM CA_system_ID */
/* MIKEY payload start bytes */
@@ -1837,10 +1836,6 @@ proto_register_simulcrypt (void)
/* called when preferences are applied. */
simulcrypt_module = prefs_register_protocol(proto_simulcrypt, proto_reg_handoff_simulcrypt);
- prefs_register_uint_preference(simulcrypt_module, "udp.port", "Simulcrypt UDP Port",
- "Set the UDP port for Simulcrypt messages ('0' means no port is assigned)",
- 10, &global_simulcrypt_udp_port);
-
prefs_register_uint_preference(simulcrypt_module, "ca_system_id_mikey","MIKEY ECM CA_system_ID (in hex)",
"Set the CA_system_ID used to decode ECM datagram as MIKEY", 16, &ca_system_id_mikey);
}
@@ -1850,8 +1845,7 @@ void
proto_reg_handoff_simulcrypt(void)
{
static gboolean initialized=FALSE;
- static dissector_handle_t simulcrypt_handle;
- static guint udp_port;
+ dissector_handle_t simulcrypt_handle;
guint i;
if (!initialized) {
@@ -1860,18 +1854,10 @@ proto_reg_handoff_simulcrypt(void)
{
tab_ecm_inter[i].protocol_handle = find_dissector(tab_ecm_inter[i].protocol_name);
}
- dissector_add_for_decode_as("udp.port", simulcrypt_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", simulcrypt_handle);
dissector_add_for_decode_as_with_preference("tcp.port", simulcrypt_handle);
initialized = TRUE;
}
- else {
- dissector_delete_uint("udp.port", udp_port, simulcrypt_handle);
- }
-
- if (global_simulcrypt_udp_port != 0) {
- dissector_add_uint("udp.port", global_simulcrypt_udp_port, simulcrypt_handle);
- }
- udp_port = global_simulcrypt_udp_port;
/* update tab_ecm_inter table (always do this) */
tab_ecm_inter[ECM_MIKEY_INDEX].ca_system_id=ca_system_id_mikey;
diff --git a/epan/dissectors/packet-sip.c b/epan/dissectors/packet-sip.c
index 80609eb42f..4dcdf11754 100644
--- a/epan/dissectors/packet-sip.c
+++ b/epan/dissectors/packet-sip.c
@@ -61,8 +61,6 @@
/* #define DEBUG_CONVERSATION */
#include "conversation_debug.h"
-#define TCP_PORT_SIP 5060
-#define UDP_PORT_SIP 5060
#define TLS_PORT_SIP 5061
#define DEFAULT_SIP_PORT_RANGE "5060"
@@ -6794,7 +6792,7 @@ proto_reg_handoff_sip(void)
/* SIP content type and internet media type used by other dissectors are the same */
media_type_dissector_table = find_dissector_table("media_type");
- dissector_add_uint("udp.port", UDP_PORT_SIP, sip_handle);
+ dissector_add_uint_range_with_preference("udp.port", DEFAULT_SIP_PORT_RANGE, sip_handle);
dissector_add_string("media_type", "message/sip", sip_handle);
dissector_add_uint_range_with_preference("tcp.port", DEFAULT_SIP_PORT_RANGE, sip_tcp_handle);
diff --git a/epan/dissectors/packet-skype.c b/epan/dissectors/packet-skype.c
index 68feb56063..4139af46d5 100644
--- a/epan/dissectors/packet-skype.c
+++ b/epan/dissectors/packet-skype.c
@@ -445,7 +445,7 @@ proto_reg_handoff_skype(void)
skype_handle = create_dissector_handle(dissect_skype_static, proto_skype);
dissector_add_for_decode_as_with_preference("tcp.port", skype_handle);
- dissector_add_for_decode_as("udp.port", skype_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", skype_handle);
heur_dissector_add("tcp", dissect_skype_heur, "Skype over TCP", "skype_tcp", proto_skype, HEURISTIC_DISABLE);
heur_dissector_add("udp", dissect_skype_heur, "Skype over UDP", "skype_udp", proto_skype, HEURISTIC_DISABLE);
diff --git a/epan/dissectors/packet-slimp3.c b/epan/dissectors/packet-slimp3.c
index 504733e313..43f7ff4558 100644
--- a/epan/dissectors/packet-slimp3.c
+++ b/epan/dissectors/packet-slimp3.c
@@ -68,8 +68,9 @@ static int hf_slimp3_data_data = -1;
static gint ett_slimp3 = -1;
-#define UDP_PORT_SLIMP3_V1 1069
+#define UDP_PORT_SLIMP3_V1 1069 /* Not IANA registered */
#define UDP_PORT_SLIMP3_V2 3483
+#define UDP_PORT_SLIMP3_RANGE "1069,3483"
#define SLIMP3_IR 'i'
#define SLIMP3_CONTROL 's'
@@ -701,8 +702,7 @@ proto_register_slimp3(void)
&ett_slimp3,
};
- proto_slimp3 = proto_register_protocol("SliMP3 Communication Protocol",
- "SliMP3", "slimp3");
+ proto_slimp3 = proto_register_protocol("SliMP3 Communication Protocol", "SliMP3", "slimp3");
proto_register_field_array(proto_slimp3, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
}
@@ -713,8 +713,7 @@ proto_reg_handoff_slimp3(void)
dissector_handle_t slimp3_handle;
slimp3_handle = create_dissector_handle(dissect_slimp3, proto_slimp3);
- dissector_add_uint("udp.port", UDP_PORT_SLIMP3_V1, slimp3_handle);
- dissector_add_uint("udp.port", UDP_PORT_SLIMP3_V2, slimp3_handle);
+ dissector_add_uint_range_with_preference("udp.port", UDP_PORT_SLIMP3_RANGE, slimp3_handle);
}
/*
diff --git a/epan/dissectors/packet-sml.c b/epan/dissectors/packet-sml.c
index 75b66f4e38..30001024af 100644
--- a/epan/dissectors/packet-sml.c
+++ b/epan/dissectors/packet-sml.c
@@ -37,8 +37,6 @@ Short description of the SML protocol on the SML Wireshark Wiki page: https://w
#include <wsutil/str_util.h>
-#define UDP_PORT_SML 0
-
#define ESC_SEQ_END G_GUINT64_CONSTANT(0x1b1b1b1b1a)
#define ESC_SEQ 0x1b1b1b1b
@@ -73,8 +71,6 @@ Short description of the SML protocol on the SML Wireshark Wiki page: https://w
#define LIST_6_ELEMENTS 0x76
#define MSB 0x80
-static guint udp_port_pref = UDP_PORT_SML;
-
/* Forward declaration we need below (if using proto_reg_handoff as a prefs callback)*/
void proto_register_sml(void);
void proto_reg_handoff_sml(void);
@@ -2790,11 +2786,10 @@ void proto_register_sml (void) {
};
proto_sml = proto_register_protocol("Smart Message Language","SML", "sml");
- sml_module = prefs_register_protocol(proto_sml, proto_reg_handoff_sml);
+ sml_module = prefs_register_protocol(proto_sml, NULL);
prefs_register_bool_preference (sml_module, "reassemble", "Enable reassemble", "Enable reassembling (default is enabled)", &sml_reassemble);
prefs_register_bool_preference (sml_module, "crc", "Enable crc calculation", "Enable crc (default is disabled)", &sml_crc_enabled);
- prefs_register_uint_preference(sml_module, "udp.port", "SML UDP Port", "Set the UDP port for SML (Default is 0), recommended port is 7259", 10, &udp_port_pref);
proto_register_field_array(proto_sml, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
@@ -2803,20 +2798,11 @@ void proto_register_sml (void) {
}
void proto_reg_handoff_sml(void) {
- static gboolean initialized = FALSE;
- static int old_udp_port;
- static dissector_handle_t sml_handle;
-
- if (!initialized) {
- sml_handle = create_dissector_handle(dissect_sml, proto_sml);
- dissector_add_for_decode_as_with_preference("tcp.port", sml_handle);
- initialized = TRUE;
- } else {
- dissector_delete_uint("udp.port", old_udp_port, sml_handle);
- }
- old_udp_port = udp_port_pref;
+ dissector_handle_t sml_handle;
- dissector_add_uint("udp.port", udp_port_pref, sml_handle);
+ sml_handle = create_dissector_handle(dissect_sml, proto_sml);
+ dissector_add_for_decode_as_with_preference("tcp.port", sml_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", sml_handle);
}
/*
diff --git a/epan/dissectors/packet-snmp.c b/epan/dissectors/packet-snmp.c
index 2f4e5b93d1..7fce19358d 100644
--- a/epan/dissectors/packet-snmp.c
+++ b/epan/dissectors/packet-snmp.c
@@ -4077,9 +4077,7 @@ void proto_register_snmp(void) {
void proto_reg_handoff_snmp(void) {
dissector_handle_t snmp_tcp_handle;
- dissector_add_uint("udp.port", UDP_PORT_SNMP, snmp_handle);
- dissector_add_uint("udp.port", UDP_PORT_SNMP_TRAP, snmp_handle);
- dissector_add_uint("udp.port", UDP_PORT_SNMP_PATROL, snmp_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_SNMP, snmp_handle);
dissector_add_uint("ethertype", ETHERTYPE_SNMP, snmp_handle);
dissector_add_uint("ipx.socket", IPX_SOCKET_SNMP_AGENT, snmp_handle);
dissector_add_uint("ipx.socket", IPX_SOCKET_SNMP_SINK, snmp_handle);
@@ -4091,6 +4089,8 @@ void proto_reg_handoff_snmp(void) {
the "trap" port doesn't really need a separate preference. Just register
normally */
dissector_add_uint("tcp.port", TCP_PORT_SNMP_TRAP, snmp_tcp_handle);
+ dissector_add_uint("udp.port", UDP_PORT_SNMP_TRAP, snmp_handle);
+ dissector_add_uint("udp.port", UDP_PORT_SNMP_PATROL, snmp_handle);
data_handle = find_dissector("data");
diff --git a/epan/dissectors/packet-sprt.c b/epan/dissectors/packet-sprt.c
index 868020b642..2fdf7299c5 100644
--- a/epan/dissectors/packet-sprt.c
+++ b/epan/dissectors/packet-sprt.c
@@ -3429,7 +3429,7 @@ void
proto_reg_handoff_sprt(void)
{
sprt_handle = find_dissector("sprt");
- dissector_add_for_decode_as("udp.port", sprt_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", sprt_handle);
heur_dissector_add( "udp", dissect_sprt_heur, "SPRT over UDP", "sprt_udp", proto_sprt, HEURISTIC_ENABLE);
}
diff --git a/epan/dissectors/packet-srvloc.c b/epan/dissectors/packet-srvloc.c
index e550d43a65..db22a2c64e 100644
--- a/epan/dissectors/packet-srvloc.c
+++ b/epan/dissectors/packet-srvloc.c
@@ -1890,7 +1890,7 @@ proto_reg_handoff_srvloc(void)
{
dissector_handle_t srvloc_handle, srvloc_tcp_handle;
srvloc_handle = create_dissector_handle(dissect_srvloc, proto_srvloc);
- dissector_add_uint("udp.port", UDP_PORT_SRVLOC, srvloc_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_SRVLOC, srvloc_handle);
srvloc_tcp_handle = create_dissector_handle(dissect_srvloc_tcp,
proto_srvloc);
dissector_add_uint_with_preference("tcp.port", TCP_PORT_SRVLOC, srvloc_tcp_handle);
diff --git a/epan/dissectors/packet-sscop.c b/epan/dissectors/packet-sscop.c
index 353ed41bc6..68f6b85aa1 100644
--- a/epan/dissectors/packet-sscop.c
+++ b/epan/dissectors/packet-sscop.c
@@ -56,10 +56,6 @@ static dissector_handle_t sscf_nni_handle;
static dissector_handle_t alcap_handle;
static dissector_handle_t nbap_handle;
-static module_t *sscop_module;
-
-static range_t *global_udp_port_range;
-
static dissector_handle_t sscop_handle;
@@ -387,22 +383,13 @@ void
proto_reg_handoff_sscop(void)
{
static gboolean prefs_initialized = FALSE;
- static range_t *udp_port_range;
if (!prefs_initialized) {
initialize_handles_once();
+ dissector_add_uint_range_with_preference("udp.port", "", sscop_handle);
prefs_initialized = TRUE;
-
- } else {
-
- dissector_delete_uint_range("udp.port", udp_port_range, sscop_handle);
- g_free(udp_port_range);
-
}
- udp_port_range = range_copy(global_udp_port_range);
- dissector_add_uint_range("udp.port", udp_port_range, sscop_handle);
-
dissector_add_uint("atm.aal5.type", TRAF_SSCOP, sscop_handle);
switch(sscop_payload_dissector) {
@@ -438,6 +425,8 @@ proto_register_sscop(void)
&ett_stat
};
+ module_t *sscop_module;
+
proto_sscop = proto_register_protocol("SSCOP", "SSCOP", "sscop");
proto_register_field_array(proto_sscop, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
@@ -446,13 +435,6 @@ proto_register_sscop(void)
sscop_module = prefs_register_protocol(proto_sscop, proto_reg_handoff_sscop);
- global_udp_port_range = range_empty();
-
- prefs_register_range_preference(sscop_module, "udp.ports",
- "SSCOP UDP port range",
- "Set the UDP port for SSCOP messages encapsulated in UDP (0 to disable)",
- &global_udp_port_range, MAX_UDP_PORT);
-
prefs_register_enum_preference(sscop_module, "payload",
"SSCOP payload protocol",
"SSCOP payload (dissector to call on SSCOP payload)",
diff --git a/epan/dissectors/packet-stun.c b/epan/dissectors/packet-stun.c
index 7531b2c48c..8ce2f665cd 100644
--- a/epan/dissectors/packet-stun.c
+++ b/epan/dissectors/packet-stun.c
@@ -1729,7 +1729,7 @@ proto_reg_handoff_stun(void)
stun_udp_handle = create_dissector_handle(dissect_stun_udp, proto_stun);
dissector_add_uint_with_preference("tcp.port", TCP_PORT_STUN, stun_tcp_handle);
- dissector_add_uint("udp.port", UDP_PORT_STUN, stun_udp_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_STUN, stun_udp_handle);
heur_dissector_add("udp", dissect_stun_heur, "STUN over UDP", "stun_udp", proto_stun, HEURISTIC_ENABLE);
diff --git a/epan/dissectors/packet-sync.c b/epan/dissectors/packet-sync.c
index 80a7b2dd94..786bc6b24c 100644
--- a/epan/dissectors/packet-sync.c
+++ b/epan/dissectors/packet-sync.c
@@ -305,7 +305,7 @@ proto_reg_handoff_sync(void)
{
ip_handle = find_dissector_add_dependency("ip", proto_sync);
- dissector_add_for_decode_as("udp.port", sync_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", sync_handle);
}
/*
diff --git a/epan/dissectors/packet-synphasor.c b/epan/dissectors/packet-synphasor.c
index a581bfaf82..885a5d5701 100644
--- a/epan/dissectors/packet-synphasor.c
+++ b/epan/dissectors/packet-synphasor.c
@@ -28,7 +28,6 @@
#include <epan/packet.h>
#include <epan/crc16-tvb.h>
-#include <epan/prefs.h>
#include <epan/expert.h>
#include <epan/proto_data.h>
#include "packet-tcp.h"
@@ -49,7 +48,7 @@ static int proto_synphasor = -1;
/* user preferences */
#define SYNPHASOR_TCP_PORT 4712 /* Not IANA registered */
-static guint global_pref_udp_port = 4713;
+#define SYNPHASOR_UDP_PORT 4713 /* Not IANA registered */
/* the ett... variables hold the state (open/close) of the treeview in the GUI */
static gint ett_synphasor = -1; /* root element for this protocol */
@@ -1348,7 +1347,6 @@ void proto_register_synphasor(void)
{ &ei_synphasor_checksum, { "synphasor.bad_checksum", PI_CHECKSUM, PI_ERROR, "Bad checksum", EXPFILL }},
};
- module_t *synphasor_module;
expert_module_t* expert_synphasor;
/* register protocol */
@@ -1364,38 +1362,18 @@ void proto_register_synphasor(void)
expert_synphasor = expert_register_protocol(proto_synphasor);
expert_register_field_array(expert_synphasor, ei, array_length(ei));
- /* register preferences */
- synphasor_module = prefs_register_protocol(proto_synphasor, proto_reg_handoff_synphasor);
-
- /* the port numbers of the lower level protocols */
- prefs_register_uint_preference(synphasor_module, "udp_port", "Synchrophasor UDP port",
- "Set the port number for synchrophasor frames over UDP" \
- "(if other than the default of 4713)",
- 10, &global_pref_udp_port);
-
} /* proto_register_synphasor() */
/* called at startup and when the preferences change */
void proto_reg_handoff_synphasor(void)
{
- static gboolean initialized = FALSE;
- static dissector_handle_t synphasor_tcp_handle;
- static guint current_udp_port;
-
- if (!initialized) {
- synphasor_tcp_handle = create_dissector_handle(dissect_tcp, proto_synphasor);
- dissector_add_for_decode_as("rtacser.data", synphasor_udp_handle);
- dissector_add_uint_with_preference("tcp.port", SYNPHASOR_TCP_PORT, synphasor_tcp_handle);
- initialized = TRUE;
- }
- else {
- /* update preferences */
- dissector_delete_uint("udp.port", current_udp_port, synphasor_udp_handle);
- }
+ dissector_handle_t synphasor_tcp_handle;
- current_udp_port = global_pref_udp_port;
+ synphasor_tcp_handle = create_dissector_handle(dissect_tcp, proto_synphasor);
+ dissector_add_for_decode_as("rtacser.data", synphasor_udp_handle);
+ dissector_add_uint_with_preference("udp.port", SYNPHASOR_UDP_PORT, synphasor_udp_handle);
+ dissector_add_uint_with_preference("tcp.port", SYNPHASOR_TCP_PORT, synphasor_tcp_handle);
- dissector_add_uint("udp.port", current_udp_port, synphasor_udp_handle);
} /* proto_reg_handoff_synphasor() */
/*
diff --git a/epan/dissectors/packet-syslog.c b/epan/dissectors/packet-syslog.c
index 15321553cd..dabe8b87fa 100644
--- a/epan/dissectors/packet-syslog.c
+++ b/epan/dissectors/packet-syslog.c
@@ -352,7 +352,7 @@ void proto_register_syslog(void)
void
proto_reg_handoff_syslog(void)
{
- dissector_add_uint("udp.port", UDP_PORT_SYSLOG, syslog_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_SYSLOG, syslog_handle);
dissector_add_for_decode_as_with_preference("tcp.port", syslog_handle);
/* Find the mtp3 dissector */
diff --git a/epan/dissectors/packet-t38.c b/epan/dissectors/packet-t38.c
index 50b9c129ce..e0d896c622 100644
--- a/epan/dissectors/packet-t38.c
+++ b/epan/dissectors/packet-t38.c
@@ -1419,7 +1419,6 @@ proto_register_t38(void)
"be dissected as RTP packet or T.38 packet. If enabled there is a risk that T.38 UDPTL "
"packets with sequence number higher than 32767 may be dissected as RTP.",
&dissect_possible_rtpv2_packets_as_rtp);
- prefs_register_obsolete_preference(t38_module, "udp.port");
prefs_register_bool_preference(t38_module, "reassembly",
"Reassemble T.38 PDUs over TPKT over TCP",
"Whether the dissector should reassemble T.38 PDUs spanning multiple TCP segments "
diff --git a/epan/dissectors/packet-tacacs.c b/epan/dissectors/packet-tacacs.c
index 6c2c901bb9..ec90469db7 100644
--- a/epan/dissectors/packet-tacacs.c
+++ b/epan/dissectors/packet-tacacs.c
@@ -283,7 +283,7 @@ proto_reg_handoff_tacacs(void)
dissector_handle_t tacacs_handle;
tacacs_handle = create_dissector_handle(dissect_tacacs, proto_tacacs);
- dissector_add_uint("udp.port", UDP_PORT_TACACS, tacacs_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_TACACS, tacacs_handle);
}
static int proto_tacplus = -1;
diff --git a/epan/dissectors/packet-tapa.c b/epan/dissectors/packet-tapa.c
index d419f870e2..2400c97666 100644
--- a/epan/dissectors/packet-tapa.c
+++ b/epan/dissectors/packet-tapa.c
@@ -86,7 +86,7 @@ static int hf_tapa_tunnel_remaining = -1;
#define PROTO_SHORT_NAME "TAPA"
#define PROTO_LONG_NAME "Trapeze Access Point Access Protocol"
-#define PORT_TAPA 5000
+#define PORT_TAPA 5000 /* Not IANA registered */
typedef enum {
TAPA_TYPE_REQUEST = 0x01,
@@ -626,7 +626,7 @@ proto_reg_handoff_tapa(void)
dissector_handle_t tapa_handle;
tapa_handle = find_dissector("tapa");
- dissector_add_uint("udp.port", PORT_TAPA, tapa_handle);
+ dissector_add_uint_with_preference("udp.port", PORT_TAPA, tapa_handle);
heur_dissector_add( "ip", dissect_tapa_heur, "TAPA over IP", "tapa_ip", proto_tapa, HEURISTIC_ENABLE);
}
diff --git a/epan/dissectors/packet-tdmop.c b/epan/dissectors/packet-tdmop.c
index 6bc470bfd5..3dadcb2a06 100644
--- a/epan/dissectors/packet-tdmop.c
+++ b/epan/dissectors/packet-tdmop.c
@@ -27,7 +27,6 @@
#include <epan/packet.h>
#include <epan/prefs.h>
-#define TDMOP_PORT 0
/*Using of ethertype 0x0808(assigned to Frame Realy ARP) was implemented in hardware, when ethertype was not assigned*/
#define ETHERTYPE_TDMOP 0
@@ -61,7 +60,6 @@ static dissector_handle_t lapd_handle = NULL;
static gint pref_tdmop_d_channel = 16;
static guint32 pref_tdmop_mask = 0xFFFFFFFFUL;
static guint32 pref_tdmop_ethertype = ETHERTYPE_TDMOP;
-static guint32 pref_tdmop_udpport = TDMOP_PORT;
#define TDMOP_FLAG_NO_DATA (1<<3)
#define TDMOP_FLAG_REMOTE_NO_DATA (1<<2)
@@ -315,11 +313,7 @@ void proto_register_tdmop(void)
&ett_tdmop,
&ett_tdmop_channel
};
- proto_tdmop = proto_register_protocol (
- "TDMoP protocol",
- "TDMoP",
- "tdmop"
- );
+ proto_tdmop = proto_register_protocol ("TDMoP protocol", "TDMoP", "tdmop");
proto_register_field_array(proto_tdmop, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
tdmop_module = prefs_register_protocol(proto_tdmop, proto_reg_handoff_tdmop);
@@ -335,10 +329,6 @@ void proto_register_tdmop(void)
"Ethertype for TDMoP stream(Usually 0808)",
"The ethertype assigned to TDMoP (without IP/UDP) stream",
16, &pref_tdmop_ethertype);
- prefs_register_uint_preference(tdmop_module, "udpport",
- "UDP Port of TDMoP stream(Usually 41000)",
- "The udp port assigned to TDMoP stream",
- 10, &pref_tdmop_udpport);
}
void proto_reg_handoff_tdmop(void)
@@ -346,19 +336,16 @@ void proto_reg_handoff_tdmop(void)
static dissector_handle_t tdmop_handle;
static gboolean init = FALSE;
static guint32 current_tdmop_ethertype;
- static guint32 current_tdmop_udpport;
if (!init)
{
tdmop_handle = create_dissector_handle(dissect_tdmop, proto_tdmop);
- if (pref_tdmop_udpport) {
- dissector_add_uint("udp.port", pref_tdmop_udpport, tdmop_handle);
- }
+ dissector_add_for_decode_as_with_preference("udp.port", tdmop_handle);
+
if (pref_tdmop_ethertype) {
dissector_add_uint("ethertype", pref_tdmop_ethertype, tdmop_handle);
}
lapd_handle = find_dissector_add_dependency("lapd-bitstream", proto_tdmop);
current_tdmop_ethertype = pref_tdmop_ethertype;
- current_tdmop_udpport = pref_tdmop_udpport;
init = TRUE;
}
if (current_tdmop_ethertype != pref_tdmop_ethertype)
@@ -369,14 +356,6 @@ void proto_reg_handoff_tdmop(void)
}
current_tdmop_ethertype = pref_tdmop_ethertype;
}
- if (current_tdmop_udpport != pref_tdmop_udpport)
- {
- dissector_delete_uint("udp.port", current_tdmop_udpport, tdmop_handle);
- if (pref_tdmop_udpport) {
- dissector_add_uint("udp.port", pref_tdmop_udpport, tdmop_handle);
- }
- current_tdmop_udpport = pref_tdmop_udpport;
- }
}
/*
diff --git a/epan/dissectors/packet-teamspeak2.c b/epan/dissectors/packet-teamspeak2.c
index c3e5916908..8aa83d24a6 100644
--- a/epan/dissectors/packet-teamspeak2.c
+++ b/epan/dissectors/packet-teamspeak2.c
@@ -224,7 +224,7 @@ static const value_string codecnames[] =
{ 0, NULL }
};
-#define TS2_PORT 8767
+#define TS2_PORT 8767 /* Not IANA registered */
static int proto_ts2 = -1;
@@ -1238,7 +1238,7 @@ void proto_reg_handoff_ts2(void)
{
dissector_handle_t ts2_handle;
ts2_handle = create_dissector_handle(dissect_ts2, proto_ts2);
- dissector_add_uint("udp.port", TS2_PORT, ts2_handle);
+ dissector_add_uint_with_preference("udp.port", TS2_PORT, ts2_handle);
}
/*
diff --git a/epan/dissectors/packet-teredo.c b/epan/dissectors/packet-teredo.c
index e4e86b5e00..cd17a225e6 100644
--- a/epan/dissectors/packet-teredo.c
+++ b/epan/dissectors/packet-teredo.c
@@ -401,7 +401,7 @@ proto_reg_handoff_teredo(void)
data_handle = find_dissector("ipv6");
teredo_tap = register_tap("teredo");
- dissector_add_uint("udp.port", UDP_PORT_TEREDO, teredo_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_TEREDO, teredo_handle);
heur_dissector_add("udp", dissect_teredo_heur, "Teredo over UDP", "teredo_udp", proto_teredo, HEURISTIC_DISABLE);
}
diff --git a/epan/dissectors/packet-tetra.c b/epan/dissectors/packet-tetra.c
index e92d9dd1e4..049b38622a 100644
--- a/epan/dissectors/packet-tetra.c
+++ b/epan/dissectors/packet-tetra.c
@@ -56,7 +56,7 @@ static int proto_tetra = -1;
static dissector_handle_t tetra_handle;
-static int global_tetra_port = 7074;
+#define TETRA_UDP_PORT 7074 /* Not IANA assigned */
/* Whether the capture data include carrier numbers */
static gboolean include_carrier_number = TRUE;
@@ -9268,13 +9268,8 @@ dissect_tetra(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U
void proto_reg_handoff_tetra(void)
{
- static gboolean initialized=FALSE;
-
- if (!initialized) {
- tetra_handle = create_dissector_handle(dissect_tetra, proto_tetra);
- dissector_add_uint("udp.port", global_tetra_port, tetra_handle);
- }
-
+ tetra_handle = create_dissector_handle(dissect_tetra, proto_tetra);
+ dissector_add_uint_with_preference("udp.port", TETRA_UDP_PORT, tetra_handle);
}
@@ -11713,7 +11708,7 @@ void proto_register_tetra (void)
"T_simplex_duplex_selection_05", HFILL }},
/*--- End of included file: packet-tetra-hfarr.c ---*/
-#line 622 "./asn1/tetra/packet-tetra-template.c"
+#line 617 "./asn1/tetra/packet-tetra-template.c"
};
/* List of subtrees */
@@ -11998,7 +11993,7 @@ void proto_register_tetra (void)
&ett_tetra_Modify_type,
/*--- End of included file: packet-tetra-ettarr.c ---*/
-#line 632 "./asn1/tetra/packet-tetra-template.c"
+#line 627 "./asn1/tetra/packet-tetra-template.c"
};
static ei_register_info ei[] = {
diff --git a/epan/dissectors/packet-tftp.c b/epan/dissectors/packet-tftp.c
index 2db40e701e..13ca3588a1 100644
--- a/epan/dissectors/packet-tftp.c
+++ b/epan/dissectors/packet-tftp.c
@@ -45,6 +45,7 @@
#include <epan/conversation.h>
#include <epan/expert.h>
#include <epan/prefs.h>
+#include <epan/prefs-int.h>
#include <epan/tap.h>
#include "packet-tftp.h"
@@ -602,6 +603,13 @@ dissect_tftp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
}
+static void
+apply_tftp_prefs(void) {
+ pref_t *tftp_ports = prefs_find_preference(prefs_find_module("tftp"), "udp.port");
+
+ global_tftp_port_range = range_copy(*tftp_ports->varp.range);
+}
+
void
proto_register_tftp(void)
{
@@ -665,27 +673,17 @@ proto_register_tftp(void)
{ &ei_tftp_blocksize_range, { "tftp.blocksize_range", PI_RESPONSE_CODE, PI_WARN, "TFTP blocksize out of range", EXPFILL }},
};
- module_t *tftp_module;
expert_module_t* expert_tftp;
- proto_tftp = proto_register_protocol("Trivial File Transfer Protocol",
- "TFTP", "tftp");
+ proto_tftp = proto_register_protocol("Trivial File Transfer Protocol", "TFTP", "tftp");
proto_register_field_array(proto_tftp, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
expert_tftp = expert_register_protocol(proto_tftp);
expert_register_field_array(expert_tftp, ei, array_length(ei));
- register_dissector("tftp", dissect_tftp, proto_tftp);
+ tftp_handle = register_dissector("tftp", dissect_tftp, proto_tftp);
- /* Set default UDP ports */
- range_convert_str(&global_tftp_port_range, UDP_PORT_TFTP_RANGE, MAX_UDP_PORT);
-
- tftp_module = prefs_register_protocol(proto_tftp, proto_reg_handoff_tftp);
- prefs_register_range_preference(tftp_module, "udp_ports",
- "TFTP port numbers",
- "Port numbers used for TFTP traffic "
- "(default " UDP_PORT_TFTP_RANGE ")",
- &global_tftp_port_range, MAX_UDP_PORT);
+ prefs_register_protocol(proto_tftp, apply_tftp_prefs);
/* Register the tap for the "Export Object" function */
tftp_eo_tap = register_tap("tftp_eo"); /* TFTP Export Object tap */
@@ -694,20 +692,9 @@ proto_register_tftp(void)
void
proto_reg_handoff_tftp(void)
{
- static range_t *tftp_port_range;
- static gboolean tftp_initialized = FALSE;
-
- if (!tftp_initialized) {
- tftp_handle = find_dissector("tftp");
- heur_dissector_add("stun", dissect_embeddedtftp_heur, "TFTP over TURN", "tftp_stun", proto_tftp, HEURISTIC_ENABLE);
- tftp_initialized = TRUE;
- } else {
- dissector_delete_uint_range("udp.port", tftp_port_range, tftp_handle);
- g_free(tftp_port_range);
- }
+ heur_dissector_add("stun", dissect_embeddedtftp_heur, "TFTP over TURN", "tftp_stun", proto_tftp, HEURISTIC_ENABLE);
- tftp_port_range = range_copy(global_tftp_port_range);
- dissector_add_uint_range("udp.port", tftp_port_range, tftp_handle);
+ dissector_add_uint_range_with_preference("udp.port", UDP_PORT_TFTP_RANGE, tftp_handle);
}
/*
diff --git a/epan/dissectors/packet-time.c b/epan/dissectors/packet-time.c
index c0017ab155..2ec484ce84 100644
--- a/epan/dissectors/packet-time.c
+++ b/epan/dissectors/packet-time.c
@@ -121,7 +121,7 @@ proto_reg_handoff_time(void)
dissector_handle_t time_handle;
time_handle = create_dissector_handle(dissect_time, proto_time);
- dissector_add_uint("udp.port", TIME_PORT, time_handle);
+ dissector_add_uint_with_preference("udp.port", TIME_PORT, time_handle);
dissector_add_uint_with_preference("tcp.port", TIME_PORT, time_handle);
}
diff --git a/epan/dissectors/packet-tipc.c b/epan/dissectors/packet-tipc.c
index 58e0c4639f..e15f7d4fd9 100644
--- a/epan/dissectors/packet-tipc.c
+++ b/epan/dissectors/packet-tipc.c
@@ -212,9 +212,7 @@ static gboolean tipc_tcp_desegment = TRUE;
static dissector_handle_t tipc_handle;
/* IANA have assigned port 6118 port for TIPC UDP transport. */
-#define DEFAULT_TIPC_PORT_RANGE "0"
-
-static range_t *global_tipc_udp_port_range;
+#define DEFAULT_TIPC_PORT_RANGE "6118"
/* this is used to find encapsulated protocols */
static dissector_table_t tipc_user_dissector;
@@ -3041,20 +3039,11 @@ proto_register_tipc(void)
register_cleanup_routine(tipc_defragment_cleanup);
/* Register configuration options */
- tipc_module = prefs_register_protocol(proto_tipc, proto_reg_handoff_tipc);
+ tipc_module = prefs_register_protocol(proto_tipc, NULL);
tipc_address_type = address_type_dissector_register("AT_TIPC", "TIPC Address Zone,Subnetwork,Processor",
tipc_addr_to_str_buf, tipc_addr_str_len, NULL, NULL, NULL, NULL, NULL);
- /* Set default ports */
- range_convert_str(&global_tipc_udp_port_range, DEFAULT_TIPC_PORT_RANGE, MAX_TCP_PORT);
-
- prefs_register_range_preference(tipc_module, "udp.ports", "TIPC UDP ports",
- "UDP ports to be decoded as TIPC (default: "
- DEFAULT_TIPC_PORT_RANGE ")"
- "IANA have assigned port 6118 port for TIPC UDP transport.",
- &global_tipc_udp_port_range, MAX_UDP_PORT);
-
prefs_register_bool_preference(tipc_module, "defragment",
"Reassemble TIPCv1 SEGMENTATION_MANAGER datagrams",
"Whether TIPCv1 SEGMENTATION_MANAGER datagrams should be reassembled",
@@ -3087,25 +3076,14 @@ proto_register_tipc(void)
void
proto_reg_handoff_tipc(void)
{
- static gboolean inited = FALSE;
- static dissector_handle_t tipc_tcp_handle;
- static range_t *tipc_udp_port_range;
-
- if (!inited) {
- tipc_tcp_handle = create_dissector_handle(dissect_tipc_tcp, proto_tipc);
- ip_handle = find_dissector("ip");
+ dissector_handle_t tipc_tcp_handle;
- dissector_add_uint("ethertype", ETHERTYPE_TIPC, tipc_handle);
-
- dissector_add_for_decode_as_with_preference("tcp.port", tipc_tcp_handle);
- inited = TRUE;
- } else {
- dissector_add_uint_range("udp.port", tipc_udp_port_range, tipc_handle);
- g_free(tipc_udp_port_range);
- }
+ tipc_tcp_handle = create_dissector_handle(dissect_tipc_tcp, proto_tipc);
+ ip_handle = find_dissector("ip");
- tipc_udp_port_range = range_copy(global_tipc_udp_port_range);
- dissector_add_uint_range("udp.port", tipc_udp_port_range, tipc_handle);
+ dissector_add_uint("ethertype", ETHERTYPE_TIPC, tipc_handle);
+ dissector_add_for_decode_as_with_preference("tcp.port", tipc_tcp_handle);
+ dissector_add_uint_range_with_preference("udp.port", DEFAULT_TIPC_PORT_RANGE, tipc_handle);
}
/*
diff --git a/epan/dissectors/packet-tivoconnect.c b/epan/dissectors/packet-tivoconnect.c
index a51a80a068..3af0cc83c1 100644
--- a/epan/dissectors/packet-tivoconnect.c
+++ b/epan/dissectors/packet-tivoconnect.c
@@ -242,7 +242,7 @@ proto_reg_handoff_tivoconnect(void)
tivoconnect_tcp_handle = create_dissector_handle(dissect_tivoconnect_tcp, proto_tivoconnect);
tivoconnect_udp_handle = create_dissector_handle(dissect_tivoconnect_udp, proto_tivoconnect);
- dissector_add_uint("udp.port", TIVOCONNECT_PORT, tivoconnect_udp_handle);
+ dissector_add_uint_with_preference("udp.port", TIVOCONNECT_PORT, tivoconnect_udp_handle);
dissector_add_uint_with_preference("tcp.port", TIVOCONNECT_PORT, tivoconnect_tcp_handle);
}
diff --git a/epan/dissectors/packet-tsp.c b/epan/dissectors/packet-tsp.c
index e7ab7be488..96482ff4db 100644
--- a/epan/dissectors/packet-tsp.c
+++ b/epan/dissectors/packet-tsp.c
@@ -168,7 +168,7 @@ proto_reg_handoff_tsp(void)
dissector_handle_t tsp_handle;
tsp_handle = create_dissector_handle(dissect_tsp, proto_tsp);
- dissector_add_uint("udp.port", UDP_PORT_TIMED, tsp_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_TIMED, tsp_handle);
}
diff --git a/epan/dissectors/packet-turnchannel.c b/epan/dissectors/packet-turnchannel.c
index f9f0c71b79..fde45dd392 100644
--- a/epan/dissectors/packet-turnchannel.c
+++ b/epan/dissectors/packet-turnchannel.c
@@ -206,7 +206,7 @@ proto_reg_handoff_turnchannel(void)
/* Register for "Decode As" in case STUN negotiation isn't captured */
dissector_add_for_decode_as_with_preference("tcp.port", turnchannel_tcp_handle);
- dissector_add_for_decode_as("udp.port", turnchannel_udp_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", turnchannel_udp_handle);
/* 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 */
diff --git a/epan/dissectors/packet-tzsp.c b/epan/dissectors/packet-tzsp.c
index 278dd59bed..efd1f0e8e7 100644
--- a/epan/dissectors/packet-tzsp.c
+++ b/epan/dissectors/packet-tzsp.c
@@ -37,7 +37,7 @@
* for a description of the protocol.
*/
-#define UDP_PORT_TZSP 0x9090
+#define UDP_PORT_TZSP 0x9090 /* Not IANA registered */
void proto_register_tzsp(void);
void proto_reg_handoff_tzsp(void);
@@ -539,8 +539,7 @@ proto_register_tzsp(void)
&ett_tag
};
- proto_tzsp = proto_register_protocol("Tazmen Sniffer Protocol", "TZSP",
- "tzsp");
+ proto_tzsp = proto_register_protocol("Tazmen Sniffer Protocol", "TZSP", "tzsp");
proto_register_field_array(proto_tzsp, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
@@ -550,7 +549,7 @@ proto_register_tzsp(void)
void
proto_reg_handoff_tzsp(void)
{
- dissector_add_uint("udp.port", UDP_PORT_TZSP, tzsp_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_TZSP, tzsp_handle);
/* Get the data dissector for handling various encapsulation types. */
eth_maybefcs_handle = find_dissector_add_dependency("eth_maybefcs", proto_tzsp);
diff --git a/epan/dissectors/packet-uaudp.c b/epan/dissectors/packet-uaudp.c
index a5bc3e7b80..e193036840 100644
--- a/epan/dissectors/packet-uaudp.c
+++ b/epan/dissectors/packet-uaudp.c
@@ -25,12 +25,14 @@
#include "epan/packet.h"
#include "epan/prefs.h"
+#include "epan/prefs-int.h"
#include "wsutil/report_err.h"
#include "wsutil/inet_addr.h"
#include "packet-uaudp.h"
void proto_register_uaudp(void);
+void proto_reg_handoff_uaudp(void);
/* GLOBALS */
@@ -64,11 +66,12 @@ static int hf_uaudp_sntseq = -1;
static gint ett_uaudp = -1;
/* pref */
+#define UAUDP_PORT_RANGE "32000,32512" /* Not IANA registered */
+static range_t *ua_udp_range = NULL;
static guint32 sys_ip;
static const char* pref_sys_ip_s = "";
static gboolean use_sys_ip = FALSE;
-static gboolean decode_ua = TRUE;
static const value_string uaudp_opcode_str[] =
{
@@ -104,39 +107,6 @@ value_string_ext uaudp_connect_vals_ext = VALUE_STRING_EXT_INIT(uaudp_connect_va
static dissector_handle_t ua_sys_to_term_handle;
static dissector_handle_t ua_term_to_sys_handle;
-typedef struct
-{
- const char *name;
- const char *text;
- guint port;
- guint last_port;
-} prefs_uaudp_t;
-
-static prefs_uaudp_t ports[] =
-{
- {"port1", "Terminal UDP port (setting 1)", 32000, 32000},
- {"port2", "Terminal UDP port (setting 2)", 32512, 32512},
- {"port3", "Terminal UDP port (setting 3)", 0, 0},
- {"port4", "Terminal UDP port (setting 4)", 0, 0},
-#if 0
- {"port5", "Terminal UDP port (setting 5)", 0, 0},
- {"port6", "Terminal UDP port (setting 6)", 0, 0},
- {"port7", "Terminal UDP port (setting 7)", 0, 0},
- {"port8", "Terminal UDP port (setting 8)", 0, 0}
-#endif
-};
-#define MAX_TERMINAL_PORTS (signed)(array_length(ports))
-
-static gboolean find_terminal_port(guint port)
-{
- int i;
- for (i=0; i<MAX_TERMINAL_PORTS; i++)
- if (ports[i].port == port)
- return TRUE;
- return FALSE;
-}
-
-
static void rV(proto_tree *tree, int *V, tvbuff_t *tvb, gint offset, gint8 L)
{
switch(L)
@@ -372,12 +342,12 @@ static int dissect_uaudp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, vo
}
/* use ports to find direction */
- if (find_terminal_port(pinfo->srcport))
+ if (value_is_in_range(ua_udp_range, pinfo->srcport))
{
_dissect_uaudp(tvb, pinfo, tree, TERM_TO_SYS);
return tvb_captured_length(tvb);
}
- else if (find_terminal_port(pinfo->destport))
+ else if (value_is_in_range(ua_udp_range, pinfo->destport))
{
_dissect_uaudp(tvb, pinfo, tree, SYS_TO_TERM);
return tvb_captured_length(tvb);
@@ -387,14 +357,24 @@ static int dissect_uaudp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, vo
return tvb_captured_length(tvb);
}
+static void
+apply_uaudp_prefs(void) {
+ pref_t *ua_ports = prefs_find_preference(prefs_find_module("uaudp"), "udp.port");
-/* Register the protocol with Wireshark */
-void proto_reg_handoff_uaudp(void);
+ ua_udp_range = range_copy(*ua_ports->varp.range);
+
+ if (*pref_sys_ip_s) {
+ use_sys_ip = ws_inet_pton4(pref_sys_ip_s, &sys_ip);
+ if (!use_sys_ip) {
+ report_failure("Invalid value for pref uaudp.system_ip: %s",
+ pref_sys_ip_s);
+ }
+ }
+}
void proto_register_uaudp(void)
{
module_t *uaudp_module;
- int i;
/* Setup list of header fields. See Section 1.6.1 for details */
static hf_register_info hf_uaudp[] = {
@@ -561,9 +541,7 @@ void proto_register_uaudp(void)
};
/* Register the protocol name and description */
- proto_uaudp = proto_register_protocol("UA/UDP Encapsulation Protocol",
- "UAUDP",
- "uaudp");
+ proto_uaudp = proto_register_protocol("UA/UDP Encapsulation Protocol", "UAUDP", "uaudp");
uaudp_handle = register_dissector("uaudp", dissect_uaudp, proto_uaudp);
#if 0 /* XXX: Not used ?? */
@@ -575,23 +553,17 @@ void proto_register_uaudp(void)
proto_register_field_array(proto_uaudp, hf_uaudp, array_length(hf_uaudp));
proto_register_subtree_array(ett, array_length(ett));
- /* Register preferences */
- uaudp_module = prefs_register_protocol(proto_uaudp, proto_reg_handoff_uaudp);
-
#if 0
- prefs_register_bool_preference(uaudp_module, "enable",
- "Enable UA/UDP decoding based on preferences",
- "Enable UA/UDP decoding based on preferences",
- &decode_ua);
+ uaudp_opcode_dissector_table =
+ register_dissector_table("uaudp.opcode",
+ "UAUDP opcode",
+ FT_UINT8,
+ BASE_DEC);
#endif
- for (i=0; i<MAX_TERMINAL_PORTS; i++) {
- prefs_register_uint_preference(uaudp_module,
- ports[i].name,
- ports[i].text,
- ports[i].text,
- 10,
- &ports[i].port);
- }
+
+ /* Register preferences */
+ uaudp_module = prefs_register_protocol(proto_uaudp, apply_uaudp_prefs);
+
prefs_register_string_preference(uaudp_module, "system_ip",
"System IP Address (optional)",
"IPv4 address of the DHS3 system."
@@ -604,62 +576,12 @@ void proto_register_uaudp(void)
#endif
}
-
void proto_reg_handoff_uaudp(void)
{
- static gboolean prefs_initialized = FALSE;
- int i;
-
- if (!prefs_initialized)
- {
- ua_sys_to_term_handle = find_dissector_add_dependency("ua_sys_to_term", proto_uaudp);
- ua_term_to_sys_handle = find_dissector_add_dependency("ua_term_to_sys", proto_uaudp);
-#if 0
- uaudp_opcode_dissector_table =
- register_dissector_table("uaudp.opcode",
- "UAUDP opcode",
- FT_UINT8,
- BASE_DEC);
-#endif
- prefs_initialized = TRUE;
- }
- else
- {
- for (i=0; i<MAX_TERMINAL_PORTS; i++)
- {
- if (ports[i].last_port)
- dissector_delete_uint("udp.port", ports[i].last_port, uaudp_handle);
- }
- if (*pref_sys_ip_s) {
- use_sys_ip = ws_inet_pton4(pref_sys_ip_s, &sys_ip);
- if (!use_sys_ip) {
- report_failure("Invalid value for pref uaudp.system_ip: %s",
- pref_sys_ip_s);
- }
- }
- }
+ ua_sys_to_term_handle = find_dissector_add_dependency("ua_sys_to_term", proto_uaudp);
+ ua_term_to_sys_handle = find_dissector_add_dependency("ua_term_to_sys", proto_uaudp);
- if (decode_ua)
- {
- int no_ports_registered = TRUE;
-
- for (i=0; i < MAX_TERMINAL_PORTS; i++)
- {
- if (ports[i].port)
- {
- dissector_add_uint("udp.port", ports[i].port, uaudp_handle);
- no_ports_registered = FALSE;
- }
- ports[i].last_port = ports[i].port;
- }
-
- if (no_ports_registered)
- {
- /* If all ports are set to 0, then just register the handle so
- * at least "Decode As..." will work. */
- dissector_add_for_decode_as("udp.port", uaudp_handle);
- }
- }
+ dissector_add_uint_range_with_preference("udp.port", UAUDP_PORT_RANGE, uaudp_handle);
}
/*
diff --git a/epan/dissectors/packet-udt.c b/epan/dissectors/packet-udt.c
index 0ff459269d..09f489a790 100644
--- a/epan/dissectors/packet-udt.c
+++ b/epan/dissectors/packet-udt.c
@@ -452,7 +452,7 @@ void proto_reg_handoff_udt(void)
udt_handle = create_dissector_handle(dissect_udt, proto_udt);
heur_dissector_add("udp", dissect_udt_heur, "UDT over UDP", "udt_udp", proto_udt, HEURISTIC_ENABLE);
- dissector_add_for_decode_as("udp.port", udt_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", udt_handle);
}
diff --git a/epan/dissectors/packet-uftp.c b/epan/dissectors/packet-uftp.c
index c887ecc5f6..91b629f70c 100644
--- a/epan/dissectors/packet-uftp.c
+++ b/epan/dissectors/packet-uftp.c
@@ -138,7 +138,7 @@ void proto_register_uftp(void);
void proto_reg_handoff_uftp(void);
static int proto_uftp = -1;
-static int uftp_port = 1044;
+#define UTFP_PORT 1044 /* Not IANA registered */
/* main header and common fields */
static int hf_uftp_version = -1;
@@ -2212,8 +2212,8 @@ void proto_register_uftp(void)
expert_module_t* expert_uftp;
- proto_uftp = proto_register_protocol("UDP based FTP w/ multicast",
- "UFTP", "uftp");
+ proto_uftp = proto_register_protocol("UDP based FTP w/ multicast", "UFTP", "uftp");
+
proto_register_field_array(proto_uftp, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
expert_uftp = expert_register_protocol(proto_uftp);
@@ -2226,7 +2226,7 @@ void proto_reg_handoff_uftp(void)
uftp4_handle = find_dissector("uftp4");
uftp_handle = create_dissector_handle(dissect_uftp, proto_uftp);
- dissector_add_uint("udp.port", uftp_port, uftp_handle);
+ dissector_add_uint_with_preference("udp.port", UTFP_PORT, uftp_handle);
}
/*
diff --git a/epan/dissectors/packet-uhd.c b/epan/dissectors/packet-uhd.c
index 34abc96eef..d3f195ae93 100644
--- a/epan/dissectors/packet-uhd.c
+++ b/epan/dissectors/packet-uhd.c
@@ -31,12 +31,9 @@
#include "config.h"
#include <epan/packet.h>
-#include <epan/prefs.h>
void proto_register_uhd(void);
-static gint dissector_port_pref = 0;
-
/* ====== DO NOT MAKE UNAPPROVED MODIFICATIONS HERE ===== */
#define USRP2_CTRL_ID_HUH_WHAT 0x20 /* ' ' */
@@ -268,37 +265,18 @@ proto_register_uhd(void)
&ett_uhd
};
- module_t *uhd_module;
-
proto_uhd = proto_register_protocol("UHD", "UHD", "uhd");
proto_register_field_array(proto_uhd, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
-
- uhd_module = prefs_register_protocol(proto_uhd, proto_reg_handoff_uhd);
- prefs_register_uint_preference(uhd_module,
- "dissector_port",
- "Dissector UDP port",
- "The UDP port used by this dissector",
- 10, &dissector_port_pref);
}
void
proto_reg_handoff_uhd(void)
{
- static gboolean uhd_prefs_initialized = FALSE;
- static dissector_handle_t uhd_handle;
- static gint dissector_port;
-
- if (!uhd_prefs_initialized) {
- uhd_handle = create_dissector_handle(dissect_uhd, proto_uhd);
- uhd_prefs_initialized = TRUE;
- } else {
- dissector_delete_uint("udp.port", dissector_port, uhd_handle);
- }
-
- dissector_port = dissector_port_pref;
+ dissector_handle_t uhd_handle;
- dissector_add_uint("udp.port", dissector_port, uhd_handle);
+ uhd_handle = create_dissector_handle(dissect_uhd, proto_uhd);
+ dissector_add_for_decode_as_with_preference("udp.port", uhd_handle);
}
/*
diff --git a/epan/dissectors/packet-ulp.c b/epan/dissectors/packet-ulp.c
index eebb9548ca..9d7fb5fa73 100644
--- a/epan/dissectors/packet-ulp.c
+++ b/epan/dissectors/packet-ulp.c
@@ -60,7 +60,6 @@ static dissector_handle_t lpp_handle;
* oma-ulp 7275/udp OMA UserPlane Location
*/
#define ULP_PORT 7275
-static guint gbl_ulp_udp_port = ULP_PORT;
/* Initialize the protocol and registered fields */
static int proto_ulp = -1;
@@ -711,7 +710,7 @@ static int hf_ulp_GANSSSignals_signal7 = -1;
static int hf_ulp_GANSSSignals_signal8 = -1;
/*--- End of included file: packet-ulp-hf.c ---*/
-#line 66 "./asn1/ulp/packet-ulp-template.c"
+#line 65 "./asn1/ulp/packet-ulp-template.c"
static int hf_ulp_mobile_directory_number = -1;
static int hf_ulp_ganssTimeModels_bit0 = -1;
static int hf_ulp_ganssTimeModels_bit1 = -1;
@@ -942,7 +941,7 @@ static gint ett_ulp_PolygonArea = -1;
static gint ett_ulp_PolygonDescription = -1;
/*--- End of included file: packet-ulp-ett.c ---*/
-#line 80 "./asn1/ulp/packet-ulp-template.c"
+#line 79 "./asn1/ulp/packet-ulp-template.c"
static dissector_handle_t ulp_tcp_handle;
@@ -1212,7 +1211,7 @@ ulp_Coordinate_longitude_fmt(gchar *s, guint32 v)
#define maxWimaxBSMeas 32
/*--- End of included file: packet-ulp-val.h ---*/
-#line 330 "./asn1/ulp/packet-ulp-template.c"
+#line 329 "./asn1/ulp/packet-ulp-template.c"
typedef struct
{
@@ -7791,7 +7790,7 @@ static int dissect_ULP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_
/*--- End of included file: packet-ulp-fn.c ---*/
-#line 346 "./asn1/ulp/packet-ulp-template.c"
+#line 345 "./asn1/ulp/packet-ulp-template.c"
static guint
@@ -10362,7 +10361,7 @@ void proto_register_ulp(void) {
NULL, HFILL }},
/*--- End of included file: packet-ulp-hfarr.c ---*/
-#line 372 "./asn1/ulp/packet-ulp-template.c"
+#line 371 "./asn1/ulp/packet-ulp-template.c"
{ &hf_ulp_mobile_directory_number,
{ "Mobile Directory Number", "ulp.mobile_directory_number",
FT_STRING, BASE_NONE, NULL, 0,
@@ -10616,7 +10615,7 @@ void proto_register_ulp(void) {
&ett_ulp_PolygonDescription,
/*--- End of included file: packet-ulp-ettarr.c ---*/
-#line 409 "./asn1/ulp/packet-ulp-template.c"
+#line 408 "./asn1/ulp/packet-ulp-template.c"
};
module_t *ulp_module;
@@ -10630,21 +10629,13 @@ void proto_register_ulp(void) {
proto_register_field_array(proto_ulp, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- ulp_module = prefs_register_protocol(proto_ulp,proto_reg_handoff_ulp);
+ ulp_module = prefs_register_protocol(proto_ulp, NULL);
prefs_register_bool_preference(ulp_module, "desegment_ulp_messages",
"Reassemble ULP messages spanning multiple TCP segments",
"Whether the ULP dissector should reassemble messages spanning multiple TCP segments."
" To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.",
&ulp_desegment);
-
- /* Register a configuration option for port */
- prefs_register_uint_preference(ulp_module, "udp.port",
- "ULP UDP Port",
- "Set the UDP port for ULP messages (IANA registered port is 7275)",
- 10,
- &gbl_ulp_udp_port);
-
}
@@ -10652,23 +10643,15 @@ void proto_register_ulp(void) {
void
proto_reg_handoff_ulp(void)
{
- static gboolean initialized = FALSE;
- static dissector_handle_t ulp_udp_handle;
- static guint local_ulp_udp_port;
+ dissector_handle_t ulp_udp_handle;
- if (!initialized) {
dissector_add_string("media_type","application/oma-supl-ulp", ulp_tcp_handle);
dissector_add_string("media_type","application/vnd.omaloc-supl-init", ulp_tcp_handle);
ulp_udp_handle = create_dissector_handle(dissect_ULP_PDU_PDU, proto_ulp);
rrlp_handle = find_dissector_add_dependency("rrlp", proto_ulp);
lpp_handle = find_dissector_add_dependency("lpp", proto_ulp);
- dissector_add_uint_with_preference("tcp.port", ULP_PORT, ulp_tcp_handle);
- initialized = TRUE;
- } else {
- dissector_delete_uint("udp.port", local_ulp_udp_port, ulp_udp_handle);
- }
- local_ulp_udp_port = gbl_ulp_udp_port;
- dissector_add_uint("udp.port", gbl_ulp_udp_port, ulp_udp_handle);
+ dissector_add_uint_with_preference("tcp.port", ULP_PORT, ulp_tcp_handle);
+ dissector_add_uint_with_preference("udp.port", ULP_PORT, ulp_udp_handle);
}
diff --git a/epan/dissectors/packet-uma.c b/epan/dissectors/packet-uma.c
index 94084b1d79..d1023e2f6f 100644
--- a/epan/dissectors/packet-uma.c
+++ b/epan/dissectors/packet-uma.c
@@ -1754,7 +1754,7 @@ proto_reg_handoff_uma(void)
{
uma_tcp_handle = find_dissector("umatcp");
uma_udp_handle = find_dissector("umaudp");
- dissector_add_for_decode_as("udp.port", uma_udp_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", uma_udp_handle);
rtcp_handle = find_dissector_add_dependency("rtcp", proto_uma);
llc_handle = find_dissector_add_dependency("llcgprs", proto_uma);
bssap_pdu_type_table = find_dissector_table("bssap.pdu_type");
diff --git a/epan/dissectors/packet-userlog.c b/epan/dissectors/packet-userlog.c
index 22f42995d3..e4571c3443 100644
--- a/epan/dissectors/packet-userlog.c
+++ b/epan/dissectors/packet-userlog.c
@@ -414,7 +414,7 @@ proto_reg_handoff_userlog(void)
dissector_handle_t userlog_handle;
userlog_handle = create_dissector_handle(dissect_userlog, proto_userlog);
- dissector_add_for_decode_as("udp.port", userlog_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", userlog_handle);
}
diff --git a/epan/dissectors/packet-vcdu.c b/epan/dissectors/packet-vcdu.c
index 29cbf9a810..e04eef7931 100644
--- a/epan/dissectors/packet-vcdu.c
+++ b/epan/dissectors/packet-vcdu.c
@@ -669,7 +669,7 @@ proto_register_vcdu(void)
void
proto_reg_handoff_vcdu(void)
{
- dissector_add_for_decode_as("udp.port", vcdu_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", vcdu_handle);
ccsds_handle = find_dissector_add_dependency("ccsds", proto_vcdu);
}
diff --git a/epan/dissectors/packet-vines.c b/epan/dissectors/packet-vines.c
index 6c6da0db18..c2e1c317ab 100644
--- a/epan/dissectors/packet-vines.c
+++ b/epan/dissectors/packet-vines.c
@@ -429,7 +429,7 @@ proto_reg_handoff_vines_frp(void)
vines_frp_new_handle = create_dissector_handle(dissect_vines_frp_new,
proto_vines_frp);
- dissector_add_uint("udp.port", UDP_PORT_VINES, vines_frp_new_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_VINES, vines_frp_new_handle);
}
static dissector_table_t vines_llc_dissector_table;
diff --git a/epan/dissectors/packet-vrt.c b/epan/dissectors/packet-vrt.c
index 129136bd23..5db62628d8 100644
--- a/epan/dissectors/packet-vrt.c
+++ b/epan/dissectors/packet-vrt.c
@@ -28,11 +28,11 @@
#include "config.h"
#include <epan/packet.h>
-#include <epan/prefs.h>
void proto_register_vrt(void);
+void proto_reg_handoff_vrt(void);
-static gint dissector_port_pref = 4991;
+#define VITA_49_PORT 4991
static int proto_vrt = -1;
@@ -155,10 +155,9 @@ static const int *ind_hfs[] = {
&hf_vrt_trailer_ind_caltime
};
-void dissect_header(tvbuff_t *tvb, proto_tree *tree, int type, int offset);
-void dissect_trailer(tvbuff_t *tvb, proto_tree *tree, int offset);
-void dissect_cid(tvbuff_t *tvb, proto_tree *tree, int offset);
-void proto_reg_handoff_vrt(void);
+static void dissect_header(tvbuff_t *tvb, proto_tree *tree, int type, int offset);
+static void dissect_trailer(tvbuff_t *tvb, proto_tree *tree, int offset);
+static void dissect_cid(tvbuff_t *tvb, proto_tree *tree, int offset);
static int dissect_vrt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
@@ -261,7 +260,7 @@ static int dissect_vrt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
return tvb_captured_length(tvb);
}
-void dissect_header(tvbuff_t *tvb, proto_tree *tree, int type, int offset)
+static void dissect_header(tvbuff_t *tvb, proto_tree *tree, int type, int offset)
{
proto_item *hdr_item;
proto_tree *hdr_tree;
@@ -284,7 +283,7 @@ void dissect_header(tvbuff_t *tvb, proto_tree *tree, int type, int offset)
proto_tree_add_item(hdr_tree, hf_vrt_len, tvb, offset, 2, ENC_BIG_ENDIAN);
}
-void dissect_trailer(tvbuff_t *tvb, proto_tree *tree, int offset)
+static void dissect_trailer(tvbuff_t *tvb, proto_tree *tree, int offset)
{
proto_item *enable_item, *ind_item, *trailer_item;
proto_tree *enable_tree;
@@ -321,7 +320,7 @@ void dissect_trailer(tvbuff_t *tvb, proto_tree *tree, int offset)
proto_tree_add_item(trailer_tree, hf_vrt_trailer_acpc, tvb, offset, 1, ENC_BIG_ENDIAN);
}
-void dissect_cid(tvbuff_t *tvb, proto_tree *tree, int offset)
+static void dissect_cid(tvbuff_t *tvb, proto_tree *tree, int offset)
{
proto_item *cid_item;
proto_tree *cid_tree;
@@ -634,42 +633,19 @@ proto_register_vrt(void)
&ett_cid
};
- module_t *vrt_module;
-
- proto_vrt = proto_register_protocol (
- "VITA 49 radio transport protocol", /* name */
- "VITA 49", /* short name */
- "vrt" /* abbrev */
- );
+ proto_vrt = proto_register_protocol ("VITA 49 radio transport protocol", "VITA 49", "vrt");
proto_register_field_array(proto_vrt, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
-
- vrt_module = prefs_register_protocol(proto_vrt, proto_reg_handoff_vrt);
- prefs_register_uint_preference(vrt_module,
- "dissector_port",
- "Dissector UDP port",
- "The UDP port used by this dissector",
- 10, &dissector_port_pref);
}
void
proto_reg_handoff_vrt(void)
{
- static gboolean vrt_prefs_initialized = FALSE;
- static dissector_handle_t vrt_handle;
- static gint dissector_port;
-
- if (!vrt_prefs_initialized) {
- vrt_handle = create_dissector_handle(dissect_vrt, proto_vrt);
- vrt_prefs_initialized = TRUE;
- } else {
- dissector_delete_uint("udp.port", dissector_port, vrt_handle);
- }
-
- dissector_port = dissector_port_pref;
+ dissector_handle_t vrt_handle;
- dissector_add_uint("udp.port", dissector_port, vrt_handle);
+ vrt_handle = create_dissector_handle(dissect_vrt, proto_vrt);
+ dissector_add_uint_with_preference("udp.port", VITA_49_PORT, vrt_handle);
}
/*
diff --git a/epan/dissectors/packet-vsip.c b/epan/dissectors/packet-vsip.c
index 7613d6af60..7713ff99ff 100644
--- a/epan/dissectors/packet-vsip.c
+++ b/epan/dissectors/packet-vsip.c
@@ -2081,7 +2081,7 @@ void proto_reg_handoff_vsip(void)
dissector_handle_t vsip_handle;
vsip_handle = create_dissector_handle(dissect_vsip, proto_vsip);
- dissector_add_for_decode_as("udp.port", vsip_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", vsip_handle);
dissector_add_for_decode_as_with_preference("tcp.port", vsip_handle);
}
diff --git a/epan/dissectors/packet-vuze-dht.c b/epan/dissectors/packet-vuze-dht.c
index 30d8cf4f94..334101532f 100644
--- a/epan/dissectors/packet-vuze-dht.c
+++ b/epan/dissectors/packet-vuze-dht.c
@@ -24,10 +24,9 @@
#include "config.h"
#include <epan/packet.h>
-#include <epan/prefs.h>
#include <epan/to_str.h>
-#define DEFAULT_UDP_PORT 11273
+#define DEFAULT_UDP_PORT 11273 /* Not IANA registered */
void proto_register_vuze_dht(void);
@@ -307,9 +306,6 @@ static gint ett_vuze_dht_network_coordinate = -1;
static dissector_handle_t vuze_dht_handle;
-/* port use */
-static guint global_vuze_dht_udp_port = DEFAULT_UDP_PORT;
-
void proto_reg_handoff_vuze_dht(void);
/* --- Address format --------------
@@ -1532,47 +1528,19 @@ proto_register_vuze_dht(void)
&ett_vuze_dht_network_coordinate
};
- module_t *vuze_dht_module;
-
/* Register protocol */
- proto_vuze_dht = proto_register_protocol (
- "Vuze DHT Protocol", /* name */
- "Vuze-DHT", /* short name */
- "vuze-dht" /* abbrev */
- );
+ proto_vuze_dht = proto_register_protocol ( "Vuze DHT Protocol", "Vuze-DHT", "vuze-dht" );
proto_register_field_array(proto_vuze_dht, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
vuze_dht_handle = register_dissector("vuze-dht", dissect_vuze_dht, proto_vuze_dht);
-
- /* Register our configuration options */
- vuze_dht_module = prefs_register_protocol(proto_vuze_dht, proto_reg_handoff_vuze_dht);
-
- prefs_register_uint_preference(vuze_dht_module, "udp_port",
- "Vuze DHT Protocol UDP port",
- "Set the UDP port for Vuze DHT Protocol.",
- 10, &global_vuze_dht_udp_port);
}
void
proto_reg_handoff_vuze_dht(void)
{
- static gboolean vuze_dht_prefs_initialized = FALSE;
- static guint vuze_dht_udp_port;
-
- if (!vuze_dht_prefs_initialized)
- {
- vuze_dht_prefs_initialized = TRUE;
- }
- else
- {
- dissector_delete_uint("udp.port", vuze_dht_udp_port, vuze_dht_handle);
- }
-
- /* Set our port number for future use */
- vuze_dht_udp_port = global_vuze_dht_udp_port;
- dissector_add_uint("udp.port", global_vuze_dht_udp_port, vuze_dht_handle);
+ dissector_add_uint("udp.port", DEFAULT_UDP_PORT, vuze_dht_handle);
}
/*
* Editor modelines
diff --git a/epan/dissectors/packet-vxlan.c b/epan/dissectors/packet-vxlan.c
index dcb20bb8a4..fd7239513a 100644
--- a/epan/dissectors/packet-vxlan.c
+++ b/epan/dissectors/packet-vxlan.c
@@ -306,8 +306,8 @@ proto_reg_handoff_vxlan(void)
vxlan_handle = create_dissector_handle(dissect_vxlan, proto_vxlan);
vxlan_gpe_handle = create_dissector_handle(dissect_vxlan_gpe, proto_vxlan_gpe);
- dissector_add_uint("udp.port", UDP_PORT_VXLAN, vxlan_handle);
- dissector_add_uint("udp.port", UDP_PORT_VXLAN_GPE, vxlan_gpe_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_VXLAN, vxlan_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_VXLAN_GPE, vxlan_gpe_handle);
}
/*
diff --git a/epan/dissectors/packet-wap.h b/epan/dissectors/packet-wap.h
index f27da84971..d95fb58c13 100644
--- a/epan/dissectors/packet-wap.h
+++ b/epan/dissectors/packet-wap.h
@@ -35,11 +35,13 @@
/* Port Numbers as per IANA */
/* < URL:http://www.iana.org/assignments/port-numbers/ > */
#define UDP_PORT_WSP 9200 /* wap-wsp */
+#define UDP_PORT_WSP_RANGE "2948,9200" /* wap-wsp */
#define UDP_PORT_WTP_WSP 9201 /* wap-wsp-wtp */
#define UDP_PORT_WTLS_WSP 9202 /* wap-wsp-s */
#define UDP_PORT_WTLS_WTP_WSP 9203 /* wap-wsp-wtp-s */
#define UDP_PORT_WSP_PUSH 2948 /* wap-wsp */
#define UDP_PORT_WTLS_WSP_PUSH 2949 /* wap-wsp-s */
+#define UDP_PORT_WTLS_RANGE "2949,9202-9203" /* wap-wsp */
/*
* Note:
diff --git a/epan/dissectors/packet-wassp.c b/epan/dissectors/packet-wassp.c
index 527c785d59..27c3d97056 100644
--- a/epan/dissectors/packet-wassp.c
+++ b/epan/dissectors/packet-wassp.c
@@ -341,8 +341,7 @@ static int hf_config_radio_tx_power_adj = -1;
#define PROTO_SHORT_NAME "WASSP"
#define PROTO_LONG_NAME "Wireless Access Station Session Protocol"
-#define PORT_WASSP_DISCOVER 13907
-#define PORT_WASSP_TUNNEL 13910
+#define PORT_WASSP_RANGE "13907,13910" /* Not IANA registered */
/* #define PORT_WASSP_PEER 13913?? */
/* ============= copy/paste/modify from value_string.[hc] ============== */
@@ -2097,8 +2096,7 @@ proto_reg_handoff_wassp(void)
wassp_handle = create_dissector_handle(dissect_wassp_static, proto_wassp);
- dissector_add_uint("udp.port", PORT_WASSP_DISCOVER, wassp_handle);
- dissector_add_uint("udp.port", PORT_WASSP_TUNNEL, wassp_handle);
+ dissector_add_uint_range_with_preference("udp.port", PORT_WASSP_RANGE, wassp_handle);
/* dissector_add_uint("udp.port", PORT_WASSP_PEER, wassp_handle); */
heur_dissector_add("udp", dissect_wassp_heur, "WASSP over UDP", "wassp_udp", proto_wassp, HEURISTIC_DISABLE);
diff --git a/epan/dissectors/packet-wccp.c b/epan/dissectors/packet-wccp.c
index 88aa7f638f..35da7f6dee 100644
--- a/epan/dissectors/packet-wccp.c
+++ b/epan/dissectors/packet-wccp.c
@@ -3569,7 +3569,7 @@ proto_reg_handoff_wccp(void)
dissector_handle_t wccp_handle;
wccp_handle = create_dissector_handle(dissect_wccp, proto_wccp);
- dissector_add_uint("udp.port", UDP_PORT_WCCP, wccp_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_WCCP, wccp_handle);
}
/*
diff --git a/epan/dissectors/packet-who.c b/epan/dissectors/packet-who.c
index 3f2753a81c..66d9a25506 100644
--- a/epan/dissectors/packet-who.c
+++ b/epan/dissectors/packet-who.c
@@ -287,7 +287,7 @@ proto_reg_handoff_who(void)
dissector_handle_t who_handle;
who_handle = create_dissector_handle(dissect_who, proto_who);
- dissector_add_uint("udp.port", UDP_PORT_WHO, who_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_WHO, who_handle);
}
/*
diff --git a/epan/dissectors/packet-wlccp.c b/epan/dissectors/packet-wlccp.c
index 0a0ac2b669..b9bc260cf8 100644
--- a/epan/dissectors/packet-wlccp.c
+++ b/epan/dissectors/packet-wlccp.c
@@ -69,7 +69,7 @@ void proto_reg_handoff_wlccp(void);
/* The UDP port that WLCCP is expected to ride on */
/* WLCCP also uses an LLC OUI type and an ethertype */
-#define WLCCP_UDP_PORT 2887
+#define WLCCP_UDP_PORT 2887 /* Not IANA registered */
/* SAP is 2-bit version and 6-bit Type */
@@ -4114,7 +4114,7 @@ proto_reg_handoff_wlccp(void)
wlccp_handle = create_dissector_handle(dissect_wlccp, proto_wlccp);
dissector_add_uint("ethertype", ETHERTYPE_WLCCP, wlccp_handle);
- dissector_add_uint("udp.port", WLCCP_UDP_PORT, wlccp_handle);
+ dissector_add_uint_with_preference("udp.port", WLCCP_UDP_PORT, wlccp_handle);
dissector_add_uint("llc.wlccp_pid", 0x0000, wlccp_handle);
}
diff --git a/epan/dissectors/packet-wsp.c b/epan/dissectors/packet-wsp.c
index fec6900c6d..45ba624ac7 100644
--- a/epan/dissectors/packet-wsp.c
+++ b/epan/dissectors/packet-wsp.c
@@ -7164,15 +7164,9 @@ proto_register_wsp(void)
expert_module_t* expert_wsp;
/* Register the protocol name and description */
- proto_wsp = proto_register_protocol(
- "Wireless Session Protocol", /* protocol name for use by wireshark */
- "WSP", /* short version of name */
- "wsp" /* Abbreviated protocol name,
- should Match IANA:
- < URL:http://www.iana.org/assignments/port-numbers/ >
- */
- );
+ proto_wsp = proto_register_protocol( "Wireless Session Protocol", "WSP", "wsp");
wsp_tap = register_tap("wsp");
+
/* Init the hash table */
/* wsp_sessions = g_hash_table_new(
(GHashFunc) wsp_session_hash,
@@ -7203,8 +7197,7 @@ proto_reg_handoff_wsp(void)
wbxml_uaprof_handle = find_dissector_add_dependency("wbxml-uaprof", proto_wsp);
/* Only connection-less WSP has no previous handler */
- dissector_add_uint("udp.port", UDP_PORT_WSP, wsp_fromudp_handle);
- dissector_add_uint("udp.port", UDP_PORT_WSP_PUSH, wsp_fromudp_handle);
+ dissector_add_uint_range_with_preference("udp.port", UDP_PORT_WSP_RANGE, wsp_fromudp_handle);
/* GSM SMS UD dissector can also carry WSP */
dissector_add_uint("gsm_sms_ud.udh.port", UDP_PORT_WSP, wsp_fromudp_handle);
diff --git a/epan/dissectors/packet-wtls.c b/epan/dissectors/packet-wtls.c
index 3e51e55892..53f1fbc0aa 100644
--- a/epan/dissectors/packet-wtls.c
+++ b/epan/dissectors/packet-wtls.c
@@ -1569,13 +1569,7 @@ proto_register_wtls(void)
};
/* Register the protocol name and description */
- proto_wtls = proto_register_protocol(
- "Wireless Transport Layer Security", /* protocol name for use by wireshark */
- "WTLS", /* short version of name */
- "wtls" /* Abbreviated protocol name, should Match IANA
- < URL:http://www.iana.org/assignments/port-numbers/ >
- */
- );
+ proto_wtls = proto_register_protocol("Wireless Transport Layer Security", "WTLS", "wtls" );
/* Required function calls to register the header fields and subtrees used */
proto_register_field_array(proto_wtls, hf, array_length(hf));
@@ -1588,9 +1582,7 @@ proto_reg_handoff_wtls(void)
dissector_handle_t wtls_handle;
wtls_handle = create_dissector_handle(dissect_wtls, proto_wtls);
- dissector_add_uint("udp.port", UDP_PORT_WTLS_WSP, wtls_handle);
- dissector_add_uint("udp.port", UDP_PORT_WTLS_WTP_WSP, wtls_handle);
- dissector_add_uint("udp.port", UDP_PORT_WTLS_WSP_PUSH,wtls_handle);
+ dissector_add_uint_range_with_preference("udp.port", UDP_PORT_WTLS_RANGE, wtls_handle);
}
/*
diff --git a/epan/dissectors/packet-wtp.c b/epan/dissectors/packet-wtp.c
index 3d16a51c15..709c81e6ff 100644
--- a/epan/dissectors/packet-wtp.c
+++ b/epan/dissectors/packet-wtp.c
@@ -1078,7 +1078,7 @@ proto_reg_handoff_wtp(void)
wsp_handle = find_dissector_add_dependency("wsp-co", proto_wtp);
wtp_fromudp_handle = find_dissector("wtp-udp");
- dissector_add_uint("udp.port", UDP_PORT_WTP_WSP, wtp_fromudp_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_WTP_WSP, wtp_fromudp_handle);
dissector_add_uint("gsm_sms_ud.udh.port", UDP_PORT_WTP_WSP, wtp_fromudp_handle);
dissector_add_uint("gsm_sms.udh.port", UDP_PORT_WTP_WSP, wtp_fromudp_handle);
}
diff --git a/epan/dissectors/packet-xdmcp.c b/epan/dissectors/packet-xdmcp.c
index dbdf564703..782c687b98 100644
--- a/epan/dissectors/packet-xdmcp.c
+++ b/epan/dissectors/packet-xdmcp.c
@@ -610,8 +610,7 @@ void proto_register_xdmcp(void)
expert_module_t* expert_xdmcp;
/* Register the protocol name and description */
- proto_xdmcp = proto_register_protocol("X Display Manager Control Protocol",
- "XDMCP", "xdmcp");
+ proto_xdmcp = proto_register_protocol("X Display Manager Control Protocol", "XDMCP", "xdmcp");
/* Required function calls to register the header fields and subtrees used */
proto_register_field_array(proto_xdmcp, hf, array_length(hf));
@@ -626,7 +625,7 @@ proto_reg_handoff_xdmcp(void)
dissector_handle_t xdmcp_handle;
xdmcp_handle = create_dissector_handle(dissect_xdmcp, proto_xdmcp);
- dissector_add_uint("udp.port", UDP_PORT_XDMCP, xdmcp_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_XDMCP, xdmcp_handle);
}
/*
* Editor modelines
diff --git a/epan/dissectors/packet-xyplex.c b/epan/dissectors/packet-xyplex.c
index 6f0c49537f..d8217c913d 100644
--- a/epan/dissectors/packet-xyplex.c
+++ b/epan/dissectors/packet-xyplex.c
@@ -206,7 +206,7 @@ void
proto_reg_handoff_xyplex(void)
{
xyplex_handle = create_dissector_handle(dissect_xyplex, proto_xyplex);
- dissector_add_uint("udp.port", UDP_PORT_XYPLEX, xyplex_handle);
+ dissector_add_uint_with_preference("udp.port", UDP_PORT_XYPLEX, xyplex_handle);
}
/*
diff --git a/epan/dissectors/packet-yami.c b/epan/dissectors/packet-yami.c
index c7bb2d8a48..69c53bd189 100644
--- a/epan/dissectors/packet-yami.c
+++ b/epan/dissectors/packet-yami.c
@@ -37,7 +37,6 @@ void proto_reg_handoff_yami(void);
void proto_register_yami(void);
static gboolean yami_desegment = TRUE;
-static guint global_yami_config_udp_port = 0;
static dissector_handle_t yami_handle;
@@ -586,8 +585,7 @@ proto_register_yami(void)
proto_register_fields(proto_yami, hfi, array_length(hfi));
proto_register_subtree_array(ett, array_length(ett));
- yami_module = prefs_register_protocol(proto_yami, proto_reg_handoff_yami);
- prefs_register_uint_preference(yami_module, "udp.port", "YAMI UDP Port", "The UDP port on which YAMI messages will be read(5000)", 10, &global_yami_config_udp_port);
+ yami_module = prefs_register_protocol(proto_yami, NULL);
prefs_register_bool_preference(yami_module, "desegment",
"Reassemble YAMI messages spanning multiple TCP segments",
"Whether the YAMI dissector should reassemble messages spanning multiple TCP segments."
@@ -600,20 +598,8 @@ proto_register_yami(void)
void
proto_reg_handoff_yami(void)
{
- static int yami_prefs_initialized = FALSE;
- static guint yami_udp_port;
-
- if(yami_prefs_initialized == FALSE){
- yami_prefs_initialized = TRUE;
- yami_udp_port = global_yami_config_udp_port;
- dissector_add_for_decode_as_with_preference("tcp.port", yami_handle);
- }else{
- dissector_delete_uint("udp.port", yami_udp_port, yami_handle);
- }
-
- yami_udp_port = global_yami_config_udp_port;
-
- dissector_add_uint("udp.port", yami_udp_port, yami_handle);
+ dissector_add_for_decode_as_with_preference("tcp.port", yami_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", yami_handle);
}
/*
diff --git a/epan/dissectors/packet-zep.c b/epan/dissectors/packet-zep.c
index de6024d7e8..8f3618a3a9 100644
--- a/epan/dissectors/packet-zep.c
+++ b/epan/dissectors/packet-zep.c
@@ -45,7 +45,6 @@
#include <epan/packet.h>
-#include <epan/prefs.h>
#include "packet-ntp.h"
#include "packet-zep.h"
@@ -71,9 +70,6 @@ static int hf_zep_reserved_field = -1;
/* Initialize protocol subtrees. */
static gint ett_zep = -1;
-/* Initialize preferences. */
-static guint32 gPREF_zep_udp_port = ZEP_DEFAULT_PORT;
-
/* Dissector handle */
static dissector_handle_t zep_handle;
@@ -252,8 +248,6 @@ static int dissect_zep(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
*/
void proto_register_zep(void)
{
- module_t *zep_module;
-
static hf_register_info hf[] = {
{ &hf_zep_version,
{ "Protocol Version", "zep.version", FT_UINT8, BASE_DEC, NULL, 0x0,
@@ -311,15 +305,6 @@ void proto_register_zep(void)
proto_register_field_array(proto_zep, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- /* Register preferences module */
- zep_module = prefs_register_protocol(proto_zep, proto_reg_handoff_zep);
-
- /* Register preferences */
- prefs_register_uint_preference(zep_module, "udp.port", "ZEP UDP port",
- "Set the port for ZEP Protocol\n"
- "Default port is 17754",
- 10, &gPREF_zep_udp_port);
-
/* Register dissector with Wireshark. */
zep_handle = register_dissector("zep", dissect_zep, proto_zep);
} /* proto_register_zep */
@@ -338,31 +323,20 @@ void proto_register_zep(void)
*/
void proto_reg_handoff_zep(void)
{
- static int lastPort;
- static gboolean inited = FALSE;
-
- if ( !inited) {
- dissector_handle_t h;
- /* Get dissector handles. */
- if ( !(h = find_dissector("wpan")) ) { /* Try use built-in 802.15.4 dissector */
- h = find_dissector("ieee802154"); /* otherwise use older 802.15.4 plugin dissector */
- }
- ieee802154_handle = h;
- if ( !(h = find_dissector("wpan_cc24xx")) ) { /* Try use built-in 802.15.4 (Chipcon) dissector */
- h = find_dissector("ieee802154_ccfcs"); /* otherwise use older 802.15.4 (Chipcon) plugin dissector */
- }
- ieee802154_ccfcs_handle = h;
- data_handle = find_dissector("data");
- inited = TRUE;
- } else {
- /* If we were already registered, de-register our dissector
- * to free the port. */
- dissector_delete_uint("udp.port", lastPort, zep_handle);
+ dissector_handle_t h;
+
+ /* Get dissector handles. */
+ if ( !(h = find_dissector("wpan")) ) { /* Try use built-in 802.15.4 dissector */
+ h = find_dissector("ieee802154"); /* otherwise use older 802.15.4 plugin dissector */
+ }
+ ieee802154_handle = h;
+ if ( !(h = find_dissector("wpan_cc24xx")) ) { /* Try use built-in 802.15.4 (Chipcon) dissector */
+ h = find_dissector("ieee802154_ccfcs"); /* otherwise use older 802.15.4 (Chipcon) plugin dissector */
}
+ ieee802154_ccfcs_handle = h;
- /* Register our dissector. */
- dissector_add_uint("udp.port", gPREF_zep_udp_port, zep_handle);
- lastPort = gPREF_zep_udp_port;
+ data_handle = find_dissector("data");
+ dissector_add_uint("udp.port", ZEP_DEFAULT_PORT, zep_handle);
} /* proto_reg_handoff_zep */
/*
diff --git a/epan/dissectors/packet-ziop.c b/epan/dissectors/packet-ziop.c
index 601f629c1a..06a4dafb6a 100644
--- a/epan/dissectors/packet-ziop.c
+++ b/epan/dissectors/packet-ziop.c
@@ -314,8 +314,7 @@ proto_register_ziop (void)
expert_module_t* expert_ziop;
- proto_ziop = proto_register_protocol("Zipped Inter-ORB Protocol", "ZIOP",
- "ziop");
+ proto_ziop = proto_register_protocol("Zipped Inter-ORB Protocol", "ZIOP", "ziop");
proto_register_field_array (proto_ziop, hf, array_length (hf));
proto_register_subtree_array (ett, array_length (ett));
expert_ziop = expert_register_protocol(proto_ziop);
@@ -329,7 +328,7 @@ void
proto_reg_handoff_ziop (void)
{
ziop_tcp_handle = create_dissector_handle(dissect_ziop_tcp, proto_ziop);
- dissector_add_for_decode_as("udp.port", ziop_tcp_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", ziop_tcp_handle);
heur_dissector_add("tcp", dissect_ziop_heur, "ZIOP over TCP", "ziop_tcp", proto_ziop, HEURISTIC_ENABLE);
}
diff --git a/epan/dissectors/packet-zrtp.c b/epan/dissectors/packet-zrtp.c
index ef1ba3382f..5ae2194a77 100644
--- a/epan/dissectors/packet-zrtp.c
+++ b/epan/dissectors/packet-zrtp.c
@@ -1153,7 +1153,7 @@ proto_reg_handoff_zrtp(void)
dissector_handle_t zrtp_handle;
zrtp_handle = find_dissector("zrtp");
- dissector_add_for_decode_as("udp.port", zrtp_handle);
+ dissector_add_for_decode_as_with_preference("udp.port", zrtp_handle);
}
/*