--- a/Makefile.in
+++ b/Makefile.in
-@@ -73,6 +73,85 @@ DEPENDENCY_CFLAG = @DEPENDENCY_CFLAG@
+@@ -73,6 +73,86 @@ DEPENDENCY_CFLAG = @DEPENDENCY_CFLAG@
CSRC = fptype.c tcpdump.c
+ print-tftp.c \
+ print-udp.c \
+ print-unsupported.c \
++ print-whois.c \
+ signature.c \
+ strtoaddr.c \
+ util-print.c
LIBNETDISSECT_SRC=\
addrtoname.c \
addrtostr.c \
-@@ -252,6 +331,8 @@ LIBNETDISSECT_SRC=\
+@@ -254,6 +334,8 @@ LIBNETDISSECT_SRC=\
strtoaddr.c \
util-print.c
--- a/addrtoname.c
+++ b/addrtoname.c
-@@ -683,8 +683,10 @@ linkaddr_string(netdissect_options *ndo,
+@@ -680,8 +680,10 @@ linkaddr_string(netdissect_options *ndo,
if (type == LINKADDR_ETHER && len == MAC_ADDR_LEN)
return (etheraddr_string(ndo, ep));
tp = lookup_bytestring(ndo, ep, len);
if (tp->bs_name)
-@@ -1263,6 +1265,7 @@ init_addrtoname(netdissect_options *ndo,
+@@ -1260,6 +1262,7 @@ init_addrtoname(netdissect_options *ndo,
init_ipxsaparray(ndo);
}
const char *
dnaddr_string(netdissect_options *ndo, u_short dnaddr)
{
-@@ -1279,6 +1282,7 @@ dnaddr_string(netdissect_options *ndo, u
+@@ -1276,6 +1279,7 @@ dnaddr_string(netdissect_options *ndo, u
return(tp->name);
}
struct hnamemem *
--- a/print-ether.c
+++ b/print-ether.c
-@@ -539,6 +539,7 @@ ethertype_print(netdissect_options *ndo,
+@@ -545,6 +545,7 @@ ethertype_print(netdissect_options *ndo,
arp_print(ndo, p, length, caplen);
return (1);
case ETHERTYPE_DN:
decnet_print(ndo, p, length, caplen);
return (1);
-@@ -569,6 +570,7 @@ ethertype_print(netdissect_options *ndo,
+@@ -575,6 +576,7 @@ ethertype_print(netdissect_options *ndo,
ND_TCHECK_LEN(p, 1);
isoclns_print(ndo, p + 1, length - 1);
return(1);
case ETHERTYPE_PPPOED:
case ETHERTYPE_PPPOES:
-@@ -581,9 +583,11 @@ ethertype_print(netdissect_options *ndo,
+@@ -587,9 +589,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);
+ case ETHERTYPE_REALTEK:
+ rtl_print(ndo, p, length, src, dst);
return (1);
+#endif
case ETHERTYPE_PPP:
if (length) {
-@@ -592,6 +596,7 @@ ethertype_print(netdissect_options *ndo,
+@@ -598,6 +602,7 @@ ethertype_print(netdissect_options *ndo,
}
return (1);
case ETHERTYPE_MPCP:
mpcp_print(ndo, p, length);
return (1);
-@@ -604,19 +609,23 @@ ethertype_print(netdissect_options *ndo,
+@@ -610,19 +615,23 @@ ethertype_print(netdissect_options *ndo,
case ETHERTYPE_CFM_OLD:
cfm_print(ndo, p, length);
return (1);
case ETHERTYPE_MPLS:
case ETHERTYPE_MPLS_MULTI:
mpls_print(ndo, p, length);
-@@ -646,6 +655,7 @@ ethertype_print(netdissect_options *ndo,
+@@ -652,6 +661,7 @@ ethertype_print(netdissect_options *ndo,
case ETHERTYPE_PTP:
ptp_print(ndo, p, length);
return (1);
break;
--- a/print-icmp6.c
+++ b/print-icmp6.c
-@@ -1384,7 +1384,7 @@ get_upperlayer(netdissect_options *ndo,
+@@ -1371,7 +1371,7 @@ get_upperlayer(netdissect_options *ndo,
nh = GET_U_1(fragh->ip6f_nxt);
hlen = sizeof(struct ip6_frag);
break;
case IPPROTO_AH:
ah = (const struct ah *)bp;
if (!ND_TTEST_1(ah->ah_len))
-@@ -1392,7 +1392,7 @@ get_upperlayer(netdissect_options *ndo,
+@@ -1379,7 +1379,7 @@ get_upperlayer(netdissect_options *ndo,
nh = GET_U_1(ah->ah_nxt);
hlen = (GET_U_1(ah->ah_len) + 2) << 2;
break;
default:
/*
* AH and ESP are, in the RFCs that describe them,
-@@ -357,6 +358,7 @@ ip6_print(netdissect_options *ndo, const
+@@ -375,6 +376,7 @@ ip6_print(netdissect_options *ndo, const
nh = GET_U_1(cp);
break;
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
+@@ -405,7 +407,7 @@ ip6_print(netdissect_options *ndo, const
nh = GET_U_1(cp);
nd_pop_packet_info(ndo);
return;
static void
ppp_hdlc(netdissect_options *ndo,
const u_char *p, u_int length)
-@@ -1440,17 +1441,19 @@ trunc:
+@@ -1451,17 +1452,19 @@ trunc:
ndo->ndo_snapend = se;
nd_print_trunc(ndo);
}
switch (proto) {
case PPP_LCP: /* fall through */
-@@ -1483,6 +1486,7 @@ handle_ppp(netdissect_options *ndo,
+@@ -1494,6 +1497,7 @@ handle_ppp(netdissect_options *ndo,
case PPP_IPV6:
ip6_print(ndo, p, length);
break;
case ETHERTYPE_IPX: /*XXX*/
case PPP_IPX:
ipx_print(ndo, p, length);
-@@ -1494,6 +1498,7 @@ handle_ppp(netdissect_options *ndo,
+@@ -1505,6 +1509,7 @@ handle_ppp(netdissect_options *ndo,
case PPP_MPLS_MCAST:
mpls_print(ndo, p, length);
break;
case PPP_COMP:
ND_PRINT("compressed PPP data");
break;
-@@ -1634,6 +1639,7 @@ ppp_if_print(netdissect_options *ndo,
+@@ -1652,6 +1657,7 @@ ppp_if_print(netdissect_options *ndo,
ppp_print(ndo, p, length);
}
/*
* 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:
+@@ -1895,3 +1901,4 @@ printx:
#endif /* __bsdi__ */
ndo->ndo_ll_hdr_len += hdrlength;
}
+#endif
--- a/print-sll.c
+++ b/print-sll.c
-@@ -460,12 +460,14 @@ recurse:
+@@ -465,12 +465,14 @@ recurse:
*/
switch (ether_type) {
/*
--- a/print-tcp.c
+++ b/print-tcp.c
-@@ -612,6 +612,7 @@ tcp_print(netdissect_options *ndo,
+@@ -614,6 +614,7 @@ tcp_print(netdissect_options *ndo,
ND_PRINT(" %u", utoval);
break;
case TCPOPT_MPTCP:
{
const u_char *snapend_save;
-@@ -635,7 +636,7 @@ tcp_print(netdissect_options *ndo,
+@@ -637,7 +638,7 @@ tcp_print(netdissect_options *ndo,
goto bad;
break;
}
case TCPOPT_FASTOPEN:
datalen = len - 2;
LENCHECK(datalen);
-@@ -720,6 +721,7 @@ tcp_print(netdissect_options *ndo,
+@@ -722,6 +723,7 @@ tcp_print(netdissect_options *ndo,
return;
}
if (ndo->ndo_packettype) {
switch (ndo->ndo_packettype) {
case PT_ZMTP1:
-@@ -735,6 +737,7 @@ tcp_print(netdissect_options *ndo,
+@@ -737,6 +739,7 @@ tcp_print(netdissect_options *ndo,
}
return;
}
if (IS_SRC_OR_DST_PORT(TELNET_PORT)) {
telnet_print(ndo, bp, length);
-@@ -745,24 +748,31 @@ tcp_print(netdissect_options *ndo,
+@@ -746,24 +749,31 @@ tcp_print(netdissect_options *ndo,
+ } else if (IS_SRC_OR_DST_PORT(WHOIS_PORT)) {
ND_PRINT(": ");
- ndo->ndo_protocol = "whois"; /* needed by txtproto_print() */
- txtproto_print(ndo, bp, length, NULL, 0); /* RFC 3912 */
+ whois_print(ndo, bp, length);
- } 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);
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,
+@@ -776,12 +786,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);
{ null_if_print, DLT_LOOP },
#endif
+#ifndef TCPDUMP_MINI
- #if defined(DLT_PFLOG) && defined(HAVE_NET_IF_PFLOG_H)
+ #ifdef DLT_PFLOG
{ pflog_if_print, DLT_PFLOG },
#endif
@@ -200,6 +211,7 @@ static const struct printer printers[] =