Commit Graph

683 Commits

Author SHA1 Message Date
Jakub Zawadzki ac3f0d7483 cleanup [u]int fill proto with value_string function
Create generic int/uint fill functions from hfinfo_[u]int_value_format.

XXX: to be honest I don't get it why if dev picked up BASE_DEC_HEX and has value string we're truncating it to BASE_DEC...

svn path=/trunk/; revision=50197
2013-06-27 19:17:22 +00:00
Jakub Zawadzki c36a384b25 cleanup int/uint fill proto functions.
- hfinfo_uint_value_format(), hfinfo_int_value_format() formats value instead of returning proper format
- remove hfinfo_int_format(), hfinfo_uint_format

svn path=/trunk/; revision=50193
2013-06-27 18:40:08 +00:00
Jakub Zawadzki 3f5665a6b1 Add functions hf_try_val_to_str[_const]
svn path=/trunk/; revision=50190
2013-06-27 17:26:23 +00:00
Jakub Zawadzki f60dd85784 Pass hfinfo and not hfindex to internal proto functions.
svn path=/trunk/; revision=50015
2013-06-18 20:52:31 +00:00
Evan Huus 64a4df1963 Fix the integer overflow case Jakub caught in
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=3290#c26

Also use indentation consistent with the rest of the file.

svn path=/trunk/; revision=49652
2013-05-31 13:08:03 +00:00
Jeff Morriss 0e61a0ec05 (Finally!) check in part of Didier's patch to fix
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=3290
(TRY_TO_FAKE_THIS_ITEM disables bounds errors):

Before calling TRY_TO_FAKE_THIS_ITEM() check if the length given (or, in
the case of FT_UINT_{STRING,BYTES}, the length we retrieve from the TVB)
exceeds what's left in the TVB.

Do this only for proto_tree_add_item() for now (it's the most commonly used
and thus the biggest trouble maker in this area).

Similar changes for other APIs will come later (if nothing blows up).  Despite
the fuzz failures this bug has caused I'm not sure about back-porting it...

svn path=/trunk/; revision=49644
2013-05-31 01:46:28 +00:00
Jeff Morriss f89f4cda6c Fix the fuzz failure reported in https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8724 :
Make proto_tree_children_foreach() NULL-tree safe.  Crash is new since r49602
took out an if(tree).

svn path=/trunk/; revision=49607
2013-05-29 03:19:31 +00:00
Michael Mann 0d1a4b2920 Add expert info configuration framework. Bug 2412 (https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=2412).
Expert info "fields" can now be registered/addressed by name.  Right now, the basic framework allows expert info fields to become "display filters".  However more could be done, like user preferences overriding default severity level, speeding up expert info dialog load time by not needing to redissect a file, etc.

Long term goal is to have all expert_info filterable and have the functionality of expert_add_info_format() include the "registered index".  expert_add_info_format_text() is the workaround until all current calls to expert_add_info_format() have been updated with either expert_add_info() or expert_add_info_format_text().  Then the remaining expert_add_info_format_text() will be renamed to expert_add_info_format().

svn path=/trunk/; revision=49559
2013-05-24 17:59:36 +00:00
Evan Huus 0c2e3fb3a7 From Florian Forster via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8472
Starting with collectd 5.0, the representation of time has changed. The new
fields "TIME_HR" and "INTERVAL_HR" contain the seconds since the epoch in steps
of 2^{-30} seconds (roughly nanosecond precision). This patch adds support for
both time formats.

From me:
Permit using 64-bit integers with value-strings, as this protocol actually 
seems to needs it. We'll misbehave for named values > 2^32 but there aren't any
of those despite the field being 64 bits.


svn path=/trunk/; revision=49357
2013-05-17 00:06:26 +00:00
Chris Maynard 4ac2441d7c Coalesce "-G fields2" and "-G fields3" into "-G fields", as discussed on -dev.
See: http://www.wireshark.org/lists/wireshark-dev/201304/msg00015.html

svn path=/trunk/; revision=48753
2013-04-05 21:58:43 +00:00
Evan Huus 37600a157b Rename value string (and similar) functions to use a consistent pattern. This
was done using textual search+replace, not anything syntax-aware, so presumably
it got most comments as well (except where there were typos).

Use a consistent coding style, and make proper use of the WS_DLL_* defines.

Group the functions appropriately in the header.

I ended up getting rid of most of the explanatory comments since many of them
duplicated what was in the value_string.c file (and were out of sync with the
recent updates I made to those in r48633). Presumably most of the comments
should be in the .h file not the .c file, but there's enough churn ahead that
it's not worth fixing yet.

Part of https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8467

svn path=/trunk/; revision=48634
2013-03-29 00:26:23 +00:00
Anders Broman bd61beffaa Add const casts and make local functions static.
svn path=/trunk/; revision=48521
2013-03-24 10:53:31 +00:00
Evan Huus bbb4058954 Remove slab.h and replace its last remaining usage with glib slices.
Take the opportunity to deduplicate some code that was common to both an
if block and its else block.

svn path=/trunk/; revision=48227
2013-03-10 14:52:14 +00:00
Evan Huus 122b7cb6df Remove the emem slab feature (sl_* functions) completely, replacing it with
glib memory slices.

- We weren't doing anything with the emem slab that couldn't be done with glib
  slices.
- Removes a fair bit of code as well as one debugging environment variable.
- Glib slices are much cache-friendlier and are multi-threading friendly (if
  we ever go there).
- Allows glib to actually return slices to the OS on occasion. The emem slab
  would hold onto its memory forever which resulted in a great deal of wasted
  memory after closing a large file.

svn path=/trunk/; revision=48218
2013-03-09 20:02:19 +00:00
Evan Huus 8569907b9f From Steve Magnani via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8339
This patch adds a new public API, proto_tree_add_bitmask_len(), identical to
proto_tree_add_bitmask() but using a caller-supplied length rather than an
inferred one. The underlying proto_item_add_bitmask_tree() code is modified
to display only fields for which all defined bits are available, and to
ignore bits that have no corresponding defined field ("forward compatibility"
cases).

From me: minor edits, see the bug for more details.

svn path=/trunk/; revision=48049
2013-03-04 14:18:18 +00:00
Anders Broman c5ee81098c From beroset:
remove C++ incompatibilities

https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8416

svn path=/trunk/; revision=48006
2013-03-02 12:10:56 +00:00
Guy Harris 6b629c4d92 Move show_exception() and show_reported_bounds_error() to
epan/show_exception.c, as it's used outside
epan/dissectors/packet-frame.c.  Update their callers to include
<epan/show_exception.h> to get their declaration.

Add a CATCH_NONFATAL_ERRORS macro that catches all exceptions that, if
there's more stuff in the packet to dissect after the dissector call
that threw the exception, doesn't mean you shouldn't go ahead and
dissect that stuff.  Use it in all those cases, including ones where
BoundsError was inappropriately being caught (you want those passed up
to the top level, so that the packet is reported as having been cut
short in the capture process).

Add a CATCH_BOUNDS_ERRORS macro that catches all exceptions that
correspond to running past the end of the data for a tvbuff; use it
rather than explicitly catching those exceptions individually, and
rather than just catching all exceptions (the only place that
DissectorError should be caught, for example, is at the top level, so
dissector bugs show up in the protocol tree).

Don't catch and then immediately rethrow exceptions without doing
anything else; just let the exceptions go up to the final catcher.

Use show_exception() to report non-fatal errors, rather than doing it
yourself.
 
If a dissector is called from Lua, catch all non-fatal errors and use
show_exception() to report them rather than catching only
ReportedBoundsError and adding a proto_malformed item.

Don't catch exceptions when constructing a trailer tvbuff in
packet-ieee8023.c - just construct it after the payload has been
dissected, and let whatever exceptions that throws be handled at the top
level.

Avoid some TRY/CATCH/ENDTRY cases by using checks such as
tvb_bytes_exist() before even looking in the tvbuff.

svn path=/trunk/; revision=47924
2013-02-27 22:43:54 +00:00
Bill Meier 3f70cb4406 Add an "Unregistered hf!" hint to DISSECTOR_ASSERT((guint)hfindex < gpa_hfinfo.len).
svn path=/trunk/; revision=47611
2013-02-10 18:38:46 +00:00
Bill Meier cfff564398 Add 'proto_registrar_get_id_byname()' accessor.
svn path=/trunk/; revision=47540
2013-02-07 22:04:02 +00:00
Pascal Quantin f78791d7d2 Revert changes committed by error in r47433
svn path=/trunk/; revision=47442
2013-02-02 09:02:11 +00:00
Pascal Quantin f26b250595 Fix https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8290 :
Allow up to 64 OPTIONAL / DEFAULT components per SEQUENCE

svn path=/trunk/; revision=47433
2013-02-01 22:44:14 +00:00
Evan Huus bff31de434 Add modelines
svn path=/trunk/; revision=47130
2013-01-17 03:37:41 +00:00
Evan Huus e49285b9e4 Null the finfo pointer after we free it. Reduces (but does not completely fix)
the errors from bug https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8197

svn path=/trunk/; revision=47114
2013-01-16 14:14:05 +00:00
Evan Huus e4f46ce55f Take a wild guess at what might be causing
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8197

It can't hurt, in any case.

svn path=/trunk/; revision=47084
2013-01-14 22:29:23 +00:00
Pascal Quantin ac972a58b2 From Nickolai via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8167 :
Fix an incorrect logical check for no_of_bits!=0 in proto_tree_add_split_bits_item_ret_val()

svn path=/trunk/; revision=46958
2013-01-05 23:49:24 +00:00
Gerald Combs c9d4240196 Add a context menu to the packet list and fill in the
apply/match-related actions. Have matchSelectedFilter figure out our
filter strings, which lets us remove duplicate code in the apply/match
action slots. Remove some leftover code from an experiment.

Adjust the temporary message colors in the status bar and label stack.

Add a NULL check to construct_match_selected_string.

svn path=/trunk/; revision=46449
2012-12-07 20:08:00 +00:00
Jeff Morriss da4442d638 Use g_error() to generate an explanatory message (and a core) when
ABORT_ON_DISSECTOR_BUG is set and we pass MAX_TREE_ITEMS.

If ABORT_ON_DISSECTOR_BUG is set and we get an unregistered hf, generate
an explanatory message (and a core).

svn path=/trunk/; revision=46323
2012-12-02 03:34:06 +00:00
Anders Broman 94fb28dfa1 Check if we have a filter name.
svn path=/trunk/; revision=46077
2012-11-18 18:12:50 +00:00
Jakub Zawadzki bdcdec560c Manually revert r45669
svn path=/trunk/; revision=45884
2012-11-03 20:51:19 +00:00
Jakub Zawadzki ff03289b1a Remove const specifier from argument.
svn path=/trunk/; revision=45872
2012-11-02 11:44:50 +00:00
Jeff Morriss d97b4ec325 Fix problem where NTP times with the high-bit set to 0 (which RFC 2030
chapter 3 has redefined to mean years *after* 2036) were being represented as
times prior to 1968.

This has been broken since r35840 (apparently not many people see NTP
timestamps beyond 2036 :-)): apparently I over-optimized packet-ntp's code
while copying it into proto.c: that temporary variable is necessary for the
unsigned math to happen correctly before assigning the result to the (signed)
time_t.

Leave a comment in the code indicating why the temporary variable is needed.
Copy that comment to packet-ntp.c.

Fix the same problem in ntp_to_nstime(): it also did not use the temporary variable.

svn path=/trunk/; revision=45790
2012-10-25 22:26:52 +00:00
Jakub Zawadzki 6dc977b7d2 - Allow reseting edt with new function epan_dissect_reset(),
- initialize edt once in few places, and later reset it after dissecting
  (add_packet_to_packet_list),
- revert r45667, probably no longer needed.

svn path=/trunk/; revision=45669
2012-10-20 16:44:55 +00:00
Jakub Zawadzki ef72e0eed3 - Free root node and tree data outside proto_tree_free_node,
- remove #if 0 code.

svn path=/trunk/; revision=45668
2012-10-20 16:38:55 +00:00
Jeff Morriss 3729335973 We always HAVE_CONFIG_H so don't bother checking whether we have it or not.
svn path=/trunk/; revision=45016
2012-09-20 01:48:30 +00:00
Martin Mathieson d729f21ad2 Revert r45005.
svn path=/trunk/; revision=45006
2012-09-19 16:56:59 +00:00
Martin Mathieson a232ae9242 Make proto_item_append_string() behave sanely, and use it in a few more
dissectors.

svn path=/trunk/; revision=45005
2012-09-19 11:58:32 +00:00
Jeff Morriss f90f3f3438 Don't fetch the value twice (unsigned integer case). Fix a cut-n-pasteo.
svn path=/trunk/; revision=44757
2012-09-03 19:33:45 +00:00
Jakub Zawadzki 1db996e051 MT: move global field_info_tmp to tree_data_t
svn path=/trunk/; revision=44747
2012-09-03 12:00:08 +00:00
Evan Huus 2af3ce88bd From Martin Kupec via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7658
Don't pass string-related encoding flags to get_uint_value() when handling
FT_UINT_STRING fields. This was causing all such fields with non-ASCII
encodings to use little-endian encoding, even when OR-ed with ENC_BIG_ENDIAN.

(not actually the topic of the above bug, but discovered during LLRP protocol
 testing, which was the topic of the above bug)

svn path=/trunk/; revision=44619
2012-08-23 02:48:26 +00:00
Gerald Combs a9f5507086 Keep field_info_tmp from being prematurely freed. Better fix for bug 7621.
svn path=/trunk/; revision=44478
2012-08-13 22:43:17 +00:00
Gerald Combs 517ef559c2 Fix a copy/paste error which triggered bug
svn path=/trunk/; revision=44456
2012-08-12 15:48:36 +00:00
Gerald Combs 72ddab2c98 Instead of calling DISSECTOR_ASSERT() whenever we get an invalid length,
add an expert item. For unusable lengths throw ReportedBoundsError but
try to continue on otherwise.

Based on a patch from Mike Morrin in bug 3884.

svn path=/trunk/; revision=44439
2012-08-10 23:05:04 +00:00
Gerald Combs cd3cca7edc Make the corresponding packet_info available to each tree item. This
lets us pass a NULL pinfo to expert_add_info_format() and
expert_add_undecoded_item(), which makes it possible to use those
routines deep in the bowels of many dissectors. As a proof of concept
remove the recent pinfo additions to packet-afp.c. This should also make
it easier to fix bug 3884.

svn path=/trunk/; revision=44435
2012-08-10 20:33:01 +00:00
Jeff Morriss d380312c16 Move the pi==NULL test into TRY_TO_FAKE_THIS_REPR.
Since the tree will only be NULL here if someone messed up in proto.c and
since pi will only be NULL if tree is NULL, assert out if either of them are
NULL (don't use DISSECTOR_ASSERT() since such a condition wouldn't be the
dissector writer's fault).

Use TRY_TO_FAKE_THIS_REPR in ptvcursor_add_text_with_subtree().

We've had TRY_TO_FAKE_THIS_REPR for a long time now, don't wrap it in #if 1.

new_field_info() doesn't return NULL so don't check for it returning NULL in
ptvcursor_add().

svn path=/trunk/; revision=44322
2012-08-08 03:02:27 +00:00
Guy Harris 835111692f From Richard Stearn: support for AX.25, including support for
LINKTYPE_AX25.

svn path=/trunk/; revision=44211
2012-08-02 16:54:43 +00:00
Jakub Zawadzki c852982ebc wrappers for label filling (with information about string truncation)
svn path=/trunk/; revision=44131
2012-07-30 10:52:20 +00:00
Jeff Morriss 3fa645481f Followup to r43176, r43177, r43178, and r43179: prohibit FT_*INT*
with BASE_NONE (or other future display values).

Don't use BASE_NONE with FT_UINT32s in the expert info fields.

svn path=/trunk/; revision=43412
2012-06-20 17:25:53 +00:00
Jakub Zawadzki 85aad38347 Add proto_tree_add_unicode_string() to add UTF-8 string to tree.
Convert some proto_tree_add_string_format_value(..., val, "%s", val); to use new function.

svn path=/trunk/; revision=43363
2012-06-19 14:32:24 +00:00
Bill Meier 08807fc48d Fix "BASE_CUSTOM field is incorrectly formatted when applied as a column".
Resolves Bug #6671 - https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6671

svn path=/trunk/; revision=43186
2012-06-10 19:23:50 +00:00
Bill Meier 2968fcffa8 Fix bug wherein values in a custom column aren't displayed as a value_string (when appropriate).
Essentially: BASE_CUSTOM is "base_display_e value" (like BASE_DEC) *not* a bit-mask
 (like BASE_EXT_STRING).
Bug introduced in SVN #39902

svn path=/trunk/; revision=43184
2012-06-10 15:10:11 +00:00
Bill Meier d01cb597c9 Don't crash in 'proto_registrar_dump_values' if BASE_EXT_STRING and no extended string.
Note: this shows up when doing 'tshark -G values'.

BASE_EXT_STRING with a missing extended string does *not* cause issues
with the normal display code:

ToDo (eventually): Add some code to enforce requirement that hf[] entries with BASE_EXT_STRING
(or BASE_RANGE_STRING) set must also have a 'strings' value.



svn path=/trunk/; revision=43150
2012-06-07 21:10:02 +00:00
Chris Maynard 3e52049ff5 Fix Coverity CID's 702388 and 702422: OVERFLOW_BEFORE_WIDEN.
svn path=/trunk/; revision=42886
2012-05-28 18:37:10 +00:00
Jakub Zawadzki 5020a3f170 While iterating over string characters don't use strlen(), but check for NUL.
svn path=/trunk/; revision=42883
2012-05-28 15:59:00 +00:00
Bill Meier 12ba85a2a4 Rework proto_registrar_dump_protocols() to prevent a Clang scan-build "de-reference of a null poiunter" warning
(In practice, bug would not actually occur).

svn path=/trunk/; revision=42717
2012-05-19 16:07:50 +00:00
Jakub Zawadzki 91690d8a28 Fix string buffer overflow (bug #7029)
g_strlcpy() always return the size of strlen(src), so in case of truncation it could happen that offset_r > size or offset_e > size.
Fix it by adding new function protoo_strlcpy() which returns how many bytes was copied to dest buffer.


svn path=/trunk/; revision=42676
2012-05-17 10:18:53 +00:00
Guy Harris 7a87d7b6a3 Add ENC_UTF_16 and ENC_UCS_2. Note that UTF-16 and UCS-2 are not the
same, and that the routines to get "Unicode" strings are really doing
UCS-2 (and not doing anything about code values that aren't valid in
UCS-2 strings).

Have tvb_get_ephemeral_string_enc() separate cases for ASCII and UTF-8,
even though they're *currently* treated the same.

For FT_UINT_STRING, treat an encoding value of TRUE as meaning
"little-endian ASCII"; pass all other encodings through to
tvb_get_ephemeral_string_enc().

svn path=/trunk/; revision=42592
2012-05-11 23:55:54 +00:00
Guy Harris f1b11f62f8 proto_registrar_get_ftype() returns an FT_ value; make its return type
"enum ftenum" to reflect that, and fix the "switch doesn't handle XXX"
warnings that provokes.

svn path=/trunk/; revision=42579
2012-05-11 17:29:56 +00:00
Anders Broman 0cea399fda From Jakub Zawadzki: Use custom model in Filter Expression dialog.
svn path=/trunk/; revision=42411
2012-05-04 04:44:23 +00:00
Jakub Zawadzki e6f2751cdd Add support for checking conflicting entries in value_string_ext.
svn path=/trunk/; revision=42262
2012-04-26 15:33:46 +00:00
Anders Broman b02b6a932f From Evan Huus: Use Add DISSECTOR_ASSERT_HINT() macro. https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7142
svn path=/trunk/; revision=42148
2012-04-20 05:12:20 +00:00
Gerald Combs 8b3024e57c Make bit_offset in _tvb_get_bits64 and related functions unsigned. This
removes a potential buffer overflow and should fix a bunch of Coverity
errors mentioned in bug 6878.

We might want to do the same for no_of_bits.

svn path=/trunk/; revision=41945
2012-04-04 21:54:22 +00:00
Bill Meier ad9f8fffad Update a comment as to the number of Wireshark protocols;
Minor whitespace and formatting changes.

svn path=/trunk/; revision=41559
2012-03-15 14:15:48 +00:00
Bill Meier e0397b3811 Fix up a several REPORT_DISSECTOR_BUG messages to specify the correct function name;
Do general cleanup:
- Indentation & whitespace;
- Reformat long lines,
- & etc.

svn path=/trunk/; revision=41547
2012-03-14 17:11:39 +00:00
Stig Bjørlykke da8cd5d5bd Value can't be negative if no_of_bits == 0
svn path=/trunk/; revision=41507
2012-03-12 17:18:04 +00:00
Anders Broman 230eb02a41 From Sylvain Munaut: proto_tree_add_split_bits_item_ret_val doesn't handle signed value properly https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6920
svn path=/trunk/; revision=41419
2012-03-08 06:11:20 +00:00
Anders Broman bfcf193d2f Increase the size of the preallocated area for hf fields.
svn path=/trunk/; revision=41290
2012-03-02 09:28:30 +00:00
Jeff Morriss a146f5a2e2 (After a couple of years of warning about this), assert out if someone tries
to register an hf with an empty-string abbreviation.

svn path=/trunk/; revision=41280
2012-03-01 22:00:33 +00:00
Anders Broman b28516dc00 From Mike Morrin: A small patch to correct the name of the function proto_tree_add_split_bits_item_ret_val()
svn path=/trunk/; revision=41255
2012-03-01 07:01:15 +00:00
Anders Broman 597047d253 From Mike Morrin:
The attached patches add the ability to dissect split bit-strings as discussed under bug 6797.
proto_tree_add_split_bits_ret_val()
proto_tree_add_split_bits_crumb()

svn path=/trunk/; revision=41246
2012-02-29 17:13:43 +00:00
Jeff Morriss 21a422463e If WIRESHARK_ABORT_ON_DISSECTOR_BUG is set (in the environment) and we put more
than MAX_TREE_ITEMS in the tree, abort() out rather than throwing an exception.

svn path=/trunk/; revision=41009
2012-02-13 03:14:46 +00:00
Jeff Morriss 2f240acc2e Fix a couple of cut-n-pasteos.
svn path=/trunk/; revision=40711
2012-01-25 01:24:25 +00:00
Jörg Mayer 71520b8759 Remove obsolete GLIB_CHECK_VERSION(2,10,0) checks
svn path=/trunk/; revision=40490
2012-01-14 03:21:28 +00:00
Gerald Combs 3c1b8a6ca1 Add a "-G ftypes" option, which dumps our supprted FT_… names and
descriptions. Captitalize and fix up the descriptions. Use its output to
create the field type list in the wireshark-filter man page.

svn path=/trunk/; revision=40306
2011-12-27 20:35:41 +00:00
Stephen Fisher 4af334a549 Improve this error message (example output based on attachment in bug #6665):
OOPS: ',' in 'tpncp.fxs_ana,og_voltage_beading'

Now:

    Invalid character ',' in filter name 'tpncp.fxs_ana,og_voltage_beading'


svn path=/trunk/; revision=40256
2011-12-20 21:53:50 +00:00
Chris Maynard a71316964f Fix crash caused by trying to apply a field of type BASE_CUSTOM as a column. Fixes https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6503.
svn path=/trunk/; revision=39902
2011-11-17 15:57:44 +00:00
Guy Harris 4e2c6d9986 Use "%g" for float as well as double.
svn path=/trunk/; revision=39709
2011-11-02 03:45:18 +00:00
Stig Bjørlykke 447de1178d Allow signed integers displayed as BASE_HEX_DEC.
svn path=/trunk/; revision=39571
2011-10-25 19:04:10 +00:00
Stig Bjørlykke 48f714096a Display BASE_DEC_HEX correct for int64/uint64.
svn path=/trunk/; revision=39569
2011-10-25 17:58:08 +00:00
Stig Bjørlykke 9cc2219ff8 Added missing support for FT_INT64 in proto_tree_add_bits_format_value().
svn path=/trunk/; revision=39561
2011-10-25 10:55:52 +00:00
Stig Bjørlykke b5b8fadc6d Simplified code checking if FT_UINT64 is displayed as BASE_NONE.
svn path=/trunk/; revision=39560
2011-10-25 10:48:20 +00:00
Stig Bjørlykke a37dff8930 Allow signed integers displayed as DEC_HEX.
svn path=/trunk/; revision=39559
2011-10-25 10:48:11 +00:00
Stig Bjørlykke fdc15f6cd5 Fixed using signed 64-bits integer in custom column.
svn path=/trunk/; revision=39558
2011-10-25 10:48:03 +00:00
Stig Bjørlykke 9a4f284ed4 Revert "Allow value_strings for FT_INT64 and FT_UINT64.", as we
haven't generic support for value_strings for 64-bit values yet.

svn path=/trunk/; revision=39557
2011-10-25 10:26:30 +00:00
Stig Bjørlykke f3f1b20539 Allow value_strings for FT_INT64 and FT_UINT64.
svn path=/trunk/; revision=39556
2011-10-25 07:46:25 +00:00
Bill Meier 6a5895b2de Convert proto_tree_add_bitmask(), proto_tree_add_bitmask_text(), proto_tree_add_bitmask_tree() to have 'encoding' arg rather than 'little_endian' arg
svn path=/trunk/; revision=39538
2011-10-24 19:52:43 +00:00
Stig Bjørlykke d2922fb136 Use g_tree_steal to remove an entry without calling the destroy function.
This because we use the destroy function to determine same_name_hfinfo.

svn path=/trunk/; revision=39267
2011-10-05 11:44:19 +00:00
Stig Bjørlykke 21dbaea387 Add proto_unregister_field().
This can be used to unregister fields registered in dissector UAT's.

svn path=/trunk/; revision=39248
2011-10-04 10:12:55 +00:00
Stig Bjørlykke 64c2355b67 Removed the protocol registration updates in the splash screen for Python
dissectors, because it does not work as expected and causes an assert.

Added generic splash updates for python register and handoff instead.

This should fix bug 5431.

svn path=/trunk/; revision=39221
2011-10-02 16:19:55 +00:00
Anders Broman 00e46951ad In proto_tree_add_bits... use const guint encoding to be consistent with proto_tree_add_item().
svn path=/trunk/; revision=39163
2011-09-27 12:04:29 +00:00
Anders Broman ec41ae8a1b From Sylvain Munaut:
Add support for signed types in _proto_tree_add_bits_ret_val

https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6363

svn path=/trunk/; revision=39060
2011-09-20 11:29:53 +00:00
Anders Broman 54dc8d1f54 From Sylvain Munaut:
proto: Use fill_label_xxx helpers in _proto_tree_add_bits_ret_val

https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6329

svn path=/trunk/; revision=39026
2011-09-16 06:12:12 +00:00
Guy Harris 053c583fda Add some additional routine variants that handle string encodings, and
make FT_STRING and FT_UINT_STRING handle string encodings.

Get rid of FT_EBCDIC in favor of FT_STRING with ENC_EBCDIC.

Add some URLs for DRDA.

Clean up some stuff in TN3270 and TN5250, including using ENC_ values
for proto_tree_add_item().

svn path=/trunk/; revision=37909
2011-07-05 23:59:23 +00:00
Guy Harris ae7f40cbfc Add ENC_ values for UTF-8 and EBCDIC, support them for FT_STRINGZ
values, and use them in the MQ dissector, so EBCDIC strings are
displayed as such.

Fix up some other final arguments to proto_tree_add_item().

svn path=/trunk/; revision=37872
2011-07-03 01:40:12 +00:00
Stig Bjørlykke 7491b68a3a Make guy's fix in revision 37236 actually work:
"You cannot just make the "len" field of a GByteArray larger, if there's
no data to back that length; you can only make it smaller."

Two equal values are always equal!

This fixes bug 5941.

svn path=/trunk/; revision=37783
2011-06-25 14:58:06 +00:00
Stig Bjørlykke e2994a1b0d Make creating a display filter from a custom column defined as integer with
strings and BASE_NONE equal to selecting the filter from the tree entry.

svn path=/trunk/; revision=37720
2011-06-19 19:29:19 +00:00
Stig Bjørlykke 63e273c2c5 Handle BASE_NONE as BASE_DEC for filter expression in custom columns.
This fixes bug 6035.

svn path=/trunk/; revision=37705
2011-06-19 10:15:05 +00:00
Guy Harris 4447b23f6b Squelch some compiler warnings.
svn path=/trunk/; revision=37685
2011-06-16 18:34:17 +00:00
Bill Meier 4f420ef6cd Fix gcc 4.6 "set but not used [-Wunused-but-set-variable]" warnings
svn path=/trunk/; revision=37600
2011-06-07 22:28:55 +00:00
Jeff Morriss f3f9f2697f Make TVBs opaque for most users.
Convert TVB_RAW_OFFSET() and TVB_GET_DS_TVB() into functions.

svn path=/trunk/; revision=37422
2011-05-27 03:06:50 +00:00
Martin Mathieson af896ce356 Add a check that (plain) value_strings that are used in hf items don't have
any conflicting entries.  i.e. lots of value_strings have repeated items, but
for now only warn for cases where the same numeric value appears with a
different string.

Because this will slow down startup and output distracting warnings, it has been
#if 0'd out for now.  As discussed on the dev mailing list, it'd be good to
create a #define for developer/non-release builds so that tests such as this
can regularly be run.

svn path=/trunk/; revision=37274
2011-05-19 01:21:48 +00:00
Guy Harris aa392a40fe You cannot just make the "len" field of a GByteArray larger, if there's
no data to back that length; you can only make it smaller.

svn path=/trunk/; revision=37236
2011-05-18 07:20:45 +00:00
Guy Harris fc65604b7e Make some more routines not used outside epan/proto.c static.
svn path=/trunk/; revision=37235
2011-05-18 03:28:26 +00:00
Jakub Zawadzki 17f6352c2e Convert SLAB_-s, to sl_-API.
svn path=/trunk/; revision=37030
2011-05-09 12:52:55 +00:00
Alexis La Goutte 7d317e553b Add FT_EUI64 Field Type
* Remove proto_tree_add_eui64 function from 802.15.4 Dissector 
* Replace print_eui64/print_eui64 by eui64_to_str/get_eui64_name
* Update Documentation (README.dev)
* Add new function in libwireshark.def
* Support of encoding for tvb_eui64_to_str
* Use FT_EUI64 for ICMPv6, CAPWAP, Zbee ... dissector

svn path=/trunk/; revision=37015
2011-05-08 10:23:53 +00:00
Chris Maynard 50bad80299 Use g_strlcpy() instead of prohibited strncpy() to guarantee NULL-termination.
svn path=/trunk/; revision=36553
2011-04-11 13:38:32 +00:00
Stig Bjørlykke 332e0263ed strcpy -> strncpy.
Coverity 669.

svn path=/trunk/; revision=36543
2011-04-10 18:29:56 +00:00
Stig Bjørlykke 9e5a9badda Guard against NULL return from find_protocol_by_id().
svn path=/trunk/; revision=36393
2011-03-29 11:09:59 +00:00
Chris Maynard 15503bf4aa Don't use prohibited strncpy(). In this case, use g_strlcat() instead.
svn path=/trunk/; revision=36382
2011-03-28 16:42:25 +00:00
Stig Bjørlykke 33814e3b39 Added a FALLTHRU comment to avoid a coverity warning.
Coverity 480.

svn path=/trunk/; revision=36350
2011-03-26 15:24:36 +00:00
Guy Harris 5c3d724bca Clean up indentation.
svn path=/trunk/; revision=36213
2011-03-20 00:05:39 +00:00
Jeff Morriss 50e1634f4c Modify proto_tree_add_bytes_format() and proto_tree_add_bytes_format_value()
so that if the start_ptr is NULL the bytes are extracted from the given TVB
using the given offset and length.

Replace a bunch of:

proto_tree_add_bytes_format*(tree, hf, tvb, offset, length, tvb_get_ptr(tvb, offset, length), [...])

with:

proto_tree_add_bytes_format*(tree, hf, tvb, offset, length, NULL, [...])

svn path=/trunk/; revision=35896
2011-02-10 16:31:00 +00:00
Jeff Morriss b87a80f196 Add support for 4-byte NTP times (only the seconds) in proto_tree_add_item().
Use it in packet-diameter.c .  Eliminate an unnecessary local variable.

svn path=/trunk/; revision=35875
2011-02-08 02:38:51 +00:00
Guy Harris 4f7ae8bf3a For FT_{ABSOLUTE,RELATIVE}_TIME, make the rest of the encoding
orthogonal to the byte order.

This means that we can't just test for a non-zero encoding to determine
whether the format is big-endian or little-endian when we set the
field's endianness flag; instead, for the types where we accept any
non-zero value as meaning "litle-endian", map it to ENC_LITTLE_ENDIAN.

When we use ENC_TIME_NTP, OR in the byte order flag.  While we're at it,
in the dissectors that used ENC_TIME_NTP, update all the other encoding
items in proto_tree_add_item() calls to use the appropriate ENC_ value.

svn path=/trunk/; revision=35841
2011-02-07 08:18:12 +00:00
Jeff Morriss 8fc6e28b6a Add support for passing NTP times to proto_tree_add_item() by specifying
an encoding of ENC_TIME_NTP.

This increases the number of decimal places shown for NTP times (from 6 to 9),
so round the value to the nearest microsecond.  (I can't tell if NTP times are
ever more precise than a microsecond--this rounding is mainly to be closer to
the old behavior.)

Use proto_tree_add_item() for some NTP times.

svn path=/trunk/; revision=35840
2011-02-07 03:31:40 +00:00
Anders Broman 758dc5b9a3 Fix Bug 5500 - failed assertion in ISAKMP dissector (proto.c:4002)
By reinseringt the check in proto_tree_move_item() if tree vissible
removed in http://anonsvn.wireshark.org/viewvc?view=rev&revision=32443
Hopefully not breaking tshark again.

https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5500

svn path=/trunk/; revision=35817
2011-02-04 12:16:26 +00:00
Guy Harris 97e4949828 Fix indentation.
svn path=/trunk/; revision=35329
2011-01-02 19:53:48 +00:00
Bill Meier a7063f9cc8 'tshark -G values' - Validate (somewhat) value_string_ext before use to prevent a crash.
svn path=/trunk/; revision=34869
2010-11-14 16:30:56 +00:00
Bill Meier cfdd78166f Enhance 'tshark -G values': Add info about extended value strings (including acess method).
svn path=/trunk/; revision=34854
2010-11-12 19:48:30 +00:00
Bill Meier 9e7d296e0b Use val_to_str_const & val_to_str_ext_const where appropriate.
svn path=/trunk/; revision=34850
2010-11-12 15:34:30 +00:00
Bill Meier 15851701e8 Rework "extended value strings":
- Allow direct access when a range of values begins with a value other than 0;
- Provide value_string_ext_new() for creating extended value strings at runtime;
- Do access to value_string_ext members via a macro (all but value_string.c);
- Update documentation.

svn path=/trunk/; revision=34514
2010-10-14 17:50:35 +00:00
Stig Bjørlykke 6ead8f1ae5 Support multiple header fields with the same abbreviation in custom columns.
We have some different fields using the same abbreviation (e.g "eth.dst"
used in both eth and tte), and this patch will fetch values from all fields.
When using occurrences the entries listed first is from the field registered
last when starting Wireshark, and not ordered from the occurrence in the
packet, but I don't see how we can easily fix this.

svn path=/trunk/; revision=34513
2010-10-14 13:11:03 +00:00
Bill Meier ce887cb60d Fix crash for 'tshark -G values' when printing "extended value string" value.
Fixes bug #5296 [ https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5296 ]

svn path=/trunk/; revision=34507
2010-10-14 04:53:07 +00:00
Sake Blok 7ec231f7f1 Fix the output of columns with "show resolved" disabled when all occurrences are displayed.
Limit the input field for occurrence to 4 characters to prevent an overflow.
Make sure "... as filter" does not result in an invalid filter string if all occurrences are displayed.


svn path=/trunk/; revision=34247
2010-09-25 09:33:29 +00:00
Jeff Morriss dfcc9ec3f7 Add some more casts.
svn path=/trunk/; revision=34208
2010-09-23 13:26:41 +00:00
Jeff Morriss f12ef203b3 Revert 34191 and add some casts instead
svn path=/trunk/; revision=34193
2010-09-23 06:00:22 +00:00
Jeff Morriss 7cdf98c245 Use gsize (size_t) in a couple of places to make the Win64 build happy.
svn path=/trunk/; revision=34191
2010-09-23 01:14:44 +00:00
Sake Blok 558d6a761e Make buildbot happy again...
svn path=/trunk/; revision=34189
2010-09-22 22:46:36 +00:00
Sake Blok 7364bef1b3 When using a custom column, make it possible to select which occurrence to show if the field has multiple occurrences.
svn path=/trunk/; revision=34186
2010-09-22 20:56:14 +00:00
Stig Bjørlykke 9562d30a13 Allow for proto_tree_add_item() with FT_ABSOLUTE_TIME and FT_RELATIVE_TIME
to have length == 4 (only seconds).

svn path=/trunk/; revision=34078
2010-09-08 09:33:53 +00:00
Anders Broman 1b9da2fcf0 Fix indentation.
svn path=/trunk/; revision=33838
2010-08-18 08:09:37 +00:00
Stig Bjørlykke 90cb202dbd Added proto_item_prepend_text().
svn path=/trunk/; revision=33800
2010-08-14 17:24:21 +00:00
Stig Bjørlykke ab345f6bda Fixed adding a boolean value as a custom column.
This is reported in bug 5039.

svn path=/trunk/; revision=33602
2010-07-21 09:47:24 +00:00
Stig Bjørlykke 5a69e41f6e Enable "Show Resolved" for custom OID columns.
svn path=/trunk/; revision=33320
2010-06-25 10:44:12 +00:00
Stig Bjørlykke 4a34cf5892 Ensure we use the numeric value when creating a filter from a custom column
entry displaying a integer value.  The resolved string can contain a space,
and our routines does not quote integer values, and A DEC_HEX/HEX_DEC
combination will never match.

svn path=/trunk/; revision=33315
2010-06-24 18:07:40 +00:00
Stig Bjørlykke c7ed9aa2b8 Update to reflect changes in defines: REP_* > ENC_*
svn path=/trunk/; revision=33286
2010-06-22 11:54:45 +00:00
Anders Broman d0888eb389 Increase the base size to 100 000 we are using more than that.
svn path=/trunk/; revision=33020
2010-05-29 22:29:09 +00:00
Bill Meier 3d909801bc proto_registrar_dump_fields: output "" for blurb if blurb is a zero-length string.
svn path=/trunk/; revision=32975
2010-05-26 14:35:06 +00:00
Guy Harris 347e7a0052 More <stdarg.h> cleanup; some are real bugs, some are just "don't do
va_start and va_end unless you're actually going to use the va_list"
(those bring the va_start and va_end closer to the use point, which
makes it a little more obvious that we're using <stdarg.h> correctly and
makes it a little harder to use it incorrectly).

svn path=/trunk/; revision=32963
2010-05-26 02:25:13 +00:00
Guy Harris 1b444c55fd Refer to the endianness arguments as "encoding" rather than
"representation" - we already use "representation" to refer to the text
representation of fields.

Change some routines with an endianness argument to make it a
representation argument instead; 

svn path=/trunk/; revision=32929
2010-05-24 06:06:17 +00:00
Guy Harris 927b7da346 Have abs_time_to_str() and abs_time_to_str_secs() take an additional
argument indicating whether to include the time zone in the string.  If
we're constructing a display filter, don't include the time zone,
otherwise do.  Fixes bug 4756.

svn path=/trunk/; revision=32913
2010-05-21 06:33:25 +00:00
Jaap Keuter c1b3cace53 Allow for proto_tree_add_item() with FT_ABSOLUTE_TIME and FT_RELATIVE_TIME.
svn path=/trunk/; revision=32731
2010-05-10 06:32:31 +00:00
Anders Broman e87ddd657c From Jakub Zawadzki:
Fix copy&paste error + add support for proto_tree_add_bits API
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=4413

svn path=/trunk/; revision=32634
2010-05-02 15:37:23 +00:00
Anders Broman ab825ec9d9 From Jakub Zawadzki:
- use function pointers instead of switch.
 - initalize ->match_type during first use of match_str() func.

svn path=/trunk/; revision=32576
2010-04-27 12:38:49 +00:00
Anders Broman fab55e4772 From Jakub Zawadzki:
Itroduce value_string_ext for faster value matching in value_strings.

svn path=/trunk/; revision=32574
2010-04-27 10:32:34 +00:00
Jeff Morriss 0980522b8f Reindent a bunch
svn path=/trunk/; revision=32566
2010-04-26 20:48:13 +00:00
Jeff Morriss c7e88aa69f The comment here suggests fields should have abbreviations but previously we only checked if a string (even an empty string) was given. Try putting out a warning if a field has an empty string for an abbreviation.
svn path=/trunk/; revision=32562
2010-04-26 00:31:06 +00:00
Jeff Morriss 112fd18410 Make the absolute_time_display_e enum start at 1000 to avoid overlapping with
the base_display_e enum.

Fix a couple of dissectors that were still using FT_ABSOLUTE_TIME with
BASE_NONE.  (The time format chosen is based only on an attempt to not change
the behavior.  I don't know that it's right.)  One of these is built by Pidl.
I'll send a patch upstream too.

When checking hfinfos, display the absolute_time_display_e values too.
Display "bit count: X" instead of "unknown" when the display value doesn't
match one of the enumerated values.

svn path=/trunk/; revision=32552
2010-04-24 19:07:21 +00:00
Jeff Morriss d8ea017527 When checking the header_field_infos, use g_error() to give the developer a
(hopefully useful) explanation of what's wrong with his/her hfinfo field
rather than just asserting out.

So now instead of just getting a message saying aborted(core dumped), you can
get, for example:

22:31:54          Err  Field 'Message in frame' (sccp.assoc.msg) is an FT_FRAMENUM and is BASE_DEC instead of BASE_NONE

*and* an abort(core dumped) (for those who want it).

svn path=/trunk/; revision=32549
2010-04-24 03:08:08 +00:00
Anders Broman c705b3bc88 From Jakub Zawadzki:
Add support for multi byte entries.
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=4413

svn path=/trunk/; revision=32525
2010-04-20 17:32:12 +00:00
Sake Blok 00c05ed3fd Partly revert the changes made to epan/proto.c in SVN-29490
because they break 'tshark -r <file> -q -z io,phs' (no statistics 
are shown, unless you omit the -q and use -V).

svn path=/trunk/; revision=32443
2010-04-10 19:19:13 +00:00
Bill Meier 6812b68eb1 From Yaniv Kaul: constify parameters
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=4422

 From me: Fix a number of instances where the function prototype or
  the function definition wasn't changed so there was a mismatch 
  thus causing Windows (but not gcc) compilation errors.

svn path=/trunk/; revision=32365
2010-04-03 18:18:50 +00:00
Bill Meier d32b4c0758 Revert SVN #32360 until Windows compilation errors corrected.
svn path=/trunk/; revision=32361
2010-04-02 15:18:03 +00:00
Bill Meier 049f9eac85 From Yaniv Kaul: constify parameters
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=4422

svn path=/trunk/; revision=32360
2010-04-02 14:37:49 +00:00
Ronnie Sahlberg 4f3db1a1a8 Change printing of all BASE_OCT values to use the alternate form
%#o instead of %o

This means that the value will be printed with a leading 0, which is the 
standard way to denominate that a value is in base octal.



svn path=/trunk/; revision=32241
2010-03-19 02:05:18 +00:00
Jaap Keuter 7be36221d8 Fix for bug 4563:
Always have a tvb when adding a tree item.

svn path=/trunk/; revision=32146
2010-03-08 21:04:47 +00:00
Guy Harris 500eb99cd9 Add a third date format, ABSOLUTE_TIME_DOY_UTC, to show UTC with the
date as YYYY/DDD, where DDD is a 1-origin day of year.  Move the formats
to a "time_fmt.h" file, included by the headers that use it.  Have
abs_time_to_str() and abs_time_secs_to_str() take the date format value,
rather than a Boolean "show this as UTC" flag, as an argument.  Document
the ABSOLUTE_TIME_ formats a bit better.  Use that format in the CCSDS
and VCDU dissectors, rather than having those dissectors do the
formatting themselves.

svn path=/trunk/; revision=32034
2010-02-27 19:01:27 +00:00
Gerasimos Dimitriadis 6fd1cec787 From Jakub Zawadzki:
Remove prepare_bits_string from proto.c; Use
equivalent function decode_bits_in_field in to_str.c

svn path=/trunk/; revision=31665
2010-01-25 18:26:47 +00:00
Gerasimos Dimitriadis acd35de1f4 Minor simplification in length calculation of proto_tree_add_bits
and _format_value

svn path=/trunk/; revision=31640
2010-01-24 12:08:14 +00:00
Gerasimos Dimitriadis 383f6a65dc Add _format_value variants of the proto_tree_add_bits function
for different header field types; now possible to add bits item
for FT_FLOAT and FT_INT types.

svn path=/trunk/; revision=31633
2010-01-23 16:17:17 +00:00
Gerasimos Dimitriadis 88835212b1 Use true/false strings instead of actual numeric values when adding a boolean
field as a bits item and no custom strings are defined.

svn path=/trunk/; revision=31375
2009-12-28 21:20:27 +00:00
Guy Harris 8e236e55de For fields of type FT_ABSOLUTE_TIME, have the "display" value be one of
ABSOLUTE_TIME_LOCAL or ABSOLUTE_TIME_UTC, indicating whether to display
the date/time in local time or UTC. (int)ABSOLUTE_TIME_LOCAL ==
(int)BASE_NONE, so there's no source or binary compatiblity issue,
although we might want to eliminate BASE_NONE at some point and have the
BASE_ values used with integral types start at 0, so that you can't
specify BASE_NONE for an integral field.

svn path=/trunk/; revision=31319
2009-12-19 03:17:44 +00:00
Guy Harris a4b7135ce3 Rename BASE_STRUCTURE_RESET to BASE_DISPLAY_E_MASK, to clarify that it's
a mask to select the base_display_e value from a display field in a
header_field_info structure.

Never select that value by masking out the BASE_RANGE_STRING flag bit,
as that won't continue to work if more flag bits, or other bitfields,
are added.  Instead, mask with BASE_DISPLAY_E_MASK.

Note that the base_display_e value and BASE_RANGE_STRING flag are only
for integral field types, and clarify what BASE_DISPLAY_E_MASK is.

Give at least one of the reasons why hiding protocol fields is not
considered a good idea.

svn path=/trunk/; revision=31249
2009-12-12 03:15:28 +00:00
Guy Harris 4fde145bd2 Add an argument to abs_time_to_str() and abs_time_secs_to_str()
indicating whether the time should be shown as local time or UTC.  For
now, always pass FALSE, meaning "show as local time".

Clean up some stuff in the SNMP dissector, use abs_time_secs_to_str()
for times with one-second resolution, and update a comment in various
macros in the WSP dissector, while we're at it.

svn path=/trunk/; revision=31227
2009-12-10 22:19:29 +00:00
Stig Bjørlykke 185488655e No need to do string compare for FT_PROTOCOL.
svn path=/trunk/; revision=31018
2009-11-19 16:12:08 +00:00
Stig Bjørlykke a1c8cdcc7c Added support for some missing custom column types:
FT_NONE: Print nothing
 FT_PROTOCOL: Print "Yes" if protocol exists in packet
 FT_IPv6: Print address

The changes in r29551 made wireshark crash for this columns.

svn path=/trunk/; revision=31016
2009-11-19 13:29:57 +00:00
Stig Bjørlykke b510b97ff1 Return FALSE from proto_tracking_interesting_fields() when no tree.
svn path=/trunk/; revision=30533
2009-10-12 08:19:30 +00:00
Stig Bjørlykke ec95db36a7 Check for valid tree in proto_get_finfo_ptr_array() and
proto_tracking_interesting_fields().

This fixes a crash when using Lua script without packet list coloring.

svn path=/trunk/; revision=30532
2009-10-12 08:16:50 +00:00
Kovarththanan Rajaratnam 996e27dbc7 Set INITIAL_NUM_PROTOCOL_HFINFO to a more sensible value, e.g. 1500. Currently it is set to 200 even though we have way more protocols in Wireshark:
$ ./tshark -G protocols | wc -l
1066

svn path=/trunk/; revision=30501
2009-10-11 09:35:34 +00:00
Kovarththanan Rajaratnam ee9ea561d2 As pointed out by Bill [1] we leak some header_field_info structs on shutdown. This change plugs that mem leak.
[1] http://www.wireshark.org/lists/wireshark-dev/200910/msg00074.html

svn path=/trunk/; revision=30500
2009-10-11 09:18:51 +00:00
Kovarththanan Rajaratnam 34e05c76f7 Replace g_malloc + memset with g_new0
svn path=/trunk/; revision=30499
2009-10-11 09:02:04 +00:00
Kovarththanan Rajaratnam ca53b00b7e Set tree_is_expanded to NULL after freeing it
svn path=/trunk/; revision=30498
2009-10-11 08:57:08 +00:00
Kovarththanan Rajaratnam b998cb04de Use the slice allocator if GLIB_CHECK_VERSION > (2,10,0)
svn path=/trunk/; revision=30497
2009-10-11 08:52:34 +00:00
Jaap Keuter ee2043792f Tighten header field checks.
svn path=/trunk/; revision=30410
2009-10-08 21:26:26 +00:00
Kovarththanan Rajaratnam e981de7a99 Don't attempt to fill custom columns if we don't have a valid column expression.
svn path=/trunk/; revision=30407
2009-10-08 16:35:58 +00:00
Stig Bjørlykke 5bc9611d56 Removed a redundant prototype.
Made wrs_count_bitshift static.

svn path=/trunk/; revision=30387
2009-10-07 08:37:18 +00:00
Bill Meier bf85ecb308 Rename hfinfo.ref_count to hfinfo.ref_type since that's now how it's used.
svn path=/trunk/; revision=30216
2009-09-30 14:02:49 +00:00
Stig Bjørlykke ad14865ce0 Removed unused variable 'hfinfo' in proto_tree_set_time().
svn path=/trunk/; revision=30197
2009-09-29 19:16:52 +00:00
Kovarththanan Rajaratnam 778fe81f72 (Trivial) White space changes
svn path=/trunk/; revision=30095
2009-09-23 16:27:37 +00:00
Bill Meier 5bbec764db (Trivial) Rework a comment slightly.
svn path=/trunk/; revision=30080
2009-09-22 20:17:31 +00:00
Kovarththanan Rajaratnam 56b8d36e03 Introduce a few FT_XXX lengths defines and use those instead of hard coding constants
svn path=/trunk/; revision=29846
2009-09-10 18:22:33 +00:00
Gerald Combs c238175acf Move the infinite loop check from proto_tree_add_node to
TRY_TO_FAKE_THIS_ITEM. Partial fix for bug 3986.

svn path=/trunk/; revision=29811
2009-09-08 22:56:55 +00:00
Kovarththanan Rajaratnam d2db67480c Use g_strlcpy when possible
svn path=/trunk/; revision=29808
2009-09-08 20:06:52 +00:00
Anders Broman c6d4c80371 From : Didier Gautheron
speed up a little proto_custom_set.
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=3972

svn path=/trunk/; revision=29789
2009-09-08 10:33:15 +00:00
Kovarththanan Rajaratnam 571e69fdfa We don't currently fake fields if they are referenced indirectly through some other fields (currently only FT_PROTOCOL's can be indirectly referenced) . However, there doesn't seem to be any reason for this restriction. We already have proto_tree_set_fake_protocols() to disable 'faking' if any clients requires this. So, this changelist removes this restriction on indirectly referenced fields.
svn path=/trunk/; revision=29742
2009-09-06 11:30:41 +00:00
Kovarththanan Rajaratnam 820ce62af5 This fix was supposed to be in r29731 which some how only contained whitespace changes.
svn path=/trunk/; revision=29732
2009-09-06 07:33:07 +00:00
Kovarththanan Rajaratnam 9c512f7cb4 Introduce TRY_TO_FAKE_THIS_REPR which is an optimization similar to the existing TRY_TO_FAKE_THIS_ITEM. The purpose of TRY_TO_FAKE_THIS_REPR is to avoid generating the string representation for the protocol item. There is no point in doing this if the protocol tree isn't visible. In this case the result will be discarded any way.
svn path=/trunk/; revision=29731
2009-09-06 07:24:54 +00:00
Kovarththanan Rajaratnam 4df25480b7 The frame dissector disables the TRY_TO_FAKE_THIS_ITEM() optimization by marking the protocol tree as permamently visible. It only needs to disable the optimization temporarily while it creates the protocol item it intends to use proto_item_append_string() on
svn path=/trunk/; revision=29730
2009-09-06 06:33:13 +00:00
Kovarththanan Rajaratnam 17f010119a From Jakub Zawadzki via. Bug 3330:
* Fix memleak (df->deprecated in dfilter_free())
* Free protocol hash tables on cleanup.
* Free protocols list on cleanup.
* Free memory allocated by fgetline() in parse_services_file()

From me:

* proto.c: set gmc_hfinfo to NULL after free
* proto.c: switch order of g_free() and g_list_remove() in proto_cleanup()

svn path=/trunk/; revision=29656
2009-09-01 18:16:55 +00:00
Kovarththanan Rajaratnam 8cba530c81 From Richard Brodie via. Bug 3913:
Free ptr array allocated through proto_find_finfo()

svn path=/trunk/; revision=29654
2009-09-01 17:09:36 +00:00
Kovarththanan Rajaratnam cd49063473 Revert r29614 until I figure out why buildbot doesn't like it
svn path=/trunk/; revision=29615
2009-08-29 07:53:48 +00:00
Kovarththanan Rajaratnam cc948586bf Use G_STRINGIFY/G_PASTE
svn path=/trunk/; revision=29614
2009-08-29 06:42:23 +00:00
Jörg Mayer 4d8506486f After asking on the list and receiving no feedback, I'll
just commit this:

Change the checks for type FT_IPv6 to no longer require
a lenght of exaclty 16 bytes, but something between
0 and 16 bytes. That way, we can filter on prefixes
that do not provide the whole length of 16 bytes.

svn path=/trunk/; revision=29594
2009-08-28 09:38:34 +00:00
Anders Broman 32e7cddf70 From Didier Gautheron:
move custom col set from  proto_tree_set_xxx() to
epan_dissect_fill_in_columns().
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=3930

I'v added the new functions to the .h files.

svn path=/trunk/; revision=29551
2009-08-25 21:10:35 +00:00
Kovarththanan Rajaratnam da1e555499 Don't dereference pointer before checking for NULL
svn path=/trunk/; revision=29503
2009-08-21 23:02:59 +00:00
Kovarththanan Rajaratnam 8a3f4f53eb Delay TRY_TO_FAKE_THIS_ITEM() in proto_tree_add_bits_ret_val() until we know it is safe.
Thanks to Martin for pointing this out in r29493.

svn path=/trunk/; revision=29494
2009-08-21 17:11:02 +00:00
Martin Mathieson 044aabb9ea Don't try TRY_TO_FAKE_THIS_ITEM in proto_tree_add_bits_ret_val(), as otherwise
the side effect 'return_value' getting set doesn't happen.

svn path=/trunk/; revision=29493
2009-08-21 15:16:27 +00:00
Kovarththanan Rajaratnam 27f7d88c84 Also fake empty field_info's by gracefully handling NULL field_info pointer elsewhere.
svn path=/trunk/; revision=29490
2009-08-21 11:03:30 +00:00
Kovarththanan Rajaratnam 0f6b75b7ea Move TRY_TO_FAKE_THIS_ITEM to all public proto_xxx methods. Currently we rely on our internal (static) helper functions to do the faking. However, when they fake a protocol tree, they usually return a valid tree (although a dummy tree it is still a valid one). This means that we end up calling proto_tree_set_representation + friends on it for no reason. By moving TRY_TO_FAKE_THIS_ITEM to the public proto_xxx methods we're able to bail immediately (when we're allowed to do so).
svn path=/trunk/; revision=29480
2009-08-19 19:08:34 +00:00
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