*/
#ifndef lint
-static const char rcsid[] _U_ =
-"@(#) $Header: /tcpdump/master/tcpdump/print-tcp.c,v 1.135 2008-11-09 23:35:03 mcr Exp $ (LBL)";
#else
__RCSID("$NetBSD: print-tcp.c,v 1.8 2007/07/24 11:53:48 drochner Exp $");
#endif
register const struct tcphdr *tp,
register u_int len)
{
- return (nextproto4_cksum(ip, (const u_int8_t *)tp, len,
- IPPROTO_TCP));
+ return nextproto4_cksum(ip, (const u_int8_t *)tp, len, len,
+ IPPROTO_TCP);
}
void
if (sport > dport)
rev = 1;
else if (sport == dport) {
- if (memcmp(src, dst, sizeof ip6->ip6_dst) > 0)
+ if (UNALIGNED_MEMCMP(src, dst, sizeof ip6->ip6_dst) > 0)
rev = 1;
}
if (rev) {
- memcpy(&tha.src, dst, sizeof ip6->ip6_dst);
- memcpy(&tha.dst, src, sizeof ip6->ip6_src);
+ UNALIGNED_MEMCPY(&tha.src, dst, sizeof ip6->ip6_dst);
+ UNALIGNED_MEMCPY(&tha.dst, src, sizeof ip6->ip6_src);
tha.port = dport << 16 | sport;
} else {
- memcpy(&tha.dst, dst, sizeof ip6->ip6_dst);
- memcpy(&tha.src, src, sizeof ip6->ip6_src);
+ UNALIGNED_MEMCPY(&tha.dst, dst, sizeof ip6->ip6_dst);
+ UNALIGNED_MEMCPY(&tha.src, src, sizeof ip6->ip6_src);
tha.port = sport << 16 | dport;
}
if (sport > dport)
rev = 1;
else if (sport == dport) {
- if (memcmp(src, dst, sizeof ip->ip_dst) > 0)
+ if (UNALIGNED_MEMCMP(src, dst, sizeof ip->ip_dst) > 0)
rev = 1;
}
if (rev) {
- memcpy(&tha.src, dst, sizeof ip->ip_dst);
- memcpy(&tha.dst, src, sizeof ip->ip_src);
+ UNALIGNED_MEMCPY(&tha.src, dst, sizeof ip->ip_dst);
+ UNALIGNED_MEMCPY(&tha.dst, src, sizeof ip->ip_src);
tha.port = dport << 16 | sport;
} else {
- memcpy(&tha.dst, dst, sizeof ip->ip_dst);
- memcpy(&tha.src, src, sizeof ip->ip_src);
+ UNALIGNED_MEMCPY(&tha.dst, dst, sizeof ip->ip_dst);
+ UNALIGNED_MEMCPY(&tha.src, src, sizeof ip->ip_src);
tha.port = sport << 16 | dport;
}
#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);
if (packettype) {
switch (packettype) {
case PT_ZMTP1:
- zmtp1_print(bp, length);
+ zmtp1_print(gndo, bp, length);
break;
}
return;
smb_tcp_print(bp, length);
#endif
else if (sport == BEEP_PORT || dport == BEEP_PORT)
- beep_print(bp, length);
+ beep_print(gndo, bp, length);
else if (sport == OPENFLOW_PORT || dport == OPENFLOW_PORT)
openflow_print(bp, length);
else if (length > 2 &&
*/
ns_print(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);
}