aboutsummaryrefslogtreecommitdiffstats
path: root/packet-radius.c
AgeCommit message (Collapse)AuthorFilesLines
2003-12-17Pass "attr_info" to "rd_value_to_str()" - don't look it up again inGuy Harris1-22/+21
"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
2003-12-17According to RFC 2868, a tag value of 0 is not valid for a string - weGuy Harris1-2/+2
just treat a 0 tag byte as the first byte of the string. svn path=/trunk/; revision=9308
2003-12-17Call the "type" member of a "radius_attr_info" structure "value_type"Guy Harris1-26/+37
(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
2003-12-17Put in more information about the attribute type enum.Guy Harris1-51/+36
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
2003-12-17Instead of having a whole pile of RADIUS value types, each of which hasGuy Harris1-1324/+1051
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
2003-12-09Add a new attribute type RADIUS_IP6_ADDRESS for IPv6 addresses.Guy Harris1-3/+72
Put in a note explaining the enum for those types. From Rui Carmo: add all 3GPP VSA's. svn path=/trunk/; revision=9217
2003-11-22- Bugfix: Passworddecoding should only be done for attribute 2, butJörg Mayer1-9/+23
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
2003-07-15From Michael Kopp: add some entries for Cisco VSA for SSG CommunicationGuy Harris1-1/+6
via Radius Packets. svn path=/trunk/; revision=8023
2003-07-01From Adam Sulmicki: report the message type for accounting statusGuy Harris1-1/+6
messages and accounting messages. svn path=/trunk/; revision=7956
2003-03-11When registering a string preference, if the value of the preference isGuy Harris1-2/+2
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
2003-02-13Fetch the time stamp into a gint32, as it's known to be 32 bits, and letGuy Harris1-3/+3
the call to "abs_time_secs_to_str()" convert it to a "time_t". svn path=/trunk/; revision=7134
2003-02-13Cast "timeval" to "long", and print it with "%ld", to handle "time_t"Guy Harris1-2/+2
being an "int" or a "long". svn path=/trunk/; revision=7133
2003-02-12Make the argument to "abs_time_secs_to_str()" a "time_t" - it's in ANSIGuy Harris1-3/+4
C, and it's the right thing to pass to "localtime()". svn path=/trunk/; revision=7125
2003-02-11Add a "abs_time_secs_to_str()" routine that takes a UNIX time-since-the-Guy Harris1-6/+2
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
2003-01-28Do the usual "isprint()" workaround for versions of GTK+ that assumeGuy Harris1-1/+25
UTF-8 strings. svn path=/trunk/; revision=7020
2002-12-17Clean up the code a bit:Guy Harris1-14/+17
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
2002-12-17Replace #include "md5.h" with "crypt-md5.h".Olivier Abad1-2/+2
svn path=/trunk/; revision=6795
2002-12-17From James Harris: Decrypt RADIUS user passwords.Gerald Combs1-2/+71
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
2002-12-02Don't cast away constness, and fix variable and structure memberGuy Harris1-4/+4
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
2002-08-28Removed trailing whitespaces from .h and .c files using theJörg Mayer1-36/+36
winapi_cleanup tool written by Patrik Stridvall for the wine project. svn path=/trunk/; revision=6117
2002-08-26From Flavio Poletti: handle 3GPP QoS in RADIUS messages.Guy Harris1-24/+97
svn path=/trunk/; revision=6091
2002-08-02Replace the types from sys/types.h and netinet/in.h by their glib.hJörg Mayer1-10/+2
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
2002-07-17From Kan Sasaki:Guy Harris1-64/+210
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
2002-07-10From Thierry Pelle: Redback vendor-specific items for RADIUS and L2TP.Guy Harris1-1/+4
svn path=/trunk/; revision=5856
2002-06-04Get rid of the "data_src" member of the "frame_data" structure; put itGuy Harris1-2/+2
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
2002-05-24Bug fix from Kan Sasaki.Guy Harris1-2/+5
svn path=/trunk/; revision=5539
2002-05-14Update from Kan Sasaki.Guy Harris1-14/+4
svn path=/trunk/; revision=5465
2002-05-14From Kan Sasaki: added some VSAs from the FreeRadius dictionary filesGuy Harris1-237/+1319
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
2002-05-13From Kan Sasaki:Guy Harris1-1835/+955
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
2002-05-08From Kan Sasaki: VSA decoding and other changes to RADIUS.Guy Harris1-295/+1382
svn path=/trunk/; revision=5416
2002-05-06Note in comments that we should perhaps get all the information forGuy Harris1-1/+34
RADIUS attributes from files like the FreeRadius dictionary files, rather than compiling them into the RADIUS dissector. svn path=/trunk/; revision=5403
2002-05-06Fix a typo in a comment.Guy Harris1-10/+32
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
2002-04-14From Joerg Mayer:Guy Harris1-5/+7
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
2002-04-08More static-ization.Gilbert Ramirez1-2/+2
svn path=/trunk/; revision=5131
2002-03-27Cisco updates from Adam Sulmicki.Guy Harris1-54/+79
svn path=/trunk/; revision=5029
2002-03-27From Adam Sulmicki: enhanced Cisco support, Microsoft vendor ID, andGuy Harris1-4/+171
fixing a typo in a #define. svn path=/trunk/; revision=5024
2002-03-22Attach to all frames containing LEAP messages an indication of the stateGuy Harris1-39/+41
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
2002-03-22Additional vendor (Issani) for Radius, and Issani VSA support forGuy Harris1-1/+80
Radius, from Jim Sienicki. Put Jakob Schlyter into the contributors list in the Ethereal man page. svn path=/trunk/; revision=5001
2002-02-26Allow dissectors to be registered as "old-style" or "new-style"Guy Harris1-56/+162
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
2002-02-26Just put a full EAP tree under the EAP-message TLV; we will eventuallyGuy Harris1-18/+24
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
2002-02-25Add an EAP dissector that doesn't create a top-level tree and doesn'tGuy Harris1-20/+24
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
2002-02-25Mark the columns non-writable before calling the EAP dissector, so theGuy Harris1-1/+14
frame is still marked as a RADIUS packet. svn path=/trunk/; revision=4805
2002-02-25Small fix from Adam Sulmicki to an off-by-2 problem.Guy Harris1-2/+2
svn path=/trunk/; revision=4804
2002-02-25Typo fix, from Adam Sulmicki.Guy Harris1-2/+2
svn path=/trunk/; revision=4801
2002-02-22From Adam Sulmicki: dissect EAP messages inside RADIUS.Guy Harris1-8/+24
svn path=/trunk/; revision=4786
2002-02-22From Adam Sulmicki: additional AVPs for RADIUS. and makingGuy Harris1-2/+31
RD_TP_CONNECT_INFO a RADIUS_STRING rather than a RADIUS_STRING_TAGGED. svn path=/trunk/; revision=4780
2002-01-21Include files from the "epan" directory and subdirectories thereof withGuy Harris1-3/+3
"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
2001-12-10Move the pointer to the "column_info" structure in the "frame_data"Guy Harris1-7/+7
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
2001-12-03Make "dissector_add()", "dissector_delete()", and "dissector_change()"Guy Harris1-9/+8
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
2001-11-14Make the RADIUS dissector handle bogus AVPs (AVPs with a length lessGuy Harris1-5/+12
than the size of the AVP header) a bit better. svn path=/trunk/; revision=4203