X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/7b50febe28e54e076a9917164eeddec4bc7a170e..80b630570892c1eb0e5686c80cc788d6cf9eb8f8:/print-tcp.c diff --git a/print-tcp.c b/print-tcp.c index 3b0202fc..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.73 2000-09-23 08:26:38 guy 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,9 +34,6 @@ static const char rcsid[] = #include #include -#include -#include -#include #include #include @@ -54,6 +51,8 @@ static const char rcsid[] = #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 @@ -131,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 @@ -247,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; @@ -264,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. @@ -320,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| @@ -445,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); @@ -456,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); @@ -640,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); @@ -652,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: