| dd575627 |
bap: Add a callback to create a new stream
Add a callback to create a new stream |
Silviu Florian Barbulescu |
1 year ago |
1 file, +9, -2 |
| 6ea7f481 |
shared/bap: Add support to create a stream for bcast src
Split bt_bap_stream_new and two specific functions for
unicast and broadcast.
Add a function to find an remote endpoint for broadcast source. |
Silviu Florian Barbulescu |
1 year ago |
2 files, +98, -0 |
| b4f9a9fd |
shared/bap: Add state in stream struct for bcast source
Add state support in the stream struct for broadcast source. |
Silviu Florian Barbulescu |
1 year ago |
1 file, +22, -15 |
| 8552e06b |
shared/bap: Fix endpoint dir for the bcast source
Fix endpoint direction for the broadcast source |
Silviu Florian Barbulescu |
1 year ago |
1 file, +2, -2 |
| 15032315 |
cups: Use pkg-config to find cups backend dir
Some distributions(Gentoo) patch cups backend path to
something else than libdir. Use pkg-config to find backend
path for cups. |
Joakim Tjernlund |
1 year ago |
2 files, +5, -1 |
| c01c4049 |
advertising: Fix assigning mgmt callback id when adding advertisement
A struct member add_adv_id is used to track whether the adv client is
still needed for some mgmt callback. This is checked when freeing the
client to avoid UAF. We currently only set this member if we have a
callback after calling mgmt_send.
In case of extended advertisement, this is always a two-step process:
first to set the params, then the data. It is possible for the client
to be freed when we are pending on setting the params, and if we don't
set the add_adv_id (because we have no callback for setting the data),
the client on the 2nd step of the process will be invalid, leading to
UAF scenario.
This patch always sets the add_adv_id member on the 1st step of adding
an extended advertisement, and adjust the value accordingly on the 2nd
step. Additionally, this patch drops the 3rd parameter of the function
refresh_advertisement since it can always be derived from the 1st and
2nd parameter.
Reviewed-by: Hsin-chen Chuang <chharry@google.com> |
Archie Pusaka |
1 year ago |
1 file, +17, -20 |
| f65cd924 |
btdev: Fix UAF on page_timeout
When the page_timeout is run perhaps the btdev had been freed already so
it needs to be checked if it still valid. |
Luiz Augusto von Dentz |
1 year ago |
1 file, +14, -1 |
| c8af669d |
profiles/audio/ccp: Add CCP plugin for call control profile
This adds initial code for CCP plugin which handle CALL CONTROL PROFILE for
Telephone Bearer Services and Generic Telephone Bearer Services in the
client role.
This has been tested using teams application by initiating call between
Linux BTOE and Windows server with LE audio enabled. |
Shahid Vichhi |
1 year ago |
3 files, +244, -0 |
| 8f262a27 |
shared/bap: Fix crash unreg bcast src endpoint
In bt_bap_stream_release stream is accessed after free |
Silviu Florian Barbulescu |
1 year ago |
1 file, +3, -2 |
| a16c2ccf |
shared/bap: Generate one BIS BASE for
Generate single BIS BASE for a config with BIG ID 0xFF |
Silviu Florian Barbulescu |
1 year ago |
1 file, +9, -4 |
| 5629f478 |
bap: Split bap_state and bap_connecting in two functions
Split bap_state and bap_connecting in two specific functions
for unicast (bap_state, bap_connecting) and broadcast
(bap_state_bcast, bap_connecting_bcast). |
Silviu Florian Barbulescu |
1 year ago |
1 file, +107, -50 |
| c5f1c5ba |
bap: Remove set lpac user data at bcast ep register
Remove set lpac user data at bcast ep register |
Silviu Florian Barbulescu |
1 year ago |
1 file, +0, -2 |
| e6acec47 |
gitignore: ignore all manual pages
Drop the few explicit entries and use *.{1,5,8} instead. |
Emil Velikov |
1 year ago |
1 file, +3, -19 |
| 4d3605e4 |
build: obexd: remove duplicate include -I$(builddir)/lib
The -I$(builddir)/lib include is already in the AM_CPPFLAGS. Drop the
duplicate instance in obexd. |
Emil Velikov |
1 year ago |
1 file, +1, -1 |
| 071ababf |
gitignore: add org.bluez.obex.service |
Emil Velikov |
1 year ago |
1 file, +1, -0 |
| bade07f4 |
build: drop explicit -fPIC from obexd CFLAGS
The option is handled by the global --enable-pic. Drop the local
explicit argument.
With that we can drop the standalone CFLAGS. |
Emil Velikov |
1 year ago |
1 file, +0, -2 |
| 344cf10c |
build: simplify coverage handling |
Emil Velikov |
1 year ago |
1 file, +2, -8 |
| 71d8fda2 |
build: handle relative libexecdir instances
With earlier commit, we've used exec_dir to reference the path of obexd
and bluetoothd within the service files.
At the same time, in my testing I was providing the complete path on the
configure command line. As result, things just worked.
In the default case, the variable contains relative references to ${}
variables, which as result end up literal in the services. Ultimately
the service files were broken.
Document are reuse the existing pattern of manually expanding the
variables.
Fixes: https://github.com/bluez/bluez/issues/736 |
Emil Velikov |
1 year ago |
7 files, +24, -6 |
| c2b9f357 |
build: install obexd (dbus,systemd} services as needed
Currently we ship the service files, even when built with
--disable-obex.
Move the "if OBEX" guard few lines further up. |
Emil Velikov |
1 year ago |
1 file, +2, -1 |
| 9fe4ccb7 |
build: rework {install-data,uninstall}-hook
Currently autoconfigure throws a useful error, about a duplicate
install-data-hook.
Address that by making the two target specific and pulling them as
dependencies.
We have to create empty ones otherwise dependency tracking and
resolution will fail. |
Emil Velikov |
1 year ago |
2 files, +12, -3 |
| f79ccf6c |
tools/rfcomm: _exit() on execvp() failure
When the exec fails, the child process must be terminated instead of
continuing as a second main process. |
Matthias Schiffer |
1 year ago |
1 file, +1, -1 |
| 854dcb7c |
tools/rfcomm: reset ignored signals after fork
rfcomm sets SIGCHLD and SIGPIPE to SIG_IGN, which is inherited by child
processes and preserved across execvp(). Many applications do not expect
these signals to be ignored, causing all kinds of breakage (including the
standard C system() function misbehaving on glibc and probably other
libcs because waitpid() does not work when SIGCHLD is ignored). |
Matthias Schiffer |
1 year ago |
1 file, +6, -0 |
| c58a4d9f |
advertising: Do not set timer if DiscoverableTimeout=0
According to org.bluez.LEAdvertisement.rst documentation, the value of
zero should disable timeout and keep device in the discoverable mode
forever. |
Arkadiusz Bokowy |
1 year ago |
1 file, +3, -1 |
| 055a83c8 |
shared/bap: Fix wrong value used when extracting LTVs
Fix wrong value used when extracting LTVs when generating BASE |
Silviu Florian Barbulescu |
1 year ago |
1 file, +1, -1 |
| fb339bde |
rfcomm-tester: Fix crash on test-basic
This fixes to following trace caused by not initializing data->io:
AddressSanitizer:DEADLYSIGNAL
=================================================================
ERROR: AddressSanitizer: SEGV on unknown address
(pc 0x7f199c3a01c9 bp 0x7ffc26624a10 sp 0x7ffc26624a00 T0)
The signal is caused by a READ memory access.
Hint: this fault was caused by a dereference of a high value address
(see register values below). Disassemble the provided pc to learn .
#0 0x7f199c3a01c9 in g_io_channel_unref (/lib64/libglib-2.0.so.0+0x4d1c9)
#1 0x5565f82fcece in test_post_teardown tools/rfcomm-tester.c:205
#2 0x5565f83939b3 in teardown_callback src/shared/tester.c:434 |
Luiz Augusto von Dentz |
1 year ago |
1 file, +2, -3 |
| f3c35ed8 |
btdev: Fix crash on page_timeout
If remote device cannot be found after page_timeout then the code shall
not proceed to call pending_conn_del. |
Luiz Augusto von Dentz |
1 year ago |
1 file, +3, -0 |
| ee880bee |
input/device: Don't destroy UHID device on disconnect
This makes classic HID behave like HoG which keeps the UHID device
around while disconnected so it doesn't have to be recreated on every
reconnection. |
Luiz Augusto von Dentz |
1 year ago |
1 file, +4, -0 |
| 96988700 |
input.conf: Make UserspaceHID defaults to true
This makes UserspaceHID defaults to true so the plugin has more control
over the input device lifetime. |
Luiz Augusto von Dentz |
1 year ago |
2 files, +2, -2 |
| 247ae852 |
hog-lib: Don't destroy UHID device on detach
This makes bt_hog_detach not to destroy UHID device which means the
device node don't need to be recreated in case of reconnections which
speeds up the process.
Fixes: https://github.com/bluez/bluez/issues/737 |
Luiz Augusto von Dentz |
1 year ago |
1 file, +24, -24 |
| b55d98e5 |
bootstrap-configure: Enable external plugins
Make sure we build this code while in development mode. |
Szymon Janc |
1 year ago |
1 file, +1, -0 |
| 094f3fdc |
build: Fix typo in external-plugins configure option
This was causing build errors as macros were also generated with typo. |
Szymon Janc |
1 year ago |
1 file, +1, -1 |
| b097bf6d |
monitor/att: Enable the notification logging support for the CCP |
Shahid Vichhi |
1 year ago |
1 file, +669, -0 |
| 5c89c54d |
shared/ccp: Add initial code for Call Control Profile for Client Role |
Ajay KV |
1 year ago |
3 files, +1272, -0 |
| 93d88ecd |
lib/uuid: Add support to compare 16bit uuids |
Ajay KV |
1 year ago |
2 files, +10, -0 |
| 24d97e35 |
lib/uuid: Add GTBS UUIDs for Call Control Profile |
Ajay KV |
1 year ago |
1 file, +21, -0 |
| 7c49568a |
btdev: Fix set PA data array overflow
This fixes an array overflow that can happen if the user issues the
LE Set Periodic Advertising Data command with data length exceeding
31 bytes.
The PA data set by the user is copied in an array of fixed length
(31 bytes). However, the data length might exceed 31 bytes. This will
cause an array overflow when the PA data is later processed (for
instance, when sending PA reports).
According to specification, the data length provided at LE Set Periodic
Advertising Data command can be maximum 252 bytes. The stored data len
should also be true to the length copied in the array. |
Iulia Tanasescu |
1 year ago |
1 file, +10, -4 |
| b16b1988 |
Allow using obexd without systemd in the user session
Not all sessions run systemd --user and in some cases one may be missing
systemd all together.
Provide the correct path instead of /bin/false, allowing dbus to start
the service in such cases.
DBUS implementations can ignore the Exec line all together when run in
systemd aware mode - at least the OG dbus does that. So ultimately this
change is a no-op for the systemd --user case.
On my system, this is literally the only non-system service which uses
/bin/false. |
Giovanni Campagna |
1 year ago |
4 files, +6, -7 |
| be0e7962 |
build: ship all config files with --enable-datafiles
Currently we ship only the dbus/systemd policy files and omit the other
four - /etc/bluetooth/{main,mesh-main,input,network}.conf.
Outside of those files, there is no documentation what the defaults are
and the other possible options. A number of distributions (Arch, Gentoo,
Fedora) have opted to manually copy those into the package. Alas this
does not scale and leaves other distros at disadvantage, in a sense.
Note: we need a custom install target to ensure confdir and statedir
have the correct permissions. |
Emil Velikov |
1 year ago |
2 files, +8, -1 |
| 1313351f |
profiles: remove unused suspend-dummy.c
The file has been used for about 8 years now - see commit
fb55b7a6ab48c4f782b16030e051029bcfa93e07 ("profiles/hog: Use no suspend
support instead of the dummy FIFO").
Inspired by a Debian patch by Nobuhiro Iwamatsu, which was changing the
/tmp/hogsuspend socket patch to /run. Looking through the codebase we
have a few more sockets that could use a to /run fix, but that will
follow-up at another day.
Cc: Nobuhiro Iwamatsu <iwamatsu@debian.org> |
Emil Velikov |
1 year ago |
2 files, +0, -151 |
| d31f04aa |
test: consistently use /usr/bin/env python3 shebang
Currently we have a mix of /usr/bin/python, /usr/bin/python3 and
/usr/bin/env python3. Use the latter since is the more common way of
handling this, plus it allows people to override the system python (for
what ever reason).
Inspired by a Debian patch, doing a mass /usr/bin/python{,3} conversion.
Cc: Nobuhiro Iwamatsu <iwamatsu@debian.org> |
Emil Velikov |
1 year ago |
31 files, +31, -31 |
| d3aeae79 |
adapter: Remove experimental flag for PowerState
Now that the feature has been tested, that the API is deemed adequate
and the reliability sufficient.
[Emil Velikov]
The feature has landed in Sept 2022, with inclinations that "we might
switch it to stable in the next release", back in Nov 2022.
Today - a bit over 1 year later - various distributions (Fedora, Gentoo
and by extension their derivatives) are carrying this patch. I think we
can say we're reasonably stable and can merge it upstream. |
Bastien Nocera |
1 year ago |
1 file, +1, -2 |
| f2671bf8 |
Return at least the title attribute from player_list_metadata()
This fixes Bluetooth AVRCP certification test AVRCP/TG/MDI/BV-04-C,
which requires a valid response from the get_element_attributes command. |
Sam Lantinga |
1 year ago |
1 file, +4, -0 |
| 41c7f3af |
hcidump: Fix help message for --timestamp option |
Arkadiusz Bokowy |
1 year ago |
1 file, +1, -1 |
| c1851987 |
shared/bap: Fix crash due to selecting ucast ops for bcast stream
The stream ops is based on PAC type not the stream type. |
Luiz Augusto von Dentz |
1 year ago |
1 file, +1, -1 |
| 6dafe901 |
shared/bap: Make bt_bap_ref_safe check if the instance is attached
This makes bt_bap_ref_safe check that bap instance is part of sessions
list which means it is attached/valid. |
Luiz Augusto von Dentz |
1 year ago |
1 file, +1, -1 |
| 8e76c914 |
shared/bap: Add .set_state to bt_bap_stream_ops
This enables different code paths for each stream type e.g unicast vs
broadcast. |
Luiz Augusto von Dentz |
1 year ago |
1 file, +87, -93 |
| 74709286 |
shared/bap: Rework stream procedures
This rework stream procedures to avoid having to check stream types
everytime the procedure is invoked, instead this creates a operation
abstraction which is assign at stream creation. |
Luiz Augusto von Dentz |
1 year ago |
1 file, +1035, -800 |
| 5135613c |
mgmt-tester: Remove High Speed test cases
High Speed is has been removed so these tests are not run anymore so
they can be safely removed. |
Luiz Augusto von Dentz |
1 year ago |
1 file, +0, -63 |
| cfbaa68e |
mgmt-tester: Fix Read Ext Controller Info tests
This fixes Read Ext Controller Info now that BT_HS has been removed. |
Luiz Augusto von Dentz |
1 year ago |
1 file, +5, -5 |
| 1c60eb02 |
client/player: parse Google's Opus A2DP vendor codec capabilities
Support parsing Opus (Google) A2DP vendor codec capabilities.
Transport /org/bluez/hci0/dev_B8_7B_D4_32_44_15/sep3/fd2
UUID: 0000110a-0000-1000-8000-00805f9b34fb
Codec: 0xff (255)
Media Codec: Vendor Specific A2DP Codec
Vendor ID 0x000000e0
Vendor Specific Codec ID 0x0001
Vendor Specific Data: 0x92
Vendor Specific Value (Opus [Google])
Frequencies: 48kHz
Channel modes: Stereo
Frame durations: 20 ms
Device: /org/bluez/hci0/dev_B8_7B_D4_32_44_15
State: idle
Delay: 0x0898 (2200)
Volume: 0x001e (30)
Endpoint: /org/bluez/hci0/dev_B8_7B_D4_32_44_15/sep3 |
Pauli Virtanen |
1 year ago |
2 files, +49, -0 |