This was acheived by adding a void* data parameter to the dissect_function_t typedef in packet-rpc.h (r53213). After converting the pinfo->private_data, I'm not sure if it would be better to change the void* data pointer to be a rpc_call_info_value* explicitly. Not all "dissector functions" use it, but it would certainly save a lot of casting...
svn path=/trunk/; revision=53232
I didn't realize how expansive this change would be, so committing it now before replacing the pinfo->private_data, so if something needs to be reverted, all of this is not lost.
svn path=/trunk/; revision=53213
- when the text parameter is constant col_add_str() and col_set_str() are equivalent but col_set_str() is faster.
- same for replace col_append_fstr and col_append_str
- remove col_clear() when it's redundant:
+ before a col_set/col_add if the dissector can't throw an exception.
- replace col_append() after a col_clear() with faster col_add... or col_set
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9344
svn path=/trunk/; revision=52948
There seem to be several cases of proto_tree_add_string_format where a "string" value/filter doesn't really make sense because it's always empty, and is just being used as a "filterable subtree header (placeholder)". They appear to be more for "presense" than "value" and should probably be FT_NONE, although I'd almost argue for removing the filter in favor of proto_tree_add_text.
svn path=/trunk/; revision=52296
explicit, and frees up the "generic" names (like tvb_memdup) for new signatures
that take the appropriate wmem pool.
Majority of the conversion done with sed.
svn path=/trunk/; revision=52164
1. Case sensitivity differences between hf_ field name and formatted string.
2. Unnecessary whitespace between hf_ field name and colon in formatted string
There are cases where the hf_ field name doesn't quite match the proto_tree_add_uint_format, but it's close enough that one of them should be "right", I'm just not sure which is, I just know the string in proto_tree_add_uint_format is the one displayed.
svn path=/trunk/; revision=52098
The script didn't catch as many as I would have liked, but it's a start.
The most common (ab)use of proto_tree_add_uint_format was for appending strings to CRC/checksum values to note good or bad CRC/checksum.
svn path=/trunk/; revision=52045
Fix: If the FH length is not 32 or 40, the packet is decoded as "Unknown", a warning is displayed in Expert, and the rest of the packet is decoded. In addition, changed "Celerra" to "Celerra|VNX".
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8945
svn path=/trunk/; revision=50718
Changed FATTR4_DISSECT_VALUES arg to FATTR4_BITMAP_ONLY in calls to
dissect_nfs4_fattrs() in cases NFS4_OP_OPEN and NFS4_OP_CREATE of
dissect_nfs4_response_op().
svn path=/trunk/; revision=50602
Numerous improvements to NFS ACL/ACE dissection. For a complete list see
comment #11 of the bug.
From me:
- fix an infinite loop caught by fuzzing
- fix an out-of-bounds memory access caught by valgrind
- add missing {0,NULL} terminator to value_string array
svn path=/trunk/; revision=49074
* "dissect_nfs4_attribute()" was eliminated because the values dissection
portion of that routine was identical to the "dissect_nfs_attributes()"
routine. The code in "dissect_nfs4_bitmap4()" and
"dissect_nfs4_attrlist4()" was also similar so those routines
were also eliminated and their code incorporated in dissect_nfs_fattr4s().
These measures have reduced the size of 'packet-nfs.c' by almost 400 lines.
* Attributes were relabeled according to RFC 5661 (NFS4v1).
o “mand_attr” (REQUIRED attribute) header was changed to "reqd_attr”.
o “recc_attr” (RECOMMENDED attributes) header was changed to “reco_attr”
because "recommended" only has one ‘c’. =)
* In order to be able to list the attribute names horizontally in the
"Attr mask[x]" header (e.g., "Attr mask[0]: 0x0010111a (TYPE, CHANGE, SIZE,
FSID, ACL, FILEID)", “FATTR4_” was removed from the attribute names
(e.g., “FATTR4_TYPE (1)” is now “TYPE (1)”. Note that RFC 5661 does not
define them with a “FATTR4” prefix.
* In GETATTR responses, the “resok4” and “obj_attributes” subtrees were
eliminated because they are neither actual fields nor serve any practical
purpose.
* The READDIR "Directory Listing" subtree was reformatted. "Filename" was
changed to "Entry" because entries can also be directories.
"Value Follows", "cookie", and "Attr mask[n]" were moved within each entry.
If an Entry header is left-clicked all the fields of that entry are
highlighted in the Hex pane. If it is right-clicked the 'nfs.name'
field (filter) can be obtained. Finally, the "attr_vals:<DATA>" (text)
subtree was eliminated because it appears to serve no useful purpose and
clutters the tree.
svn path=/trunk/; revision=48966
Major NFS dissector cleanup. Consistent naming, spacing, line wrapping,
variable initialization, ...
For full details see comment #18 of the bug.
svn path=/trunk/; revision=48934
what these are). It gets freed slightly before we need to access it in order to
correctly free other glib memory.
Discovered accidentally while valgrinding the capture from
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8584
svn path=/trunk/; revision=48870
Add ACE4_INHERITED_ACE flag and NFS4ERR_DELEG_REVOKED error code.
Replace NFS4ERR_NODEV error code by NFS4ERR_DQUOT error code.
See RFC 5661 for details.
svn path=/trunk/; revision=48825
Effectively inline the only remain call (and replace a static buffer with ep
memory). Much of the NFS dissector needs to be converted to use named fields
at which point this code can go away, but that's a much bigger job.
Also, add modelines to packet-nfs.c and mark some internal value_string
functions as WS_DLL_LOCAL.
svn path=/trunk/; revision=48635
Cast away some implicit 64-bit-to-32-bit conversion errors due to use of
sizeof.
Cast away some implicit 64-bit-to-32-bit conversion errors due to use of
strtol() and strtoul().
Change some data types to avoid those implicit conversion warnings.
When assigning a constant to a float, make sure the constant isn't a
double, by appending "f" to the constant.
Constify a bunch of variables, parameters, and return values to
eliminate warnings due to strings being given const qualifiers. Cast
away those warnings in some cases where an API we don't control forces
us to do so.
Enable a bunch of additional warnings by default. Note why at least
some of the other warnings aren't enabled.
randpkt.c and text2pcap.c are used to build programs, so they don't need
to be in EXTRA_DIST.
If the user specifies --enable-warnings-as-errors, add -Werror *even if
the user specified --enable-extra-gcc-flags; assume they know what
they're doing and are willing to have the compile fail due to the extra
GCC warnings being treated as errors.
svn path=/trunk/; revision=46748