Commit Graph

304 Commits

Author SHA1 Message Date
Ulf Lamping 5a9fc6543f corrected paths, where the dissectors and the corresponding Makefile.common can be found, to epan/dissectors
svn path=/trunk/; revision=11858
2004-08-31 09:19:41 +00:00
Guy Harris c68f62210f Add "tvb_get_ntoh64()" and "tvb_get_letoh64()" routines to fetch 64-bit
integers.

Make FT_INT64 and FT_UINT64 add numerical values, rather than byte-array
values, to the protocol tree, and add routines to add specified 64-bit
integer values to the protocol tree.

Use those routines in the RSVP dissector.

svn path=/trunk/; revision=11796
2004-08-22 00:31:58 +00:00
Guy Harris ff3f10e5a5 Note that "G_GINT64_CONSTANT()" should be used for constant values that
don't fit in 32 bits, rather than using "LL" at the end.

Clean up some other 64-bit-integer items.

svn path=/trunk/; revision=11779
2004-08-19 19:44:57 +00:00
Guy Harris 43b2da02ae Note that you *MUST* make sure "match_strval()" doesn't return null
before using its value, or must check for a null return value and handle
it specially, otherwise you put Ethereal at risk of crashing with bad
packet data.

svn path=/trunk/; revision=11475
2004-07-23 01:37:35 +00:00
Jörg Mayer 1d645fc8c2 SNPRINTF isn't used any more - remove from sample dissector
and coding guidelines.

svn path=/trunk/; revision=11418
2004-07-18 22:36:55 +00:00
Guy Harris 8a8b883450 Set the svn:eol-style property on all text files to "native", so that
they have LF at the end of the line on UN*X and CR/LF on Windows;
hopefully this means that if a CR/LF version is checked in on Windows,
the CRs will be stripped so that they show up only when checked out on
Windows, not on UN*X.

svn path=/trunk/; revision=11400
2004-07-18 00:24:25 +00:00
Guy Harris a354e21de5 Give more details on the "don't build the protocol tree if you don't
have to", indicating that if it's too much work to explicitly test for a
null protocol tree, you might want to avoid those tests and rely on the
protocol tree routines not to do much work if passed a null protocol
tree pointer.

svn path=/trunk/; revision=11346
2004-07-08 21:16:04 +00:00
Jörg Mayer 0195deceae tmpnam() really should not be used for security reasons.
Replace it where used and update README.developer accordingly.

svn path=/trunk/; revision=11235
2004-06-25 07:04:03 +00:00
Guy Harris 7002776572 Pick up the stuff I did for tcpdump to figure out the right strings to
use to format 64-bit integers.

Fix the RSVP dissector to use that rather than hardcoding "%ll" in.

Remove the "only if G_HAVE_GINT64 is defined" bit from the discussion of
64-bit integers - we're too dependent on having them to support
compilers that don't have a 64-bit integral data type.  Do, however,
note that neither "long" nor "long long" are acceptable, and also note
that you shouldn't assume "%ll" does the trick for printing them.

svn path=/trunk/; revision=11182
2004-06-19 00:07:23 +00:00
Guy Harris 911bad80f0 Have two strings in an enum_val_t - one that's a short string that is
convenient to put into a command line (no capital letters, no spaces to
require quotes), and one that's a detailed description for use in the
UI.  Allow either of them in the preferences file or "-o" option; use
the detailed description in the UI, and also use it when writing the
preferences out, so that the preference will be readable by older
versions of Ethereal (assuming the preference existed in that version).

Update "README.developer" to give more detail about an enum_val_t (and
to put the _t in), and to give a more detailed description of the
"radio_buttons" argument to "prefs_register_enum_preference()".

svn path=/trunk/; revision=10982
2004-05-24 02:25:21 +00:00
Ulf Lamping 5a40b73898 added hint to use g_snprintf instead of snprintf and sprintf
svn path=/trunk/; revision=10481
2004-03-25 16:01:12 +00:00
Guy Harris e39c338b07 Update to reflect current reality.
svn path=/trunk/; revision=10408
2004-03-19 07:49:29 +00:00
Guy Harris 2b832414fb Describe some problems with processing data pointed to by the result of
"tvb_get_ptr()".

Add a section on roubustness, giving a number of potential problems that
aren't just portability problems.

Document "tvb_get_string()" and "tvb_get_stringz()", better document
"tvb_memcpy()" and "tvb_memdup()".

Fix a typo.

svn path=/trunk/; revision=10239
2004-02-25 22:45:51 +00:00
Jörg Mayer fe1279ed9a Remove a comment on ancient Ethereal
svn path=/trunk/; revision=10115
2004-02-19 11:45:02 +00:00
Olivier Biot 6bd7b570b5 Add a note on white space conventions (tab expansion different from 8 spaces is
a Bad Idea).

Add a note on the new col_append_sep_str() and col_append_sep_fstr() methods.

svn path=/trunk/; revision=10061
2004-02-14 10:37:22 +00:00
Jörg Mayer 5abba20365 Move the list of dissectors (DISSECTOR_SRC) out of Makefile.am and
Makefile.nmake into a shared file named Makefile.common

svn path=/trunk/; revision=9772
2004-01-21 21:46:59 +00:00
Olivier Biot 8770bdb794 Header files proto-ABBREV.h must not exist if there are no functions
to export to other dissectors.

Describe the "if (tree)" construct and its sense by introducing 2 operation
modes of Ethereal:
	(a) operational dissection (tree == NULL)
and
	(b) detailed dissection (tree != NULL).

Fix some typos.

svn path=/trunk/; revision=9495
2003-12-30 15:49:12 +00:00
Guy Harris 87347d7867 Note that "uchar", "u_char", "u_short", "u_int", and "u_long" are also
forbidden.

svn path=/trunk/; revision=9356
2003-12-19 19:08:00 +00:00
Guy Harris 257fb6c7dd Fix the stuff that talks about adding to DISSECTOR_SOURCES to talk about
adding to DISSECTOR_SRC instead, and update it to mention
"Makefile.nmake" in the first instance.

svn path=/trunk/; revision=8966
2003-11-14 19:20:24 +00:00
Guy Harris 35ad6fc26f Warn people not to use the "numbered argument" feature that many UNIX
printf's implement.

svn path=/trunk/; revision=8898
2003-11-06 09:47:06 +00:00
Guy Harris 3de139644b Clarify the previous checkin - that applies to the 'value' argument.
svn path=/trunk/; revision=8797
2003-10-28 05:50:52 +00:00
Guy Harris 5900986044 As per a suggestion by Olivier Biot, note that objects pointed to by
pointer arguments to "proto_tree_add_XXX" functions are copied - if you
allocated a buffer for one of them (e.g., a string), and you don't free
that buffer when you're done with it, you'll leak memory.

svn path=/trunk/; revision=8796
2003-10-28 05:49:29 +00:00
Guy Harris d4fcd2d0a9 Warn about Yet Another GCCism.
svn path=/trunk/; revision=8742
2003-10-20 23:07:43 +00:00
Guy Harris dca567002e From Lo�c Minier: information on how to do reassembly of PDUs atop TCP.
svn path=/trunk/; revision=8651
2003-10-09 21:18:41 +00:00
Guy Harris 23f4abb9f9 Add an item about prefixing #define names and enum names with a prefix
to avoid name collisions.

svn path=/trunk/; revision=8649
2003-10-09 18:57:37 +00:00
Guy Harris b7183b32b9 Add One More Item to the list of things not all compilers can handle.
svn path=/trunk/; revision=8627
2003-10-06 19:11:41 +00:00
Guy Harris 25adf89ed4 Fix a typo.
Wrap text to 80 columns.

Add myself to the authors list (e.g. for the portability section).

svn path=/trunk/; revision=8108
2003-07-30 23:18:55 +00:00
Gilbert Ramirez 086774b71f Add to the fundamental types passed between the scanner and the parser.
Besides "STRING", there is now "UNPARSED_STRING", where the distinction
is that "STRING" was a double-quoted string and "UNPARSED_STRING" is just
a sequence of characters that the scanner didn't know how to scan/parse,
so it's up to the Ftype to parse it.

This gives us more flexibility and prepares the dfilter parsing engine
for the upcoming addition of the "contains" operator.

In the process of doing this, I also re-did the double-quoted string
support in the scanner, so that instead of the naively-simple support we
used to have, double-quoted strings now can have embedded dobule-quotes,
embedded octal sequences, and embedded hexadecimal sequences:
    "\""    embedded double-quote
    "\110"  embedded octal
    "\x48"  embedded hex

Enhance the dfilter unit test script to be able to run a single collection
of tests instead of having to run all of them all the time.

svn path=/trunk/; revision=8083
2003-07-25 03:44:05 +00:00
Guy Harris c664749b18 Typo fix, from Brad Hards.
svn path=/trunk/; revision=7977
2003-07-07 22:59:54 +00:00
Guy Harris 48aa4ea7ac Clarify the comment about not doing dissection work if "tree" is NULL,
to indicate what you should avoid doing *and* to indicate what you still
have to do (i.e., call subdissectors).

svn path=/trunk/; revision=7864
2003-06-12 10:15:25 +00:00
Laurent Deniel dc01cb646b - conversation_get_protocol_data -> conversation_get_proto_data
- miscellaneous typos corrected

svn path=/trunk/; revision=7329
2003-03-09 22:00:26 +00:00
Guy Harris 5bf33b9ca9 Note that you need <io.h> on Windows if you want to use "open()",
"close()", "read()", "write()", etc..

svn path=/trunk/; revision=7314
2003-03-07 21:50:34 +00:00
Guy Harris e431a83cde Throw in some additional portability notes about:
not using "%l[doux]" with guint32;

	not including <unistd.h> without #ifdef HAVE_UNISTD_H;

	not fopening binary files with "r", "w", etc., and not opening
	them with "open()" without using O_BINARY.

svn path=/trunk/; revision=7302
2003-03-06 22:41:39 +00:00
Guy Harris 59c18d6bd4 Note that one shouldn't put a comma after the last element of an enum.
svn path=/trunk/; revision=7115
2003-02-10 19:21:25 +00:00
Guy Harris ab552d3746 Get rid of BASE_BIN - it's just the same as BASE_DEC, but people seemed
to be using it for stuff that should be hex, and for stuff that should
be Boolean.  Use BASE_DEC if it should be decimal, BASE_HEX if it should
be hex, and make it Boolean if it should be Boolean.

svn path=/trunk/; revision=7053
2003-01-31 03:17:56 +00:00
Guy Harris 3b6d2f5df9 More completely explain the "name" argument to the
"prefs_register_XXX_preference" routines, to note that it should *NOT*
include the protocol name - the protocol name is automatically prepended
to it, with a "." separator, as the preference is registered in a module
whose name is that of the protocol.

svn path=/trunk/; revision=7031
2003-01-29 00:39:02 +00:00
Laurent Deniel 1a66f9aec9 Update my email address in various places since my old one no longer works
svn path=/trunk/; revision=7003
2003-01-26 19:35:31 +00:00
Guy Harris 58d1820542 Document FT_FRAMENUM.
svn path=/trunk/; revision=6805
2002-12-19 05:28:40 +00:00
Gerald Combs d44e27b17c Fix a typo.
svn path=/trunk/; revision=6769
2002-12-09 03:09:35 +00:00
Guy Harris 753ef1fb73 Put in a note about "ntoh[ls]()" and "hton[ls]()" vs. the GLib versions
of same.

svn path=/trunk/; revision=6594
2002-11-09 08:37:00 +00:00
Guy Harris 85eafc7e25 From Jean-Baptiste Marchand: fix a typo in README.developer.
Also, put him into the list of authors in the man page.

svn path=/trunk/; revision=6554
2002-11-03 20:24:12 +00:00
Guy Harris 749d00f331 Put in a portability note telling people to use "strchr()" and
"strrchr()", not "index()" and "rindex()"; MSVC++ doesn't declare
"index()" or "rindex()" if you include <string.h>, and they're
non-standard routines (the ANSI C names for those functions are
"strchr()" and "strrchr()").

Add a bit more to the other portability note on the topic of
non-standard vs. ANSI standard functions.

svn path=/trunk/; revision=6539
2002-11-01 09:41:36 +00:00
Guy Harris 9ce0f18987 Put in a note telling people not to use "long" for 32-bit quantities.
svn path=/trunk/; revision=6446
2002-10-17 20:05:04 +00:00
Guy Harris 915e66e434 Document FT_FLOAT and the "proto_tree_add_float" routines.
svn path=/trunk/; revision=6088
2002-08-26 09:36:22 +00:00
Jörg Mayer 81125f51c0 Replace the types from sys/types.h and netinet/in.h by their glib.h
equivalents in the READMEs and examples in the doc/ directory.

svn path=/trunk/; revision=5933
2002-08-02 23:46:26 +00:00
Guy Harris a650adbf57 Fix a sample call to add an item to the subtree for a protocol to add it
there rather than to the top-level tree, and use
"proto_tree_add_item()".

Add a description of PROTOSHORTNAME, and give an example of the way
PROTONAME, PROTOSHORTNAME, and PROTOABBREV would be set for a protocol.

svn path=/trunk/; revision=5877
2002-07-15 20:31:06 +00:00
Guy Harris 90922fb718 Fix some other errors.
svn path=/trunk/; revision=5852
2002-07-10 04:29:23 +00:00
Guy Harris caaccf5a94 Fix an erroneous example.
svn path=/trunk/; revision=5851
2002-07-10 04:24:37 +00:00
Guy Harris 0d206a890a Put in a note about casting the result of "tvb_get_ptr()" to a structure
pointer and using that pointer.

svn path=/trunk/; revision=5793
2002-06-29 00:15:18 +00:00
Guy Harris 69d58fab15 Update the note on adding dissector source files to match current
reality, and add a note on adding dissector *header* files.

svn path=/trunk/; revision=5780
2002-06-28 20:20:22 +00:00
Guy Harris 6b0931859d Add "uint" to the list of "u..." types not to use.
Fix the argument lists of the "proto_tree_add_" routines to include the
tvbuff argument.

svn path=/trunk/; revision=5738
2002-06-22 21:00:53 +00:00
Guy Harris aa576abd08 Put in an additional portability note about "bzero()"/"bcopy()"/"bcmp()"
vs. "memset()"/"memcpy()"/"memmove()"/"memcmp()".

svn path=/trunk/; revision=5700
2002-06-18 20:25:12 +00:00
Guy Harris 7483a6197a Document the tvbuff accessors for IEEE floating-point numbers.
svn path=/trunk/; revision=5246
2002-04-24 21:53:47 +00:00
Guy Harris 0b4145f7d7 Add information about 64-bit integral field support.
Fix some items on the tvbuff accessors for integers.

svn path=/trunk/; revision=4965
2002-03-18 00:20:18 +00:00
Guy Harris 481b4bca97 Update the developer documentation to reflect current reality (or a
subset thereof).

svn path=/trunk/; revision=4953
2002-03-16 20:22:14 +00:00
Guy Harris 95ee7f0ac1 Tell people not to use "ulong" or "ushort".
svn path=/trunk/; revision=4845
2002-03-02 07:56:16 +00:00
Guy Harris 37c1109287 Fix two references to "proto_item_set_text()" and
"proto_item_append_text()" to use the right names.

svn path=/trunk/; revision=4838
2002-03-01 20:19:44 +00:00
Guy Harris 84b6b76cf3 Improve the note on how to deal with items with subtrees when the text
for the item should reflect what's in the subtree.

svn path=/trunk/; revision=4832
2002-02-28 23:23:12 +00:00
Guy Harris 95106816d3 Include files from the "epan" directory and subdirectories thereof with
"epan/..." pathnames, so as to avoid collisions with header files in any
of the directories in which we look (e.g., "proto.h", as some other
package has its own "proto.h" file which it installs in the top-level
include directory).

Don't add "-I" flags to search "epan", as that's no longer necessary
(and we want includes of "epan" headers to fail if the "epan/" is left
out, so that we don't re-introduce includes lacking "epan/").

svn path=/trunk/; revision=4587
2002-01-21 07:52:35 +00:00
Guy Harris 92915713d3 Allow a length of -1 to be specified when adding FT_NONE and FT_PROTOCOL
items to the protocol tree; it's interpreted as "the rest of the data in
the tvbuff".  This can be used if

	1) the item covers the entire packet or the remaining payload in
	   the packet

or

	2) the item's length won't be known until it's dissected, and
	   will be then set with "proto_item_set_len()" - if an
	   exception is thrown in the dissection, it means the item ran
	   *past* the end of the tvbuff, so saying it runs to the end of
	   the tvbuff is reasonable.

Convert a number of "proto_tree_add_XXX()" calls using
"tvb_length_remaining()", values derived from the result of
"tvb_length()", or 0 (in the case of items whose length is unknown) to
use -1 instead (using 0 means that if an exception is thrown, selecting
the item highlights nothing; using -1 means it highlights all the data
for that item that's available).

In some places where "tvb_length()" or "tvb_length_remaining()" was used
to determine how large a packet is, use "tvb_reported_length()" or
"tvb_reported_length_remaining()", instead - the first two calls
indicate how much captured data was in the packet, the latter two calls
indicate how large the packet actually was (and the fact that using the
latter could cause BoundsError exceptions to be thrown is a feature - if
such an exception is thrown, the frame really *was* short, and it should
be tagged as such).

Replace some "proto_tree_add_XXX()" calls with equivalent
"proto_tree_add_item()" calls.

Fix some indentation.

svn path=/trunk/; revision=4578
2002-01-20 22:12:39 +00:00
Guy Harris 1409de29e4 Put in a note about labels requiring statements following them.
svn path=/trunk/; revision=4413
2001-12-17 08:35:09 +00:00
Guy Harris fcda4ee579 Get rid of all mentions of old-style dissectors, and fix up an example
to reflect tvbuff-based access to packet data.

Update calls that deal with columns to pass "pinfo->cinfo" rather than
"pinfo->fd".

Update the example of preference registration to reflect the replacement
of the BXXP dissector with the BEEP dissector.

svn path=/trunk/; revision=4376
2001-12-10 06:31:49 +00:00
Guy Harris d304535254 Update the sample dissector handoff registration routine to match the
current calling sequence for "dissector_add()".

svn path=/trunk/; revision=4309
2001-12-03 04:12:53 +00:00
Guy Harris 703189dd9d Reflect the change to "conversation_set_dissector()" to take a dissector
handle as an argument.

svn path=/trunk/; revision=4282
2001-11-27 07:21:55 +00:00
Guy Harris 3ab9a4931f Clarify what the tvbuff handed to a dissector contains (i.e., it's not
the raw frame data, it's the data that the dissector should look at).

svn path=/trunk/; revision=4278
2001-11-27 05:05:02 +00:00
Gilbert Ramirez f14a6b8b91 Hopefully the last time I have to change my e-mail address.
svn path=/trunk/; revision=4199
2001-11-13 23:55:44 +00:00
Guy Harris 36facef286 Put in a note telling people NOT to use "tvb_get_ntohl()" or
"tvb_get_letohl()" to fetch IPv4 addresses.

svn path=/trunk/; revision=4110
2001-10-30 21:35:09 +00:00
Gerald Combs d5cda0d90c Fix conversation_new description. Add descriptions for
conversation_add_proto_data, conversation_get_proto_data, and
conversation_delete_proto_data.

svn path=/trunk/; revision=4031
2001-10-16 01:57:12 +00:00
Guy Harris 1d42c94b05 Make the resolution for time values be nanoseconds rather than
microseconds.

Fix some "signed vs. unsigned" comparison warnings.

svn path=/trunk/; revision=3934
2001-09-14 07:10:13 +00:00
Guy Harris ef787a1d84 Update the documentation to reflect the fact that the arguments to
"conversation_new()" and "find_conversation()" do not have fixed
identities as source and destination addresses, and to reflect the name
changes we made to arguments and flags to dispel any notion that they
had such fixed identities.

svn path=/trunk/; revision=3887
2001-08-31 09:04:36 +00:00
Guy Harris fbe8da33f5 Add a "proto_item_append_text()" routine, which is like
"proto_item_set_text()" except that it appends the result of the
formatting to the item's current text, rather than replacing the item's
current text.  Use it in the DNS dissector.

svn path=/trunk/; revision=3880
2001-08-29 00:51:10 +00:00
Guy Harris aa4cd01b9b Get rid of "proto_tree_add_notext()" - if you create a subtree using it,
but, before you set the text, you throw an exception while putting stuff
under the subtree, you end up with an absolutely blank protocol tree
item, which is really gross.  Instead of calling
"proto_tree_add_notext()", call "proto_tree_add_text()" with at least a
minimal label - yes, it does mean you do some work that will probably be
unnecessary, but, absent a scheme to arrange to do that work if it *is*
necessary (e.g., catching exceptions), the alternative is an ugly
protocol tree display.

svn path=/trunk/; revision=3879
2001-08-28 08:28:19 +00:00
Guy Harris 6e2d931517 Add some more notes on What Not To Do when writing code for Ethereal, so
as not to end up with, for example, code that works fine with GCC but
fails to compile with other compilers.

svn path=/trunk/; revision=3758
2001-07-20 23:38:30 +00:00
Guy Harris a627bc2463 Tell people *NOT* to create zero-length "hf[]" arrays if they don't have
any fields to register.

svn path=/trunk/; revision=3754
2001-07-20 09:55:08 +00:00
Guy Harris b5c9211473 Describe the use of FT_NONE, FT_STRING and other string-of-character
types, and FT_BYTES in more detail.

FT_TEXT_ONLY is gone; remove it.

svn path=/trunk/; revision=3730
2001-07-16 06:16:14 +00:00
Ed Warnicke 9e6250e336 Moved documentation for plugins to README.plugins and expanded
it.  Removed most of the Plugins section from README.developers

svn path=/trunk/; revision=3675
2001-07-10 01:22:58 +00:00
Guy Harris b361003bc5 Explain BASE_{DEC,HEX,OCT,BIN} a bit more, note that BASE_BIN is for
binary but currently is just decimal, and note that you may not use
BASE_NONE for integers.

svn path=/trunk/; revision=3352
2001-04-20 22:00:27 +00:00
Guy Harris 3c1508a6b3 Fix Gerald's e-mail address - and fix it in "README.developer", so
people don't blindly insert the old address into new dissectors, which
is probably how it got into the dissectors being fixed here.

svn path=/trunk/; revision=3348
2001-04-20 20:34:31 +00:00
Guy Harris 61f7a8eb4b Fix up some other README.developer items.
svn path=/trunk/; revision=3280
2001-04-10 07:21:38 +00:00
Guy Harris e7fed6d68b Update README.developer to discuss 'col_set_str' and 'col_clear', to
make the dissector function in the sample dissector code a static
function, and to leave out the "CHECK_DISPLAY_AS_DATA()" call and the
line to set "pinfo->current_proto" in the sample dissector, as the
sample dissector is called through a dissector table, and the code to
call through a dissector table does both of those for you.

svn path=/trunk/; revision=3278
2001-04-09 22:25:39 +00:00
Guy Harris 28aa29c12c Update the list of types, and fix some typos.
svn path=/trunk/; revision=3070
2001-02-23 07:24:21 +00:00
Guy Harris 6d7aa5a618 Update the README.developer file to reflect the recent changes to
"proto_register_protocol()" and the addition of
"prefs_register_module()".

svn path=/trunk/; revision=2813
2001-01-03 08:00:01 +00:00
Guy Harris 4a41bdd1fc Use GLib's G_MODULE_EXPORT when defining constants and functions
exported by a plugin, rather than defining our own DLLEXPORT.

svn path=/trunk/; revision=2713
2000-11-29 09:49:30 +00:00
Guy Harris 6d46509f9c Update to reflect the new style for plugin dissectors.
svn path=/trunk/; revision=2575
2000-11-06 09:56:10 +00:00
Olivier Abad 1fd4721d48 Allow a plugin to specify several underlying protocols (i.e. tcp and udp).
The protocol constant definition in the plugin must be :
DLLEXPORT const gchar protocol[] = "tcp udp";

svn path=/trunk/; revision=2569
2000-11-05 09:40:18 +00:00
Guy Harris 3f4e41dc38 Patch from Craig Rodrigues to fix a call to "check_col()".
Fix a typo in a comment.

svn path=/trunk/; revision=2564
2000-11-05 07:14:40 +00:00
Gilbert Ramirez d1cfc6776b Updates from Jeff Foster.
svn path=/trunk/; revision=2548
2000-11-02 15:47:16 +00:00
Guy Harris 4b15a76ece When looking for definitions of "proto_register" and "proto_reg_handoff"
routines, throw out lines containing semicolons, so that we don't see
*declarations* of those routines.

svn path=/trunk/; revision=2530
2000-10-22 20:01:14 +00:00
Laurent Deniel f395740875 Modify the Gryphon plugin code in order to avoid an abort when the
plugin is enabled -> disabled -> re-enabled due to the fact that
the protocol registration is performed at each plugin_init() call
(and there is no protocol cleanup like with dfilter_cleanup).

Now we use the proto_xxx static variable to check if it is the first
activation or not (in this case, the proto_register_xxx routines are
not called.

svn path=/trunk/; revision=2290
2000-08-18 13:47:59 +00:00
Laurent Deniel 5a5e16ced7 Add the "Edit:Protocols..." feature which currently only implements
the following:

It is now possible to enable/disable a particular protocol decoding
(i.e. the protocol dissector is void or not). When a protocol
is disabled, it is displayed as Data and of course, all linked
sub-protocols are disabled as well.

Disabling a protocol could be interesting:

- in case of buggy dissectors
- in case of wrong heuristics
- for performance reasons
- to decode the data as another protocol (TODO)

Currently (if I am not wrong), all dissectors but NFS can be disabled
(and dissectors that do not register protocols :-)

I do not like the way the RPC sub-dissectors are disabled (in the
sub-dissectors) since this could be done in the RPC dissector itself,
knowing the sub-protocol hfinfo entry (this is why, I've not modified
the NFS one yet).

Two functions are added in proto.c :

gboolean proto_is_protocol_enabled(int n);
void proto_set_decoding(int n, gboolean enabled);

and two MACROs which can be used in dissectors:

OLD_CHECK_DISPLAY_AS_DATA(index, pd, offset, fd, tree)
CHECK_DISPLAY_AS_DATA(index, tvb, pinfo, tree)

See also the XXX in proto_dlg.c and proto.c around the new functions.

svn path=/trunk/; revision=2268
2000-08-13 14:20:32 +00:00
Laurent Deniel 2de43f748b Miscellaneous code cleaning
- add <stdarg.h> or <varargs.h> in snprintf.h
  and remove those inclusions in the other #ifdef NEED_SNPRINTF_H codes

- remove the check of multiple inclusions in source (.c)  code
  (there is a bit loss of _cpp_ performance, but I prefer the gain of
   code reading and maintenance; and nowadays, disk caches and VM are
   correctly optimized ;-).

- protect all (well almost) header files against multiple inclusions

- add header (i.e. GPL license) in some include files

- reorganize a bit the way header files are included:

  First:
  #include <system_include_files>
  #include <external_package_include_files (e.g. gtk, glib etc.)>
  Then
  #include "ethereal_include_files"

  with the correct HAVE_XXX or NEED_XXX protections.

- add some HAVE_XXX checks before including some system header files

- add the same HAVE_XXX in wiretap as in ethereal

Please forgive me, if I break something (I've only compiled and regression
tested on Linux).

svn path=/trunk/; revision=2255
2000-08-11 13:46:34 +00:00
Olivier Abad b977b382b3 Changed my mail address to oabad@cybercable.fr (dhis.net is too
unreliable).

svn path=/trunk/; revision=2019
2000-05-28 17:04:47 +00:00
Guy Harris b0294c712c Document "match_strval()" and "val_to_str()", as per Gerrit Gehnen's
suggestion.

svn path=/trunk/; revision=1897
2000-04-29 07:57:43 +00:00
Gilbert Ramirez 9789501a17 Fixed declaration of ip_dissector_table and clarified bitwidth doco.
Patch from Ben Fowler <wapdev@leedsnet.com>

svn path=/trunk/; revision=1888
2000-04-25 08:55:11 +00:00
Guy Harris 9e8cab115d Update the document to reflect Gilbert's changes to split
"proto_tree_add_item_format()" into multiple routines for different item
types, and to note that a subtree can be added under any item.

svn path=/trunk/; revision=1809
2000-04-06 06:38:24 +00:00
Guy Harris 1321ad97eb Fix some typos.
Get rid of the paragraph about C++-style comments at the beginning of
the document, as it also appears in section 1.1.1 "Comments".

Add a section on how to extract data from packets, which explains the
"pd" and "offset" arguments to a dissector, and notes that you should
not just blithely cast pointers into the packet data to 2-byte or 4-byte
integral types and dereference them, as the pointer may not be aligned,
and the field may not have the same byte order as the processor on which
Ethereal is running (in fact, it's probably *guaranteed* not to on at
least one machine, as Ethereal runs on both big-endian and little-endian
platforms...).

svn path=/trunk/; revision=1710
2000-03-10 08:57:05 +00:00
Olivier Abad 5a89694778 - Jeff Foster's documentation for conversations and coding style
- Documentation for plugins.

svn path=/trunk/; revision=1708
2000-03-09 19:32:31 +00:00
Guy Harris bcb954c51d Document "proto_tree_add_notext()", "proto_item_set_len()", and
"proto_item_set_text()".

svn path=/trunk/; revision=1688
2000-03-03 06:58:28 +00:00
Guy Harris 9490a8ead6 Put in a discussion of "check_col()", "col_add_[f]str()", and
"col_append_[f]str()".

svn path=/trunk/; revision=1687
2000-03-03 06:39:10 +00:00
Guy Harris 8f3dee4470 Put in a note on updating "Makefile.am" and "Makefile.nmake".
svn path=/trunk/; revision=1685
2000-03-03 06:19:50 +00:00
Guy Harris d4de088c60 Merge in Gilbert's "proto_tree" document.
svn path=/trunk/; revision=1684
2000-03-03 06:13:23 +00:00
Guy Harris 0f6d258026 Note that C++-style comments shouldn't be used in dissectors.
svn path=/trunk/; revision=1680
2000-03-02 07:47:20 +00:00
Guy Harris 33afb489e7 Merge in some information from Jeff Foster's developer's notes.
svn path=/trunk/; revision=1674
2000-03-01 08:05:49 +00:00
Guy Harris 4eee1fa7ca James Coe's developer HOWTO.
svn path=/trunk/; revision=1673
2000-03-01 07:48:03 +00:00