aboutsummaryrefslogtreecommitdiffstats
path: root/packet-ieee80211.c
AgeCommit message (Collapse)AuthorFilesLines
2001-03-15Don't attempt to modify the data pointed to by the result ofGuy Harris1-13/+4
"tvb_get_ptr()". Display a "(B)" flag for supported rates that are in the BSSBasicRate Set. svn path=/trunk/; revision=3129
2001-03-13Make tvb_get_ptr() return 'const guint8*', and clean up all theGilbert Ramirez1-5/+5
usages of tvb_get_ptr(). packet-ieee80211.c still has one bad usage, in which it *does* modify the tvbuff's data. svn path=/trunk/; revision=3128
2001-02-01Updates from Johan Jorgensen:Guy Harris1-48/+68
Correct number of addresses shown in dataframes. Duration ID changed to "Association ID" in power-save polls Added sequence and fragment numbers. Corrected representation of frame-control flags. Added dissection of data frames with piggybacked CF-Ack, Poll but no data. Cleaned up code a bit (mostly empty lines)... svn path=/trunk/; revision=2964
2001-01-23Fix forwarded by Johan Jorgensen of Axis Communications.Guy Harris1-17/+17
Also, print unsigned quantities with %u, not %d. svn path=/trunk/; revision=2936
2001-01-21Remove some more "CHECK_DISPLAY_AS_DATA()" calls and code to setGuy Harris1-12/+2
"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
2001-01-10The frame control field is, I infer from "dissect_ieee80211()",Guy Harris1-2/+2
little-endian, so "capture_ieee80211()" should use "pletohs()", not "pntohs()", to fetch it. Also, "pletohs()" takes a *pointer* to the object to be fetched as an argument. svn path=/trunk/; revision=2863
2001-01-09Add an additional "protocol index" argument to "{old_}dissector_add()",Guy Harris1-2/+3
"{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
2001-01-03Have the TR MAC and LLC dissectors register themselves, make themGuy Harris1-7/+14
static, and have other dissectors call them through handles. svn path=/trunk/; revision=2816
2001-01-03Have "proto_register_protocol()" build a list of data structures forGuy Harris1-2/+3
protocols, in addition to adding structures to the list of filterable fields. Give it an extra argument that specifies a "short name" for the protocol, for use in such places as pinfo->current_proto; the dialog box for constructing filters; the preferences tab for the protocol; and so on (although we're not yet using it in all those places). Make the preference name that appears in the preferences file and the command line for the DIAMETER protocol "diameter", not "Diameter"; the convention is that the name in question be all-lower-case. Make some routines and variables that aren't exported static. Update a comment in the ICP dissector to make it clear that the dissector won't see fragments other than the first fragment of a fragmented datagram. svn path=/trunk/; revision=2810
2000-12-02Add the relevant "CHECK_DISPLAY_AS_DATA()" call.Guy Harris1-1/+3
svn path=/trunk/; revision=2732
2000-11-30Rename "proto_reg_handoff_iee380211()"[sic] toGuy Harris1-3/+3
"proto_reg_handoff_wlan()", to match "proto_register_wlan()". Call it "IEEE 802.11 wireless LAN", not "Wireless ethernet" - that makes it clearer what type of wireless LAN it is (which *isn't* Ethernet at the MAC layer, although I suspect many of the drivers make it look like Ethernet to the rest of the system). svn path=/trunk/; revision=2717
2000-11-29Wrap the dissect_fddi() call (with a 4th argument) withGilbert Ramirez1-1/+7
dissect_fddi_not_bitswapped() and dissect_fddi_bitswapped(), both of which use the standard 3-argument tvbuffified-dissector argument list. Add a dissector table called "wtap_encap" which is used to call dissectors from dissect_frame(). The switch() statement from this top-level dissector is removed. The link-layer dissectors register themselves with the "wtap_encap" dissector table. The dissectors are now static where possible. svn path=/trunk/; revision=2708
2000-11-19For each column, have both a buffer into which strings for that columnGuy Harris1-2/+2
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
2000-11-15Move the table of bit-swapped byte values to "epan/bitswap.c", andGuy Harris1-46/+32
declare it, and define a "BIT_SWAP" macro that uses it, in "epan/bitswap.h". Use that macro to bit-swap bytes in the IEEE 802.11 dissector, rather than the macro that was used (said macro used GCCisms and didn't compile on Windows). Make an "init_plugin()" routine to enable a plugin and call its init routine, and call it from "check_plugin_status()" and "plugins_enable_cb()", rather than having very similar code in two places; "patable" is now part of libethereal, and, at least on Windows, attempts to refer to it from "libui" failed. Make "patable" static to "epan/plugins.c". (This may still not work, as now "libui" is calling a routine in "libethereal"; if that fails, perhaps it's time to get rid of the "enable/disable plugins" stuff completely, as new-style plugins, at least, register themselves as protocols and should be controllable from the "Edit->Protocols" window just as built-in dissectors are.) svn path=/trunk/; revision=2649
2000-11-15IEEE 802.11 support, from Johan Jorgensen of Axis Communications AB.Guy Harris1-0/+1753
Add in stuff for a bunch of libpcap formats either in libpcap 0.5.2 or in the current CVS version; we don't implement all of them in Ethereal/Wiretap (those are "#if 0"ed out), but we do implement the IEEE 802.11 stuff (which isn't yet in libpcap or tcpdump, but the CVS version of libpcap *does* reserve 105 as the encapsulation type number for 802.11). svn path=/trunk/; revision=2646