]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-udp.c
CI: Add warning exemptions for Sun C (suncc-5.15) on Solaris 10
[tcpdump] / print-udp.c
index 2d998d6461c67532e3ef9df4b0d74ad759d8c7ff..982ddb9291f62d6d81f4075d60089c8b251b11c0 100644 (file)
@@ -21,9 +21,7 @@
 
 /* \summary: UDP printer */
 
-#ifdef HAVE_CONFIG_H
 #include <config.h>
-#endif
 
 #include "netdissect-stdinc.h"
 
@@ -435,8 +433,7 @@ udp_print(netdissect_options *ndo, const u_char *bp, u_int length,
                        break;
 
                case PT_AODV:
-                       aodv_print(ndo, cp, length,
-                           ip6 != NULL);
+                       aodv_print(ndo, cp, length, IP_V(ip) == 6);
                        break;
 
                case PT_RADIUS:
@@ -465,7 +462,7 @@ udp_print(netdissect_options *ndo, const u_char *bp, u_int length,
                        domain_print(ndo, cp, length, FALSE, FALSE);
                        break;
                case PT_QUIC:
-                       quic_print(ndo, cp, length);
+                       quic_print(ndo, cp);
                        break;
                }
                return;
@@ -522,8 +519,7 @@ udp_print(netdissect_options *ndo, const u_char *bp, u_int length,
                                } else
                                        ND_PRINT("[udp sum ok] ");
                        }
-               }
-               else if (IP_V(ip) == 6) {
+               } else if (IP_V(ip) == 6) {
                        /* for IPv6, UDP checksum is mandatory */
                        if (ND_TTEST_LEN(cp, length)) {
                                sum = udp6_cksum(ndo, ip6, up, length + sizeof(struct udphdr));
@@ -542,40 +538,63 @@ udp_print(netdissect_options *ndo, const u_char *bp, u_int length,
                if (IS_SRC_OR_DST_PORT(NAMESERVER_PORT))
                        /* over_tcp: FALSE, is_mdns: FALSE */
                        domain_print(ndo, cp, length, FALSE, FALSE);
-               else if (IS_SRC_OR_DST_PORT(MULTICASTDNS_PORT))
-                       /* over_tcp: FALSE, is_mdns: TRUE */
-                       domain_print(ndo, cp, length, FALSE, TRUE);
-               else if (IS_SRC_OR_DST_PORT(TIMED_PORT))
-                       timed_print(ndo, (const u_char *)cp);
+               else if (IS_SRC_OR_DST_PORT(BOOTPC_PORT) ||
+                        IS_SRC_OR_DST_PORT(BOOTPS_PORT))
+                       bootp_print(ndo, cp, length);
                else if (IS_SRC_OR_DST_PORT(TFTP_PORT))
                        tftp_print(ndo, cp, length);
-               else if (IS_SRC_OR_DST_PORT(BOOTPC_PORT) || IS_SRC_OR_DST_PORT(BOOTPS_PORT))
-                       bootp_print(ndo, cp, length);
+               else if (IS_SRC_OR_DST_PORT(KERBEROS_PORT))
+                       krb_print(ndo, (const u_char *)cp);
+               else if (IS_SRC_OR_DST_PORT(NTP_PORT))
+                       ntp_print(ndo, cp, length);
+#ifdef ENABLE_SMB
+               else if (IS_SRC_OR_DST_PORT(NETBIOS_NS_PORT))
+                       nbt_udp137_print(ndo, cp, length);
+               else if (IS_SRC_OR_DST_PORT(NETBIOS_DGRAM_PORT))
+                       nbt_udp138_print(ndo, cp, length);
+#endif
+               else if (IS_SRC_OR_DST_PORT(SNMP_PORT) ||
+                        IS_SRC_OR_DST_PORT(SNMPTRAP_PORT))
+                       snmp_print(ndo, cp, length);
+               else if (IS_SRC_OR_DST_PORT(PTP_EVENT_PORT) ||
+                        IS_SRC_OR_DST_PORT(PTP_GENERAL_PORT))
+                       ptp_print(ndo, cp, length);
+               else if (IS_SRC_OR_DST_PORT(CISCO_AUTORP_PORT))
+                       cisco_autorp_print(ndo, cp, length);
+               else if (IS_SRC_OR_DST_PORT(ISAKMP_PORT))
+                        isakmp_print(ndo, cp, length, bp2);
+               else if (IS_SRC_OR_DST_PORT(SYSLOG_PORT))
+                       syslog_print(ndo, cp, length);
                else if (IS_SRC_OR_DST_PORT(RIP_PORT))
                        rip_print(ndo, cp, length);
+               else if (IS_SRC_OR_DST_PORT(RIPNG_PORT))
+                       ripng_print(ndo, cp, length);
+               else if (IS_SRC_OR_DST_PORT(TIMED_PORT))
+                       timed_print(ndo, (const u_char *)cp);
+               else if (IS_SRC_OR_DST_PORT(DHCP6_SERV_PORT) ||
+                        IS_SRC_OR_DST_PORT(DHCP6_CLI_PORT))
+                       dhcp6_print(ndo, cp, length);
+               else if (IS_SRC_OR_DST_PORT(LDP_PORT))
+                       ldp_print(ndo, cp, length);
                else if (IS_SRC_OR_DST_PORT(AODV_PORT))
-                       aodv_print(ndo, cp, length,
-                           ip6 != NULL);
-               else if (IS_SRC_OR_DST_PORT(ISAKMP_PORT))
-                        isakmp_print(ndo, cp, length, bp2);
+                       aodv_print(ndo, cp, length, IP_V(ip) == 6);
+               else if (IS_SRC_OR_DST_PORT(OLSR_PORT))
+                       olsr_print(ndo, cp, length, IP_V(ip) == 6);
+               else if (IS_SRC_OR_DST_PORT(LMP_PORT))
+                       lmp_print(ndo, cp, length);
+               else if (IS_SRC_OR_DST_PORT(KERBEROS_SEC_PORT))
+                       krb_print(ndo, (const u_char *)cp);
+               else if (IS_SRC_OR_DST_PORT(LWRES_PORT))
+                       lwres_print(ndo, cp, length);
+               else if (IS_SRC_OR_DST_PORT(MULTICASTDNS_PORT))
+                       /* over_tcp: FALSE, is_mdns: TRUE */
+                       domain_print(ndo, cp, length, FALSE, TRUE);
                else if (IS_SRC_OR_DST_PORT(ISAKMP_PORT_NATT))
                         isakmp_rfc3948_print(ndo, cp, length, bp2, IP_V(ip), fragmented, ttl_hl);
                else if (IS_SRC_OR_DST_PORT(ISAKMP_PORT_USER1) || IS_SRC_OR_DST_PORT(ISAKMP_PORT_USER2))
                        isakmp_print(ndo, cp, length, bp2);
-               else if (IS_SRC_OR_DST_PORT(SNMP_PORT) || IS_SRC_OR_DST_PORT(SNMPTRAP_PORT))
-                       snmp_print(ndo, cp, length);
-               else if (IS_SRC_OR_DST_PORT(NTP_PORT))
-                       ntp_print(ndo, cp, length);
-               else if (IS_SRC_OR_DST_PORT(KERBEROS_PORT) || IS_SRC_OR_DST_PORT(KERBEROS_SEC_PORT))
-                       krb_print(ndo, (const u_char *)cp);
                else if (IS_SRC_OR_DST_PORT(L2TP_PORT))
                        l2tp_print(ndo, cp, length);
-#ifdef ENABLE_SMB
-               else if (IS_SRC_OR_DST_PORT(NETBIOS_NS_PORT))
-                       nbt_udp137_print(ndo, cp, length);
-               else if (IS_SRC_OR_DST_PORT(NETBIOS_DGRAM_PORT))
-                       nbt_udp138_print(ndo, cp, length);
-#endif
                else if (dport == VAT_PORT)
                        vat_print(ndo, cp, length);
                else if (IS_SRC_OR_DST_PORT(ZEPHYR_SRV_PORT) || IS_SRC_OR_DST_PORT(ZEPHYR_CLT_PORT))
@@ -588,10 +607,6 @@ udp_print(netdissect_options *ndo, const u_char *bp, u_int length,
                         (dport >= RX_PORT_LOW && dport <= RX_PORT_HIGH))
                        rx_print(ndo, cp, length, sport, dport,
                                 (const u_char *) ip);
-               else if (IS_SRC_OR_DST_PORT(RIPNG_PORT))
-                       ripng_print(ndo, cp, length);
-               else if (IS_SRC_OR_DST_PORT(DHCP6_SERV_PORT) || IS_SRC_OR_DST_PORT(DHCP6_CLI_PORT))
-                       dhcp6_print(ndo, cp, length);
                else if (IS_SRC_OR_DST_PORT(AHCP_PORT))
                        ahcp_print(ndo, cp, length);
                else if (IS_SRC_OR_DST_PORT(BABEL_PORT) || IS_SRC_OR_DST_PORT(BABEL_PORT_OLD))
@@ -603,8 +618,6 @@ udp_print(netdissect_options *ndo, const u_char *bp, u_int length,
                 */
                else if (dport == WB_PORT)
                        wb_print(ndo, cp, length);
-               else if (IS_SRC_OR_DST_PORT(CISCO_AUTORP_PORT))
-                       cisco_autorp_print(ndo, cp, length);
                else if (IS_SRC_OR_DST_PORT(RADIUS_PORT) ||
                         IS_SRC_OR_DST_PORT(RADIUS_NEW_PORT) ||
                         IS_SRC_OR_DST_PORT(RADIUS_ACCOUNTING_PORT) ||
@@ -614,17 +627,8 @@ udp_print(netdissect_options *ndo, const u_char *bp, u_int length,
                        radius_print(ndo, cp, length);
                else if (dport == HSRP_PORT)
                        hsrp_print(ndo, cp, length);
-               else if (IS_SRC_OR_DST_PORT(LWRES_PORT))
-                       lwres_print(ndo, cp, length);
-               else if (IS_SRC_OR_DST_PORT(LDP_PORT))
-                       ldp_print(ndo, cp, length);
-               else if (IS_SRC_OR_DST_PORT(OLSR_PORT))
-                       olsr_print(ndo, cp, length,
-                                       (IP_V(ip) == 6) ? 1 : 0);
                else if (IS_SRC_OR_DST_PORT(MPLS_LSP_PING_PORT))
                        lspping_print(ndo, cp, length);
-               else if (sport == BCM_LI_PORT)
-                       bcm_li_print(ndo, cp, length);
                else if (dport == BFD_CONTROL_PORT ||
                         dport == BFD_MULTIHOP_PORT ||
                         dport == BFD_LAG_PORT ||
@@ -633,8 +637,6 @@ udp_print(netdissect_options *ndo, const u_char *bp, u_int length,
                        bfd_print(ndo, cp, length, dport);
                else if (sport == SBFD_PORT)
                        bfd_print(ndo, cp, length, sport);
-               else if (IS_SRC_OR_DST_PORT(LMP_PORT))
-                       lmp_print(ndo, cp, length);
                else if (IS_SRC_OR_DST_PORT(VQP_PORT))
                        vqp_print(ndo, cp, length);
                else if (IS_SRC_OR_DST_PORT(SFLOW_PORT))
@@ -647,13 +649,11 @@ udp_print(netdissect_options *ndo, const u_char *bp, u_int length,
                        lwapp_data_print(ndo, cp, length);
                else if (IS_SRC_OR_DST_PORT(SIP_PORT))
                        sip_print(ndo, cp, length);
-               else if (IS_SRC_OR_DST_PORT(SYSLOG_PORT))
-                       syslog_print(ndo, cp, length);
                else if (IS_SRC_OR_DST_PORT(OTV_PORT))
                        otv_print(ndo, cp, length);
                else if (IS_SRC_OR_DST_PORT(VXLAN_PORT))
                        vxlan_print(ndo, cp, length);
-               else if (IS_SRC_OR_DST_PORT(GENEVE_PORT))
+               else if (dport == GENEVE_PORT)
                        geneve_print(ndo, cp, length);
                else if (IS_SRC_OR_DST_PORT(LISP_CONTROL_PORT))
                        lisp_print(ndo, cp, length);
@@ -668,14 +668,13 @@ udp_print(netdissect_options *ndo, const u_char *bp, u_int length,
                        if (ndo->ndo_vflag)
                                ND_PRINT("kip ");
                        llap_print(ndo, cp, length);
-               } else if (IS_SRC_OR_DST_PORT(PTP_EVENT_PORT) ||
-                       IS_SRC_OR_DST_PORT(PTP_GENERAL_PORT)) {
-                       ptp_print(ndo, cp, length);
                } else if (IS_SRC_OR_DST_PORT(SOMEIP_PORT))
                        someip_print(ndo, cp, length);
                else if (IS_SRC_OR_DST_PORT(HTTPS_PORT) &&
                         quic_detect(ndo, cp, length))
-                       quic_print(ndo, cp, length);
+                       quic_print(ndo, cp);
+               else if (sport == BCM_LI_PORT)
+                       bcm_li_print(ndo, cp, length);
                else {
                        if (ulen > length && !fragmented)
                                ND_PRINT("UDP, bad length %u > %u",