Windows - the problem is that GTK+ 1.3[.x] and later assume strings
handed to them are UTF-8 strings, not, for example, ISO 8859/x strings.
In packet-radius.c, re-define "isprint()" rather than #ifdeffing its use
(the old code was also incorrectly treating 0x7f as a printable).
svn path=/trunk/; revision=9435
"rd_value_to_str()".
Handle a null return from "find_radius_attr_info()".
We don't have to reserve a value type of 0 for "not found in the table"
- a null return from "find_radius_attr_info()" indicates that.
Hoist the code to make the top-level item for an AVP above the check for
an EAP message.
svn path=/trunk/; revision=9313
(as it's the type of the value for that attribute, e.g. integer, string,
binary string, time, ...), and call "val1" "attr_type" (as it's the
"type" field value for that attribute in RADIUS packets).
Add a type for EAP messages, and check for EAP messages using the value
type.
For tagged integers, fetch the tag and value separately.
Fix the tagged-integer code to overwrite the buffer rather than
appending to it.
svn path=/trunk/; revision=9307
Get rid of "rd_value_to_str()", pulling its code up into the one place
it's called, and rename "rd_value_to_str_2()" to "rd_value_to_str()"
(and get rid of its return value - it just returns its first argument).
Make "textbuffer" and "vsabuffer" local variables in
"dissect_attribute_value_pairs()".
Get rid of "rd_match_strval_attrib()" - just fetch the full
radius_attr_info entry and use its "str" member.
svn path=/trunk/; revision=9306
a value_string table associated with it, just have them all be
RADIUS_INTEGER4 or RADIUS_INTEGER4_TAGGED, and add to the table of value
tags/value types/value names a pointer to a value_string table - if it's
null, just show the value, otherwise use the table.
Use that for the 3GPP protocol type field as well, with a value_string
table, rather than doing a switch.
Constify a bunch of tables.
Replace "get_vsa_table()" with "get_attr_info_table()", which returns
the attribute information table for the vendor in question, or NULL.
Fix the handling of IPX addresses.
svn path=/trunk/; revision=9304
not for VSA 2
- Fixme comment about length handling added
- Cleanup: Setting a variable to the right type removes the necessity
for casts.
svn path=/trunk/; revision=9067
NULL, convert it to a copy of a null string, otherwise replace it with a
copy of the string, so that we know that the variable for the preference
always points to a string that can be freed.
That also obviates the need to worry about a null-pointer value for a
preference variable when checking to see whether a preference has changed.
When checking for a string preference not being set, check for an empty
string, not a null pointer - the above code turns null pointers into
pointers to empty strings, *and* the GUI code does (and always did!) the
same.
svn path=/trunk/; revision=7342
epoch-in-seconds value and converts it to a string.
Use that routine in the RADIUS dissector, rather than using "ctime()"
and "tzname[]" - "tzname[]" strings might contain non-ASCII characters,
which currently give the GTK+ 1.3[.x] used on Windows, and also, I
think, GTK+ 2.x, heartburn, as they expect UTF-8, not, for example, ISO
8859/1.
Fix the string length in "abs_time_to_str()".
svn path=/trunk/; revision=7124
don't initialize variables that are set elsewhere before they're
used;
don't call "tvb_get_ptr()" to set a variable if you're not going
to use that variable;
make the two character-processing loops have the same structure;
put the result of the XORing into an unsigned character, so it
can be handed to "isprint()" without running the risk of bogus
behavior if the 8th bit is set.
svn path=/trunk/; revision=6796
The MD5 is copyrighted by L. Peter Deutsch, and released under the same
license as zlib. It is GPL-compatible, and should NOT have the GPL
applied to it.
svn path=/trunk/; revision=6790
qualifiers as necessary to ensure that we don't have to.
"strcmp()", "strcasecmp()", and "memcmp()" don't return booleans; don't
test their results as if they did.
Use "guint8", not "guchar", for a pointer to (one or more) 8-bit bytes.
Update Michael Tuexen's e-mail address.
svn path=/trunk/; revision=6726
equivalents for the toplevel directory. The removal of winsock2.h will
hopefully not cause any problems under MSVC++, as those files using
struct timeval still include wtap.h, which still includes winsock2.h.
svn path=/trunk/; revision=5932
1. Add some VSAs.
2. Modify the routines match_numval() and
rd_match_strval_attrib() to use a null string pointer, rather
than a 0 value, to signify the end of the attribute table,
because some vendors are using an attribute with a value of 0.
3. Bug fix.
svn path=/trunk/; revision=5890
in the "packet_info" structure instead, as we don't need a pointer for
every single frame in the capture file, just for each frame for which we
currently have an open "epan_dissect_t".
svn path=/trunk/; revision=5614
and other changes to RADIUS.
Export the Q.931 cause location and code values, and use them in the
RADIUS dissector for ACC cause codes and values.
Make "CHAP" all caps, as it should be, and use InterCaps in AppleTalk
(Apple does).
The CHAP Challenge is an octet string, not a text string - the
FreeRadius dictionary has an error there.
In "rdconvertinttostr()", if there's no value_string table, just print
the value numerically, don't call "rd_match_strval()".
Don't pass a null value_string pointer to "rd_match_strval_attrib()" -
just report the value, without attempting to find a string for it.
svn path=/trunk/; revision=5460
1. merge '#define XXX', XXX_printinfo and XXX_attrib_type_vals
into XXX_attrib to make it easy to add new attributes.
2. put decoded VSAs as sub item.
Update comments to reflect those changes.
svn path=/trunk/; revision=5455
RADIUS attributes from files like the FreeRadius dictionary files,
rather than compiling them into the RADIUS dissector.
svn path=/trunk/; revision=5403
When displaying text strings, show escapes in octal (as is done C)
rather than decimal.
Display RADIUS_BINSTRING values as strings of hex digits rather than as
text strings.
Make some items that apparently *are* text strings RADIUS_STRING rather
than RADIUS_BINSTRING.
The return value of "rdconvertbufftostr()" is never used; get rid of it.
svn path=/trunk/; revision=5402
Declares some variables static.
Creates a new include file packet-rsvp.h, and make use of it
(change some extern decls to #inlcude).
Move the file packet-pgm.h into packet-pgm.c as it is not used
by anything outside packet-pgm.c.
svn path=/trunk/; revision=5162
of the LEAP negotiation, so we can properly dissect the LEAP message
after the first pass through the packets.
For that to be computed correctly, EAP frames have to be dissected on
the first pass through the capture file, even if the protocol tree isn't
being generated; that means that RADIUS AVPs need to be dissected even
if the protocol tree isn't being generated.
svn path=/trunk/; revision=5004
dissectors. "Old-style" dissectors return nothing. "New-style"
dissectors return one of:
a positive integer, giving the number of bytes worth of data in
the tvbuff that it considered to be part of the PDU in the
tvbuff;
zero, if it didn't consider the data in the tvbuff to be a PDU
for its protocol;
a negative integer, giving the number of additional bytes worth
of data in needs to get the complete PDU (for use with
fragmentation/segmentation when the length of the PDU isn't
known to the protocol atop the one the dissector is dissecting).
Have "call_dissector()" return the return value of new-style dissectors,
and the length of the tvbuff handed to it for old-style dissectors.
Have "dissector_try_port()" return FALSE if the subdissector is a
new-style dissector and returned 0.
Make the EAP dissector a new-style dissector, and have a "EAP fragment"
dissector that is also a new-style dissector and handles fragmentation
of EAP messages (as happens above, for example, RADIUS). Also, clean up
some signed vs. unsigned comparison problems.
Reassemble EAP-Message AVPs in RADIUS.
svn path=/trunk/; revision=4811
use that tree to stick fragment information when we reassemble
EAP-message fragments.
Fix up some "tvb_new_subset()" calls to set the actual length to the
minimum of the data left in the tvbuff and the length of the subset.
svn path=/trunk/; revision=4809
set the columns, for use with EAP payloads inside RADIUS packets.
From Adam Sulmicki: dissect SSL-encoded stuff inside EAP.
svn path=/trunk/; revision=4806
"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=4586
structure to the "packet_info" structure; only stuff that's permanently
stored with each frame should be in the "frame_data" structure, and the
"column_info" structure is not guaranteed to hold the column values for
that frame at all times - it was only in the "frame_data" structure so
that it could be passed to dissectors, and, as all dissectors are now
passed a pointer to a "packet_info" structure, it could just as well be
put in the "packet_info" structure.
That saves memory, by shrinking the "frame_data" structure (there's one
of those per frame), and also lets us clean up the code a bit.
svn path=/trunk/; revision=4370
take a dissector handle as an argument, rather than a pointer to a
dissector function and a protocol ID. Associate dissector handles with
dissector table entries.
svn path=/trunk/; revision=4308