Commit Graph

57 Commits

Author SHA1 Message Date
Michael Mann bfeeba6f5e Fix AVCTP, AVRCP, HCI AVL and L2CP for multiple interfaces/adapters
From Michal Labedzki, bug 8367 (https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8367)

svn path=/trunk/; revision=47809
2013-02-21 21:35:19 +00:00
Chris Maynard c3c6ebe6c0 From Michael Labedzki via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8304: Fix potential inconsistency with interfaces introduced with r47651.
svn path=/trunk/; revision=47655
2013-02-14 15:29:25 +00:00
Chris Maynard 7410bf54a1 Fix Coverity CID 981007: Dereference before null check. Bug introduced with r47632.
svn path=/trunk/; revision=47651
2013-02-13 16:39:31 +00:00
Anders Broman 4dc754f454 From: Michal Labedzki:
Bluetooth: Improve support of MAP, PBAP, BPP and BIP in OBEX

Add support for recognize profiles using OBEX (by "Target"), then add
all Application Parameters specific for MAP, PBAP, BPP, BIP.
Also fix one FIXME, so now dissecting by OBEX does not cause malformed
frames while jumping over dissected packets.

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

svn path=/trunk/; revision=47632
2013-02-11 15:04:53 +00:00
Anders Broman 892ff116c9 From Michal Labedzki:
Add support for AVDTP/A2DP/VDP and SBC

Part of 
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7893

svn path=/trunk/; revision=45921
2012-11-05 11:42:10 +00:00
Anders Broman d50c587316 From Andrei Emeltchenko:
Makes L2CAP be independent from acl_data

When L2CAP is transferred through wireless it has no ACL incapsulation.
The patch makes it possible to chain L2CAP dissector based on LLC
bluetooth pid.

Part of
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7633

svn path=/trunk/; revision=45918
2012-11-05 09:36:00 +00:00
Anders Broman 120dab634e From Michal Labedzki:
"Decode By" for Bluetooth support decoding by L2CAP service, L2CAP CID,
L2CAP PSM, RFCOMM service and RFCOMM channel.

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

svn path=/trunk/; revision=45913
2012-11-05 08:39:51 +00:00
Anders Broman 576b37ddd8 from Allan M. Madsen:
Add support for HCI 3.0+HS and v4.0, Bluetooth Low Energy. This includes
dissection of additional HCI commands and events, Attribute Protocol and
Security Manager Protocol.

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

svn path=/trunk/; revision=45709
2012-10-22 12:49:04 +00:00
Anders Broman 3805f354a4 From Michal Labedzki:
[PATCH 15] Bluetooth: Add modelines 

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

svn path=/trunk/; revision=45422
2012-10-09 10:36:04 +00:00
Anders Broman ff1a7d93bf From Michal Labedzki:
Bluetooth: Provide PSM for higher layers

This is needed by AVRCP, HCRP and AVDTP to recognize other substreams.

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

svn path=/trunk/; revision=45041
2012-09-21 11:30:53 +00:00
Anders Broman aa3c9034f5 From Michal Labedzki:
Bluetooth: Cleanup headers
Remove redundant headers and sort existing to chosen convention.

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

svn path=/trunk/; revision=45039
2012-09-21 10:49:44 +00:00
Anders Broman 8974a27357 From Michal Labedzki:
FCS is not part of "Control" subtree so move it.

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

svn path=/trunk/; revision=45038
2012-09-21 10:39:15 +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
Gerald Combs 7950fc1c94 Add length checks to make sure we don't underflow an integer. Make
sure we allocate and copy the same amount of data. Fixes bug 7621.

svn path=/trunk/; revision=44476
2012-08-13 19:30:42 +00:00
Jakub Zawadzki b18e880040 Update FSF address - part II.
svn path=/trunk/; revision=43538
2012-06-28 23:18:38 +00:00
Bill Meier 2df5dc3d53 From Reinhard Speyerer: Fix several misspellings/typos in Wireshark
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6967

svn path=/trunk/; revision=41645
2012-03-18 22:24:24 +00:00
Bill Meier ba2cda4ef0 Cleanup & minor bug fixes:
- Don't put a value_string array in a .h file (included in several .c files);
- 'if ((a!=NULL) && !b) {fail}' should be 'if ((a==NULL) || !b) {fail}' in a few cases;
- Use value_string_ext as appropriate;
- Use val_to_str_const() in place of val_to_str() as appropriate;
- Use tvb_new_subset_remaining(...) instead of tvb_new_subset(..., -1, -1);
- Use tvb_reported_length_remaining() in place of tvb_length_remaining() in some cases;
- tvb_reported_length_remaining() can return -1;
- Use of TFS(&true_false) not req'd since "True"/"False" is the default if no TFS provided;
- Reformat various (long lines, etc);
- Use consistent indentation.

svn path=/trunk/; revision=41502
2012-03-12 14:38:59 +00:00
Alexis La Goutte 70ea13b1dd Fix some Dead Store (Dead assignement/Dead increment) Warning found by Clang
svn path=/trunk/; revision=40900
2012-02-06 22:13:32 +00:00
Anders Broman 95c9d2c52f From Michal Labedzki:
Fix:Wrong bluetooth PSM detected when parse the L2CAP packet.

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

svn path=/trunk/; revision=40749
2012-01-28 16:24:12 +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 67ee5049d4 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_BOOLEAN
     FT_IPv4
     FT_EUI64
     FT_GUID
     FT_UINT_STRING

Also: For type FT_ITv6 use ENC_NA. (This was missed in SVN #39260)

svn path=/trunk/; revision=39328
2011-10-10 00:39:31 +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 94f36ca4ff Use ENC_NA as encoding for proto_tree_add_item() calls which directly reference an hf item (in hf[] with types:
FT_NONE
   FT_BYTES
   FT_IPV6
   FT_IPXNET
   FT_OID

Note: Encoding field set to ENC_NA only if the field was previously TRUE|FALSE|ENC_LITTLE_ENDIAN|ENC_BIG_ENDIAN

svn path=/trunk/; revision=39260
2011-10-04 22:44:31 +00:00
Anders Broman 3acc73fd0c From Andrei Emeltchenko via Chris Maynard:
btl2cap extended window shows wrong bit.
Patch would not apply cleanly so added by hand.
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6257

svn path=/trunk/; revision=38680
2011-08-23 04:49:24 +00:00
Jeff Morriss 009156289f Fix the test.sh failures based on Guy's suggestion in https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5445#c15 :
Add a new tap flag to indicate that a tap listener is just a "dissector helper",
that is, a tap which is used by a dissector to help it do its dissection but
does not, itself, require dissection.

Use this new flag in the dissectors which register taps.

Remove the (now-unused) have_tap_listeners() function.

svn path=/trunk/; revision=37069
2011-05-12 03:18:34 +00:00
Gerald Combs dae5200002 Fix some Visual C++ analysis warnings.
svn path=/trunk/; revision=35988
2011-02-17 23:00:34 +00:00
Guy Harris a595f69ce4 The lack of _WITH_PHDR in WTAP_ENCAP_BLUETOOTH_H4 means there's no
pseudo-header, and hence there's no direction indication. Don't set
pinfo->p2p_dir for it.  Use WTAP_ENCAP_BLUETOOTH_H4_WITH_PHDR, not
WTAP_ENCAP_BLUETOOTH_H4, for capture files where we have the direction.

Don't assume pinfo->p2p_dir is either P2P_DIR_SENT or P2P_DIR_RECV when
setting the info column in various Bluetooth dissectors; it might be
unknown.

In the HCI H4 dissector, put the direction into the info column
regardless of whether we have a type match or not; the dissectors for
HCI packet types appear to assume it's been set (as they put a blank at
the beginning of the stuff they append to the direction).

svn path=/trunk/; revision=35933
2011-02-12 19:59:41 +00:00
Kovarththanan Rajaratnam 46dd093b94 From Allan M. Madsen via. bug 5445:
Bluetooth profiles and protocols above RFCOMM and L2CAP can not be dissected correctly because the required information (server channel and dynamic PSM value mappings to services/profiles) about the type of data carried in the payload is not available. RFCOMM is currently hardcoded to handoff all payload data to the obex dissector though it may carry e.g. handsfree, dial-up networking or serial port profile related data.

The patch consists of modifcations to the following dissectors:

btsdp: Extraction of RFCOMM server channel and L2CAP dynamic PSM with service mapping is provided to RFCOMM and L2CAP through a tap interface. In addition, the packet list info is beautyfied and extended with more details for better
overview.

btl2cap: Adds a new dissector table with services and dynamic PSM mapping which is filled by a tap listner catching the info from btsdp. More info added to packet list.

btrfcomm: Adds a new dissector table with services and server channel mapping which is filled by a tap listner catching the info from btsdp. Dissectors for handsfree, dial-up netorking and serial port profiles (all based on RFCOMM) are also added.

btobex: Registers several obex based profiles (e.g. obex push, file transfer, basic printing etc.) in both RFCOMM and L2CAP. Some cleanup.


svn path=/trunk/; revision=35323
2011-01-02 08:13:40 +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
Jeff Morriss e17b9ccec1 Rev 29427 added packet_add_new_data_source() with a comment indicating that
the data source does not need to be allocated if (!tree).

Rev 30158 took the if (!tree) check out indicating that the check was invalid.

So: (since packet_add_new_data_source() now only calls add_new_data_source()),
remove packet_add_new_data_source().

svn path=/trunk/; revision=34717
2010-10-30 16:00:30 +00:00
Bill Meier e7568712ef Define some fcns & vars as static;
Minor whitespace and comments cleanup.

svn path=/trunk/; revision=34477
2010-10-11 19:00:55 +00:00
Kovarththanan Rajaratnam fe48b90849 Remove a couple of check_col()
svn path=/trunk/; revision=32896
2010-05-19 08:37:29 +00:00
Anders Broman 440c3f9261 From Didier Gautheron:
check_col.diff
Remove redundant calls to check_col() if it guards only one columns function with one parameter after the column type.
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=4394

svn path=/trunk/; revision=31519
2010-01-13 20:32:01 +00:00
Stig Bjørlykke 53c447a3aa Remove a shadowed variable.
svn path=/trunk/; revision=30605
2009-10-18 21:14:35 +00:00
Kovarththanan Rajaratnam 65c53fedb6 Don't guard col_append_str with check_col
svn path=/trunk/; revision=30125
2009-09-24 20:00:21 +00:00
Kovarththanan Rajaratnam 99624329fa Don't col_clear() followed by col_set_str(). A col_set_str() will clear (replace) any existing string (the fence still needs to be respected though)
svn path=/trunk/; revision=30086
2009-09-23 14:30:36 +00:00
Kovarththanan Rajaratnam 7d44262406 This patch introduces packet_add_new_data_source() which effectively deprecates add_new_data_source(). This is based on the following observation:
1) The tvb + name (aka. data_source) is only used when the protocol tree is visible

The current implementation of add_new_data_source() doesn't take this into account and simply allocates a data_source regardless. This is what packet_add_new_data_source() tries to rectify.

A couple of dissectors have already been switched over to the new packet_add_new_data_source(). Many are still missing. Help appreciated!

svn path=/trunk/; revision=29427
2009-08-15 06:38:10 +00:00
Kovarththanan Rajaratnam 6110a96f68 Don't guard col_set_str (COL_INFO/COL_PROTOCOL) with col_check
svn path=/trunk/; revision=29345
2009-08-09 07:59:51 +00:00
Bill Meier ec28353bb4 From Kovarththanan Rajaratnam: Fix for Bug #3572
[http://bugs.wireshark.org/bugzilla/show_bug.cgi?id=3572]

svn path=/trunk/; revision=28884
2009-06-29 20:59:26 +00:00
Jaap Keuter 083c3a3027 From Kovarththanan Rajaratnam:
The Bluetooth AMP Manager protocol was recently adopted by the Bluetooth SIG.
This protocol sits on top of L2CAP and requires a few changes in order to
accommodate the new move/create channel request.

This patch includes:
* a new Bluetooth AMP Manager Protocol dissector
* changes to L2CAP to handle the new move/create channel signals
* introduce a dissector table for fixed channel, allowing btamp dissector to
handle the BT AMP Manager Protocol channel
* Preliminary changes in L2CAP to support the new enhanced L2CAP modes
(enhanced retransmission/streaming mode)

svn path=/trunk/; revision=28819
2009-06-23 06:49:38 +00:00
Stig Bjørlykke b228488bc0 From Kovarththanan Rajaratnam via bug 3548:
(1) Trailing/leading spaces are removed from 'name's/'blurb's
(2) Duplicate 'blurb's are replaced with NULL
(3) Empty ("") 'blurb's are replaced with NULL
(4) BASE_NONE, NULL, 0x0 are used for 'display', 'strings' and 'bitmask' fields
    for FT_NONE, FT_BYTES, FT_IPv4, FT_IPv6, FT_ABSOLUTE_TIME, FT_RELATIVE_TIME,
    FT_PROTOCOL, FT_STRING and FT_STRINGZ field types
(5) Only allow non-zero value for 'display' if 'bitmask' is non-zero

svn path=/trunk/; revision=28770
2009-06-18 21:30:42 +00:00
Stig Bjørlykke fc3f1b5283 From Artem Tamazov (bug 3472):
Save/Restore pinfo->private_data when used.

svn path=/trunk/; revision=28412
2009-05-19 17:16:14 +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
Bill Meier 10bb70f09d FT_BOOLEAN fields with bitmask: Display is 'parent bitfield width' not BASE...
svn path=/trunk/; revision=28316
2009-05-08 20:15:35 +00:00
Bill Meier c544c20956 Fix various typos and spelling errors (mostly in text strings)
svn path=/trunk/; revision=27050
2008-12-18 19:08:49 +00:00
Bill Meier a8f30cbca1 Fix some typos and spelling (mostly in text strings)
svn path=/trunk/; revision=27037
2008-12-17 17:23:37 +00:00
Stig Bjørlykke df82e1043a Avoid crash when unable to lookup psm_data before calling dissect_options().
Removed an unused argument.

This fixes bug 3054.

svn path=/trunk/; revision=26759
2008-11-12 12:38:16 +00:00
Jaap Keuter 38cf4a2156 From Shane Kearns:
The L2CAP dissector assumes all packets on a connection oriented channel are
B-frames (basic mode, or v1.1 backwards compatibility).  
Retransmission mode or flow control mode (introduced in v1.2 bluetooth spec)
use I-frames and S-frames, which are described in the current 2.1 spec here:
Volume 3 (core, host volume) - Part A (L2CAP) - 3.3 (CONNECTION-ORIENTED
CHANNEL IN RETRANSMISSION/FLOW CONTROL MODES).

svn path=/trunk/; revision=26383
2008-10-08 20:33:55 +00:00
Stig Bjørlykke a341198859 From Shane Kearns (bug 2239):
L2CAP dissector is missing retransmission & flow control modes (these were
introduces in BT 1.2 specification)
Configuration commands were not fully decoded because of a bigend/littleend
issue
L2CAP commands had the wrong length set to the protocol tree by reading from
the wrong buffer offset
Also the dissect_options() function consumes all remaining data in the L2CAP
packet, which prevents decoding of other commands which follow a config
request/config response in the same packet.

From me:
Mark an unused parameter.

svn path=/trunk/; revision=24262
2008-02-03 21:04:01 +00:00
Anders Broman 1950ffc214 Apply the small performance enhancment patches for:
- if offset is 0, tvb_length is the same as tvb_length_remaining, just faster.
Replace 
- col_append_fstr() with faster  col_append_str() 
- col_add_str() with col_set_str()
when it's safe

svn path=/trunk/; revision=23252
2007-10-23 05:50:00 +00:00