Commit Graph

662 Commits

Author SHA1 Message Date
Guy Harris 331b8b5a8b Add, for \xXX, the same sanity check (that 0xXX fits in a single byte)
that we have for \0OOO.

svn path=/trunk/; revision=9396
2003-12-21 21:04:56 +00:00
Ulf Lamping dea93d2bee removed some MSVC warnings (added type casts)
svn path=/trunk/; revision=9370
2003-12-20 23:50:50 +00:00
Gilbert Ramirez 1cbfbd022b Print values for ANY_MATCHES and ANY_CONTAINS so that the dftest
executable works properly.

svn path=/trunk/; revision=9353
2003-12-19 04:40:24 +00:00
Olivier Biot 7b1c1a9497 Add support of the "matches" operator to FT_BYTES and FT_ETHER. I don't think
it would make sense to add PCRE support for byte arrays containing an integer
or an IP address.

Avoid lengthy pointer constructs in cmp_matches().

svn path=/trunk/; revision=9343
2003-12-18 13:02:19 +00:00
Olivier Biot d9d5a1e44d Add protocols to the header fields for which the "matches" operator can be
appliedi (PCRE). In fact, all FT_TVBUFF fields.

svn path=/trunk/; revision=9329
2003-12-17 22:42:02 +00:00
Guy Harris c642c44ad8 Fix more "CPPLAGS" typoes.
svn path=/trunk/; revision=9310
2003-12-17 02:41:04 +00:00
Guy Harris 8b7cf57054 From Albert Chin: fix for the following:
The PCRE test in acinclude.m4 and epan/acinclude.m4 don't work
	if PCRE exists in a non-system directory.  The problem is that
	LDFLAGS and LIBS are set incorrectly.  LIBS shouldn't contain -L
	arguments.

svn path=/trunk/; revision=9309
2003-12-17 02:36:56 +00:00
Gerald Combs e660fedd31 Add the help directory to the build. Bump the release version to 0.10.0a
svn path=/trunk/; revision=9276
2003-12-13 18:05:49 +00:00
Guy Harris d4edb00a3a Add "/usr/local/include" in case the PCRE header file is there.
svn path=/trunk/; revision=9242
2003-12-11 18:37:13 +00:00
Olivier Biot ca6b915862 PCRE support requires $(PCRE_CFLAGS) in CFLAGS.
svn path=/trunk/; revision=9237
2003-12-10 22:38:48 +00:00
Gerald Combs 9fd657a0e1 Bump the version to 0.10.0. It could be (and has been) argued that the
last release should have been 0.10.0.

svn path=/trunk/; revision=9235
2003-12-10 21:50:04 +00:00
Gerald Combs 45c2823020 Make the _pcre_tuple_t struct internal.
svn path=/trunk/; revision=9233
2003-12-10 21:12:02 +00:00
Olivier Biot ec776da55a Internal PCRE field type for efficient RE parsing in dfilters.
svn path=/trunk/; revision=9225
2003-12-09 23:15:35 +00:00
Olivier Biot 0f18533b75 Internal PCRE field type for efficient RE parsing in dfilters.
svn path=/trunk/; revision=9224
2003-12-09 23:02:40 +00:00
Guy Harris 11d8817da0 Don't automatically size the columns - that's expensive in large
captures, as it has to compute the width of an auto-resizing column in
every row.  Just pick fixed widths for the columns (and tune the width
of the "Protocol" column so that it's not narrower than the column
title).

svn path=/trunk/; revision=9219
2003-12-09 06:48:40 +00:00
Guy Harris 8061eba526 Add "ip6_to_str_buf()", by analogy to "ip_to_str_buf()".
svn path=/trunk/; revision=9216
2003-12-09 05:06:22 +00:00
Guy Harris a93463727e Get rid of the private "my_decode_bitfield_value()" a number of
dissectors had.  Instead, rename it "other_decode_bitfield_value()", put
it in "epan/to_str.c", and make "decode_bitfield_value()" use it.

svn path=/trunk/; revision=9213
2003-12-08 23:40:13 +00:00
Guy Harris d06dc0727a From Michael Lum: support an AT_SS7PC address type for SS7 point codes,
and set the direction in pinfo for SS7 packets based on source and
destination addresses.

svn path=/trunk/; revision=9209
2003-12-08 21:36:53 +00:00
Gerald Combs 409948eced Add PCRE support to the Windows build.
svn path=/trunk/; revision=9185
2003-12-07 00:04:32 +00:00
Gilbert Ramirez 55a6251e7c From Olivier Biot
New "matches" operater in display filter language. Uses PCRE.

If a "matches" operator is found in a dfilter
while libpcre has not been used to build the binary, then an
exception is thrown after using dfilter_fail() to set an apporporiate
error message.

svn path=/trunk/; revision=9182
2003-12-06 16:35:20 +00:00
Gilbert Ramirez 71c8b6077b slab.h needs to be in libethereal_a_SOURCES
svn path=/trunk/; revision=9181
2003-12-06 06:22:10 +00:00
Gilbert Ramirez 058ef64db8 Add the ability to print packet dissections in PDML (an XML-based format)
to tethereal. It could be added to Ethereal, but the GUI changes to
allow the user to select PDML as a print format have not been added.

Provide a python module (EtherealXML.py) to help parse PDML.

Provide a sample app (msnchat) which uses tethereal and EtherealXML.py
to reconstruct MSN Chat sessions from packet capture files. It produces
a nice HTML report of the chat sessions.

Document tethereal's PDML and EtherealXML.py usage in doc/README.xml-output

Update tethereal's manpage to reflect the new [-T pdml|ps|text] option

svn path=/trunk/; revision=9180
2003-12-06 06:09:13 +00:00
Guy Harris fa1de9d824 It turns out the protocol tree parent link was used, so we need it in
our new scheme.

svn path=/trunk/; revision=9172
2003-12-04 19:53:54 +00:00
Guy Harris f0b9d12b6a Don't use GNodes for the protocol tree, put the sibling pointer, and
pointers to the first *and* last child, in the "proto_node" structure
itself.  That saves us one level of indirection and memory allocation,
and lets us append to a tree by appending to the last child directly,
rather than having to scan through the list of siblings of the first
child to find the end of that list.

svn path=/trunk/; revision=9171
2003-12-04 10:59:34 +00:00
Ronnie Sahlberg 9c14c51834 Replace two expensive macros with a much simpler mechanism
to prevent memory leaks due to exceptions.

makes my tethereal testcase ~1% faster.

svn path=/trunk/; revision=9153
2003-12-03 10:14:34 +00:00
Ronnie Sahlberg 5ff0237060 performance update
replace tvb_raw_offset() which is essentially a simple assignment and which
is called a lot with a macro.

this makes my tethereal testcase 2-3% faster.

svn path=/trunk/; revision=9152
2003-12-03 09:50:40 +00:00
Guy Harris dcd98ae8d3 The "ptr_u" unions no longer have a "next" pointer - they now just have
one member - or have one that's not used, so get rid of those unions.

svn path=/trunk/; revision=9151
2003-12-03 09:28:26 +00:00
Guy Harris ed2ae2d8d3 Instead of requiring slab-allocated structures to have a "next" pointer,
when adding them to the free list, cast the pointer to the structure to
a pointer to a "freed_item_t" which contains the "next" pointer.

This reduces the memory requirement for some of those structures, and
leaves us free to slab-allocate structures that have a "next" pointer
for other reasons.

svn path=/trunk/; revision=9150
2003-12-03 08:53:37 +00:00
Guy Harris 0c84e1c329 From Didier Gautheron: for each column format type, save the first and
last columns, if any, with that format, and use that to speed up
processing of columns with a particular format and checking whether
we're displaying a column with a particular format.

svn path=/trunk/; revision=9147
2003-12-02 23:14:32 +00:00
Guy Harris bd9f96738c From Didier Gautheron: put an "fvalue_t" structure into a "field_info"
structure, rather than separately allocating "fvalue_t"s and having the
"field_info" structure point to them - this appears to speed up protocol
tree construction a bit.

svn path=/trunk/; revision=9146
2003-12-02 21:15:49 +00:00
Ronnie Sahlberg bfaca0cab6 Move the definition of the tvbuff_t structure and friends to tvbuff.h
so that we can change tvb_get_ds_tvb() into a macro.

This function was a single line assignment and was called a lot.

This made tethereal ~2.5% faster in one testcase I use.

svn path=/trunk/; revision=9141
2003-12-02 10:23:18 +00:00
Ronnie Sahlberg 266b5a4b2e Use the LSAB_ALLOC and SLAB_FREE macros to allocate/free fvalue_t data
svn path=/trunk/; revision=9140
2003-12-02 09:47:23 +00:00
Ronnie Sahlberg 917c9da95e Moving SLAB_ALLOC and SLAB_FREE to its own header file
svn path=/trunk/; revision=9139
2003-12-02 09:11:16 +00:00
Guy Harris f549d46c37 From Tomas Kukosa: add "decode_enumerated_bitfield_shifted()", which is
like "decode_enumerated_bitfield()" but handles value_string tables
containing values as they appear in the bitfield rather than as they
appear in the item containing the bitfield.

svn path=/trunk/; revision=9134
2003-12-01 23:42:32 +00:00
Ronnie Sahlberg eb39a99b2c Speed updates
create generic macros for allocating/freeing structures.

remove one more slow GMemChunk and replace it with a simple linked list

~4% speed improvement in my tests.

the allocated data is never freed.   this may be a problem if ethereal is
ever supported on a platform lacking resource tracking but makes the
implementation faster and simpler.

svn path=/trunk/; revision=9095
2003-11-26 12:22:22 +00:00
Guy Harris 26d021d8eb As with fvalue_t, so with field_info and item_label - the individual
items aren't individually g_mallocated and can't be g_freed, only the
chunks can.

svn path=/trunk/; revision=9091
2003-11-25 20:02:42 +00:00
Guy Harris 06f204843e Individual fvalue_t's aren't individually allocated with "g_malloc()",
so they can't be freed with "g_free()"; keep a list of the chunks of
"fvalue_t"s, which are whare are allocated with "g_malloc()", so we can
free them all.

svn path=/trunk/; revision=9090
2003-11-25 19:25:31 +00:00
Ronnie Sahlberg 06ed59a1ec replace free_node_field_info with a macro since it is only called from one other place in the code and this reduces one unnecessary function call overhead.
and it makes ethereal ~1% faster.

svn path=/trunk/; revision=9088
2003-11-25 14:16:30 +00:00
Ronnie Sahlberg c68fddc5e1 rename FREE_FIELD_INFO to FIELD_INFO_FREE for consistency
svn path=/trunk/; revision=9087
2003-11-25 14:11:44 +00:00
Ronnie Sahlberg fec720051f create a FIELD_INFO_NEW for consistency
svn path=/trunk/; revision=9086
2003-11-25 14:10:27 +00:00
Ronnie Sahlberg 9d88e58e51 remove another slow GMemChunk from ethereal making ethereal a little bit faster
svn path=/trunk/; revision=9085
2003-11-25 14:07:45 +00:00
Ronnie Sahlberg 04d07e6578 change free_field_info to FREE_FIELD_INFO to indicate it is a macro and not a function
svn path=/trunk/; revision=9084
2003-11-25 13:23:10 +00:00
Ronnie Sahlberg 4f84e65c50 fvalue_free() is one of the most called functions.
This function is also very small, so small that teh overhead for the actual function call and return is likely to be a significant part
of its execution time.

change it into a macro and make it thus slightly faster by eliminating the function call overhead.

svn path=/trunk/; revision=9083
2003-11-25 13:20:36 +00:00
Ronnie Sahlberg 0bf28e51af Change the handling of temporary allocation of fvalue_t structures to be faster.
Use a similar technique as was used in epan/proto.c to speed up the field_info
allocation/deallocation routines

svn path=/trunk/; revision=9082
2003-11-25 08:50:38 +00:00
Guy Harris 122dd3959c Make the recent epan/proto.{c,h} change compile.
svn path=/trunk/; revision=9075
2003-11-24 22:11:55 +00:00
Ronnie Sahlberg fa1ee7667b performance enhancement to proto.c
Removed the GMemChunk used to allocate/free field_info structures
and used a free list to store the freed structs until they are allocated again.

Ethereal will allocate more field_info structs as it needs to but never free them. Instead the are just placed in a cheap and fast free list so that if we
want to use the struct again, this will be fast.

This affects the speed of the two functions
alloc_field_info() that should be slightly faster now
free_field_info() that was replaced with a 2 line macro.

All in all  my testing suggests that ethereal is 2-3% faster with this patch.

svn path=/trunk/; revision=9073
2003-11-24 21:12:10 +00:00
Ronnie Sahlberg ac1608f3c6 As per Guys suggestion, continue optimizing proto.c to macroize it
and make it even faster

svn path=/trunk/; revision=9064
2003-11-22 04:41:31 +00:00
Guy Harris 364261f0ad From Olivier Biot:
* Add a "match_string" field to the "packet_info" structure,
	  saving the string value that matched in a string dissector
	  lookup, by analogy to "match_port" - this was required for
	  dissection with token rendering of WBXML content when no public
	  ID was given (e.g. Nokia/Ericsson OTA provisioning data).
	* Add support for textual content type based WBXML token
	  mapping.
	* Add extra WBXML public identifiers.
	* Add the Nokia/Ericsson OTA provisioning (version 7) token
	  definitions.
	* Inform the user when a content-type based token match is found.

svn path=/trunk/; revision=9061
2003-11-21 21:58:55 +00:00
Ronnie Sahlberg 7eef1914e0 Performance fix
In the GPROF logs proto_registrar_get_nth() used to take anything between 2.5 and 5.5% of the time.

Replace the GLIB array with a handroleld one for one of the private structures.

the function should now be virtually zero cost
and thus ethereal should be 2.5-5.5% faster on those traces.

anyone that wants to, please rerun GPROF with this fix and see what has changed.

svn path=/trunk/; revision=9058
2003-11-21 14:58:49 +00:00
Guy Harris f42de5c9b2 From Hannes Gredler: "print_system_id()" should call
"print_system_id_buf()", not "print_nsap_net_buf()".  (What idiot made
*that* mistake? :-))

svn path=/trunk/; revision=9046
2003-11-20 19:05:40 +00:00