Commit Graph

25 Commits

Author SHA1 Message Date
Nathan Neulinger 612448c2e1 style improvements in ARP dissector proto tree, added todo items
svn path=/trunk/; revision=1237
1999-12-07 15:38:20 +00:00
Guy Harris 077e70e0b7 Pull the code to dissect an ATM NSAP address out of "packet-q2931.c" and
put it into a subroutine in "packet-arp.c", and call it from
"packet-q2931.c".

Add a "packet-arp.h" header to hold declarations of routines exported by
"packet-atm.c" (other than the ATM dissector itself), moving them out of
"packet.h".

Use the aforementioned NSAP dissector to display ATM addresses in NSAP
format, and display E.164 addresses as ASCII text (under the assumption
that they're presented as a string of IA5, i.e. ASCII, characters, just
as they are in Q.931).

svn path=/trunk/; revision=1124
1999-11-27 04:48:14 +00:00
Guy Harris ad0cf4f6ef ARP requests with a hardware type of ARPHRD_ATM2225 are ATM ARP
requests, as described in RFC 2225; they do *not* have the same format
as regular ARP requests, so dissect them differently.

Inverse ARP is also used on ATM, so add the Inverse ARP request and
reply message types.  (It's also used with other protocols, e.g. Frame
Relay.)

Handle zero-length addresses (meaning the address is absent).

They can have up to 6 different address fields, so make "bytes_to_str()"
have six static buffers in which it can return strings.

svn path=/trunk/; revision=1123
1999-11-27 04:01:43 +00:00
Guy Harris a7aba0a288 Replace the ETT_ "enum" members, declared in "packet.h", with
dynamically-assigned "ett_" integer values, assigned by
"proto_register_subtree_array()"; this:

	obviates the need to update "packet.h" whenever you add a new
	subtree type - you only have to add a call to
	"proto_register_subtree_array()" to a "register" routine and an
	array of pointers to "ett_", if they're not already there, and
	add a pointer to the new "ett_" variable to the array, if they
	are there;

	would allow run-time-loaded dissectors to allocate subtree types
	when they're loaded.

svn path=/trunk/; revision=1043
1999-11-16 11:44:20 +00:00
Guy Harris edeb0e9426 Define the hardware type, protocol type, and opcode values fields as
enums.

svn path=/trunk/; revision=971
1999-11-04 08:15:38 +00:00
Laurent Deniel 677dd20939 - replace proto_tree_add_item_format by proto_tree_add_item.
- fix bug (hf_arp_proto_type was used in place of hr_arp_proto_size).

svn path=/trunk/; revision=851
1999-10-16 08:37:30 +00:00
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
Laurent Deniel 1f09e79b60 - add ARP display filters
- check for truncated header

svn path=/trunk/; revision=764
1999-10-03 17:12:15 +00:00
Guy Harris 55dff94484 Add summary-vs-detail radio buttons to the print dialog box; detail
prints the protocol tree, and summary prints the fields in the summary
clist, with a header line at the beginning of the printout.

Print only packets selected by the current packet filter.

Just have "ARP" and "RARP" in the "Protocol" field for ARP packets;
whether it's a request or a reply can be seen in the "Info" field.

Add to the "Frame" section of the protocol tree the time between the
current packet and the previous displayed packet, and the packet number.
Have FT_RELATIVE_TIME fields be a "struct timeval", and display them as
seconds and fractional seconds (we didn't have any fields of that type,
and that type of time fits the delta time above).

Add an FT_DOUBLE field type (although we don't yet have anything using
it).

svn path=/trunk/; revision=666
1999-09-12 06:11:51 +00:00
Guy Harris e75e9ea3b5 The protocol tree field created for a protocol itself is of type
FT_NONE, so the first argument in the variable-length portion of the
argument list to the "proto_tree_add_item()" or
"proto_tree_add_item_format()" call to add the top-level protocol tree
item for a protocol has to be a null pointer.

svn path=/trunk/; revision=405
1999-07-30 05:42:25 +00:00
Gilbert Ramirez 7bd6c15378 Made the protocol (but not the fields) use the new proto_tree routine,
allowing users to filter on the existence of these protocols. I also
added packet-clip.c to the Nmake makefile.

svn path=/trunk/; revision=402
1999-07-29 05:47:07 +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 e638eb378f Turn "arpaddr_to_str()" into "bytes_to_str()", and make it public, so it
can be used by dissectors other than ARP to display byte arrays as
strings of hex digits.

Add a routine to extract a null-terminated Unicode string and turn it
into an ISO 8859-1 string for display.  (Ultimately, we should determine
what character sets the X server or printer or whatever can handle, and
turn it into the appropriate character set.)

Display the challenge in "core-to-LANMAN-2.1" Negotiate Protocol
responses as a string of hex digits - but only if the length is
non-zero.  (It's a counted array, not a null-terminated string.)

Display some additional security mode bits in an NT LM 0.12 Negotiate
Protocol response.

Display some additional bits in the "capabilities" field of the
Negotiate Protocol response.

Display the challenge in an NT LM 0.12 Negotiate Protocol response as a
string of hex digits (it's a counted array, not a null-terminated
string).

Display the domain name as Unicode in an NT LM 0.12 Negotiate Protocol
response if the capabilities field has the "supports Unicode" bit set
(no, not the "Unicode" bit in the "flags2" field - NT doesn't set that
in the response, even though it sends the domain name over in Unicode!).

Display some additional bits in the "flags2" field of an SMB.

svn path=/trunk/; revision=275
1999-05-11 08:21:39 +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
Gilbert Ramirez 69458d2e92 Added guy's time and DHCP patch.
svn path=/trunk/; revision=177
1999-01-28 21:29:36 +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
Gilbert Ramirez fcb4c78a6a A lengthy patch to add the wiretap library. Wiretap is not used by default
because it is still in its infancy, but it can be compiled in optionally.
The library exists in its own subdirectory ethereal/wiretap. This patch also
edits all the packet-*.c files to remove the #include <pcap.h> line which is
unnecessary in these files. In the ethereal code, file.c is the most heavily
modified with #ifdef WITH_WIRETAP lines for the optional library.

svn path=/trunk/; revision=82
1998-11-12 00:06:47 +00:00
Guy Harris d07cba10c1 Add a routine to convert Ethernet packet types to strings.
Use that routine in "ethertype()".

	Have "dissect_arp()" handle hardware addresses that aren't
	6-byte Ethernet addresses and protocol addresses that aren't
	4-byte IPv4 addresses - currently, it just prints the first 16
	hex digits, but it could be made to handle other types specially
	just as it handles 6-byte Ethernet and 4-byte IPv4 addresses.

	Have it decode a more complete set of hardware address types.

svn path=/trunk/; revision=78
1998-11-03 07:45:10 +00:00
Gerald Combs 349f96bb49 * Copied in the correct GNU license (I'm such a goober)
* Hacks to the filter interface (Gerald)
* About box (Laurent)
* AppleTalk support (Simon)
* Mods to the match_strval routine (Gerald)

svn path=/trunk/; revision=61
1998-10-16 01:18:35 +00:00
Guy Harris d6907f93bc Make the "value_string" array in "dissect_arp()" static, so it can be
initialized at compile time.

Compute the number of elements in that array at compile time.

Fix a typo ("Unkown" for "Unknown").

svn path=/trunk/; revision=44
1998-10-13 05:20:53 +00:00
Gerald Combs 0758da1146 - Added match_strval function to packet.c
- Separated display and capture filters; rearranged some of the look and feel
- Lots of other miscellaneous fixes and updates

svn path=/trunk/; revision=38
1998-10-12 01:40:57 +00:00
Gerald Combs 1b26a7cdb7 * OSPF alignment fixes (Gerald)
* FDDI support (Laurent, Guy)

svn path=/trunk/; revision=36
1998-10-10 03:32:20 +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 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