diff options
Diffstat (limited to 'print-enc.c')
-rw-r--r-- | print-enc.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/print-enc.c b/print-enc.c index f9b871b351d87..9569534cbd70f 100644 --- a/print-enc.c +++ b/print-enc.c @@ -23,7 +23,7 @@ #ifndef lint static const char rcsid[] _U_ = - "@(#) $Header: /tcpdump/master/tcpdump/print-enc.c,v 1.4 2005/04/06 21:32:39 mcr Exp $ (LBL)"; + "@(#) $Header: /tcpdump/master/tcpdump/print-enc.c,v 1.4.4.1 2008-02-06 10:34:15 guy Exp $ (LBL)"; #endif #ifdef HAVE_CONFIG_H @@ -70,8 +70,17 @@ enc_if_print(const struct pcap_pkthdr *h, register const u_char *p) printf("SPI 0x%08x: ", (u_int32_t)ntohl(hdr->spi)); length -= ENC_HDRLEN; - /* XXX - use the address family */ - ip_print(gndo, p + ENC_HDRLEN, length); + caplen -= ENC_HDRLEN; + p += ENC_HDRLEN; + + switch (hdr->af) { + case AF_INET: + ip_print(gndo, p, length); + break; + case AF_INET6: + ip6_print(p, length); + break; + } out: return (ENC_HDRLEN); |