Commit graph

54 commits

Author SHA1 Message Date
Guy Harris
a2414d8909 Don't wire into the reassembly code the notion that reassemblies should
be done on flows from one address to another; reassembly for protocols
running atop TCP should be done on flows from one TCP endpoint to
another.

We do this by:

	adding "reassembly table" as a data structure;

	associating hash tables for both in-progress reassemblies and
	completed reassemblies with that data structure (currently, not
	all reassemblies use the latter; they might keep completed
	reassemblies in the first table);

	having functions to create and destroy keys in that table;

	offering standard routines for doing address-based and
	address-and-port-based flow processing, so that dissectors not
	needing their own specialized flow processing can just use them.

This fixes some mis-reassemblies of NIS YPSERV YPALL responses (where
the second YPALL response is processed as if it were a continuation of
a previous response between different endpoints, even though said
response is already reassembled), and also allows the DCE RPC-specific
stuff to be moved out of epan/reassembly.c into the DCE RPC dissector.

svn path=/trunk/; revision=48491
2013-03-22 23:59:54 +00:00
Anders Broman
2e52e2ac99 [-Wmissing-prototypes]
Use explicit casts.

svn path=/trunk/; revision=48347
2013-03-17 09:11:21 +00:00
Bill Meier
a4128c56b9 General cleanup:
- Use/create extended value strings as appropriate;
- Reformat hf[] entries;
- Do whitespace, & etc changes to use a consistent formatting style;
- Reformat some long lines;
- Localize some variables; remove some unneeded initializers;
- expert...() shouldnt be called under 'if (tree)' (packet-wimaxasncp);
- Move proto_register...() & etc to the end of the file (packet-ieee80211);
- Misc.

svn path=/trunk/; revision=46489
2012-12-10 14:50:32 +00:00
Jeff Morriss
2552c750e5 We always HAVE_CONFIG_H so don't bother checking whether we have it or not.
svn path=/trunk/; revision=45017
2012-09-20 02:03:38 +00:00
Jakub Zawadzki
5a8783f5b1 Initial commit to support yet another method of passing data between dissectors.
Add new parameter 'data' to heur_dissector_t and new_dissector_t, for now it's always NULL

svn path=/trunk/; revision=44860
2012-09-10 21:40:21 +00:00
Jeff Morriss
aa5d9d78dd From Robert Bullen via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7683 :
The reassembled fragments tree in the Packet Details view is awesome, but it
lacks one thing: a field that exposes the reassembled data.

tcp.data already exists for exposing a single TCP segment's payload as a byte
array. It would be handy to have something similar for a single application
layer PDU when TCP segment reassembly is involved. I propose
tcp.reassembled.data, named and placed after the already existing field
tcp.reassembled.length.

My primary use case for this feature is outputting tcp.reassembled.data with
tshark for further processing with a script.

The attached patch implements this very feature. Because the reassembled
fragment tree code is general purpose, i.e. not specific to just TCP, any
dissector that relies upon it can add a similar field very cheaply. In that
vein I've also implemented ip.reassembled.data and ipv6.reassembled.data, which
expose reassembled fragment data as a single byte stream for IPv4 and IPv6,
respectively. All other protocols that use the reassembly code have been left
alone, other than inserting NULL into their initializer lists for the newly
introduced struct field reassemble.h:fragment_items.hf_reassembled_data.

svn path=/trunk/; revision=44802
2012-09-07 02:09:59 +00:00
Pascal Quantin
a24fa25716 Fix https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7430 :
Dissection of EAP-SIM and EAP-AKA is broken

svn path=/trunk/; revision=43560
2012-07-03 20:07:53 +00:00
Jakub Zawadzki
bf81b42e1e Update Free Software Foundation address.
(COPYING will be updated in next commit)

svn path=/trunk/; revision=43536
2012-06-28 22:56:06 +00:00
Chris Maynard
4902b4d857 Remove a few of "if (tree)" checks surrounding expert_add_info_format().
svn path=/trunk/; revision=43054
2012-06-04 06:22:50 +00:00
Jeff Morriss
2e11463277 Fix some more hf encodings.
svn path=/trunk/; revision=42434
2012-05-05 00:19:49 +00:00
pascal
570d20a978 From Nick Lowe:
Add a security warning if EAP-LEAP or EAP-MD5 is seen.
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7020

svn path=/trunk/; revision=42102
2012-04-16 18:36:01 +00:00
Anders Broman
d5f59e4efa From Nick Lowe:
Improve names for the EAP types, add missing definition. 

https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7020

svn path=/trunk/; revision=42092
2012-04-16 08:47:18 +00:00
Alexis La Goutte
1d10278073 Clean up indentation (use 2 spaces)
Add Modelines info

svn path=/trunk/; revision=42027
2012-04-11 19:37:56 +00:00
Alexis La Goutte
a14b4f57a9 Update Extensible Authentication Protocol (EAP) Registry (2011-02-22)
svn path=/trunk/; revision=42026
2012-04-11 19:36:09 +00:00
Anders Broman
76604977ef From Nick Lowe: Minor cosmetic name changes for consistency and brevity. https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7020
svn path=/trunk/; revision=41992
2012-04-09 15:18:04 +00:00
Alexis La Goutte
f4bf2b9f8f From Nick Lowe via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7020
Put EAP-TLS flags in to a tree to tidy the UI.

svn path=/trunk/; revision=41958
2012-04-05 17:49:20 +00:00
Anders Broman
6184a93a33 From Nick Lowe:
- Update eap header file to include MS-CHAP v2 definitions. 
- Convert EAP-MS-CHAP-V2 to use proto_tree_add_item() and make a few, hopefully final, changes. 

Fixed a couple of typos etc.

https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7020

svn path=/trunk/; revision=41955
2012-04-05 12:33:25 +00:00
Anders Broman
46b7949682 From Nick Lowe:
Convert EAP-LEAP to use proto_tree_add_item() and make a few fixups. 

https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7020

svn path=/trunk/; revision=41949
2012-04-05 07:35:18 +00:00
Anders Broman
e1233a19b0 Try to fix:
packet-eap.c: At top level:
packet-eap.c:150: error: static declaration of ‘eap_sim_subtype_vals’ follows non-static declaration
../../epan/eap.h:62: note: previous declaration of ‘eap_sim_subtype_vals’ was here
packet-eap.c:159: error: static declaration of ‘eap_aka_subtype_vals’ follows non-static declaration
../../epan/eap.h:72: note: previous declaration of ‘eap_aka_subtype_vals’ was here
packet-eap.c: In function ‘dissect_eap’:
packet-eap.c:668: warning: request for implicit conversion from ‘void *’ to ‘struct conv_state_t *’ not permitted in C++
packet-eap.c:673: warning: request for implicit conversion from ‘void *’ to ‘struct conv_state_t *’ not permitted in C++
packet-eap.c:866: warning: request for implicit conversion from ‘void *’ to ‘struct frame_state_t *’ not permitted in C++
packet-eap.c:927: warning: request for implicit conversion from ‘void *’ to ‘struct frame_state_t *’ not permitted in C++
packet-eap.c:1048: warning: request for implicit conversion from ‘void *’ to ‘struct frame_state_t *’ not permitted in C++
packet-eap.c:1067: warning: request for implicit conversion from ‘void *’ to ‘struct frame_state_t *’ not permitted in C++

svn path=/trunk/; revision=41924
2012-04-04 12:49:09 +00:00
Anders Broman
a42cb82d65 From Nick Lowe:
- Update eap header file to include SIM and AKA definitions.
- Change the SIM and AKA EAP types to use proto_tree_add_item(). 

https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7020

svn path=/trunk/; revision=41922
2012-04-04 12:32:44 +00:00
Anders Broman
68224296e3 Change to use eap. in filter names isof eap_
svn path=/trunk/; revision=41921
2012-04-04 10:35:48 +00:00
Anders Broman
c9a6e6ec59 From Nick Lowe:
Convert EAP-IDENTITY, EAP-NOTIFY and EAP-MD5 to use proto_tree_add_item().

From me consistently use "proto abbr"_"name".

svn path=/trunk/; revision=41918
2012-04-04 08:04:25 +00:00
Jeff Morriss
65a42ddd9a From Nick Lowe via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7020 :
First patch to start the conversion of the EAP dissector from its use of
proto_tree_add_text() to proto_tree_add_item().

svn path=/trunk/; revision=41913
2012-04-03 21:52:03 +00:00
Anders Broman
a52545a4c1 From Nick Lowe:
Negate version bits in flags for PEAP, TTLS, FAST.

https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7019

svn path=/trunk/; revision=41892
2012-04-02 08:00:43 +00:00
Anders Broman
c0a018ec2d From Nick Lowe: Show the reserved bits if set for EAP-TLS, unify/clean up the display output. https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7017
svn path=/trunk/; revision=41886
2012-04-01 16:12:56 +00:00
Anders Broman
9aa9246324 From Josip Medved: EAP-SIM and EAP-AKA are missing some attributes. https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6877
svn path=/trunk/; revision=41217
2012-02-28 06:04:02 +00:00
Alexis La Goutte
3716b464d5 Fix some Dead Store (Dead assignement/Dead increment) Warning found by Clang
svn path=/trunk/; revision=40894
2012-02-06 22:05:10 +00:00
Anders Broman
d56c7f3766 From billyjeans:
EAP-TLS cannot re-initialize properly if previous EAP-TLS conversation is not properly finished.

https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5633

svn path=/trunk/; revision=40863
2012-02-05 13:09:10 +00:00
Bill Meier
794757ae8f For proto_tree_add_item(..., proto_xxx, ...)use ENC_NA as the encoding arg.
Also: remove trailing whitespace for a number of files.

svn path=/trunk/; revision=39503
2011-10-21 02:10:19 +00:00
Bill Meier
4e57694d4a Convert 'encoding' parameter of certain proto_tree_add_item() calls in non-autogenerated epan/dissectors:
Specifically:  Replace FALSE|0 and TRUE|1 by ENC_BIG_ENDIAN|ENC_LITTLE_ENDIAN as
 the encoding parameter for proto_tree_add_item() calls which directly reference
 an item in hf[] which has a type of:
    FT_UINT8
    FT_UINT16
    FT_UINT24
    FT_UINT32
    FT_UINT64
    FT_INT8
    FT_INT16
    FT_INT24
    FT_INT32
    FT_INT64
    FT_FLOAT
    FT_DOUBLE


svn path=/trunk/; revision=39288
2011-10-06 03:35:44 +00:00
Bill Meier
d2269ce7d5 Fix gcc 4.6 "set but not used [-Wunused-but-set-variable]" warnings.
svn path=/trunk/; revision=37716
2011-06-19 18:47:35 +00:00
Stig Bjørlykke
84bc28bd6a Introduce "Fragment count" filter element for all protocols doing reassembly.
svn path=/trunk/; revision=35705
2011-01-30 21:01:07 +00:00
Guy Harris
a8bc4a0d13 Rename the routines that handle dissector tables with unsigned integer
keys to have _uint in their names, to match the routines that handle
dissector tables with string keys.  (Using _port can confuse people into
thinking they're intended solely for use with TCP/UDP/etc. ports when,
in fact, they work better for things such as Ethernet types, where the
binding of particular values to particular protocols are a lot
stronger.)

svn path=/trunk/; revision=35224
2010-12-20 05:35:29 +00:00
Stig Bjørlykke
539b558f8c Renamed some reassembled data texts.
Removed some check_col().

svn path=/trunk/; revision=31809
2010-02-06 18:20:21 +00:00
Stig Bjørlykke
88b72356ad Introduce "Reassembled length" filter element for all protocols doing
reassembly.

svn path=/trunk/; revision=31767
2010-02-02 16:01:52 +00:00
Anders Broman
02030d02a1 From shivesh83@gmail.com:
Enhancement to dissect EAP/AKA'
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=4426
I also updated some PPP and EAP numbers.

svn path=/trunk/; revision=31704
2010-01-27 18:16:07 +00:00
Jaap Keuter
b2e0568450 Fix EAP method type 25, 26 interpretation.
svn path=/trunk/; revision=31115
2009-11-29 13:55:34 +00:00
Kovarththanan Rajaratnam
0a5b014cec Don't guard col_clear with col_check
svn path=/trunk/; revision=29344
2009-08-09 07:36:13 +00:00
Kovarththanan Rajaratnam
e971354a54 Don't guard col_set_str (COL_PROTOCOL) with col_check
svn path=/trunk/; revision=29340
2009-08-09 06:26:46 +00:00
Anders Broman
c91a384702 Apply some of the patches from:
http://wiki.wireshark.org/Development/Optimization

svn path=/trunk/; revision=28356
2009-05-13 19:46:11 +00:00
Jaap Keuter
829ff3a493 Clean up header file and dissector code. Update EAP numbers list.
svn path=/trunk/; revision=28295
2009-05-07 21:13:32 +00:00
Stig Bjørlykke
d6f0b0c2af From Jens Braeuer:
Added support for Wifi Simple Config aka Wifi Protected Setup

From me:
Added standard copyright header to packet-wps

svn path=/trunk/; revision=23549
2007-11-23 17:48:28 +00:00
Martin Mathieson
24d6a39eb0 Embedding EAP inside wimaxasncp.
svn path=/trunk/; revision=23474
2007-11-16 23:03:09 +00:00
Anders Broman
9aea451086 Dissect EAP inside ISAKMP update some strings from IANA.
(fix bug http://bugs.wireshark.org/bugzilla/show_bug.cgi?id=777)

svn path=/trunk/; revision=20054
2006-12-06 22:03:45 +00:00
Ronnie Sahlberg
feab79e328 change a whole bunch of ethereal into wireshark
svn path=/trunk/; revision=18196
2006-05-21 04:49:01 +00:00
Guy Harris
b7b80d94be Move a pile of protocol-related headers from the top-level source
directory to the epan directory.  Some of them should perhaps ultimately
be moved to epan/dissectors, if they pertain only to stuff exported by a
particular dissector.

Fix Gerald's e-mail address in files we're moving.

svn path=/trunk/; revision=15844
2005-09-17 00:02:31 +00:00
Ronnie Sahlberg
a6af4ea93e gmemchunk -> se_alloc() improvements
svn path=/trunk/; revision=15323
2005-08-12 23:29:19 +00:00
Guy Harris
255b302a82 Fix some typoes.
Call "dissect_attribute_value_pairs()" regardless of whether we're
building a protocol tree, so the EAP subdissector is always called.

"dissect_attribute_value_pairs()" is only called when the length of AVPs
in the packet is non-zero; don't bother checking for a zero length.

Don't put two items in for each AVP - one is sufficient.

Add some more length checks when processing AVPs.  Don't require AVPs to
be at least 3 bytes long - they might have just a type and length; let
an exception be thrown if that's a problem.

Don't require that the entire AVP be available in the tvbuff before
processing it; let an exception be thrown as we're processing the AVP if
we don't have all the data, so the stuff before the end is processed.

Give the tvbuff for the AVP data a length that reflects the length of
data left in the tvbuff, so that the appropriate exception is thrown if
the packet was cut short by a snapshot length.

Don't have a fixed-length buffer for reassembled EAP messages; grow it
as necessary.

Don't special-case the initial part of the processing of EAP messages;
put in the standard length item, as well as, for fragments, an item for
the fragment data.

Check for non-consecutive EAP-Message attributes.

Set the columns non-writable while dissecting the EAP message, so
Protocol and Info reflect the RADIUS packet.

Doing the reassembly by gluing together all the consecutive EAP-Message
attributes means we don't need help from the EAP dissector, returning
the total length of the EAP message.  Get rid of the no-longer-needed
eap_fragment dissector; just call the regular EAP dissector.

svn path=/trunk/; revision=15046
2005-07-24 20:39:19 +00:00
Ulf Lamping
56a9fe6d2a add a generated toplevel line between the connectionless DCE/RPC protocol and the defragmented DCE/RPC content, to better understand what's going on if defragmentation is done.
svn path=/trunk/; revision=14531
2005-06-02 20:55:58 +00:00
Lars Roland
ec9ca01616 Move the following files from /trunk to /trunk/epan:
asn1.[ch]
follow.[ch]
ptvcursor.[ch]
reassemble.[ch]
xmlstub.[ch]

fix #include statements accordingly.

svn path=/trunk/; revision=13366
2005-02-09 23:38:00 +00:00