Make routines not used outside this module static.
Make "find_header_length()" return the correct value for management and
control frames.
svn path=/trunk/; revision=3590
integral value from a packet - "tvb_get_letohs()" can do that just fine.
Don't use "tvb_get_ptr()", casting the result to a "guint16 *", and
dereferencing that pointer, either: that doesn't handle byte order
correctly, and it may fail if the pointer isn't aligned on a 2-byte
boundary.
For that matter, don't just use "tvb_get_ptr()" and dereference the
result to get an 8-bit quantity.
Use "proto_tree_add_item()" in many places where it's possible.
Reuse the results of "tvb_get_ptr()" calls when possible.
Show the fragment number and sequence number in decimal - they're just
ordinals.
Fix the blurb for the sequence number field.
svn path=/trunk/; revision=3589
and put it under the top-level 802.11 protocol item, so you don't have
to open the frame control field to see it.
Rename the variable for it, and the value_string array for it, to
indicate that it's made out of the type and subtype fields.
svn path=/trunk/; revision=3587
instead of having four identical copies of that code in switch
statements, just handle all four of them with the same case.
svn path=/trunk/; revision=3586
for all Association Request frames, or all frames except for
Clear-to-send frames, or....
Compute the composed frame type early in the dissection process, and set
the Info column as soon as you've done that, rather than doing it in the
later switch statement.
svn path=/trunk/; revision=3585
protocol tree; not only is putting it at the top level a little weird,
it upsets the heck out of the protocol-statistics code, causing it to
abort. Put the fixed and tagged parameters under the top-level entry
for 802.11 (where one of the fixed-parameters entries already was).
Call the top-level item just "IEEE 802.11", not "IEEE 802.11 Header", as
it includes management-frame information.
svn path=/trunk/; revision=3584
interpretation of the address fields, in DATA_ADDR_T{1,2,3,4} format.
Clean up a bunch of other macros to enclose their argument in
parentheses.
Clean up "find_header_length()" - it only needs to take the frame
control field of the frame as an argument, and should just check whether
"COOK_ADDR_SELECTOR()" returns DATA_ADDR_T4.
"tofrom_ds" is a value_string table, not a true_false_string table, so
wrap it in "VALS()", not "TFS()".
Don't fetch the header length in N different places in the main
dissector - just fetch it once and use it throughout.
svn path=/trunk/; revision=3582
for promiscuous mode; just do what the parent process told you, i.e. do
a non-promiscuous capture iff a "-p" flag was specified.
svn path=/trunk/; revision=3575
says there aren't any (i.e., if the length field minus the size of the
stuff before the AVP's is less than or equal to 0).
svn path=/trunk/; revision=3568
data it decrypts must be a multiple of 4; round the size of the ICQ data
to a multiple of 4, and use that as the size of the buffer into which to
put the decrypted data and as the byte count passed to the decryption
routine.
svn path=/trunk/; revision=3564
byte count of zero, don't bother allocating a buffer for that message,
as we wouldn't do anything with that buffer.
Null-terminate the error message once we read it, before using it as a
string.
svn path=/trunk/; revision=3551
as well just include "ppptypes.h" in "packet-ethertype.c", rather than
defining ETHERTYPE_ values equal to the corresponding PPP_ values, and
add entries for the PPP protocols we now dissect when running atop
Ethernet.
svn path=/trunk/; revision=3548