openwrt/package/network/utils/tcpdump/patches/100-tcpdump_mini.patch
Nick Hainke 86b0d3b00b tcpdump: update to 4.99.1
Adjust
- 100-tcpdump_mini.patch

Remove upstreamed patches:
- 101-CVE-2020-8037.patch
- 102-CVE-2018-16301.patch

Changelog:

  Wednesday, June 9, 2021 by gharris
  Summary for 4.99.1 tcpdump release
    Source code:
      Squelch some compiler warnings
      ICMP: Update the snapend for some nested IP packets.
      MACsec: Update the snapend thus the ICV field is not payload
        for the caller.
      EIGRP: Fix packet header fields
      SMB: Disable printer by default in CMake builds
      OLSR: Print the protocol name even if the packet is invalid
      MSDP: Print ": " before the protocol name
      ESP: Remove padding, padding length and next header from the buffer
      DHCPv6: Update the snapend for nested DHCPv6 packets
      OpenFlow 1.0: Get snapend right for nested frames.
      TCP: Update the snapend before decoding a MPTCP option
      Ethernet, IEEE 802.15.4, IP, L2TP, TCP, ZEP: Add bounds checks
      ForCES: Refine SPARSEDATA-TLV length check.
      ASCII/hex: Use nd_trunc_longjmp() in truncation cases
      GeoNet: Add a ND_TCHECK_LEN() call
      Replace ND_TCHECK_/memcpy() pairs with GET_CPY_BYTES().
      BGP: Fix overwrites of global 'astostr' temporary buffer
      ARP: fix overwrites of static buffer in q922_string().
      Frame Relay: have q922_string() handle errors better.
    Building and testing:
      Rebuild configure script when building release
      Fix "make clean" for out-of-tree autotools builds
      CMake: add stuff from CMAKE_PREFIX_PATH to PKG_CONFIG_PATH.
    Documentation:
      man: Update a reference as www.cifs.org is gone. [skip ci]
      man: Update DNS sections
    Solaris:
      Fix a compile error with Sun C

  Wednesday, December 30, 2020, by mcr@sandelman.ca, denis and fxl.
  Summary for 4.99.0 tcpdump release
    CVE-2018-16301: For the -F option handle large input files safely.
    Improve the contents, wording and formatting of the man page.
    Print unsupported link-layer protocol packets in hex.
    Add support for new network protocols and DLTs: Arista, Autosar SOME/IP,
      Broadcom LI and Ethernet switches tag, IEEE 802.15.9, IP-over-InfiniBand
      (IPoIB), Linux SLL2, Linux vsockmon, MACsec, Marvell Distributed Switch
      Architecture, OpenFlow 1.3, Precision Time Protocol (PTP), SSH, WHOIS,
      ZigBee Encapsulation Protocol (ZEP).
    Make protocol-specific updates for: AH, DHCP, DNS, ESP, FRF.16, HNCP,
      ICMP6, IEEE 802.15.4, IPv6, IS-IS, Linux SLL, LLDP, LSP ping, MPTCP, NFS,
      NSH, NTP, OSPF, OSPF6, PGM, PIM, PPTP, RADIUS, RSVP, Rx, SMB, UDLD,
      VXLAN-GPE.
    User interface:
      Make SLL2 the default for Linux "any" pseudo-device.
      Add --micro and --nano shorthands.
      Add --count to print a counter only instead of decoding.
      Add --print, to cause packet printing even with -w.
      Add support for remote capture if libpcap supports it.
      Display the "wireless" flag and connection status.
      Flush the output packet buffer on a SIGUSR2.
      Add the snapshot length to the "reading from file ..." message.
      Fix local time printing (DST offset in timestamps).
      Allow -C arguments > 2^31-1 GB if they can fit into a long.
      Handle very large -f files by rejecting them.
      Report periodic stats only when safe to do so.
      Print the number of packets captured only as often as necessary.
      With no -s, or with -s 0, don't specify the snapshot length with newer
        versions of libpcap.
      Improve version and usage message printing.
    Building and testing:
      Install into bindir, not sbindir.
      autoconf: replace --with-system-libpcap with --disable-local-libpcap.
      Require the compiler to support C99.
      Better detect and use various C compilers and their features.
      Add CMake as the second build system.
      Make out-of-tree builds more reliable.
      Use pkg-config to detect libpcap if available.
      Improve Windows support.
      Add more tests and improve the scripts that run them.
      Test both with "normal" and "x87" floating-point.
      Eliminate dependency on libdnet.
    FreeBSD:
      Print a proper error message about monitor mode VAP.
      Use libcasper if available.
      Fix failure to capture on RDMA device.
      Include the correct capsicum header.
    Source code:
      Start the transition to longjmp() for packet truncation handling.
      Introduce new helper functions, including GET_*(), nd_print_protocol(),
        nd_print_invalid(), nd_print_trunc(), nd_trunc_longjmp() and others.
      Put integer signedness right in many cases.
      Introduce nd_uint*, nd_mac_addr, nd_ipv4 and nd_ipv6 types to fix
        alignment issues, especially on SPARC.
      Fix many C compiler, Coverity, UBSan and cppcheck warnings.
      Fix issues detected with AddressSanitizer.
      Remove many workarounds for older compilers and OSes.
      Add a sanity check on packet header length.
      Add and remove plenty of bounds checks.
      Clean up pcap_findalldevs() call to find the first interface.
      Use a short timeout, rather than immediate mode, for text output.
      Handle DLT_ENC files *not* written on the same OS and byte-order host.
      Add, and use, macros to do locale-independent case mapping.
      Use a table instead of getprotobynumber().
      Get rid of ND_UNALIGNED and ND_TCHECK().
      Make roundup2() generally available.
      Resync SMI list
 against Wireshark.
      Fix many typos.

Co-Developed-by: Ivan Pavlov <AuthorReflex@gmail.com>
Signed-off-by: Ivan Pavlov <AuthorReflex@gmail.com>
Signed-off-by: Nick Hainke <vincent@systemli.org>
2022-07-03 20:25:38 +02:00

861 lines
22 KiB
Diff

--- a/Makefile.in
+++ b/Makefile.in
@@ -73,6 +73,85 @@ DEPENDENCY_CFLAG = @DEPENDENCY_CFLAG@
CSRC = fptype.c tcpdump.c
+ifdef TCPDUMP_MINI
+
+LIBNETDISSECT_SRC=\
+ netdissect.c \
+ netdissect-alloc.c \
+ addrtoname.c \
+ addrtostr.c \
+ af.c \
+ ascii_strcasecmp.c \
+ checksum.c \
+ cpack.c \
+ gmpls.c \
+ in_cksum.c \
+ ipproto.c \
+ l2vpn.c \
+ machdep.c \
+ ntp.c \
+ nlpid.c \
+ oui.c \
+ parsenfsfh.c \
+ print.c \
+ print-802_11.c \
+ print-aodv.c \
+ print-arista.c \
+ print-arp.c \
+ print-ascii.c \
+ print-bootp.c \
+ print-dhcp6.c \
+ print-domain.c \
+ print-eap.c \
+ print-ether.c \
+ print-ftp.c \
+ print-gre.c \
+ print-http.c \
+ print-icmp.c \
+ print-icmp6.c \
+ print-igmp.c \
+ print-ip-demux.c \
+ print-ip.c \
+ print-ip6.c \
+ print-ip6opts.c \
+ print-ipnet.c \
+ print-l2tp.c \
+ print-llc.c \
+ print-lldp.c \
+ print-loopback.c \
+ print-macsec.c \
+ print-nfs.c \
+ print-ntp.c \
+ print-null.c \
+ print-olsr.c \
+ print-ospf.c \
+ print-ospf6.c \
+ print-ppp.c \
+ print-pppoe.c \
+ print-pptp.c \
+ print-radius.c \
+ print-raw.c \
+ print-rsvp.c \
+ print-rt6.c \
+ print-rtsp.c \
+ print-sip.c \
+ print-sll.c \
+ print-smtp.c \
+ print-snmp.c \
+ print-stp.c \
+ print-sunrpc.c \
+ print-syslog.c \
+ print-tcp.c \
+ print-telnet.c \
+ print-tftp.c \
+ print-udp.c \
+ print-unsupported.c \
+ signature.c \
+ strtoaddr.c \
+ util-print.c
+
+else
+
LIBNETDISSECT_SRC=\
addrtoname.c \
addrtostr.c \
@@ -252,6 +331,8 @@ LIBNETDISSECT_SRC=\
strtoaddr.c \
util-print.c
+endif
+
LOCALSRC = @LOCALSRC@
LIBOBJS = @LIBOBJS@
--- a/addrtoname.c
+++ b/addrtoname.c
@@ -683,8 +683,10 @@ linkaddr_string(netdissect_options *ndo,
if (type == LINKADDR_ETHER && len == MAC_ADDR_LEN)
return (etheraddr_string(ndo, ep));
+#ifndef TCPDUMP_MINI
if (type == LINKADDR_FRELAY)
return (q922_string(ndo, ep, len));
+#endif
tp = lookup_bytestring(ndo, ep, len);
if (tp->bs_name)
@@ -1263,6 +1265,7 @@ init_addrtoname(netdissect_options *ndo,
init_ipxsaparray(ndo);
}
+#ifndef TCPDUMP_MINI
const char *
dnaddr_string(netdissect_options *ndo, u_short dnaddr)
{
@@ -1279,6 +1282,7 @@ dnaddr_string(netdissect_options *ndo, u
return(tp->name);
}
+#endif
/* Return a zero'ed hnamemem struct and cuts down on calloc() overhead */
struct hnamemem *
--- a/print-ether.c
+++ b/print-ether.c
@@ -539,6 +539,7 @@ ethertype_print(netdissect_options *ndo,
arp_print(ndo, p, length, caplen);
return (1);
+#ifndef TCPDUMP_MINI
case ETHERTYPE_DN:
decnet_print(ndo, p, length, caplen);
return (1);
@@ -569,6 +570,7 @@ ethertype_print(netdissect_options *ndo,
ND_TCHECK_LEN(p, 1);
isoclns_print(ndo, p + 1, length - 1);
return(1);
+#endif
case ETHERTYPE_PPPOED:
case ETHERTYPE_PPPOES:
@@ -581,9 +583,11 @@ ethertype_print(netdissect_options *ndo,
eapol_print(ndo, p);
return (1);
+#ifndef TCPDUMP_MINI
case ETHERTYPE_RRCP:
rrcp_print(ndo, p, length, src, dst);
return (1);
+#endif
case ETHERTYPE_PPP:
if (length) {
@@ -592,6 +596,7 @@ ethertype_print(netdissect_options *ndo,
}
return (1);
+#ifndef TCPDUMP_MINI
case ETHERTYPE_MPCP:
mpcp_print(ndo, p, length);
return (1);
@@ -604,19 +609,23 @@ ethertype_print(netdissect_options *ndo,
case ETHERTYPE_CFM_OLD:
cfm_print(ndo, p, length);
return (1);
+#endif
case ETHERTYPE_LLDP:
lldp_print(ndo, p, length);
return (1);
+#ifndef TCPDUMP_MINI
case ETHERTYPE_NSH:
nsh_print(ndo, p, length);
return (1);
+#endif
case ETHERTYPE_LOOPBACK:
loopback_print(ndo, p, length);
return (1);
+#ifndef TCPDUMP_MINI
case ETHERTYPE_MPLS:
case ETHERTYPE_MPLS_MULTI:
mpls_print(ndo, p, length);
@@ -646,6 +655,7 @@ ethertype_print(netdissect_options *ndo,
case ETHERTYPE_PTP:
ptp_print(ndo, p, length);
return (1);
+#endif
case ETHERTYPE_LAT:
case ETHERTYPE_SCA:
--- a/print-gre.c
+++ b/print-gre.c
@@ -207,6 +207,7 @@ gre_print_0(netdissect_options *ndo, con
case ETHERTYPE_IPV6:
ip6_print(ndo, bp, len);
break;
+#ifndef TCPDUMP_MINI
case ETHERTYPE_MPLS:
mpls_print(ndo, bp, len);
break;
@@ -219,6 +220,7 @@ gre_print_0(netdissect_options *ndo, con
case ETHERTYPE_GRE_ISO:
isoclns_print(ndo, bp, len);
break;
+#endif
case ETHERTYPE_TEB:
ether_print(ndo, bp, len, ND_BYTES_AVAILABLE_AFTER(bp), NULL, NULL);
break;
--- a/print-icmp6.c
+++ b/print-icmp6.c
@@ -1384,7 +1384,7 @@ get_upperlayer(netdissect_options *ndo,
nh = GET_U_1(fragh->ip6f_nxt);
hlen = sizeof(struct ip6_frag);
break;
-
+#ifndef TCPDUMP_MINI
case IPPROTO_AH:
ah = (const struct ah *)bp;
if (!ND_TTEST_1(ah->ah_len))
@@ -1392,7 +1392,7 @@ get_upperlayer(netdissect_options *ndo,
nh = GET_U_1(ah->ah_nxt);
hlen = (GET_U_1(ah->ah_len) + 2) << 2;
break;
-
+#endif
default: /* unknown or undecodable header */
*prot = nh; /* meaningless, but set here anyway */
return(NULL);
--- a/print-igmp.c
+++ b/print-igmp.c
@@ -269,6 +269,7 @@ igmp_print(netdissect_options *ndo,
case 0x17:
ND_PRINT("igmp leave %s", GET_IPADDR_STRING(bp + 4));
break;
+#ifndef TCPDUMP_MINI
case 0x13:
ND_PRINT("igmp dvmrp");
if (len < 8)
@@ -280,6 +281,7 @@ igmp_print(netdissect_options *ndo,
ND_PRINT("igmp pimv1");
pimv1_print(ndo, bp, len);
break;
+#endif
case 0x1e:
print_mtrace(ndo, "mresp", bp, len);
break;
--- a/print-ip-demux.c
+++ b/print-ip-demux.c
@@ -48,6 +48,7 @@ ip_demux_print(netdissect_options *ndo,
again:
switch (nh) {
+#ifndef TCPDUMP_MINI
case IPPROTO_AH:
if (!ND_TTEST_1(bp)) {
ndo->ndo_protocol = "ah";
@@ -85,7 +86,9 @@ again:
*/
break;
}
+#endif
+#ifndef TCPDUMP_MINI
case IPPROTO_SCTP:
sctp_print(ndo, bp, iph, length);
break;
@@ -93,7 +96,7 @@ again:
case IPPROTO_DCCP:
dccp_print(ndo, bp, iph, length);
break;
-
+#endif
case IPPROTO_TCP:
tcp_print(ndo, bp, length, iph, fragmented);
break;
@@ -122,6 +125,7 @@ again:
}
break;
+#ifndef TCPDUMP_MINI
case IPPROTO_PIGP:
/*
* XXX - the current IANA protocol number assignments
@@ -142,14 +146,17 @@ again:
case IPPROTO_EIGRP:
eigrp_print(ndo, bp, length);
break;
+#endif
case IPPROTO_ND:
ND_PRINT(" nd %u", length);
break;
+#ifndef TCPDUMP_MINI
case IPPROTO_EGP:
egp_print(ndo, bp, length);
break;
+#endif
case IPPROTO_OSPF:
if (ver == 6)
@@ -186,6 +193,7 @@ again:
gre_print(ndo, bp, length);
break;
+#ifndef TCPDUMP_MINI
case IPPROTO_MOBILE:
mobile_print(ndo, bp, length);
break;
@@ -205,6 +213,7 @@ again:
case IPPROTO_PGM:
pgm_print(ndo, bp, length, iph);
break;
+#endif
case IPPROTO_ETHERNET:
if (ver == 6)
--- a/print-ip6.c
+++ b/print-ip6.c
@@ -135,10 +135,11 @@ ip6_finddst(netdissect_options *ndo, nd_
* Only one routing header to a customer.
*/
goto done;
-
+#ifndef TCPDUMP_MINI
case IPPROTO_AH:
case IPPROTO_ESP:
case IPPROTO_IPCOMP:
+#endif
default:
/*
* AH and ESP are, in the RFCs that describe them,
@@ -357,6 +358,7 @@ ip6_print(netdissect_options *ndo, const
nh = GET_U_1(cp);
break;
+#ifndef TCPDUMP_MINI
case IPPROTO_FRAGMENT:
advance = frag6_print(ndo, cp, (const u_char *)ip6);
if (advance < 0 || ndo->ndo_snapend <= cp + advance) {
@@ -387,7 +389,7 @@ ip6_print(netdissect_options *ndo, const
nh = GET_U_1(cp);
nd_pop_packet_info(ndo);
return;
-
+#endif
case IPPROTO_ROUTING:
ND_TCHECK_1(cp);
advance = rt6_print(ndo, cp, (const u_char *)ip6);
--- a/print-llc.c
+++ b/print-llc.c
@@ -207,6 +207,7 @@ llc_print(netdissect_options *ndo, const
hdrlen = 4; /* DSAP, SSAP, 2-byte control field */
}
+#ifndef TCPDUMP_MINI
if (ssap_field == LLCSAP_GLOBAL && dsap_field == LLCSAP_GLOBAL) {
/*
* This is an Ethernet_802.3 IPX frame; it has an
@@ -229,6 +230,7 @@ llc_print(netdissect_options *ndo, const
ipx_print(ndo, p, length);
return (0); /* no LLC header */
}
+#endif
dsap = dsap_field & ~LLC_IG;
ssap = ssap_field & ~LLC_GSAP;
@@ -292,6 +294,7 @@ llc_print(netdissect_options *ndo, const
return (hdrlen);
}
+#ifndef TCPDUMP_MINI
if (ssap == LLCSAP_IPX && dsap == LLCSAP_IPX &&
control == LLC_UI) {
/*
@@ -305,6 +308,7 @@ llc_print(netdissect_options *ndo, const
ipx_print(ndo, p, length);
return (hdrlen);
}
+#endif
#ifdef ENABLE_SMB
if (ssap == LLCSAP_NETBEUI && dsap == LLCSAP_NETBEUI
@@ -323,12 +327,13 @@ llc_print(netdissect_options *ndo, const
return (hdrlen);
}
#endif
+#ifndef TCPDUMP_MINI
if (ssap == LLCSAP_ISONS && dsap == LLCSAP_ISONS
&& control == LLC_UI) {
isoclns_print(ndo, p, length);
return (hdrlen);
}
-
+#endif
if (!ndo->ndo_eflag) {
if (ssap == dsap) {
if (src == NULL || dst == NULL)
@@ -484,6 +489,7 @@ snap_print(netdissect_options *ndo, cons
case OUI_CISCO:
switch (et) {
+#ifndef TCPDUMP_MINI
case PID_CISCO_CDP:
cdp_print(ndo, p, length);
return (1);
@@ -496,6 +502,7 @@ snap_print(netdissect_options *ndo, cons
case PID_CISCO_VTP:
vtp_print(ndo, p, length);
return (1);
+#endif
case PID_CISCO_PVST:
case PID_CISCO_VLANBRIDGE:
stp_print(ndo, p, length);
@@ -508,6 +515,7 @@ snap_print(netdissect_options *ndo, cons
case OUI_RFC2684:
switch (et) {
+#ifndef TCPDUMP_MINI
case PID_RFC2684_ETH_FCS:
case PID_RFC2684_ETH_NOFCS:
/*
@@ -569,6 +577,7 @@ snap_print(netdissect_options *ndo, cons
*/
fddi_print(ndo, p, length, caplen);
return (1);
+#endif
case PID_RFC2684_BPDU:
stp_print(ndo, p, length);
--- a/print-null.c
+++ b/print-null.c
@@ -116,6 +116,7 @@ null_if_print(netdissect_options *ndo, c
ip6_print(ndo, p, length);
break;
+#ifndef TCPDUMP_MINI
case BSD_AFNUM_ISO:
isoclns_print(ndo, p, length);
break;
@@ -127,6 +128,7 @@ null_if_print(netdissect_options *ndo, c
case BSD_AFNUM_IPX:
ipx_print(ndo, p, length);
break;
+#endif
default:
/* unknown AF_ value */
--- a/print-ppp.c
+++ b/print-ppp.c
@@ -1355,6 +1355,7 @@ trunc:
* The length argument is the on-the-wire length, not the captured
* length; we can only un-escape the captured part.
*/
+#ifndef TCPDUMP_MINI
static void
ppp_hdlc(netdissect_options *ndo,
const u_char *p, u_int length)
@@ -1440,17 +1441,19 @@ trunc:
ndo->ndo_snapend = se;
nd_print_trunc(ndo);
}
-
+#endif
/* PPP */
static void
handle_ppp(netdissect_options *ndo,
u_int proto, const u_char *p, u_int length)
{
+#ifndef TCPDUMP_MINI
if ((proto & 0xff00) == 0x7e00) { /* is this an escape code ? */
ppp_hdlc(ndo, p - 1, length);
return;
}
+#endif
switch (proto) {
case PPP_LCP: /* fall through */
@@ -1483,6 +1486,7 @@ handle_ppp(netdissect_options *ndo,
case PPP_IPV6:
ip6_print(ndo, p, length);
break;
+#ifndef TCPDUMP_MINI
case ETHERTYPE_IPX: /*XXX*/
case PPP_IPX:
ipx_print(ndo, p, length);
@@ -1494,6 +1498,7 @@ handle_ppp(netdissect_options *ndo,
case PPP_MPLS_MCAST:
mpls_print(ndo, p, length);
break;
+#endif
case PPP_COMP:
ND_PRINT("compressed PPP data");
break;
@@ -1634,6 +1639,7 @@ ppp_if_print(netdissect_options *ndo,
ppp_print(ndo, p, length);
}
+#ifndef TCPDUMP_MINI
/*
* PPP I/F printer to use if we know that RFC 1662-style PPP in HDLC-like
* framing, or Cisco PPP with HDLC framing as per section 4.3.1 of RFC 1547,
@@ -1877,3 +1883,4 @@ printx:
#endif /* __bsdi__ */
ndo->ndo_ll_hdr_len += hdrlength;
}
+#endif
--- a/print-sll.c
+++ b/print-sll.c
@@ -460,12 +460,14 @@ recurse:
*/
switch (ether_type) {
+#ifndef TCPDUMP_MINI
case LINUX_SLL_P_802_3:
/*
* Ethernet_802.3 IPX frame.
*/
ipx_print(ndo, p, length);
break;
+#endif
case LINUX_SLL_P_802_2:
/*
--- a/print-tcp.c
+++ b/print-tcp.c
@@ -612,6 +612,7 @@ tcp_print(netdissect_options *ndo,
ND_PRINT(" %u", utoval);
break;
+#ifndef TCPDUMP_MINI
case TCPOPT_MPTCP:
{
const u_char *snapend_save;
@@ -635,7 +636,7 @@ tcp_print(netdissect_options *ndo,
goto bad;
break;
}
-
+#endif
case TCPOPT_FASTOPEN:
datalen = len - 2;
LENCHECK(datalen);
@@ -720,6 +721,7 @@ tcp_print(netdissect_options *ndo,
return;
}
+#ifndef TCPDUMP_MINI
if (ndo->ndo_packettype) {
switch (ndo->ndo_packettype) {
case PT_ZMTP1:
@@ -735,6 +737,7 @@ tcp_print(netdissect_options *ndo,
}
return;
}
+#endif
if (IS_SRC_OR_DST_PORT(TELNET_PORT)) {
telnet_print(ndo, bp, length);
@@ -745,24 +748,31 @@ tcp_print(netdissect_options *ndo,
ND_PRINT(": ");
ndo->ndo_protocol = "whois"; /* needed by txtproto_print() */
txtproto_print(ndo, bp, length, NULL, 0); /* RFC 3912 */
- } else if (IS_SRC_OR_DST_PORT(BGP_PORT))
+ }
+#ifndef TCPDUMP_MINI
+ else if (IS_SRC_OR_DST_PORT(BGP_PORT))
bgp_print(ndo, bp, length);
+#endif
else if (IS_SRC_OR_DST_PORT(PPTP_PORT))
pptp_print(ndo, bp);
+#ifndef TCPDUMP_MINI
else if (IS_SRC_OR_DST_PORT(REDIS_PORT))
resp_print(ndo, bp, length);
else if (IS_SRC_OR_DST_PORT(SSH_PORT))
ssh_print(ndo, bp, length);
+#endif
#ifdef ENABLE_SMB
else if (IS_SRC_OR_DST_PORT(NETBIOS_SSN_PORT))
nbt_tcp_print(ndo, bp, length);
else if (IS_SRC_OR_DST_PORT(SMB_PORT))
smb_tcp_print(ndo, bp, length);
#endif
+#ifndef TCPDUMP_MINI
else if (IS_SRC_OR_DST_PORT(BEEP_PORT))
beep_print(ndo, bp, length);
else if (IS_SRC_OR_DST_PORT(OPENFLOW_PORT_OLD) || IS_SRC_OR_DST_PORT(OPENFLOW_PORT_IANA))
openflow_print(ndo, bp, length);
+#endif
else if (IS_SRC_OR_DST_PORT(FTP_PORT)) {
ND_PRINT(": ");
ftp_print(ndo, bp, length);
@@ -775,12 +785,14 @@ tcp_print(netdissect_options *ndo,
} else if (IS_SRC_OR_DST_PORT(NAMESERVER_PORT)) {
/* over_tcp: TRUE, is_mdns: FALSE */
domain_print(ndo, bp, length, TRUE, FALSE);
+#ifndef TCPDUMP_MINI
} else if (IS_SRC_OR_DST_PORT(MSDP_PORT)) {
msdp_print(ndo, bp, length);
} else if (IS_SRC_OR_DST_PORT(RPKI_RTR_PORT)) {
rpki_rtr_print(ndo, bp, length);
} else if (IS_SRC_OR_DST_PORT(LDP_PORT)) {
ldp_print(ndo, bp, length);
+#endif
} else if ((IS_SRC_OR_DST_PORT(NFS_PORT)) &&
length >= 4 && ND_TTEST_4(bp)) {
/*
--- a/print-udp.c
+++ b/print-udp.c
@@ -435,10 +435,12 @@ udp_print(netdissect_options *ndo, const
vat_print(ndo, cp, length);
break;
+#ifndef TCPDUMP_MINI
case PT_WB:
udpipaddr_print(ndo, ip, sport, dport);
wb_print(ndo, cp, length);
break;
+#endif
case PT_RPC:
rp = (const struct sunrpc_msg *)cp;
@@ -467,10 +469,12 @@ udp_print(netdissect_options *ndo, const
snmp_print(ndo, cp, length);
break;
+#ifndef TCPDUMP_MINI
case PT_CNFP:
udpipaddr_print(ndo, ip, sport, dport);
cnfp_print(ndo, cp);
break;
+#endif
case PT_TFTP:
udpipaddr_print(ndo, ip, sport, dport);
@@ -488,6 +492,7 @@ udp_print(netdissect_options *ndo, const
radius_print(ndo, cp, length);
break;
+#ifndef TCPDUMP_MINI
case PT_VXLAN:
udpipaddr_print(ndo, ip, sport, dport);
vxlan_print(ndo, cp, length);
@@ -510,6 +515,7 @@ udp_print(netdissect_options *ndo, const
udpipaddr_print(ndo, ip, sport, dport);
someip_print(ndo, cp, length);
break;
+#endif
case PT_DOMAIN:
udpipaddr_print(ndo, ip, sport, dport);
/* over_tcp: FALSE, is_mdns: FALSE */
@@ -596,29 +602,37 @@ udp_print(netdissect_options *ndo, const
else if (IS_SRC_OR_DST_PORT(MULTICASTDNS_PORT))
/* over_tcp: FALSE, is_mdns: TRUE */
domain_print(ndo, cp, length, FALSE, TRUE);
+#ifndef TCPDUMP_MINI
else if (IS_SRC_OR_DST_PORT(TIMED_PORT))
timed_print(ndo, (const u_char *)cp);
+#endif
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);
+#ifndef TCPDUMP_MINI
else if (IS_SRC_OR_DST_PORT(RIP_PORT))
rip_print(ndo, cp, length);
+#endif
else if (IS_SRC_OR_DST_PORT(AODV_PORT))
aodv_print(ndo, cp, length,
ip6 != NULL);
+#ifndef TCPDUMP_MINI
else if (IS_SRC_OR_DST_PORT(ISAKMP_PORT))
isakmp_print(ndo, cp, length, bp2);
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);
+#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(NTP_PORT))
ntp_print(ndo, cp, length);
+#ifndef TCPDUMP_MINI
else if (IS_SRC_OR_DST_PORT(KERBEROS_PORT) || IS_SRC_OR_DST_PORT(KERBEROS_SEC_PORT))
krb_print(ndo, (const u_char *)cp);
+#endif
else if (IS_SRC_OR_DST_PORT(L2TP_PORT))
l2tp_print(ndo, cp, length);
#ifdef ENABLE_SMB
@@ -629,6 +643,7 @@ udp_print(netdissect_options *ndo, const
#endif
else if (dport == VAT_PORT)
vat_print(ndo, cp, length);
+#ifndef TCPDUMP_MINI
else if (IS_SRC_OR_DST_PORT(ZEPHYR_SRV_PORT) || IS_SRC_OR_DST_PORT(ZEPHYR_CLT_PORT))
zephyr_print(ndo, cp, length);
/*
@@ -641,8 +656,11 @@ udp_print(netdissect_options *ndo, const
(const u_char *) ip);
else if (IS_SRC_OR_DST_PORT(RIPNG_PORT))
ripng_print(ndo, cp, length);
+#endif
+
else if (IS_SRC_OR_DST_PORT(DHCP6_SERV_PORT) || IS_SRC_OR_DST_PORT(DHCP6_CLI_PORT))
dhcp6_print(ndo, cp, length);
+#ifndef TCPDUMP_MINI
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))
@@ -656,6 +674,7 @@ udp_print(netdissect_options *ndo, const
wb_print(ndo, cp, length);
else if (IS_SRC_OR_DST_PORT(CISCO_AUTORP_PORT))
cisco_autorp_print(ndo, cp, length);
+#endif
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) ||
@@ -663,15 +682,18 @@ udp_print(netdissect_options *ndo, const
IS_SRC_OR_DST_PORT(RADIUS_CISCO_COA_PORT) ||
IS_SRC_OR_DST_PORT(RADIUS_COA_PORT) )
radius_print(ndo, cp, length);
+#ifndef TCPDUMP_MINI
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);
+#endif
else if (IS_SRC_OR_DST_PORT(OLSR_PORT))
olsr_print(ndo, cp, length,
(IP_V(ip) == 6) ? 1 : 0);
+#ifndef TCPDUMP_MINI
else if (IS_SRC_OR_DST_PORT(MPLS_LSP_PING_PORT))
lspping_print(ndo, cp, length);
else if (sport == BCM_LI_PORT)
@@ -693,10 +715,12 @@ udp_print(netdissect_options *ndo, const
lwapp_control_print(ndo, cp, length, 0);
else if (IS_SRC_OR_DST_PORT(LWAPP_DATA_PORT))
lwapp_data_print(ndo, cp, length);
+#endif
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);
+#ifndef TCPDUMP_MINI
else if (IS_SRC_OR_DST_PORT(OTV_PORT))
otv_print(ndo, cp, length);
else if (IS_SRC_OR_DST_PORT(VXLAN_PORT))
@@ -722,6 +746,7 @@ udp_print(netdissect_options *ndo, const
ptp_print(ndo, cp, length);
} else if (IS_SRC_OR_DST_PORT(SOMEIP_PORT))
someip_print(ndo, cp, length);
+#endif
else {
if (ulen > length && !fragmented)
ND_PRINT("UDP, bad length %u > %u",
--- a/print.c
+++ b/print.c
@@ -48,6 +48,7 @@ struct printer {
};
static const struct printer printers[] = {
+#ifndef TCPDUMP_MINI
#ifdef DLT_APPLE_IP_OVER_IEEE1394
{ ap1394_if_print, DLT_APPLE_IP_OVER_IEEE1394 },
#endif
@@ -86,7 +87,9 @@ static const struct printer printers[] =
#ifdef DLT_ENC
{ enc_if_print, DLT_ENC },
#endif
+#endif
{ ether_if_print, DLT_EN10MB },
+#ifndef TCPDUMP_MINI
{ fddi_if_print, DLT_FDDI },
#ifdef DLT_FR
{ fr_if_print, DLT_FR },
@@ -94,6 +97,7 @@ static const struct printer printers[] =
#ifdef DLT_FRELAY
{ fr_if_print, DLT_FRELAY },
#endif
+#endif
#ifdef DLT_IEEE802_11
{ ieee802_11_if_print, DLT_IEEE802_11},
#endif
@@ -103,6 +107,7 @@ static const struct printer printers[] =
#ifdef DLT_IEEE802_11_RADIO
{ ieee802_11_radio_if_print, DLT_IEEE802_11_RADIO },
#endif
+#ifndef TCPDUMP_MINI
#ifdef DLT_IEEE802_15_4
{ ieee802_15_4_if_print, DLT_IEEE802_15_4 },
#endif
@@ -115,9 +120,11 @@ static const struct printer printers[] =
#ifdef DLT_IP_OVER_FC
{ ipfc_if_print, DLT_IP_OVER_FC },
#endif
+#endif
#ifdef DLT_IPNET
{ ipnet_if_print, DLT_IPNET },
#endif
+#ifndef TCPDUMP_MINI
#ifdef DLT_IPOIB
{ ipoib_if_print, DLT_IPOIB },
#endif
@@ -172,19 +179,23 @@ static const struct printer printers[] =
#ifdef DLT_MFR
{ mfr_if_print, DLT_MFR },
#endif
+#endif
#ifdef DLT_NETANALYZER
{ netanalyzer_if_print, DLT_NETANALYZER },
#endif
#ifdef DLT_NETANALYZER_TRANSPARENT
{ netanalyzer_transparent_if_print, DLT_NETANALYZER_TRANSPARENT },
#endif
+#ifndef TCPDUMP_MINI
#ifdef DLT_NFLOG
{ nflog_if_print, DLT_NFLOG},
#endif
+#endif
{ null_if_print, DLT_NULL },
#ifdef DLT_LOOP
{ null_if_print, DLT_LOOP },
#endif
+#ifndef TCPDUMP_MINI
#if defined(DLT_PFLOG) && defined(HAVE_NET_IF_PFLOG_H)
{ pflog_if_print, DLT_PFLOG },
#endif
@@ -200,6 +211,7 @@ static const struct printer printers[] =
#ifdef DLT_PPP_SERIAL
{ ppp_hdlc_if_print, DLT_PPP_SERIAL },
#endif
+#endif
{ ppp_if_print, DLT_PPP },
#ifdef DLT_PPP_PPPD
{ ppp_if_print, DLT_PPP_PPPD },
@@ -211,6 +223,7 @@ static const struct printer printers[] =
{ prism_if_print, DLT_PRISM_HEADER },
#endif
{ raw_if_print, DLT_RAW },
+#ifndef TCPDUMP_MINI
#ifdef DLT_IPV4
{ raw_if_print, DLT_IPV4 },
#endif
@@ -243,6 +256,7 @@ static const struct printer printers[] =
#ifdef DLT_VSOCK
{ vsock_if_print, DLT_VSOCK },
#endif
+#endif
{ NULL, 0 },
};