aboutsummaryrefslogtreecommitdiffstats
path: root/packet-pppoe.c
Commit message (Collapse)AuthorAgeFilesLines
* Remove some more "CHECK_DISPLAY_AS_DATA()" calls and code to setGuy Harris2001-01-211-9/+1
| | | | | | | | | | | | | | | | | | | "pinfo->current_proto", in dissectors always called through dissector tables and handles. Make the IEEE 802.11 dissector static, as it's not called externally. Clear the Info column in the Linux cooked capture and 802.1q VLAN dissectors, before extracting anything from the packet, so that if an exception is thrown, the Info column doesn't reflect the previous protocol. Don't extract the encapsulated protocol in the VLAN dissector until you use it, so that if the frame contains the VLAN ID but not the encapsulated protocol, we at least put the VLAN ID into the protocol tree. svn path=/trunk/; revision=2927
* Add an additional "protocol index" argument to "{old_}dissector_add()",Guy Harris2001-01-091-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | "{old_}heur_dissector_add()", "{old_}conv_dissector_add()", and "register_dissector()", so that an entry in those tables has associated with it the protocol index of the protocol the dissector handles (or -1, if there is no protocol index for it). This is for future use in a number of places. (Arguably, "proto_register_protocol()" should take a dissector pointer as an argument, but 1) it'd have to handle both regular and heuristic dissectors; 2) making it take either a "dissector_t" or a union of that and a "heur_dissector_t" introduces some painful header-file interdependencies so I'm punting on that for now. As with other Ethereal internal APIs, these APIs are subject to change in the future, at least until Ethereal 1.0 comes out....) svn path=/trunk/; revision=2849
* Make the PPP-over-Ethernet discovery and session protocols registeredGuy Harris2001-01-041-28/+59
| | | | | | protocols. svn path=/trunk/; revision=2822
* For each column, have both a buffer into which strings for that columnGuy Harris2000-11-191-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | can be put, and a pointer to the string for the column, which might or might not point to that buffer. Add a routine "col_set_str()", which sets the string for the column to the string passed to it as an argument; it should only be handed a static string (a string constant would be ideal). It doesn't do any copying, so it's faster than "col_add_str()". Make the routines that append to columns check whether the pointer to the string for the column points to the buffer for the column and, if not, copy the string for the column to the buffer for the column so that you can append to it (so you can use "col_set_str()" and then use "col_append_str()" or "col_append_fstr()"). Convert a bunch of "col_add_str()" calls that take a string constant as an argument to "col_set_str()" calls. Convert some "col_add_fstr()" calls that take a string constant as the only argument - i.e., the format string doesn't have any "%" slots into which to put strings for subsequent arguments to "col_set_str()" calls (those calls are just like "col_add_str()" calls). Replace an END_OF_FRAME reference in a tvbuffified dissector with a "tvb_length(tvb)" call. svn path=/trunk/; revision=2670
* Have the Etherenet and PPP dissectors register themselves, and haveGuy Harris2000-11-191-56/+73
| | | | | | | | | | | | | other dissectors call them through handles. Do the same for the "PPP payload" dissector, after tvbuffifying it. Tvbuffify the PPPoE dissector. Do the last little bit of tvbuffifying the L2TP dissector (it takes old-style arguments and immediately generates a tvbuff out of them; make it take new-style arguments). svn path=/trunk/; revision=2664
* Added #include "strutil.h"Gilbert Ramirez2000-09-111-1/+2
| | | | svn path=/trunk/; revision=2410
* Fix comment and add reference to RFC.Laurent Deniel2000-08-251-3/+3
| | | | svn path=/trunk/; revision=2372
* Allow either old-style (pre-tvbuff) or new-style (tvbuffified)Guy Harris2000-08-071-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dissectors to be registered as dissectors for particular ports, registered as heuristic dissectors, and registered as dissectors for conversations, and have routines to be used both by old-style and new-style dissectors to call registered dissectors. Have the code that calls those dissectors translate the arguments as necessary. (For conversation dissectors, replace "find_conversation_dissector()", which just returns a pointer to the dissector, with "old_try_conversation_dissector()" and "try_conversation_dissector()", which actually call the dissector, so that there's a single place at which we can do that translation. Also make "dissector_lookup()" static and, instead of calling it and, if it returns a non-null pointer, calling that dissector, just use "old_dissector_try_port()" or "dissector_try_port()", for the same reason.) This allows some dissectors that took old-style arguments and immediately translated them to new-style arguments to just take new-style arguments; make them do so. It also allows some new-style dissectors not to have to translate arguments before calling routines to look up and call dissectors; make them not do so. Get rid of checks for too-short frames in new-style dissectors - the tvbuff code does those checks for you. Give the routines to register old-style dissectors, and to call dissectors from old-style dissectors, names beginning with "old_", with the routines for new-style dissectors not having the "old_". Update the dissectors that use those routines appropriately. Rename "dissect_data()" to "old_dissect_data()", and "dissect_data_tvb()" to "dissect_data()". svn path=/trunk/; revision=2218
* Add tvbuff class.Gilbert Ramirez2000-05-111-17/+17
| | | | | | | | | | | | | | | Add exceptions routines. Convert proto_tree_add_*() routines to require tvbuff_t* argument. Convert all dissectors to pass NULL argument ("NullTVB" macro == NULL) as the tvbuff_t* argument to proto_tree_add_*() routines. dissect_packet() creates a tvbuff_t, wraps the next dissect call in a TRY block, will print "Short Frame" on the proto_tree if a BoundsError exception is caught. The FDDI dissector is converted to use tvbuff's. svn path=/trunk/; revision=1939
* Make various dissectors static if they can be, and get rid of any headerGuy Harris2000-04-161-6/+6
| | | | | | files that no longer contain any information as a result of that change. svn path=/trunk/; revision=1871
* Change the sub-dissector handoff registration routines so that theGilbert Ramirez2000-04-131-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sub-dissector table is not stored in the header_field_info struct, but in a separate namespace. Dissector tables are now registered by name and not by field ID. For example: udp_dissector_table = register_dissector_table("udp.port"); Because of this different namespace, dissector tables can have names that are not field names. This is useful for ethertype, since multiple fields are "ethertypes". packet-ethertype.c replaces ethertype.c (the name was changed so that it would be named in the same fashion as all the filenames passed to make-reg-dotc) Although it registers no protocol or field, it registers one dissector table: ethertype_dissector_table = register_dissector_table("ethertype"); All protocols that can be called because of an ethertype field now register that fact with dissector_add() calls. In this way, one dissector_table services all ethertype fields (hf_eth_type, hf_llc_type, hf_null_etype, hf_vlan_etype) Furthermore, the code allows for names of protocols to exist in the etype_vals, yet a dissector for that protocol doesn't exist. The name of the dissector is printed in COL_INFO. You're welcome, Richard. :-) svn path=/trunk/; revision=1848
* Create a header file for every packet-*.c file. Prune the packet.h file.Gilbert Ramirez2000-02-151-1/+2
| | | | | | | | | | | | | This change allows you to add a new packet-*.c file and not cause a recompilation of everything that #include's packet.h Add the plugin_api.[ch] files ot the plugins/Makefile.am packaging list. Add #define YY_NO_UNPUT 1 to the lex source so that the yyunput symbol is not defined, squelching a compiler complaint when compiling the generated C file. svn path=/trunk/; revision=1637
* Replace the ETT_ "enum" members, declared in "packet.h", withGuy Harris1999-11-161-4/+19
| | | | | | | | | | | | | | | | | dynamically-assigned "ett_" integer values, assigned by "proto_register_subtree_array()"; this: obviates the need to update "packet.h" whenever you add a new subtree type - you only have to add a call to "proto_register_subtree_array()" to a "register" routine and an array of pointers to "ett_", if they're not already there, and add a pointer to the new "ett_" variable to the array, if they are there; would allow run-time-loaded dissectors to allocate subtree types when they're loaded. svn path=/trunk/; revision=1043
* Removed unnecessary #include "etypes.h" lines.Gilbert Ramirez1999-08-241-2/+1
| | | | svn path=/trunk/; revision=565
* Created a new protocol tree implementation and a new display filterGilbert Ramirez1999-07-071-23/+20
| | | | | | | mechanism that is built into ethereal. Wiretap is now used to read all file formats. Libpcap is used only for capturing. svn path=/trunk/; revision=342
* Added PPPoE, PPTP, GRE, and ISAKMP dissectors.Gilbert Ramirez1999-06-111-0/+237
svn path=/trunk/; revision=303