Commit Graph

462 Commits

Author SHA1 Message Date
Guy Harris 644d19129a From Alfred Koebler: add support for a column for the interface and
direction in Firewall-1 monitor files.

svn path=/trunk/; revision=6771
2002-12-10 00:12:59 +00:00
Guy Harris bc06f2e440 Work around annoying Apple C compiler/linker bug.
"ether_to_str_punct()" no longer deals only with Ethernet-style
addresses, as it now takes a length argument, rename it
"bytestring_to_str()" - and make it static, as it's not used outside
"to_str.c".

Get rid of unused "fc_to_str_buf()" routine.

svn path=/trunk/; revision=6770
2002-12-09 21:34:58 +00:00
Guy Harris ad323ca96f Clean up a bit, and put "extern" back.
svn path=/trunk/; revision=6768
2002-12-08 22:53:00 +00:00
Guy Harris 854b819fab On UNIX, search for plugins only in the directory in which plugins will
be installed - don't explicitly search
"/usr/lib/ethereal/plugins/{version}" or
"/usr/local/lib/ethereal/plugins/{version}", so that if there's more
than one version of Ethereal installed, we don't end up picking up
plugins from the wrong version.

svn path=/trunk/; revision=6766
2002-12-08 22:22:03 +00:00
Gerald Combs b60b1414c3 From Dinesh Dutt: Add Fibre Channel support, including FCIP, Basic FC
header, Extended Link Service, Interswitch Link Service, FCP, and IPFC.

svn path=/trunk/; revision=6757
2002-12-08 02:32:36 +00:00
Gerald Combs 3835ed4585 Bump the version to 0.9.8. Update NEWS and ChangeLog to October 24.
svn path=/trunk/; revision=6741
2002-12-04 04:26:14 +00:00
Guy Harris eccad76867 Show all 6 digits of precision in the time stamp column when displaying
absolute time stamps (we were already doing that for relative and delta
time stamps).

svn path=/trunk/; revision=6735
2002-12-03 02:38:39 +00:00
Guy Harris 8414298f89 Make the format argument to the "col_XXX_fstr()" routines, and the "str"
argument to "col_append_str()", const pointers; they're not modified by
the routines in question.

svn path=/trunk/; revision=6725
2002-12-02 23:34:40 +00:00
Guy Harris cfa04730cf "dfilter_compile()" doesn't modify the string pointed to by its first
argument; make it a const pointer.

svn path=/trunk/; revision=6724
2002-12-02 23:28:16 +00:00
Guy Harris 432d89ab36 We have to keep the first frame - circuits aren't necessarily created as
soon as we see a packet for that circuit (we don't do that in X.25, for
example), so there's no guarantee that the first circuit starts at the
first circuit of the capture.

svn path=/trunk/; revision=6695
2002-11-28 08:25:59 +00:00
Guy Harris 436a7d9857 Don't keep the first frame around for circuits; we assume that a given
circuit begins either at the beginning of the capture or right after the
previous circuit ends.

svn path=/trunk/; revision=6694
2002-11-28 08:12:07 +00:00
Guy Harris 4056129fef Add a "--with-extra-gcc-checks" option, which causes "-Wcast-qual
-Wcast-align" to be added to CFLAGS (except in Wiretap, where we already
do "-Wcast-qual").  We don't do them by default, as they produce some
warnings that aren't easy to eliminate; if we figure out how to
eliminate them on all platforms (or at least, on the platforms where you
*can't* eliminate them, reduce them to a low level), we can make those
options the default.

svn path=/trunk/; revision=6689
2002-11-28 04:21:31 +00:00
Guy Harris 0abda39c90 Make "ip6_to_str()" take a const pointer as an argument.
svn path=/trunk/; revision=6687
2002-11-28 03:54:50 +00:00
Guy Harris 7b743f7d7d Make the "strings" pointer in a "header_field_info" structure a const
pointer, and put "const" into the casts in "VALS()" and "TFS()" macros,
so we don't un-constify pointers to "value_string" arrays and
"true_false_string" structures.

Make some things "const" to keep the compiler happy with the previous
change.

svn path=/trunk/; revision=6684
2002-11-28 01:46:14 +00:00
Guy Harris acaf3c90b3 Cast various "const gpointer" arguments to const pointers rather than
non-const pointers.

svn path=/trunk/; revision=6683
2002-11-27 22:44:41 +00:00
Guy Harris f97b0d7949 "ether_to_str()" takes a "const guint8 *" as an argument; there's no
need to cast a "const guint8 *" to a "guint8 *" when passing it to
"ether_to_str()".

svn path=/trunk/; revision=6682
2002-11-27 22:42:40 +00:00
Guy Harris 572dc4d5e4 The arguments to the "pntoh" and "pletoh" macros could be const
pointers, so cast them to "const guint8 *".

svn path=/trunk/; revision=6681
2002-11-27 22:41:00 +00:00
Guy Harris 0ca2637951 At least in my compile environment, we don't need "inet_v6defs.h" to
compile "epan/packet.c", and including it without including <winsock2.h>
before it means that, as <winsock2.h> appears to get included after we
include "inet_v6defs.h", we get complaints about a redefinition of
AF_INET6; removing the include of "inet_v6defs.h" sqelches that warning.

If we *do* need "inet_v6defs.h" on some platforms, put it back, but put
in an include of <winsock2.h> before it, to keep the warning away - if
we ever use AF_INET6 in "epan/packet.c", we want to use the one from
<winsock2.h> if it defines it, as that's what the rest of Ethereal uses.

svn path=/trunk/; revision=6649
2002-11-16 21:36:39 +00:00
Guy Harris bb928b0c93 There's no need to include "prefs.h" unless we're actually exporting the
big table of functions - we don't use the preferences code, we just
export routines from it.

There is, however, a need to include "reassemble.h" if we're doing so,
as some of the functions we export take a "fragment_data *" as an
argument, and "fragment_data" is defined in "reassemble.h".

The members of "patable" should be set to point to functions, and
"p_prefs_register_obsolete_preference" isn't a function -
"prefs_register_obsolete_preference" is.

Get rid of extra white space at the ends of lines.

svn path=/trunk/; revision=6648
2002-11-16 21:32:06 +00:00
Guy Harris 1c81a6168b From Chris Waters: export "find_dissector_table()" and add
"dissector_handle_get_protocol_index()".

svn path=/trunk/; revision=6633
2002-11-15 03:10:36 +00:00
Guy Harris 71f6ebae44 From Tomas Kukosa: export more routines to plugins.
svn path=/trunk/; revision=6630
2002-11-14 18:54:53 +00:00
Guy Harris 5ae19d6256 Instead of tweaking a "Protocol configuration options" extension header
item to look more-or-less like a PPP packet, just dissect it in place
and hand off to the appropriate subdissector using the PPP dissector's
handoff table (which we export, along with its value_string table for
protocol IDs, which we use to report the protocol ID symbolically).

This means there's no point in having a configurable option to control
whether to do that tweaking; make it an obsolete option.

Bring "col_get_writable()" back from the dead, and have the GTP
dissector save the current "writable" flag for columns, mark the columns
non-writable before calling the subdissector for the PPP configuration
protocol, and restore the state of the writable flag, rather than
putting the columns back after the PPP configuration protocol's
dissector is done.

Fix some more typos in comments.

Don't register the IP dissector in the "ppp.protocol" table in the GTP
dissector's handoff registration routine - it's already being done in
the IP dissector's handoff routine.

Fix the name for CHAP to match what RFC 1994 calls it (if the name
changed, it should be changed in all places, but, at least according to
this message, a while ago, from Bob Sutterfield, "since the RFC defines
the protocol, the RFC defines the name":

	http://mail-index.netbsd.org/netbsd-help/1996/05/16/0011.html

and the RFC defines the name as "PPP Challenge Handshake Authentication
Protocol (CHAP)").

svn path=/trunk/; revision=6617
2002-11-11 19:23:14 +00:00
Guy Harris 8181a83657 Allow more than one circuit with the same circuit ID; a circuit has a
starting and ending frame number, and circuits with the same circuit ID
are sorted by the starting frame number (the last circuit can have 0 as
the ending frame number, meaning "unknown"), and, when looking up a
circuit, we take a frame number as an argument and return the circuit
that includes that frame.

Add a new circuit ID type for X.25 virtual circuits, and use the circuit
mechanism to keep track of the dissector for an X.25 virtual circuit
rather than having a private mechanism.

svn path=/trunk/; revision=6580
2002-11-08 01:00:07 +00:00
Guy Harris 8ee4a65f76 From Solomon Peachy: support for new "wlancap" 802.11 extra-information
header.

Add overflow checks to "BYTES_ARE_IN_FRAME()", and cast all arguments to
unsigned values (negative values should never be passed) to squelch
compiler warnings.

svn path=/trunk/; revision=6567
2002-11-06 21:49:34 +00:00
Gilbert Ramirez ddc7b4597b Fix a problem when using the same field more than once in a display
filter, as in "ip.src == x.x.x.x || ip.src == y.y.y.y". My previous
change to allow filtering on multiple fields of the same name moved
some code into the wrong block within the function, causing the error.

svn path=/trunk/; revision=6544
2002-11-01 17:37:25 +00:00
Guy Harris 56f644145e Discard the WTAP_ENCAP_LAPD encapsulation type in favor of a
WTAP_ENCAP_ISDN encapsulation type, which includes a pseudo-header
giving the direction (user-to-network or network-to-user) and the
channel number.

Add a new circuit type, using the ISDN channel number as the circuit ID.

Add an ISDN dissector to put the direction and channel number into the
protocol tree and to call the appropriate dissector for the payload
based on the channel (LAPD for the D channel; V.120, PPP, or data for B
channels, based on some heuristics).

svn path=/trunk/; revision=6521
2002-10-31 07:12:42 +00:00
Guy Harris 663bc2174e Move the stuff to save, recompute, and restore "can_desegment" out of
"try_circuit_dissector()" and "try_conversation_dissector()", as both fo
them call "call_dissector()" and "call_dissector()" now does that stuff
itself.

svn path=/trunk/; revision=6520
2002-10-29 07:22:55 +00:00
Guy Harris d958ee1a72 Don't return 0 from "call_dissector_work()" if the packet was dissected
by the dissector we handed off to, even if the tvbuff we handed them was
empty.

svn path=/trunk/; revision=6518
2002-10-29 05:15:24 +00:00
Guy Harris 0b8419fd5b Note why we're including <sys/socket.h> and <winsock2.h> in places where
we're including them to get AF_ values.

Shuffle the order of those includes in "inet_pton.c" to match the order
in "inet_ntop.c".

Include <winsock2.h> in "resolv.c" and "to_str.c" so that we get AF_
values from it - including AF_INET6 - if they exist, as we want to have
everybody who uses AF_INET6 get the same value.

svn path=/trunk/; revision=6517
2002-10-29 00:28:11 +00:00
Guy Harris a7744b697f Hoist the bulk of the stuff involved in calling a dissector through a
handle into a routine "call_dissector_work()", and have
"dissector_try_port()" and "call_dissector()" use that routine (which
means that "call_dissector()" now saves and restores
"pinfo->can_desegment").

svn path=/trunk/; revision=6516
2002-10-28 23:04:15 +00:00
Guy Harris daa0dd9f1a Count ICMPv6 packets as ICMP when capturing.
Check the next header type - properly handling extension headers - in
"capture_ipv6()".

Get rid of the count of IPv6 packets - we break that down in
"capture_ipv6()" now.

Fix a typo.

svn path=/trunk/; revision=6510
2002-10-25 23:23:28 +00:00
Guy Harris dc1bd10215 Put a leading "0x" in front of the hex value for ARCNET addresses when
generating a filter expression to match the address, so it's parsed
correctly (as a hex number rather than a string) if there are
non-decimal digits (A through F).

svn path=/trunk/; revision=6481
2002-10-23 04:23:03 +00:00
Jörg Mayer 40e1ec7fad Minimalistic support for counting IPv6 packets during capture
svn path=/trunk/; revision=6476
2002-10-22 22:04:23 +00:00
Guy Harris 3205a6e888 Add in a notion of "circuits", which are for virtual circuit-oriented
protocols (where there's a virtual circuit ID of some sort in packets)
what conversations are for protocols ultimately running atop
connectionless network layers.  Have circuit type and ID values in the
"packet_info" structure.

Have the Frame Relay dissector set the circuit type and ID values, and
have the Wellfleet compression protocol set up circuit information and
store compression information with the circuit.

svn path=/trunk/; revision=6471
2002-10-22 08:44:33 +00:00
Guy Harris 28c1a65e85 Add in a notion of "circuits", which are for virtual circuit-oriented
protocols (where there's a virtual circuit ID of some sort in packets)
what conversations are for protocols ultimately running atop
connectionless network layers.  Have circuit type and ID values in the
"packet_info" structure.

Have the Frame Relay dissector set the circuit type and ID values, and
have the Wellfleet compression protocol set up circuit information and
store compression information with the circuit.

svn path=/trunk/; revision=6469
2002-10-22 08:22:07 +00:00
Guy Harris dbfeea3620 The Frame Relay DLCI is a virtual circuit identifer, not a source or
destination address, so yank out the AT_DLCI stuff.

Clean up indentation.

svn path=/trunk/; revision=6455
2002-10-19 00:40:05 +00:00
Guy Harris a4d1704b63 "addr->data", not "addr", points to the DLCI.
svn path=/trunk/; revision=6454
2002-10-19 00:10:50 +00:00
Guy Harris bdda1b8b08 Put in code to handle AT_DLCI.
svn path=/trunk/; revision=6453
2002-10-18 22:10:53 +00:00
Guy Harris c7cacdf4b7 Add an AT_ARCNET address type for ARCNET addresses, and have the ARCNET
dissector set the source and destination link-layer addresses.

svn path=/trunk/; revision=6452
2002-10-18 21:40:13 +00:00
Gilbert Ramirez 1ba73660c0 Make the dfilter code support multiple header_field_info's with
the same name (abbreviation). Thus, if multiple protocols or fields
are registered with the same name, you can still filter on the name
and have the filtering work as expected.

svn path=/trunk/; revision=6434
2002-10-16 16:32:59 +00:00
Guy Harris f0269dd749 Squelch some compiler warnings.
svn path=/trunk/; revision=6426
2002-10-15 05:29:48 +00:00
Guy Harris 86576ce6ac When registering a protocol, make sure there are no other protocols with
the same long name, short name, or filter name, and abort if there are.

Fix the duplicate names that found (and another name error found while
fixing one of those errors).

svn path=/trunk/; revision=6425
2002-10-15 05:21:07 +00:00
Guy Harris e0e7122674 Add a new port type, PT_IPX, for IPX socket numbers; set "pinfo->ptype",
"pinfo->srcport", and "pinfo->destport" appropriately in the IPX
dissector.  Add support for PT_IPX port types in display columns.

Have an "spx.socket" dissector table, similar to the "ipx.socket"
dissector table, and have the SPX dissector use that, with the IPX
socket numbers from "pinfo->srcport" and "pinfo->destport", so that
dissectors for protocols that run atop SPX can register with particular
socket numbers.  (Think of it as similar to what would have been the
case had the IP header had 16-bit source and destination port numbers,
and had TCP and UDP used those port numbers rather than having port
numbers in their headers.)  Also, have the SPX dissector dissect
subprotocols regardless of whether we're building a protocol tree or not.

Use the dissector handle for the IPX message dissector for both IPX
socket numbers; there's no need to create separate handles for both
registrations.

Have NDPS register as a subdissector of the SPX dissector, using
"spx.socket", and get rid of the duplicate SPX dissection in the NDPS
dissector.

Make the NDPS dissector set the columns regardless of whether a protocol
tree is being built, and clean up the dissector (fixing some bugs).

Get rid of unneeded includes in "packet-ndps.c".

svn path=/trunk/; revision=6424
2002-10-15 04:31:00 +00:00
Guy Harris 63d65a3f69 From Ulf Lamping: count ARP packets in capture progress dialog box.
svn path=/trunk/; revision=6416
2002-10-14 17:33:50 +00:00
Jörg Mayer 110f9caebc Support for both old and brand new libtool versions
svn path=/trunk/; revision=6389
2002-10-09 22:58:53 +00:00
Jörg Mayer 6c895e2d26 Change by Didier Gautheron to make automake 1.7 work.
svn path=/trunk/; revision=6372
2002-10-06 18:18:45 +00:00
Gerald Combs e23851ca23 Bump the version up to 0.9.7. The countdown begins. Too bad our
releases don't involve explosive bolts like NASA launches do.

Bring the ChangeLog and NEWS files up to date to the end of August.

svn path=/trunk/; revision=6341
2002-09-26 19:06:43 +00:00
Guy Harris 49fd685758 When allocating a hash table for a given MAC address range, use
"g_malloc0()", so it starts out initialized to all null pointers.

svn path=/trunk/; revision=6247
2002-09-10 10:12:34 +00:00
Guy Harris ac69a72fda "dfilter_prime_proto_tree()" doesn't modify the "dfilter_t" to which
it's handed a pointer, which means that "epan_dissect_prime_dfilter()"
doesn't do so either; make that argument a "const dfilter_t *" in both
cases.

svn path=/trunk/; revision=6239
2002-09-09 21:04:15 +00:00
Guy Harris 91ecc404e9 Allow the "manuf" file to contain well-known MAC addresses and address
ranges specified with a mask, as well as manufacturer OUIs.  Match the
address range values, as well as MAC addresses and manufacturer OUIs,
when translating MAC addresses to names.

Have "make-manuf" read a file containing the well-known addresses and
append it to the list of OUIs.

svn path=/trunk/; revision=6233
2002-09-09 19:38:11 +00:00