register const struct tcphdr *tp,
register u_int len)
{
- return (nextproto4_cksum(ip, (const u_int8_t *)tp, len,
- IPPROTO_TCP));
+ return nextproto4_cksum(gndo, ip, (const u_int8_t *)tp, len, len,
+ IPPROTO_TCP);
}
void
#ifdef INET6
else if (IP_V(ip) == 6 && ip6->ip6_plen) {
if (TTEST2(tp->th_sport, length)) {
- sum = nextproto6_cksum(ip6, (const u_int8_t *)tp, length, IPPROTO_TCP);
+ sum = nextproto6_cksum(ip6, (const u_int8_t *)tp,
+ length, length, IPPROTO_TCP);
tcp_sum = EXTRACT_16BITS(&tp->th_sum);
(void)printf(", cksum 0x%04x", tcp_sum);
case TCPOPT_MPTCP:
datalen = len - 2;
LENCHECK(datalen);
- if (!mptcp_print(cp-2, len, flags))
+ if (!mptcp_print(gndo, cp-2, len, flags))
goto bad;
break;
if (packettype) {
switch (packettype) {
case PT_ZMTP1:
- zmtp1_print(bp, length);
+ zmtp1_print(gndo, bp, length);
break;
}
return;
if (sport == TELNET_PORT || dport == TELNET_PORT) {
if (!qflag && vflag)
- telnet_print(bp, length);
+ telnet_print(gndo, bp, length);
} else if (sport == BGP_PORT || dport == BGP_PORT)
- bgp_print(bp, length);
+ bgp_print(gndo, bp, length);
else if (sport == PPTP_PORT || dport == PPTP_PORT)
- pptp_print(bp);
+ pptp_print(gndo, bp);
#ifdef TCPDUMP_DO_SMB
else if (sport == NETBIOS_SSN_PORT || dport == NETBIOS_SSN_PORT)
nbt_tcp_print(bp, length);
smb_tcp_print(bp, length);
#endif
else if (sport == BEEP_PORT || dport == BEEP_PORT)
- beep_print(bp, length);
- else if (sport == OPENFLOW_PORT || dport == OPENFLOW_PORT)
- openflow_print(bp, length);
+ beep_print(gndo, bp, length);
+ else if (sport == OPENFLOW_PORT_OLD || dport == OPENFLOW_PORT_OLD ||
+ sport == OPENFLOW_PORT_IANA || dport == OPENFLOW_PORT_IANA)
+ openflow_print(gndo, bp, length);
else if (length > 2 &&
(sport == NAMESERVER_PORT || dport == NAMESERVER_PORT ||
sport == MULTICASTDNS_PORT || dport == MULTICASTDNS_PORT)) {
* TCP DNS query has 2byte length at the head.
* XXX packet could be unaligned, it can go strange
*/
- ns_print(bp + 2, length - 2, 0);
+ ns_print(gndo, bp + 2, length - 2, 0);
} else if (sport == MSDP_PORT || dport == MSDP_PORT) {
- msdp_print(bp, length);
+ msdp_print(gndo, bp, length);
} else if (sport == RPKI_RTR_PORT || dport == RPKI_RTR_PORT) {
- rpki_rtr_print(bp, length);
+ rpki_rtr_print(gndo, bp, length);
}
else if (length > 0 && (sport == LDP_PORT || dport == LDP_PORT)) {
- ldp_print(bp, length);
+ ldp_print(gndo, bp, length);
}
else if ((sport == NFS_PORT || dport == NFS_PORT) &&
length >= 4 && TTEST2(*bp, 4)) {
direction = (enum sunrpc_msg_type)EXTRACT_32BITS(&rp->rm_direction);
if (dport == NFS_PORT && direction == SUNRPC_CALL) {
(void)printf(": NFS request xid %u ", EXTRACT_32BITS(&rp->rm_xid));
- nfsreq_print_noaddr((u_char *)rp, fraglen, (u_char *)ip);
+ nfsreq_print_noaddr(gndo, (u_char *)rp, fraglen, (u_char *)ip);
return;
}
if (sport == NFS_PORT && direction == SUNRPC_REPLY) {
(void)printf(": NFS reply xid %u ", EXTRACT_32BITS(&rp->rm_xid));
- nfsreply_print_noaddr((u_char *)rp, fraglen, (u_char *)ip);
+ nfsreply_print_noaddr(gndo, (u_char *)rp, fraglen, (u_char *)ip);
return;
}
}
putchar(' ');
while (length-- && sp <= snapend) {
c = *sp++;
- safeputchar(c);
+ safeputchar(gndo, c);
}
putchar(']');
}