X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/edde6f560a0e967c06d0c8d8276c94ba2ab01103..80b630570892c1eb0e5686c80cc788d6cf9eb8f8:/print-tcp.c diff --git a/print-tcp.c b/print-tcp.c index 1f09536d..8e15607d 100644 --- a/print-tcp.c +++ b/print-tcp.c @@ -21,7 +21,7 @@ #ifndef lint static const char rcsid[] = - "@(#) $Header: /tcpdump/master/tcpdump/print-tcp.c,v 1.71 2000-08-01 17:28:09 itojun Exp $ (LBL)"; + "@(#) $Header: /tcpdump/master/tcpdump/print-tcp.c,v 1.78 2000-10-03 02:55:01 itojun Exp $ (LBL)"; #endif #ifdef HAVE_CONFIG_H @@ -34,10 +34,6 @@ static const char rcsid[] = #include #include -#include -#include -#include -#include #include #include @@ -53,6 +49,10 @@ static const char rcsid[] = #include "addrtoname.h" #include "extract.h" +#include "tcp.h" + +#include "ip.h" + static void print_tcp_rst_data(register const u_char *sp, u_int length); #define MAX_RST_DATA_LEN 30 @@ -130,6 +130,7 @@ static struct tcp_seq_hash tcp_seq_hash[TSEQ_HASHSIZE]; #define BGP_PORT 179 #endif #define NETBIOS_SSN_PORT 139 +#define BXXP_PORT 10288 #ifndef NFS_PORT #define NFS_PORT 2049 #endif @@ -156,7 +157,7 @@ static int tcp_cksum(register const struct ip *ip, /* pseudo-header.. */ phu.ph.len = htons(tlen); phu.ph.mbz = 0; - phu.ph.proto = ip->ip_p; + phu.ph.proto = IPPROTO_TCP; memcpy(&phu.ph.src, &ip->ip_src.s_addr, sizeof(u_int32_t)); memcpy(&phu.ph.dst, &ip->ip_dst.s_addr, sizeof(u_int32_t)); @@ -246,7 +247,7 @@ tcp_print(register const u_char *bp, register u_int length, tp = (struct tcphdr *)bp; ip = (struct ip *)bp2; #ifdef INET6 - if (ip->ip_v == 6) + if (IP_V(ip) == 6) ip6 = (struct ip6_hdr *)bp2; else ip6 = NULL; @@ -263,7 +264,7 @@ tcp_print(register const u_char *bp, register u_int length, dport = ntohs(tp->th_dport); - hlen = tp->th_off * 4; + hlen = TH_OFF(tp) * 4; /* * If data present and NFS port used, assume NFS. @@ -319,7 +320,7 @@ tcp_print(register const u_char *bp, register u_int length, urp = ntohs(tp->th_urp); if (qflag) { - (void)printf("tcp %d", length - tp->th_off * 4); + (void)printf("tcp %d", length - TH_OFF(tp) * 4); return; } if ((flags = tp->th_flags) & (TH_SYN|TH_FIN|TH_RST|TH_PUSH| @@ -444,7 +445,7 @@ tcp_print(register const u_char *bp, register u_int length, return; } - if (ip->ip_v == 4 && vflag) { + if (IP_V(ip) == 4 && vflag) { int sum; if (TTEST2(tp->th_sport, length)) { sum = tcp_cksum(ip, tp, length); @@ -455,7 +456,7 @@ tcp_print(register const u_char *bp, register u_int length, } } #ifdef INET6 - if (ip->ip_v == 6 && ip6->ip6_plen && vflag) { + if (IP_V(ip) == 6 && ip6->ip6_plen && vflag) { int sum; if (TTEST2(tp->th_sport, length)) { sum = tcp6_cksum(ip6, tp, length); @@ -639,7 +640,7 @@ tcp_print(register const u_char *bp, register u_int length, /* * Decode payload if necessary. */ - bp += (tp->th_off * 4); + bp += TH_OFF(tp) * 4; if (flags & TH_RST) { if (vflag) print_tcp_rst_data(bp, length); @@ -651,6 +652,8 @@ tcp_print(register const u_char *bp, register u_int length, bgp_print(bp, length); else if (sport == NETBIOS_SSN_PORT || dport == NETBIOS_SSN_PORT) nbt_tcp_print(bp, length); + else if (sport == BXXP_PORT || dport == BXXP_PORT) + bxxp_print(bp, length); } return; bad: