keys to have _uint in their names, to match the routines that handle
dissector tables with string keys. (Using _port can confuse people into
thinking they're intended solely for use with TCP/UDP/etc. ports when,
in fact, they work better for things such as Ethernet types, where the
binding of particular values to particular protocols are a lot
stronger.)
svn path=/trunk/; revision=35224
These packet-g*.c files all have display filter issues:
1) packet-gryphon.c: PROTOABBREV is "gryphon", but display filter fields are
prefixed with only "gryph".
2) packet-gmrp.c: PROTOABBREV is "gmrp", but display filter fields are prefixed
with "garp".
3) packet-gssapi.c: PROTOABBREV is "gss-api", but display filter fields are
prefixed with "gssapi".
4) packet-gvrp.c: PROTOABBREV is "gvrp", but display filter fields are prefixed
with "garp", most of which conflict with packet-gmrp.c's display filter fields.
svn path=/trunk/; revision=24058
there are many reasons why some protocols actually need to be able to access the pinfo structure while determining the pdu size
svn path=/trunk/; revision=19751
while this should improve performance by unmeasurably little it does have the sideeffect that once we finish the rewrite tcp analysis might actually work and work well even for tcp over tcp tunnelling.
this also means that if you include packet-tcp.h you also need to include emem.h .
svn path=/trunk/; revision=17681
it serves the same purpose as the register routine in a built-in
dissector, and don't require all dissectors to have one, as they might
just be taps.
Get rid of the stats tree's init routine, as it's just a tap, and as it
doesn't do anything.
Update the idl2eth Python script to generate plugins with register routines.
svn path=/trunk/; revision=13644
Introduce a new init routine for plugins,
which does not take the plugin api table as an
argument and allows etheral to distinguish
between plugins using the old and the new api.
Update README.plugins accordingly
Change all g_warnings() in epan/plugins.c to report_failue().
On windows we do not have a log console open while
loading the plugins, because a log console cannot be opened before the prefs have been read. Thus g_warnings()
does not work for reporting problems with plugins.
svn path=/trunk/; revision=13596
check for it in the Gryphon plugin.
Use "tvb_get_ntoh64()" to fetch the time stamp, and format it similarly
to the way absolute date/time time stamps are formatted.
svn path=/trunk/; revision=11800
Also move ncp222.py, x11-fields, process-x11-fields.pl,
make-reg-dotc, and make-reg-dotc.py.
Adjust #include lines in files that include packet-*.h
files.
svn path=/trunk/; revision=11410
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
/* XXX This code is neither Endianess independent, nor will it work
* on platforms that do not support the *optional* guin64 type
*/
svn path=/trunk/; revision=8626
Added two new "well known destinations": SD_IOPWR AND SD_UTIL.
Added logic to dissect the CMD_SET_TIME command.
Added an alterate destination for the CMD_PGM_START command.
Added logic to dissect the CMD_SCHED_MSG_REPLACE command.
Added logic to dissect the CMD_USDT_REGISTER command.
Added logic to dissect the CMD_USDT_SET_FUNCTIONAL command.
Added logic to dissect the following commands
CMD_IOPWR_GETINP
CMD_IOPWR_GETLATCH
CMD_IOPWR_CLRLATCH
CMD_IOPWR_GETOUT
CMD_IOPWR_SETOUT
CMD_IOPWR_SETBIT
CMD_IOPWR_CLRBIT
CMD_IOPWR_GETPOWER
CMD_UTIL_SET_INIT_STRATEGY
CMD_UTIL_GET_INIT_STRATEGY
Added the ability to recongnize more IOCTLS. (For the SJA1000 driver, LIN
and power drivers.)
Added the ability to recognize more card types.
Added dissection of more fields for CMD_SCHED_TX command.
Bug fixes and general updating.
svn path=/trunk/; revision=8607
- get rid of ...-static.o files in the build process (now done via
config.h instead of compiler flag)
- make packet-rtnet link statically (remove one unused function, rename
another one)
svn path=/trunk/; revision=8389
tvb_get_string() - takes a tvbuff, an offset, and a length as
arguments, allocates a buffer big enough to hold a string with
the specified number of bytes plus an added null terminator
(i.e., length+1), copies the specified number of bytes from the
tvbuff, at the specified offset, to that buffer and puts in a
null terminator, and returns a pointer to that buffer (or throws
an exception before allocating the buffer if that many bytes
aren't available in the tvbuff);
tvb_get_stringz() - takes a tvbuff, an offset, and a pointer to
a "gint" as arguments, gets the size of the null-terminated
string starting at the specified offset in the tvbuff (throwing
an exception if the null terminator isn't found), allocates a
buffer big enough to hold that string, copies the string to that
buffer, and returns a pointer to that buffer and stores the
length of the string (including the terminating null) in the
variable pointed to by the "gint" pointer.
Replace many pieces of code allocating a buffer and copying a string
with calls to "tvb_get_string()" (for one thing, "tvb_get_string()"
doesn't require you to remember that the argument to
"tvb_get_nstringz0()" is the size of the buffer into which you're
copying the string, which might be the length of the string to be copied
*plus 1*).
Don't use fixed-length buffers for null-terminated strings (even if the
code that generates those packets has a #define to limit the length of
the string). Use "tvb_get_stringz()", instead.
In some cases where a value is fetched but is only used to pass an
argument to a "proto_tree_add_XXX" routine, use "proto_tree_add_item()"
instead.
svn path=/trunk/; revision=7859
extracting PDUs from it and possibly doing reassembly. Make the COPS,
DNS, DSI, Gryphon, and SCCP dissectors use it.
Add "set_actual_length()", "tcp_dissect_pdus()",
"decode_boolean_bitfield()", "decode_numeric_bitfield()", and
"decode_enumerated_bitfield()" to the list of routines available to
dissectors on platforms where routines in the main program aren't
available to dynamically-loaded code.
Declare routines in "to_str.h" as "extern"; as I remember, that's
necessary to allow the "decode_XXX_bitfield()" routines declared therein
to be made available to plugins as per the above.
Note that new exported routines should be added to the end of the table
if that's the only change being made to the table.
Create a new "plugin_api_decls.h" header file, used to declare both the
"p_" variables and the "p_" structure members in the routine-exporting
mechanism; this reduces the number of places you have to change to
change the list of exported routines.
svn path=/trunk/; revision=5394
As a result of that, we now construct a tvbuff for each Gryphon message;
this obviates the need to pass a message length to the dissectors for
each message type.
svn path=/trunk/; revision=5321