diff options
author | Guy Harris <guy@alum.mit.edu> | 2003-01-31 01:02:14 +0000 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2003-01-31 01:02:14 +0000 |
commit | f88816e60f1f14f2662c20740db6ecf3764e82b6 (patch) | |
tree | 4fc64f4ea929901c9f1cc62467bfce72435baa2b /wiretap/visual.c | |
parent | 1c898c8a11d0d008719d2d563b65d7c362e530ce (diff) | |
download | wireshark-f88816e60f1f14f2662c20740db6ecf3764e82b6.tar.gz |
Add WTAP_ENCAP_FRELAY_WITH_PHDR for use with Frame Relay capture files
that have direction information.
Support writing WTAP_ENCAP_FRELAY_WITH_PHDR and WTAP_ENCAP_PPP_WITH_PHDR
captures out in libpcap format - we throw away the direction
information, but so it goes.
When reading/writing Windows Sniffer format, read and write the
direction flag.
svn path=/trunk/; revision=7052
Diffstat (limited to 'wiretap/visual.c')
-rw-r--r-- | wiretap/visual.c | 61 |
1 files changed, 45 insertions, 16 deletions
diff --git a/wiretap/visual.c b/wiretap/visual.c index 8807cac5d8..18af191d0d 100644 --- a/wiretap/visual.c +++ b/wiretap/visual.c @@ -2,7 +2,7 @@ * File read and write routines for Visual Networks cap files. * Copyright (c) 2001, Tom Nisbet tnisbet@visualnetworks.com * - * $Id: visual.c,v 1.11 2002/08/28 20:30:45 jmayer Exp $ + * $Id: visual.c,v 1.12 2003/01/31 01:02:11 guy Exp $ * * Wiretap Library * Copyright (c) 1998 by Gilbert Ramirez <gram@alumni.rice.edu> @@ -172,11 +172,26 @@ int visual_open(wtap *wth, int *err) get sorted out after the first packet is read. */ switch (pletohs(&vfile_hdr.media_type)) { - case 6: encap = WTAP_ENCAP_ETHERNET; break; - case 9: encap = WTAP_ENCAP_TOKEN_RING; break; - case 16: encap = WTAP_ENCAP_LAPB; break; - case 22: encap = WTAP_ENCAP_CHDLC; break; - case 32: encap = WTAP_ENCAP_FRELAY; break; + case 6: + encap = WTAP_ENCAP_ETHERNET; + break; + + case 9: + encap = WTAP_ENCAP_TOKEN_RING; + break; + + case 16: + encap = WTAP_ENCAP_LAPB; + break; + + case 22: + encap = WTAP_ENCAP_CHDLC; + break; + + case 32: + encap = WTAP_ENCAP_FRELAY_WITH_PHDR; + break; + default: g_message("visual: network type %u unknown or unsupported", vfile_hdr.media_type); @@ -297,7 +312,7 @@ static gboolean visual_read(wtap *wth, int *err, long *data_offset) wth->pseudo_header.p2p.sent = (packet_status & PS_SENT) ? TRUE : FALSE; break; - case WTAP_ENCAP_FRELAY: + case WTAP_ENCAP_FRELAY_WITH_PHDR: case WTAP_ENCAP_LAPB: wth->pseudo_header.x25.flags = (packet_status & PS_SENT) ? 0x00 : FROM_DCE; @@ -373,7 +388,7 @@ static gboolean visual_seek_read (wtap *wth, long seek_off, pseudo_header->p2p.sent = (packet_status & PS_SENT) ? TRUE : FALSE; break; - case WTAP_ENCAP_FRELAY: + case WTAP_ENCAP_FRELAY_WITH_PHDR: case WTAP_ENCAP_LAPB: pseudo_header->x25.flags = (packet_status & PS_SENT) ? 0x00 : FROM_DCE; break; @@ -399,7 +414,7 @@ int visual_dump_can_write_encap(int encap) case WTAP_ENCAP_TOKEN_RING: case WTAP_ENCAP_LAPB: case WTAP_ENCAP_CHDLC: - case WTAP_ENCAP_FRELAY: + case WTAP_ENCAP_FRELAY_WITH_PHDR: case WTAP_ENCAP_PPP: case WTAP_ENCAP_PPP_WITH_PHDR: return 0; @@ -507,7 +522,7 @@ static gboolean visual_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr, case WTAP_ENCAP_CHDLC: /* HDLC Router */ vpkt_hdr.encap_hint = 13; break; - case WTAP_ENCAP_FRELAY: /* Frame Relay Auto-detect */ + case WTAP_ENCAP_FRELAY_WITH_PHDR: /* Frame Relay Auto-detect */ vpkt_hdr.encap_hint = 12; break; case WTAP_ENCAP_LAPB: /* Unknown */ @@ -527,7 +542,7 @@ static gboolean visual_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr, packet_status |= (pseudo_header->p2p.sent ? PS_SENT : 0x00); break; - case WTAP_ENCAP_FRELAY: + case WTAP_ENCAP_FRELAY_WITH_PHDR: case WTAP_ENCAP_LAPB: packet_status |= ((pseudo_header->x25.flags & FROM_DCE) ? 0x00 : PS_SENT); @@ -641,13 +656,27 @@ static gboolean visual_dump_close(wtap_dumper *wdh, int *err) /* Translate the encapsulation type */ switch (wdh->encap) { - case WTAP_ENCAP_ETHERNET: vfile_hdr.media_type = htoles(6); break; - case WTAP_ENCAP_TOKEN_RING: vfile_hdr.media_type = htoles(9); break; - case WTAP_ENCAP_LAPB: vfile_hdr.media_type = htoles(16); break; + case WTAP_ENCAP_ETHERNET: + vfile_hdr.media_type = htoles(6); + break; + + case WTAP_ENCAP_TOKEN_RING: + vfile_hdr.media_type = htoles(9); + break; + + case WTAP_ENCAP_LAPB: + vfile_hdr.media_type = htoles(16); + break; + case WTAP_ENCAP_PPP: /* PPP is differentiated from CHDLC in PktHdr */ case WTAP_ENCAP_PPP_WITH_PHDR: - case WTAP_ENCAP_CHDLC: vfile_hdr.media_type = htoles(22); break; - case WTAP_ENCAP_FRELAY: vfile_hdr.media_type = htoles(32); break; + case WTAP_ENCAP_CHDLC: + vfile_hdr.media_type = htoles(22); + break; + + case WTAP_ENCAP_FRELAY_WITH_PHDR: + vfile_hdr.media_type = htoles(32); + break; } /* Write the file header following the magic bytes. */ |