Commit Graph

34 Commits

Author SHA1 Message Date
Gilbert Ramirez bacb9d5bae New proto_tree header_field_info stuff. Header_field_infos now contain
the base for numbers to be displayed in, bitmasks for bitfields, and blurbs
(which are one or two sentences describing the field).

proto_tree_add*() routines now automatically handle bitfields. You tell
it which header field you are adding, and just pass it the value of the
entire field, and the proto_tree routines will do the masking and shifting
for you.

This means that bitfields are more naturally filtered via dfilter now.

Added Phil Techau's support for signed integers in dfilters/proto_tree.

Added the beginning of the SNA dissector. It's not complete, but I'm
committing it now because it has example after example of how to use
bitfields with the new header_field_info struct and proto_tree routines.
It was the impetus to change how header_field_info works.

svn path=/trunk/; revision=815
1999-10-12 06:21:15 +00:00
Guy Harris 96e79ab6f8 Add a "BYTES_ARE_IN_FRAME()" macro, to test whether there are a
specified number of bytes of captured data in the frame at the specified
offset, and a "IS_DATA_IN_FRAME()" macro, to test whether there are any
bytes of captured data in the frame at the specified offset, and convert
some bounds checks to use them.

Add a dissector for the Internet Printing Protocol.

svn path=/trunk/; revision=685
1999-09-17 05:56:58 +00:00
Guy Harris 18ecb7c367 PPP options in LCP, IPCP, etc. are like IP and TCP options - one octet
of option code, one octet of length (which includes the two option code
and length bytes), followed by 0 or more octets of option data, with
some options being fixed-length and some being variable-length.  Put
some stuff from the PPP control protocol option parsing code into the
IP-and-TCP option parsing code, and use the latter instead of the
former.

(That code might also be usable for CDP as well, with some stuff added
to it.)

Shuffle the arguments to "dissect_ip_tcp_options()" to resemble those of
various other dissectors (i.e., with the "proto_tree *" at the end).

Add in code to dissect a pile of PPP options documented in various RFCs.

svn path=/trunk/; revision=601
1999-08-28 08:31:28 +00:00
Guy Harris bc3c8c0641 Fix up the call to "reassemble_tcp()" to use "pi.len" and
"pi.captured_len" to compute the total amount of TCP payload and the
captured amount of TCP payload.

svn path=/trunk/; revision=508
1999-08-18 03:11:14 +00:00
Guy Harris ac4f87218d Declare the "packet_info" structure "pi" in "packet.h", rather than in a
bunch of source files.

Replace the "payload" field of a "packet_info" structure with "len" and
"captured_len" fields, which contain the total packet length and total
captured packet length (including all headers) at the current protocol
layer (i.e., if a given layer has a length field, and that length field
says its shorter than the length we got from the capture, reduce the
"pi.len" and "pi.captured_len" values appropriately).  Those fields can
be used in the future if we add checks to make sure a field we're
extracting from a packet doesn't go past the end of the packet, or past
the captured part of the packet.

Get rid of the additional payload argument to some dissection functions;
use "pi.captured_len - offset" instead.

Have the END_OF_FRAME macro use "pi.captured_len" rather than
"fd->cap_len", so that "dissect the rest of the frame" becomes "dissect
the rest of the packet", and doesn't dissect end-of-frame padding such
as padding added to make an Ethernet frame 60 or more octets long.  (We
might want to rename it END_OF_PACKET; if we ever want to label the
end-of-frame padding for the benefit of people curious what that extra
gunk is, we could have a separate END_OF_FRAME macro that uses
"fd->cap_len".)

svn path=/trunk/; revision=506
1999-08-18 00:57:54 +00:00
Laurent Deniel fb8aa8fb7a Fix TCP follow stream feature:
- call reset_tcp_reassembly before build_follow_filter
- modify reassemble_tcp so that packet validity is
  checked before processing it.

svn path=/trunk/; revision=410
1999-07-31 13:55:16 +00:00
Guy Harris 60d150011a Label the TCP sequence number as "Sequence number", not "Sequence
number" - other fields (including "Acknowledgment number") capitalize
only the first word.

svn path=/trunk/; revision=407
1999-07-31 02:18:35 +00:00
Gilbert Ramirez 9612b74c16 Added just enough fields to TCP to support "Follow TCP Stream". It works now.
Added the protocol IDs for ipx and IGMP, but not their fields.

svn path=/trunk/; revision=365
1999-07-17 04:19:15 +00:00
Gilbert Ramirez 07f42b5b31 Created a new protocol tree implementation and a new display filter
mechanism that is built into ethereal. Wiretap is now used to read all
file formats. Libpcap is used only for capturing.

svn path=/trunk/; revision=342
1999-07-07 22:52:57 +00:00
Guy Harris b547681d56 Add support for RTSP (RFC 2326) over TCP, and SDP (RFC 2327) inside
RTSP, from Jason Lango <jal@netapp.com>.

svn path=/trunk/; revision=340
1999-07-07 00:34:58 +00:00
Gilbert Ramirez 34450a8a35 Added PPPoE, PPTP, GRE, and ISAKMP dissectors.
svn path=/trunk/; revision=303
1999-06-11 15:30:55 +00:00
Guy Harris a8f72707e1 When checking to see if a packet is of a given type by checking the
source and destination port numbers, check both port numbers against the
specified port, rather than checking the lower of the two port numbers
against the specified port, just in case you happen to either have

	1) the port number for that type being high enough that you can
	   get client sockets using it

or

	2) client sockets using it for some other reason.

svn path=/trunk/; revision=301
1999-06-02 01:28:47 +00:00
Laurent Deniel 06d5d955e8 Minor performance improvement and TCP option decoding fixed (when no tree).
svn path=/trunk/; revision=283
1999-05-12 20:44:59 +00:00
Guy Harris 5958b839bc Add support for the NetBIOS Session Service.
Improve the descriptions of the NetBIOS Name Service errors a bit.

svn path=/trunk/; revision=247
1999-04-30 03:16:03 +00:00
Guy Harris bad78f629a Add NNTP support.
svn path=/trunk/; revision=241
1999-04-06 02:02:12 +00:00
Guy Harris ee80616a8c FTP, POP, and Telnet support from Richard Sharpe.
svn path=/trunk/; revision=237
1999-04-05 21:54:41 +00:00
Laurent Deniel 210d386532 Fixes to the TCP reassembly code to correctly handle too short
caplen or incomplete data (avoid crashes or erroneous display).

svn path=/trunk/; revision=227
1999-03-23 20:25:50 +00:00
Guy Harris 8865cae811 Move the include of "snprintf.h" after a bunch of other includes, so
that "size_t" will be defined before it's included (it uses "size_t").

svn path=/trunk/; revision=225
1999-03-23 03:58:59 +00:00
Gilbert Ramirez ef3dfe2077 Removed all references to gtk objects from packet*.[ch] files. They now
reference the protocol tree with struct proto_tree and struct proto_item
objects. That way, the packet decoding source code file can be used with
non-gtk packet decoders, like a curses-based ethereal, e.g. I also re-arranged
some of the information in packet.h to more appropriate places (like other
packet-*.[ch] files).

svn path=/trunk/; revision=223
1999-03-23 03:14:46 +00:00
Guy Harris 10d6bc0996 Add a first cut at HTTP decoding.
svn path=/trunk/; revision=187
1999-02-12 09:03:42 +00:00
Gilbert Ramirez facb503960 I removed the bit-fields that depended upon gcc's ability to use any type
of variable as a bit field container. ANSI specs only allow unsigned ints
to host bit fields; IBM's C compiler is very ANSI-strict.

svn path=/trunk/; revision=183
1999-02-08 20:02:35 +00:00
Guy Harris 52e0d7c7ea Include "snprintf.h", as we use "snprintf()", so that we don't get
warnings from "gcc -Wall".

svn path=/trunk/; revision=152
1999-01-04 08:45:22 +00:00
Gerald Combs cb1f8e34c5 * Added Joerg Mayer's Vines patch
* Added Joerg to the AUTHORS file
* Added Guy's bitfield decode patch
* Fixed time output

svn path=/trunk/; revision=142
1998-12-29 04:05:38 +00:00
Gerald Combs d6863b0e29 Syntax and compilation fixes for the broken code I just committed.
svn path=/trunk/; revision=134
1998-12-21 03:58:00 +00:00
Gerald Combs aa2d05e774 Make the info field verbose.
svn path=/trunk/; revision=133
1998-12-21 03:43:29 +00:00
Gerald Combs b0fdc8edb2 * Added patches from Laurent and Guy
svn path=/trunk/; revision=103
1998-11-18 03:01:44 +00:00
Gerald Combs efb0462bb0 * Mods to use get_tcp_port() to print the port number.
svn path=/trunk/; revision=102
1998-11-18 01:49:12 +00:00
Gerald Combs e1b6a91df5 * Fixes for TCP and UDP port number display.
svn path=/trunk/; revision=98
1998-11-17 05:04:04 +00:00
Gerald Combs 6ca358948b * Added column formatting functionality.
* Added check_col(), add_col_str() and add_col_fmt() to replace references
  to ft->win_info.
* Added column prefs handling code.

svn path=/trunk/; revision=97
1998-11-17 04:29:13 +00:00
Guy Harris 7f2da15d6b Add a routine to dissect IP or TCP options (and, from a look at RFC
1883, it should, perhaps with some additions, be able to handle IPv6
options as well).

Make the IPv4 and TCP dissectors use it.

Fix a typo in the IP dissector ("Unknon" for "Unknown").

Show the IP and TCP header lengths as byte counts rather than
4-byte-word counts.

Show the protocol field value of an IP header as a name if it's a
protocol we know about.

List the acknowledgment and urgent pointer values in a TCP header only
if the corresponding flag is set.

Make the ETT_ values members of an enum, so that the compiler
automatically assigns them sequential integer values (at least if said
compiler conforms to the ANSI C standard).

svn path=/trunk/; revision=45
1998-10-13 05:40:04 +00:00
Gerald Combs 2e7e493198 Merged in a _huge_ patch from Guy Harris. It adds a time stap column,
generalizes the column printing code, adds a "frame" tree item to
   the tree view, and fixes a bunch of miscellaneous coding bugs.

svn path=/trunk/; revision=31
1998-09-27 22:12:47 +00:00
Gerald Combs 5110b21fd8 * Added Mike Hall's TCP reconstruction code.
svn path=/trunk/; revision=10
1998-09-17 03:12:28 +00:00
Gerald Combs 576024f903 Added ID tags to the beginning of each source file.
svn path=/trunk/; revision=7
1998-09-16 03:22:19 +00:00
Gerald Combs 86534f46e1 Initial revision
svn path=/trunk/; revision=2
1998-09-16 02:39:15 +00:00