Commit graph

435 commits

Author SHA1 Message Date
Kovarththanan Rajaratnam
460eacaae1 Move the NULL pointer 'tree' check under TRY_TO_FAKE_THIS_ITEMs umbrella
svn path=/trunk/; revision=29453
2009-08-17 11:21:33 +00:00
Kovarththanan Rajaratnam
69babcb4a6 Don't do PROTO_REGISTRAR_GET_NTH twice.
svn path=/trunk/; revision=29452
2009-08-17 11:13:36 +00:00
Kovarththanan Rajaratnam
da97c3e2b6 This should have been part of r29428. This patch forces proto_field_is_referenced() to respect the fake_protocols flag set by Protocol Hierarchy stats tap.
svn path=/trunk/; revision=29429
2009-08-15 08:38:50 +00:00
Kovarththanan Rajaratnam
9eec025c49 DISSECTOR_ASSERT on FT_PCRE in construct_match_selected_string().
svn path=/trunk/; revision=29396
2009-08-12 18:24:49 +00:00
Kovarththanan Rajaratnam
261a8406bc TRY_TO_FAKE_THIS_ITEM now fakes FT_PROTOCOL per default. If there are any users (e.g. proto_hier_stats.c, others?) that relies on FT_PROTOCOL nodes being created they'll now need to call the newly introduced epan_dissect_fake_protocols() to disable this optimization.
Also make use of TRY_TO_FAKE_THIS_ITEM in proto_tree_add_text_node(), proto_tree_add_none_format() and proto_tree_add_protocol_format().

svn path=/trunk/; revision=29380
2009-08-11 18:08:03 +00:00
Kovarththanan Rajaratnam
083729e02c Add PTREE_FINFO and use PITEM_FINFO when possible.
svn path=/trunk/; revision=29355
2009-08-09 17:57:31 +00:00
Kovarththanan Rajaratnam
3512e485ca Add PNODE_FINFO. We've been using PITEM_FINFO on proto_node's. This works because proto_item is typedefed to proto_node. We shouldn't rely on this since this is an implementation detail.
svn path=/trunk/; revision=29354
2009-08-09 17:33:23 +00:00
Bill Meier
dd2a488581 g_error() if registering a subtree item type already registered (or not initialized to -1).
svn path=/trunk/; revision=29352
2009-08-09 15:49:02 +00:00
Anders Broman
ded297677f From Kovarththanan Rajaratnam:
Precompile custom columns filters.
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=3767

svn path=/trunk/; revision=29174
2009-07-23 05:48:39 +00:00
Stig Bjørlykke
221225e0f3 From Kovarththanan Rajaratnam via bug 3719:
This patch optimizes proto_tree_prime_hfid() + friends and
plugs a memleak in the process.

From me:
Removed unused hfindex in proto_tree_new_item()
Fixed ref_count entry in struct header_field_info.

svn path=/trunk/; revision=29137
2009-07-18 20:10:14 +00:00
Stig Bjørlykke
3ebdfb7c9c From Kovarththanan Rajaratnam:
Add "text" abbrev + tighten FT_FRAMENUM checks.

svn path=/trunk/; revision=29100
2009-07-15 08:56:12 +00:00
Stig Bjørlykke
3f53109d7e Added some casts for true_false_string's.
svn path=/trunk/; revision=28992
2009-07-07 16:04:26 +00:00
Jeff Morriss
ac43decf1c ptvcursor_add_text_with_subtree(): Don't crash if called with a NULL tree.
Also fix up some indenting.

svn path=/trunk/; revision=28712
2009-06-12 14:32:32 +00:00
Stig Bjørlykke
f6826c9c02 Fix a small indent issue in a comment.
svn path=/trunk/; revision=28693
2009-06-11 10:10:42 +00:00
Sebastien Tandel
52cc5fb1e8 python binding for wireshark (first commit)
* ability to write dissectors with python for wireshark.
        documentation (http://wiki.wireshark.org/Python)


svn path=/trunk/; revision=28529
2009-05-29 21:10:40 +00:00
Bill Meier
d349ab0061 proto.c: proto_registrar_dump...() fixes/changes:
- dump_values: Handle range_strings (prevents crash);
- dump_fields:
   a. Formats 2,3: If type==FT_BOOLEAN: output integer "parent bitfield width"
      in Field 7 instead of "BASE_NONE", etc. to allow addt'l
      field validation when using ftsanity.py.
   b. Format 3: Output bitmask (Field 8) in hex (0x...) instead of decimal.

svn path=/trunk/; revision=28134
2009-04-22 19:50:34 +00:00
Gerald Combs
f0eeb0bdf1 More size_t fixes. Use a string buffer in range.c.
svn path=/trunk/; revision=27999
2009-04-08 16:50:20 +00:00
Bill Meier
1e66f1a63f From Jakub Zawadzki: g_snprintf() & etc since glib 1.3.12
don't return -1, and also always NUL terminate the string.
We can clean sources by removing dead/unnecessary code.
From me: A few additional changes re use of g_snprintf.

svn path=/trunk/; revision=27818
2009-03-22 15:31:44 +00:00
Stig Bjørlykke
62f60df6b4 From Jakub Zawadzki (bug 3331):
g_free() is NULL safe, so we don't need check against it.

svn path=/trunk/; revision=27718
2009-03-13 22:06:48 +00:00
Stig Bjørlykke
c16347358f From Jakub Zawadzki (bug3330):
Initialize hfinfo->display for FT_PROTOCOL.

svn path=/trunk/; revision=27711
2009-03-12 20:35:43 +00:00
Stig Bjørlykke
628f229936 Removed support for FT_UINT64/BASE_NONE/VALS combination.
svn path=/trunk/; revision=27671
2009-03-09 08:45:01 +00:00
Stig Bjørlykke
de14669997 Added FT_INT*/FT_UINT* with BASE_NONE and a value string as a valid combination.
With this combination we get tree items with only the string match and not
the value, and the filter is created with the string.  This is usefull
when having generated items with wireshark internals as values.

Also rewrote some string constructions.

svn path=/trunk/; revision=27667
2009-03-09 00:24:21 +00:00
Jaap Keuter
d27c92e496 Add posibility to mark protocol as private. This prevents inadvertent Wiki access.
svn path=/trunk/; revision=27533
2009-02-24 17:24:03 +00:00
Gerald Combs
6d04f793f0 Back out r27047 and r27053.
svn path=/trunk/; revision=27062
2008-12-19 17:39:52 +00:00
Martin Mathieson
3633774826 Make proto_tree_add_bytes_format() (unused) behave as expected.
Was identical to proto_tree_add_bytes_format_value().

svn path=/trunk/; revision=27047
2008-12-18 17:08:26 +00:00
Bill Meier
a668ca6bc5 Fix trivial spelling error
svn path=/trunk/; revision=27004
2008-12-15 17:05:41 +00:00
Tomas Kukosa
99295ee0d2 put the SCTP PPI for current DATA chunk into packet_info (and ppid array renamed to ppids)
svn path=/trunk/; revision=26958
2008-12-10 11:04:36 +00:00
Jaap Keuter
e12599f5c9 Tighten field array check to avoid printing problems.
svn path=/trunk/; revision=26849
2008-11-26 07:25:18 +00:00
Jaap Keuter
54899df0c8 From Michael McCartney:
Simplify/generalize proto_tree_add_bits_ret_val(): ability to use other display types, ie., use 
hfinfo_uint_format() or hfinfo_uint64_format() to get the proper format string.

svn path=/trunk/; revision=26674
2008-11-03 07:32:55 +00:00
Stig Bjørlykke
5e5a674e76 Show both short and long protocol name in the Filter Expression dialog.
svn path=/trunk/; revision=26537
2008-10-24 07:48:09 +00:00
Jaap Keuter
0fde67dd54 From Andrew Narver:
Currently, if you call proto_tree_free on anything other than the root node of a tree 
the tree will get left in an inconsistent state.  This is because the parent is left pointing 
to the newly freed child.

The traversal code is updated, the parent node update is currently disabled since 
freeing is done for the complete tree only at this time, so there is no need to keep 
the parent node consistent.

svn path=/trunk/; revision=26466
2008-10-15 20:02:15 +00:00
Stig Bjørlykke
6012a91ebb Added an option to syntax check only a single field name.
svn path=/trunk/; revision=26405
2008-10-10 17:00:38 +00:00
Stig Bjørlykke
d84791245b As reported by Chidambaram Arunachalam in bug 2893:
Handle RVALS correctly in proto_tree_set_(u)int and label_fill_(u)int

svn path=/trunk/; revision=26257
2008-09-23 23:58:23 +00:00
Anders Broman
da85c3dfab From Alexey Neyman :
This patch implements a function for dissecting bitfields with better control
over the resulting representation than the existing proto_tree_add_bitmask()
routine. This function will be used by reworked IPMI/ATCA dissector (bug 2048).

The function is described in README.developer. In short, the differences are as
follows:

- The new function does not require a hf_XXX field for the whole bitmask. When
the bitmask includes several unrelated fields, such hf_XXX field does not make
sense.

- The new function allows better control over the way the sub-item descriptions
are added to the top-level item. For example, proto_tree_add_bitmask() function
does not add non-enumerated integers, does not use true_false_string to display
boolean.

- The new function allows to specify "fallback" text for the top-level item
which is used if no items were added to the top-level item.

svn path=/trunk/; revision=25920
2008-08-04 20:41:43 +00:00
Anders Broman
baf9959afa From Alexey Neyman:
Fix proto_tree_add_*_format_value() operation on bitfields.

svn path=/trunk/; revision=25888
2008-08-01 10:16:52 +00:00
Anders Broman
876e751069 From Alexey Neyman :
Implement BASE_CUSTOM display type

svn path=/trunk/; revision=25870
2008-07-30 12:30:02 +00:00
Jeff Morriss
acd338f422 Remove the (long deprecated) proto_tree_add_*_hidden() functions
svn path=/trunk/; revision=25820
2008-07-24 15:35:29 +00:00
Guy Harris
094911ef4f Rename arguments not to collide with function names, to avoid warnings
from -Wshadow, as noted by John Smith.

svn path=/trunk/; revision=25540
2008-06-23 20:15:30 +00:00
Jaap Keuter
bfcdda1353 ptvcursor_subtree_set_item() does not need to be exported.
svn path=/trunk/; revision=25441
2008-06-11 18:16:04 +00:00
Stephen Fisher
eedcd98bd2 Fix for bug #2480: Custom column, wrong display of 802.11 Sleep mode status
Changed the tfstring to use integer variable instead of value variable.  The
integer value has had its "irrelevant portions" masked out and has been bit-
shifted whereas value hasn't.  This led to unpredictable results when using
a true false string for a single bit of a byte. 


svn path=/trunk/; revision=25169
2008-04-25 05:16:23 +00:00
Richard van der Hoff
bcfb45de67 fields passed into proto_tree_add_bits_* should have bits==0
svn path=/trunk/; revision=25074
2008-04-16 09:49:39 +00:00
Anders Broman
63c5c71cf8 Remove:
#ifdef NEED_G_ASCII_STRCASECMP_H
#include "g_ascii_strcasecmp.h"
#endif

svn path=/trunk/; revision=24859
2008-04-09 05:36:08 +00:00
Stephen Fisher
726a1caaf1 - Remove GLIB1 code
- Change ugly GLIB version checking statements to GLIB_CHECK_VERSION
- Remove ws_strsplit files because we no longer need to borrow GLIB2's
  g_strsplit code for the no longer supported GLIB1 builds


svn path=/trunk/; revision=24829
2008-04-07 05:22:54 +00:00
Luis Ontanon
a476c85e21 typo initializators -> initializers
svn path=/trunk/; revision=24763
2008-04-03 22:18:08 +00:00
Luis Ontanon
906d2f3cbb http://www.wireshark.org/lists/wireshark-dev/200803/msg00308.html
proto.[hc]
    define new APIs to allow delayed registration of protocol fields,
	so that dissectors with "flexible" fields  like xml, radius, diameter,
	snmp do not have to load their files at startup but can do so as late as possible.

gtk/dfilter_expr_dlg.c :
	have the expression dialog registering all prefixes so that all fileds appear in the dialog

tshark.c
	register all prefixes when called with -G

epan/radius_dict.l
epan/dissectors/packet-radius.c
epan/dissectors/packet-radius.h
	refactor registration to delay dictionary loading as long as possible



svn path=/trunk/; revision=24762
2008-04-03 22:13:52 +00:00
Jeff Morriss
689e8bd855 From http://bugs.wireshark.org/bugzilla/show_bug.cgi?id=1539 :
Hexadecimal and octal are unsigned.  Don't let dissectors register signed
fields (FT_INT*) to be displayed in hexadecimal (including HEX_DEC and DEC_HEX)
or octal.  Fix dissectors that do that mostly by changing the fields to
unsigned though in PANA it appears the fields are meant to be signed so
change those fields to be displayed in decimal.

This fixes an assertion crash in hfinfo_numeric_format() if/when someone tries
to create a filter using one of these mixed signed/unsigned fields (because
that routine does not know how to present the user with a signed value in
hex).

Also add FT_*INT64 to the "make sure it's not BASE_NONE" check.

svn path=/trunk/; revision=24643
2008-03-15 22:41:57 +00:00
Martin Mathieson
8605cec511 Fix for bug 2328.
I can see this function is used in limited places.
I'm not sure if BASE_RANGE_STRING needs to masked out
of hfinfo->display in various other functions in proto.c.

svn path=/trunk/; revision=24598
2008-03-10 15:36:44 +00:00
Jeff Morriss
5ca9e9cbe8 Fix http://bugs.wireshark.org/bugzilla/show_bug.cgi?id=2009 : if the dissector told us how to format the representation of an item then indicate if we truncated it (we were already doing this if we formatted the representation). Do the same for FT_BYTES.
svn path=/trunk/; revision=24593
2008-03-09 14:50:14 +00:00
Stephen Fisher
56226b49b8 Custom column updates:
- Change apply / prepare / ... as filter to use the field's value, which
   is now stored in fdata as well as cinfo.  Now we don't have to reprocess
   the entire packet list when using these features.  This also prevents
   the use of these features from overwriting custom column information.
   (custom columns can now be used in apply / prepare ... as filter)
 - Break col_expr and col_expr_val out into a struct that is included not only
   in cinfo, but now also fdata.
 - Have col_custom_set_fstr() quote FT_STRING & FT_STRINGZ when storing the
   col_expr_val value (for filter creation).


svn path=/trunk/; revision=24511
2008-03-01 05:16:45 +00:00
Stig Bjørlykke
545fdf0586 Added support for FT_IPv4, FT_GUID and FT_OID in custom columns.
svn path=/trunk/; revision=24455
2008-02-24 20:57:34 +00:00
Stig Bjørlykke
a50f232cac Print integer values according to hfinfo->display.
svn path=/trunk/; revision=24420
2008-02-22 13:27:46 +00:00
Stig Bjørlykke
20ed60cf1f Added FT_ABSOLUTE_TIME and FT_RELATIVE_TIME to custom columns.
svn path=/trunk/; revision=24419
2008-02-22 12:28:41 +00:00
Stig Bjørlykke
33524cdd48 Some custom column enhancements:
Use the value_string if defined for integer and boolean values.

svn path=/trunk/; revision=24418
2008-02-22 12:06:29 +00:00
Stig Bjørlykke
67aa6856de Some custom column fixes:
- In proto_tree_set_uint and proto_tree_set_int use value adjusted for bitmask.
- Removed col_custom_set_fstr in proto_tree_set_boolean to get a correct
  adjusted value in proto_tree_set_uint.
- Set a default column width shorter than COL_INFO. 

svn path=/trunk/; revision=24417
2008-02-22 11:32:36 +00:00
Stephen Fisher
2a8e74cedc Add ability to make more field types into custom columns: FT_ETHER & FT_BYTES.
Also change display of FT_STRING(Z) to turn non-printable characters into
backslash + number values. 


svn path=/trunk/; revision=24415
2008-02-22 03:44:08 +00:00
Stephen Fisher
b0a09b3c8b Add/fix a few calls to col_custom_set_fstr() for custom columns.
svn path=/trunk/; revision=24328
2008-02-14 06:10:54 +00:00
Stephen Fisher
8f3a1b0d16 Check in changes originally checked in as SVN revision 24308 (new column
type: Custom) that were backed out in SVN revision 24309.

Changes since that revision include a reworking of the handling of the
cfile/cinfo variables in epan/column-utils.c, addition of three new
functions to libwireshark.def and a bug fix to prevent a crash when no
custom columns were not in use.

Compilation verified locally on MacOS X, Linux and Windows.


svn path=/trunk/; revision=24317
2008-02-13 05:05:33 +00:00
Stephen Fisher
5e893a8b1c Revert commit 24308 until I can get it to compile on Windows/Linux/Solaris
(strangely, it compiled fine on my MacOS X machine).


svn path=/trunk/; revision=24309
2008-02-12 08:09:22 +00:00
Stephen Fisher
0a85a9e4c6 Introduce a new column type called custom, which lets you put any display
filter name in the description field and it will display that field in the
packet list if it occurs in that packet.  Note that the more common fields
are implemented, but a number of them remain to be implemented in
epan/proto.c.  I will work on these other fields as I have time.


svn path=/trunk/; revision=24308
2008-02-12 03:16:09 +00:00
Jaap Keuter
90674d7c9e Print the string to STDOUT regardless of the value of tree.
svn path=/trunk/; revision=24114
2008-01-16 18:39:32 +00:00
Stig Bjørlykke
a2d1e9005d This patch adds support for configuration profiles, which can be used to
configure and use more than one set of preferences and configuration files.

This can be found in the "Configuration Profiles..." menu item from the Edit
menu, or by pressing Shift-Ctrl-A.  It's also possible to start wireshark
and tshark with a named profile by using the "-C ProfileName" option.
A new status pane in the main window will show the current profile.

The configuration files currently stored in the Profiles are:
- Preferences
- Capture Filters
- Display Filters
- Coloring Rules
- Disabled Protocols
- User Accessible Tables

The recent data are by design not added to the profile.

Planned future enhancements:
- make a more convenient function to switch between profiles
- add a "clone profile" button to copy an existing profile
- make the profiles list active and accept return as OK
- save users "Decode as" in the profile
- make new, clone and deletion of profiles more secure
- make some of the recent values available in the profile

This patch also fixes:
- setting default status pane sizes
- a bug setting status pane for packets when not having main lower pane.

svn path=/trunk/; revision=24089
2008-01-14 16:40:23 +00:00
Jaap Keuter
abe4e72137 Describe text only field as "Text Item", shown in status bar.
Improve documentation headers.

svn path=/trunk/; revision=23938
2007-12-22 10:47:26 +00:00
Gerald Combs
be6e31fa44 Register the "samr.nt_password" preference as obsolete.
svn path=/trunk/; revision=23794
2007-12-07 18:50:41 +00:00
Ronnie Sahlberg
0c09ac97f6 #if out a function that is only used when building with glib 2 or later
svn path=/trunk/; revision=23730
2007-12-04 00:56:11 +00:00
Guy Harris
ce635c2310 Severities are unsigned.
svn path=/trunk/; revision=23727
2007-12-03 23:02:09 +00:00
Tomas Kukosa
6caaafbb6d Next few improvements to speed up startup about 10%.
- use GTree instead of GList for preference module lists

svn path=/trunk/; revision=23679
2007-11-30 09:22:01 +00:00
Tomas Kukosa
7f4df19970 fix GLIB 1.x compatibility
svn path=/trunk/; revision=23668
2007-11-29 07:48:12 +00:00
Tomas Kukosa
ff7c20938e Various changes with focus to startup speedup
The startup timeout on Win32 is reduced to 80% without assembler and to 50% with assembler usage (which is optional)
proto.c
 - do not look up in filed tree and inserts in two steps but do it at once
 - next few small speedups
 - some often called elementary functions can be optionally implemented in assembler
 - dispart some functions to see more exact result from profiling
packet-tpnc.c
 - do not reallocate memory for each filed

svn path=/trunk/; revision=23643
2007-11-28 10:18:16 +00:00
Guy Harris
9c89cdaaa3 strcasecmp(), strncasecmp(), g_strcasecmp(), and g_strncasecmp() delenda
est.  Use g_ascii_strcasecmp() and g_ascii_strncasecmp(), and supply our
own versions if they're missing from GLib (as is the case with GLib
1.x).

In the code to build the list of named fields for Diameter, don't use
g_strdown(); do our own g_ascii_-style upper-case to lower-case mapping
in the hash function and use g_ascii_strcasecmp() in the compare
function.

We do this because there is no guarantee that toupper(), tolower(), and
functions that use them will, for example, map between "I" and "i" in
all locales; in Turkish locales, for example, there are, in both
upper case and lower case, versions of "i" with and without a dot, and
the upper-case version of "i" is "I"-with-a-dot and the lower-case
version of "I" is "i"-without-a-dot.  This causes strings that should
match not to match.

This finishes fixing bug 2010 - an earlier checkin prevented the crash
(as there are other ways to produce the same crash, e.g. a bogus
dictionary.xml file), but didn't fix the case-insensitive string matching.

svn path=/trunk/; revision=23623
2007-11-27 18:52:51 +00:00
Stephen Fisher
849e628334 Introduce a new field type called FT_EBCDIC. This field works the same as
FT_STRING, except that it converts the data from the packet from EBCDIC
to ASCII for display in Wireshark.


svn path=/trunk/; revision=23503
2007-11-19 21:27:01 +00:00
Anders Broman
dbcabb1938 Get rid of most of the legacy oid stuff.
svn path=/trunk/; revision=23333
2007-11-01 22:07:43 +00:00
Anders Broman
9492700608 Change:
get_oid_str_name() -> oid_resolved_from_string()
get_oid_name() -> oid_resolved_from_encoded()

svn path=/trunk/; revision=23331
2007-11-01 19:36:39 +00:00
Martin Mathieson
b40d397b16 Make groups of PDUs filterable as large FT_BYTES items
(where the initial length isn't readily available when item is first added)

Note that this still won't work where an initial length of 0 is given for
the item that will later be extended using proto_item_set_len(), as the
pointer value part of the zero-length array will reamin NULL...

svn path=/trunk/; revision=23253
2007-10-23 11:02:08 +00:00
Stig Bjørlykke
5a58a1435c From Andrew Feren:
Fix an assortment of typos and other minor errors in various README files

svn path=/trunk/; revision=23166
2007-10-12 19:13:31 +00:00
Stig Bjørlykke
675b312626 Added a missing break - fixing bug 1890.
svn path=/trunk/; revision=23050
2007-10-02 16:27:52 +00:00
Stig Bjørlykke
72af3183ab Added functionality to highlight the FCS bytes in Ethernet and IEEE 802.11
packets in the Packet Details View.

This "appendix" bytes are not copied with the Copy functions or in the
Export Selected Packet Bytes.

svn path=/trunk/; revision=22887
2007-09-17 12:12:02 +00:00
Luis Ontanon
00c5e48a17 get users of oid_resolv to use the new oids, rollout packet-snmp.c
svn path=/trunk/; revision=22651
2007-08-25 01:14:24 +00:00
Luis Ontanon
fab09c9575 accept 64bit integers where 8 <= len <= 1
svn path=/trunk/; revision=22546
2007-08-18 00:14:52 +00:00
Luis Ontanon
9865b6346f As per Ulf's request add ${proto.field} macros that will use the value of the given field has in the last selected packet.
svn path=/trunk/; revision=22427
2007-07-30 23:32:47 +00:00
Guy Harris
5a43799a17 Use G_GINT64_MODIFIER, rather than the PRI[douxX]64 macros, for GLib
routines and routines using those routines.  GLib might use different
modifiers for 64-bit quantities than the platform's C library does.

svn path=/trunk/; revision=21990
2007-05-29 18:52:42 +00:00
Guy Harris
d2ac4f7133 Check for G_GINT64_MODIFIER in Wireshark as we do in Wiretap.
In all the places where a cast to "long long" or "unsigned long long"
was done, use G_GINT64_MODIFIER and get rid of the cast, as

	1) there's no guarantee that "%ll" works

and

	2) there's no guarantee that "long long" works

(the latter definitely does *NOT* work with MSVC++; the former doesn't
work with regular printf in MSVC++, but it might work with the GLib
printf-based functions).

svn path=/trunk/; revision=21978
2007-05-29 06:56:07 +00:00
Sebastien Tandel
76729e5d0f From David Howells :
Fix compilation failures when building wireshark-0.99.6-SVN-21916 on an
x86_64-unknown-linux-gnu target with gcc version 4.1.2 20070403 (Red Hat
4.1.2-8).

The failures fall into two categories:
  (1) Casts between pointers and 32-bit integers without an intermediary cast
via 'long' or 'unsigned long'.  This results in a compiler warning complaining
about casts between a pointer and an integer of a different size.
  (2) Passing values to "%lld" or similar printf-style format options that the
compiler thinks are a different size.  Such values need to be cast to 'long
long' or 'unsigned long long'.

svn path=/trunk/; revision=21975
2007-05-29 02:43:18 +00:00
Luis Ontanon
11f06217ce Have editcap and capinfos loading the wiretap plugins.
epan/filesystem.c
   have get_plugin_dir() calling init_plugin_dir() if necessary

epan/epan.c and epan/report_err.c
   move the report_failure family into the new report_err.c file, have epan_init() calling the initializer

epan/plugins.h and epan/proto.c
   do not have init_plugins() calling the proto_reg functions instead do it in init_proto()

gtk/main.c and tshark.c
   init_plugin_dir() has become suprefluous

capinfos.c and editcap.c
   load the wiretap plugins

Makefiles
   do what's needed to build withe the above changes.




svn path=/trunk/; revision=21935
2007-05-25 17:22:32 +00:00
Ronnie Sahlberg
bded91f43d make proto.c compile again after the recent changes
svn path=/trunk/; revision=21853
2007-05-21 02:36:33 +00:00
Anders Broman
b688f9154a Split tvb_get_bits64 into tvb_get_bits8 tvb_get_bits16 tvb_get_bits32 and tvb_get_bits64
and use them in proto_tree_add_bits_ret_val().

svn path=/trunk/; revision=21828
2007-05-18 16:46:35 +00:00
Graeme Lunt
cf56e76be9 Updated splash screen for Wireshark that shows the initialisation progress.
The splash screen shows a progress bar and a percentage complete - like the progress dialog.
As dissectors are initialised and handed off the name is shown. However, the names of plugin dissectors are not shown.
The update to the make-dissector-reg shell script has been tested, though I think generally the python version is used.


svn path=/trunk/; revision=21716
2007-05-07 17:55:42 +00:00
Anders Broman
43bb2aea51 Add:
proto_tree_add_bits_ret_val()
tvb_get_bits()
And modify
proto_tree_add_bits() not to return a value.
little endian is not yet implemented.

svn path=/trunk/; revision=21607
2007-04-28 12:13:25 +00:00
Anders Broman
ccac0e7983 Change the signature of proto_tree_add_bits() and add proto_tree_add_bits_ret_val()
which will hopefully be more acceptable.
Change name of tvb_get_bits() in ansi_801

svn path=/trunk/; revision=21594
2007-04-26 06:39:29 +00:00
Anders Broman
fea883ebec Add a new proto function proto_tree_add_bits() which adds bits to the tree
starting at the bit offset given for the number of bits indicated which wll also return
the value of the bits.
Experimental and for review, documentation to be updated.

svn path=/trunk/; revision=21556
2007-04-24 19:24:14 +00:00
Sebastien Tandel
0ca67aef30 - new ptvcursor subtrees management functions :
* ptvcursor_push_subtree(), ptvcursor_pop_subtree() for pushing/popping
    subtrees. Multiple levels of subtrees (256 max.), allocation per 8 levels.
  * Two new functions creating an item in the tree and pushing a subtree at the
    same time. These two functions accept an undefined length
    (SUBTREE_UNDEFINED_LENGTH). The length of the item is set at the next pop.
        1) ptvcursor_add_with_subtree
	2) ptvcursor_add_text_with_subtree
- get rid of potential memory leaks with g_new in ptvcursor_new().

- Documentation of the new ptvcursor functions in README.developer


svn path=/trunk/; revision=21276
2007-03-30 00:21:39 +00:00
Stephen Fisher
8fd3ee0560 Remove almost all of the casts I committed recently and in place of
them, add -Wno-pointer-sign to CFLAGS when gcc will accept it.


svn path=/trunk/; revision=21253
2007-03-28 21:55:11 +00:00
Stephen Fisher
46b8669566 Fix a bunch more warnings. Add -Werror when using --with-warnings-as-errors
under gcc to tools/lemon, plugins/mate and epan/


svn path=/trunk/; revision=21204
2007-03-26 06:10:52 +00:00
Jeff Morriss
62596bffb3 Fix bug 552:
http://bugs.wireshark.org/bugzilla/show_bug.cgi?id=552

by enforcing that header fields have names of length > 0.  This should fix
the display of those fields and also make them filterable (which was the
subject of the bug).  Abbreviations are (still) optional: if they are empty
then the field is not filterable.

Update README.developer with this information.

Add header field names in several dissectors where they were missing.

In packet-arp.c give "packet-storm-detected" a name (as above) but also set it
as _GENERATED.

Also remove trailing white space from all the files checked in.

svn path=/trunk/; revision=21018
2007-03-11 06:16:00 +00:00
Stephen Fisher
aa897723ff From Sebastien Tandel:
Here is an updated patch for proto_tree_add_item and the
range_string structure. The new macro RVALS() can be used as the macro
VALS() in the declaration of your hf_register_info with another
structure (range_string).  Be aware that you *have to* ORed the value of
the field display with BASE_RANGE_STRING constant and it can 'only' be
used with FT_(U)INT* types in a header_field_info.


svn path=/trunk/; revision=20805
2007-02-14 00:39:48 +00:00
Guy Harris
10778a6ab1 DISSECTOR_ASSERT_NOT_REACHED() now, by default, throws a Wireshark
exception rather than aborting the program; using it means that
dissector bugs show up as such rather than as malformed packets.

svn path=/trunk/; revision=20532
2007-01-23 18:31:26 +00:00
Martin Mathieson
997e5415f9 Add separate union entries to fvalue.value for signed and unsigned
32-bit numbers.  Separate signed and unsigned accessors have been
added and used where appropriate.

Definitely not for 0.99.5.

svn path=/trunk/; revision=20472
2007-01-18 11:02:26 +00:00
Ronnie Sahlberg
3e9ac49497 check if we have a finfo before dereferencing it later in PROTO_ITEM_IS_HIDDEN()
this prevents wireshark from crashing on X Liu's kerberos capture files


svn path=/trunk/; revision=20464
2007-01-17 21:05:44 +00:00
Tomas Kukosa
92d8d4e9b4 do not ignore invisible tree, it can break tree creation for coloring/filtering
svn path=/trunk/; revision=20404
2007-01-12 10:21:02 +00:00
Jaap Keuter
f8422ab7db Extending true_false_string support
- Separate tfs.[ch]
- Add larger sample collection
- Properly export DATA

svn path=/trunk/; revision=20373
2007-01-10 07:47:00 +00:00
Guy Harris
44c0624bd9 Add a WIRESHARK_RUN_FROM_BUILD_DIRECTORY environment variable on UN*X;
if set, and if the program isn't running with additional privileges,
it'll treat the directory in which the program is found as the data
directory.

If, on Windows, the version-number subdirectory of {data
directory}\plugins doesn't exist (which is assumed to mean that the
program is being run from the build directory), or if, on UN*X,
WIRESHARK_RUN_FROM_BUILD_DIRECTORY is set, the plugin directory is the
"plugins" subdirectory of the data directory, and all subdirectories of
that directory are scanned for plugins, as the "plugins" subdirectory of
the build directory contains subdirectories for the plugins; this means
that if we're running from the build directory, we'll find the plugins
we built in the build tree.

When generating the wireshark-filter man page, run tshark with
WIRESHARK_RUN_FROM_BUILD_DIRECTORY set, so it uses the plugins from the
build to generate the list of filters.

svn path=/trunk/; revision=20261
2007-01-02 06:49:40 +00:00
Ronnie Sahlberg
b7817c4e37 proto_tree_set_string() no longer needs an already_allocated parameter since it is now always FALSE.
This should mean that all fvalue_set() for FT_STRING[Z] are always with already_copied==FALSE

(funny that we never saw someone trying to g_free("[ Null ]") which might have happened before)



svn path=/trunk/; revision=20245
2006-12-30 00:41:41 +00:00
Ronnie Sahlberg
62040d3638 make the FT_STRINGZ case in proto_tree_new_item() use ep allocated memory
svn path=/trunk/; revision=20244
2006-12-30 00:36:29 +00:00
Ronnie Sahlberg
ee4ceb8947 make proto_tree_set_string_tvb use ep allocated memory and thus push the memory allocation/free for this field down into ftype-string.c
svn path=/trunk/; revision=20243
2006-12-30 00:27:33 +00:00
Ronnie Sahlberg
459d5f66a4 use ep allocated memory for the string in proto_item_append_string and let ftype-string.c handle the allocation/freeing of storage by setting already_copied to FALSE
svn path=/trunk/; revision=20240
2006-12-29 23:05:55 +00:00
Ronnie Sahlberg
8fc740a53e hmm
best to revert this for a while.



revert all changes from previous patch.



svn path=/trunk/; revision=20195
2006-12-22 09:01:12 +00:00
Ronnie Sahlberg
8433f6d589 change some slab allocated memory into ep/emem allocated structures instead.
this primarily removes code and simplifies (==eliminates) the need to track the data that is allocated and should potentially be slightly faster than a slab allocator.
however these functions are called A LOT so there might be a performance hit when using emem with full debugging canary values and all the bells and whistles activated.


this change also makes any future attempt to parallellize dissection of frames easier if we just make the ep allocator allocate from a threads specific ep pool.
(something we would have to do anyway to make ep allocations multithreaded)



this works in all my tests so far but needs more test coverage.



svn path=/trunk/; revision=20194
2006-12-22 08:35:43 +00:00
Ronnie Sahlberg
41c258daf3 create a nice helper to dissect bitmasks and implement some test useage of it in the scsi dissector
svn path=/trunk/; revision=20002
2006-11-27 14:50:23 +00:00
Guy Harris
d3fed959bc Have separate proto_construct_match_selected_string() and
proto_can_match_selected() routines, to more clearly separate the two
functions - but have them both call the same underlying routine, so
they both make the same decisions as to whether a match-selected string
can be constructed or not.

svn path=/trunk/; revision=19976
2006-11-24 18:25:23 +00:00
Guy Harris
37a6c02697 Rename proto_construct_dfilter_string() to
proto_construct_match_selected_string() to indicate what it does - and
have it return a Boolean indication of whether the string could be
built, returning the string through a pointer, and, if that pointer is
null, have it just return the Boolean and not construct the string.

Get rid of proto_can_match_selected() -
proto_construct_match_selected_string() can be used for that, which
means we have only one piece of code that knows whether a "match
selected" string can be constructed or not.

Have proto_construct_match_selected_string() support matching
zero-length FT_NONE (and FT_PCRE, but that shouldn't happen) fields even
if there's no epan_dissect_t, as such a match just checks whether the
field is present.

svn path=/trunk/; revision=19967
2006-11-23 21:16:46 +00:00
Guy Harris
621c7fe650 When checking whether a field supports "match selected", do the same
checks that we do when we try to construct the filter expression for
"match selected" - this means we don't just assert that all FT_NONEs are
filterable, as they aren't.

svn path=/trunk/; revision=19961
2006-11-23 00:15:49 +00:00
Guy Harris
8532eef3c6 Make the "standard" case in proto_can_match_selected() and
proto_construct_dfilter_string() the default, so you add explicit cases
only when the type needs to be treated specially, so we don't end up
with types where we forget to have a case.

svn path=/trunk/; revision=19959
2006-11-22 22:11:38 +00:00
Martin Mathieson
268a3dff57 Make FT_STRINGZ items work as apply/prepare as filter menu items
svn path=/trunk/; revision=19936
2006-11-20 14:53:22 +00:00
Gerald Combs
fe557f6296 Throw an exception if we try to add more than a million items to the tree.
svn path=/trunk/; revision=19767
2006-11-01 20:32:23 +00:00
Gilbert Ramirez
63ec12f392 When processing '-G fields', ignore the "proto_tree_add_text"
pseudo-field by looking at the ID for hf_text_only. Apparently
some fields really don't have 'name' fields, but we still want
their info to be dumped out.

svn path=/trunk/; revision=19763
2006-10-31 22:00:41 +00:00
Gerald Combs
9e23f31e5f Add support for reading from stdin under Windows. Based on a patch sent
in last year by Gianluca Varenni.

Add partial support for reading from named pipes (currently disabled).

Move utf_8to16() and utf_16to8() to a separate module (unicode-utils.[ch])
so that we don't have to cut and paste code in dumpcap.c.

Fix up whitespace.

svn path=/trunk/; revision=19291
2006-09-22 21:14:54 +00:00
Tomas Kukosa
539102ca60 - new function ssl_dissector_delete()
- register H.225.0 over TLS (configurable port 1300)
- register SIP over TLS (fixed port 5061)
- new function proto_tree_get_root()

svn path=/trunk/; revision=19059
2006-08-28 07:05:02 +00:00
Martin Mathieson
f8aadddf70 Make apply-as-filter strings work for FT_UINT_STRING (rather than using frame[...])
svn path=/trunk/; revision=18969
2006-08-21 11:45:37 +00:00
Martin Mathieson
0669def03d Fix for bug 1023 (problem with 'apply as filter' strings)
svn path=/trunk/; revision=18817
2006-08-02 09:14:31 +00:00
Ronnie Sahlberg
64fba459da from martin m
Hi,

This patch allows FT_NONE items to be built into filter expressions
(i.e. testing for their presence or absence rather than comparing with a
value) using the Apply|Prepare a Filter menus.  What drove me to add
this was having to type in !tcp.analysis.out_of_order.

Does this seem reasonable?

Regards,
Martin




svn path=/trunk/; revision=18782
2006-07-22 03:24:28 +00:00
Gerald Combs
20093fdaa4 snprintf -> g_snprintf. Fix up whitespace.
svn path=/trunk/; revision=18776
2006-07-20 21:29:45 +00:00
Guy Harris
f6f7bd756d The joys of the C switch statement - you have to remember to use
"break;" between cases except in those rare situations where you *want*
fallthrough.

svn path=/trunk/; revision=18550
2006-06-22 21:55:24 +00:00
Anders Broman
996d4db495 Ethereal->Wireshark
svn path=/trunk/; revision=18234
2006-05-28 19:49:07 +00:00
Ronnie Sahlberg
89f022b12b name change
svn path=/trunk/; revision=18197
2006-05-21 05:12:17 +00:00
Guy Harris
3b34a4f260 Squelch a compiler warning (for a problem that doesn't actually occur).
svn path=/trunk/; revision=17758
2006-03-29 21:53:26 +00:00
Luis Ontanon
850dfe8fa2 add proto_all_finfos() that will return a GPtrArray containing every finfo found in a tree.
svn path=/trunk/; revision=17741
2006-03-27 19:28:02 +00:00
Tomas Kukosa
923855bb20 new FT_GUID handling - big/little endian supported
svn path=/trunk/; revision=17566
2006-03-10 11:58:22 +00:00
Lars Roland
e271ba9a3c Display g_error messages in the console window unconditionally, if preferences aren't loaded yet.
This way we ensure that errors are displayed during protocol registration.

Use g_error instead of g_warning, if not allowed characters are used in display filter names for protocols. Extend the error message in this case.

svn path=/trunk/; revision=17248
2006-02-11 03:50:25 +00:00
Guy Harris
55c64cec5e Add "proto_tree_add_XXX_format_value()" routines, which are like the
"proto_tree_add_XXX_format()" routines except that the format doesn't
have to include the field name - the field name, followed by ": ", are
put into the representation string, followed by the result of the
formatting, so you just format the value with the format string, not the
entire representation.

svn path=/trunk/; revision=17221
2006-02-09 04:18:23 +00:00
Jörg Mayer
b446d51eb1 Didier Gautheron:
proto.c uses the wrong pointer in error msg.

Me:
        Be more verbose in case of illegal characters when
        registering filter names.

svn path=/trunk/; revision=16986
2006-01-10 16:19:56 +00:00
Jörg Mayer
9a490f4b73 Jaap Keuter:
While looking into bug 239 I found a type mismatch in proto.c. Even
though tree_is_expanded is defined as a (gboolean *) the memory
allocation is carried out using sizeof (gint *). The attached patch
fixes this.


svn path=/trunk/; revision=16877
2005-12-22 01:36:42 +00:00
Tomas Kukosa
a5bfb48c2f OBJECT IDENTIFIER name resolution moved to oid_resolv.c
svn path=/trunk/; revision=16699
2005-12-06 11:45:55 +00:00
Guy Harris
46325167d9 Check for a null blurb pointer for a field, as is done in some other
locations, and initialize the blurb field to NULL for protocols, now
that we support the blurb being a null pointer.

svn path=/trunk/; revision=16672
2005-12-04 04:22:43 +00:00
Tomas Kukosa
dcae7d303f new field type FT_OID for OBJECT IDENTIFIERs
svn path=/trunk/; revision=16652
2005-12-02 13:16:58 +00:00
Guy Harris
cdd6ccea1d Don't pass signed characters to the <ctype.h> macros.
svn path=/trunk/; revision=16457
2005-11-10 07:42:23 +00:00
Ulf Lamping
820aaac6b0 MSVC warning fixed:
proto.c(4694) : warning C4101: 'stringified' : unreferenced local variable

svn path=/trunk/; revision=16381
2005-11-02 20:50:54 +00:00
Guy Harris
cbce856e9e When printing the code for a display filter:
print register numbers as unsigned (they're guint32);

	when printing a PUT_FVALUE instruction, show the value as well
	as the type of the value.

That requires that a bunch of types get to_repr methods; add them for
PCRE (FTREPR_DFILTER-only - show the regular expression as text),
tvbuffs (FTREPR_DFILTER_only - show the data as a hex string), integral
types, string types other than FT_STRING, and FT_IPv6.

That means we can use fvalue_to_string_repr() for FT_IPXNET and FT_IPv6
in proto_construct_dfilter_string(), and that we don't need to handle
integer and floating types specially in MATE.

Fix some problems with the PCRE execution code for tvbuff types.

svn path=/trunk/; revision=16369
2005-10-31 02:42:22 +00:00
Guy Harris
c72ffd259d Move the ptvcursor.c code to epan/proto, and make ptvcursor_add() handle
FT_UINT_BYTES and FT_UINT_STRING correctly when the tree argument is
null (which involves carving proto_tree_add_item() into bits and having
both ptvcursor_add() and proto_tree_add_item() call those bits).

svn path=/trunk/; revision=16287
2005-10-22 05:43:09 +00:00
Guy Harris
ef966c3377 If we don't want to dump core when a field is registered twice, at least
make the message give enough information to give us some hope of finding
the offending field.

svn path=/trunk/; revision=16179
2005-10-10 18:06:50 +00:00
Guy Harris
f6ef22c553 Have show_exception() take a "const char *" as its exception message,
and not free the string to which it points.  Pass to
REPORT_DISSECTOR_BUG() strings allocated with ep_strdup_printf(), so
that they're freed automatically.

svn path=/trunk/; revision=16039
2005-09-28 16:16:37 +00:00
Olivier Biot
3452023b80 The TRY_TO_FAKE_THIS_ITEM() speed optimization has a side effect in that it
will only process FT_PROTOCOL fields. As a result, proto_item_append_string()
calls may throw a dissector exception, as only a FT_STRING or FT_STRINGZ can be
appended to with this call.

In order to prevent these dissector assertions, silently return from the append
call if the field is a FT_PROTOCOL.

Note that when the tree is visible, the updates of the fields occur normally,
as expected.

svn path=/trunk/; revision=16035
2005-09-28 07:08:57 +00:00
Anders Broman
cb932a2514 From Peter Johansson
I added a description for the call to DISSECTOR_ASSERT in proto.c to be 
printed to stderr.

svn path=/trunk/; revision=15802
2005-09-14 19:14:23 +00:00
Guy Harris
25c4bc9379 Replace tvb_memcpy() calls that extract IPv4 addresses into a guint32,
and that extract IPv6 addresses into a "struct e_in6_addr", with
tvb_get_ipv4() and tvb_get_ipv6() calls - except for some that we
remove, by using proto_tree_add_item(), rather than replacing.

Have epan/tvbuff.h include epan/ipv6-utils.h, to define "struct
e_in6_addr" (not necessary to declare the tvbuff routines, but including
it there means "struct e_in6_addr" is guaranteed to be defined before
those declarations, so we don't get compiler complaints if we define it
*after* those declarations).

svn path=/trunk/; revision=15758
2005-09-11 21:25:37 +00:00
Ulf Lamping
642467ad5c I'm adding the "Expert Info" prototype now, as it seems to be in a state where others might have a look and probably already find it useful :-). Anyway, we can easily disable it at one or two places in the code if it get's in our way of a new release.
Please see: http://wiki.ethereal.com/Development/ExpertInfo for a complete overview of the intended feature and it's current state of implementation.

While I'm working on this, I've also added some more status result codes to the DCE/RPC and DCOM dissectors.

svn path=/trunk/; revision=15754
2005-09-11 16:55:34 +00:00
Guy Harris
266e1a3491 Add "tvb_get_ipv4()" and "tvb_get_ipv6()" addresses, to fetch IPv4 and
IPv6 addresses.  Use "tvb_get_ipv4()" in the WINS Replication dissector,
so that it gets the right answer on little-endian *AND* big-endian
machines.

svn path=/trunk/; revision=15753
2005-09-10 19:43:41 +00:00
Tomas Kukosa
c53bf17cda new BASE_DEC_HEX and BASE_HEX_DEC displaying numbers in "dual" format
svn path=/trunk/; revision=15682
2005-09-05 10:56:41 +00:00
Ronnie Sahlberg
5521c10492 hmmm i though i removed some sprintf in the previous commit apparently not.
remove all sprintf and replace with g_snprintf()


svn path=/trunk/; revision=15652
2005-09-01 09:29:21 +00:00
Ronnie Sahlberg
55add7077f convert one sprintf into g_snprintf()
at the same time, make proto_construct_dfilter_string() return an emem allocated string.
This fixes a tiny memleak in print.c that never freed the string returned by this function.


svn path=/trunk/; revision=15651
2005-09-01 09:03:29 +00:00
Ulf Lamping
994496a184 several times replacing:
sprintf -> g_snprintf
snprintf -> g_snprintf
vsnprintf -> g_vsnprintf
strdup -> g_strdup

svn path=/trunk/; revision=15412
2005-08-18 19:31:15 +00:00
Ulf Lamping
495eb1b788 snprintf -> g_snprintf
svn path=/trunk/; revision=15398
2005-08-17 23:10:28 +00:00
Gerald Combs
2f2a3fedd3 In packet-sflow.c, don't pass a NULL value pointer to
proto_tree_add_ipv6().  Add tree items for the extended router source
and dest mask, and fix offsets.  These changes appear to be correct,
but I don't have a valid capture with extended router data.

In proto.c, throw a dissector error if we try to pass a NULL value to
various proto_tree_set_*() routines.

Fixes bug 356.


svn path=/trunk/; revision=15375
2005-08-16 16:04:30 +00:00