| d4989cb1 |
mesh: Delete unused structures/functions
This deletes unused functions and structures in net.c & net.h.
Plus, some style cleanup. |
Inga Stotland |
5 years ago |
2 files, +15, -51 |
| ceb47ac6 |
lib: Correct the name command definition
This renames MGMT_OP_ADD_ADV_MONITOR to
MGMT_OP_ADD_ADV_PATTERNS_MONITOR as this command is only used for
patterns. |
Miao-chen Chou |
5 years ago |
1 file, +1, -1 |
| 6156983a |
lib: Move HOG UUID definition
HOG UUID is defined at multiple places in the code. Move that
definition to lib/uuid.h where all other UUIDs are defined. |
Manish Mandlik |
5 years ago |
4 files, +1, -5 |
| f34b7e0b |
mesh: Fix updating CID, PID, VID & CRPL on node attach
In 8a382262125787caf38a1f800ec8956a1bf71d85, we wanted to allow the
application to update certain composition fields. This patch makes it
work. |
Michał Lowas-Rzechonek |
5 years ago |
1 file, +6, -4 |
| 8eb993e9 |
doc: Fix minor typo |
Marcel Holtmann |
5 years ago |
1 file, +1, -1 |
| 7f0166db |
mgmt: syncing configuration commands to the documentation.
This patch simply fixes the definition names (and corresponding
implemenation) to the adopted documentation. |
Alain Michaud |
5 years ago |
2 files, +27, -19 |
| c1226f79 |
adapter: Fix not checking status of stop discovery command
Status needs to be checked in order to properly synchronize the states
with the controller. |
Luiz Augusto von Dentz |
5 years ago |
1 file, +3, -0 |
| c9243314 |
lib: Add definitions for advertisement monitor features
This adds the following command opcodes, event codes and the corresponding
structures.
- MGMT_OP_READ_ADV_MONITOR_FEATURES
- MGMT_OP_ADD_ADV_PATTERNS_MONITOR
- MGMT_OP_REMOVE_ADV_MONITOR
- MGMT_EV_ADV_MONITOR_ADDED
- MGMT_EV_ADV_MONITOR_REMOVED |
Miao-chen Chou |
5 years ago |
1 file, +51, -0 |
| 0ce535ec |
adapter: Rename watch_client to discovery_client
watch term is quite vague so this replace it with discovery which is
what is used for the filter as well. |
Luiz Augusto von Dentz |
5 years ago |
1 file, +23, -24 |
| e468284a |
adapter: Fix leaking filter pattern
When a discovery client has set a pattern as filter the code allocates
the string so it needs to be freed with the filter otherwise it leads to
the following leak:
10 bytes in 2 blocks are definitely lost in loss record 19 of 265
at 0x483980B: malloc (vg_replace_malloc.c:309)
by 0x4D9FF7E: strdup (in /usr/lib64/libc-2.30.so)
by 0x1FC8E7: parse_pattern (adapter.c:2454)
by 0x1FF37B: parse_discovery_filter_entry (adapter.c:2480)
by 0x1FF37B: parse_discovery_filter_dict (adapter.c:2538)
by 0x2020AF: set_discovery_filter (adapter.c:2589)
by 0x24AD63: process_message.isra.0 (object.c:259)
by 0x24B40F: generic_message (object.c:1079)
by 0x4A670B7: ??? (in /usr/lib64/libdbus-1.so.3.19.11)
by 0x4A57763: dbus_connection_dispatch (in /usr/lib64/libdbus-1.so.3.19.11)
by 0x2459CF: message_dispatch (mainloop.c:72)
by 0x4963E8A: ??? (in /usr/lib64/libglib-2.0.so.0.6200.6)
by 0x496756F: g_main_context_dispatch (in /usr/lib64/libglib-2.0.so.0.6200.6) |
Luiz Augusto von Dentz |
5 years ago |
1 file, +1, -0 |
| 227cfdf8 |
adapter: Track discovery client which initiate an action
This adds tracking for active clients so it can be properly
removed/freed on the callbacks. |
Luiz Augusto von Dentz |
5 years ago |
1 file, +43, -37 |
| b94e7fc4 |
adapter: Fix passing wrong pointer to stop discovery
stop_discovery_complete now expects adapter to be passed instead of
client. |
Luiz Augusto von Dentz |
5 years ago |
1 file, +1, -1 |
| 69d7d42e |
input: Disconnect ctrl chan only if intr chan was disconnected by us
If the intr channel was disconnected by the other party, then they
are also responsible to close the ctrl channel. Such disconnection
message would have the G_IO_ERR flag set, as opposed to it being
unset if the disconnection is initiated by us.
There doesn't seem to be an explicit rule in the specification
about this behavior, but this is enforced in the PTS qualification
tool. |
Archie Pusaka |
5 years ago |
1 file, +4, -2 |
| 7155d7af |
input: disconnect intr channel before ctrl channel
According to bluetooth HID Profile spec Ver 1.0, section 7.2.2, A
host or device shall always complete the disconnection of the
interrupt channel before disconnecting the control channel.
However, the current implementation disconnects them both
simultaneously.
This patch postpone the disconnection of control channel to the
callback of interrupt watch, which shall be called upon receiving
interrupt channel disconnection response. |
Archie Pusaka |
5 years ago |
1 file, +10, -5 |
| 9dd6df75 |
adapter: Fix possible crash when stopping discovery
If the client disconnect/crash while MGMT_OP_STOP_DISCOVERY was pending
it would possibly cause a crash as the client pointer is passed to
mgmt_send and accessed in the callback after being freed.
To fix this the adapter itself is now passed to the callback so the
client is not accessed directly, instead the code now checks if
discovery_list has not been cleared in the meantime and only then
proceed to access the client pointer which is how
MGMT_OP_START_DISCOVERY is handled. |
Luiz Augusto von Dentz |
5 years ago |
1 file, +10, -2 |
| 1b46f541 |
adapter: Consolitate code for discovery reply
This consolidate code that were used to reply discovery commands in a
single function so it easier to reuse and maintain. |
Luiz Augusto von Dentz |
5 years ago |
1 file, +23, -22 |
| 514191a7 |
adapter: Do not remove client watch directly if discovery fails
Client watch is used for both discovery and it filters so in case the
client has set the later the watch shall be perserved. |
Luiz Augusto von Dentz |
5 years ago |
1 file, +0, -1 |
| d6bc4028 |
a2dp: Use streaming mode when MPS is enabled
If MPS is enabled use L2CAP streaming mode for AVDTP channels. |
Luiz Augusto von Dentz |
5 years ago |
4 files, +30, -10 |
| 79bd5951 |
doc: Describe the new Advertisement Monitor support
This describes the following commands and event.
- Read Advertisement Monitor Features command
- Add Advertisement Patterns Monitor command
- Remove Advertisement Monitor command
- Advertisement Monitor Added event
- Advertisement Monitor Removed event
Note that the content of a monitor can differ based on its type. For now we
introduce only pattern-based monitor, so you may find that unlike the
command of removing monitor(s), the Add command is tied to a specific type. |
Miao-chen Chou |
5 years ago |
1 file, +150, -2 |
| 7bcb1086 |
mesh: Add "node is busy" check for Leave() & Attach()
This introduces the following behavior change for those methods
on Network interface that specify node token as an input parameter
Leave() method:
If Leave method is called for a node that is being processed as a result
of a Create, Import, Join or Attach method calls in progress, node removal
is not allowed and org.bluez.mesh.Error.Busy error is returned.
Attach() method:
If Attach method is called for a node that is being processed as a result
of a Create, Import or Join method calls in progress, node attachment
is not allowed and org.bluez.mesh.Error.Busy error is returned. |
Inga Stotland |
5 years ago |
5 files, +34, -3 |
| 4de95f9f |
mesh: Add timeout to GetManagedObjects call
Switch to using dbus_send_with_timeout when making a request
to get managed objects from an application. |
Inga Stotland |
5 years ago |
1 file, +20, -23 |
| 65cdf6b2 |
mesh: Add destroy callback to dbus_send_with_timeout()
This adds a destroy callback as a function parameter to
dbus_send_with_timeout() to allow automatic release of user data
on either reply or timeout. |
Inga Stotland |
5 years ago |
3 files, +14, -6 |
| e5179f9f |
mesh: Make "Busy" and "InProgress" to be distinct errors
This separates "Busy" and "InProgress" error codes:
MESH_ERROR_IN_PROGRESS maps to org.bluez.mesh.Error.InProgress
MESH_ERROR_BUSY maps to org.bluez.mesh.Error.Busy
Minor API change:
UpdateAppKey() returns "InProgress" error instead of "Busy" |
Inga Stotland |
5 years ago |
4 files, +9, -8 |
| 29ab37c7 |
mesh: Delete unused function
This deletes unused function node_is_provisioned() |
Inga Stotland |
5 years ago |
2 files, +0, -6 |
| 9ba75301 |
doc: Fix typo for Set Device Class command description |
Marcel Holtmann |
5 years ago |
1 file, +2, -2 |
| 8a467cab |
doc: Add commands and event for handling device flags |
Marcel Holtmann |
5 years ago |
1 file, +98, -1 |
| fadc0fa6 |
doc: Add the event for default configuration changes |
Marcel Holtmann |
5 years ago |
1 file, +51, -2 |
| b3ec488a |
doc: Mention mgmt version 1.18 changes |
Marcel Holtmann |
5 years ago |
1 file, +6, -1 |
| 1fbe1e19 |
doc: Add commands for reading and changing runtime parameters |
Marcel Holtmann |
5 years ago |
1 file, +64, -0 |
| 1bc9dc3e |
doc: adding definitions for load default params mgmt op
This change adds the definition for the read/set default parameter
commands.
In particular, these commands are used to read and set the system
default parameters. The use of a TLV format also ensures that
parameters are expandable in the future.
This will allow bluetoothd to load parameters from a conf file that may
be customized for the specific requirements of each platforms. |
Alain Michaud |
5 years ago |
1 file, +90, -0 |
| 4cf36cb5 |
mesh: Fix clean-up introduced bug
Before the clean-up we were making a useless check of an otherwise
unused boolean (net->provisioner) to determine if we should decode with
device keys (which was incorrect). This was replaced by a check the
node type (node->provisioner). However, the check was incorrect in the
first place, and prevents provisioner nodes from decrypting non device
key messages. |
Brian Gix |
5 years ago |
2 files, +1, -2 |
| bae26679 |
mesh: Remove unused/redundant functions
This removes mesh_net_provisioner_mode_set (unused) and
mesh_net_provisioner_mode_get (duplicates node_is_provisioner) |
Inga Stotland |
5 years ago |
3 files, +1, -13 |
| b55b94c6 |
health: Fix use of L2CAP modes with bt_io
bt_io modes are no longer compatible with L2CAP modes so the later
shall not used with bt_io APIs. |
Luiz Augusto von Dentz |
5 years ago |
2 files, +10, -10 |
| 7e7f3e42 |
avctp: Fix using L2CAP modes with bt_io
bt_io modes are no longer compatible with L2CAP modes so the later
shall not used with bt_io APIs. |
Luiz Augusto von Dentz |
5 years ago |
1 file, +3, -3 |
| 81629d98 |
btio: Fix not translation mode to L2CAP mode
When using L2CAP_OPTIONS legacy modes need to be used since they are
not compatible with BT_MODE. |
Luiz Augusto von Dentz |
5 years ago |
1 file, +22, -2 |
| 9bc0b090 |
advertising: Fix resetting NO_BREDR flag
When setting BT_AD_FLAG_LIMITED it was actually overwriting
BT_AD_FLAG_NO_BREDR as well so this moves the logic of detecting if the
instance needs to set BT_AD_FLAG_NO_BREDR to set_flags so it is always
updated when attempting to set any flags. |
Luiz Augusto von Dentz |
5 years ago |
1 file, +10, -6 |
| 14a39550 |
shared/ad: Add defines for possible flags
This adds defines for limited disverable, general discoveral and BR/EDR
not supported. |
Luiz Augusto von Dentz |
5 years ago |
2 files, +10, -4 |
| d301ce1c |
main: Read default system configuration from the conf file
This change adds support for reading the configurations from the
main.conf file. |
Alain Michaud |
5 years ago |
2 files, +227, -0 |
| b42ba913 |
adapter: Set default system configuration if available
This change loads any specified system configuration if provided and
supported by the kernel. |
Alain Michaud |
5 years ago |
2 files, +302, -0 |
| 71c88dd6 |
mgmt: Add load default system configuration definitions
This change adds the load default system configuration definitions |
Alain Michaud |
5 years ago |
1 file, +20, -0 |
| 0c7e7a95 |
tools/l2cap-tester: Add test for waiting disconnection response
This is to test the behaviour of L2CAP channel when closed with
shut_down(sock, SHUT_WR). In this case, we should wait until we
receive a disconnection response before raising G_IO_HUP. |
Archie Pusaka |
5 years ago |
5 files, +80, -11 |
| a078a364 |
audio/avrcp: Fix media player passthrough bitmask
Adjust the values of the passthrough bitmask with the declared
keys in avctp.c:key_map, according to section 6.10.2.1 of the
AVRCP specification. |
Archie Pusaka |
5 years ago |
3 files, +108, -7 |
| 5b143edf |
shared/hci: Fix crash when bt_hci_unref is used from callback
If application unref its reference on the command callback it can lead
to crashes like the following:
Invalid read of size 1
at 0x254270: wakeup_writer (hci.c:187)
by 0x254321: process_response (hci.c:229)
by 0x254590: process_event (hci.c:263)
by 0x254590: io_read_callback (hci.c:305)
by 0x269258: watch_callback (io-glib.c:170)
by 0x496756F: g_main_context_dispatch (in /usr/lib64/libglib-2.0.so.0.6200.6)
by 0x49678FF: ??? (in /usr/lib64/libglib-2.0.so.0.6200.6)
by 0x4967BF2: g_main_loop_run (in /usr/lib64/libglib-2.0.so.0.6200.6)
by 0x269C6C: mainloop_run (mainloop-glib.c:79)
by 0x26A219: mainloop_run_with_signal (mainloop-notify.c:201)
by 0x171A35: main (main.c:770)
Address 0x53b7e81 is 17 bytes inside a block of size 64 free'd
at 0x483AA0C: free (vg_replace_malloc.c:540)
by 0x254A70: bt_hci_unref (hci.c:461) |
Luiz Augusto von Dentz |
5 years ago |
1 file, +11, -3 |
| 4a102930 |
shared/util: Fix undefined behavior of left shift
When left-shifting 1, we should be explicit that it is an unsigned 1. |
Sonny Sasaka |
5 years ago |
1 file, +2, -2 |
| 41a54130 |
gatt: Fix possible crash when unable to generate hash
gatt_db_get_hash actually depends on crypto so platforms that don't
have it enabled shall not register GATT_CHARAC_DB_HASH as otherwise it
would cause a crash due to hash being NULL. |
Luiz Augusto von Dentz |
5 years ago |
3 files, +15, -2 |
| 698ef6bb |
a2dp: Fix crash on transport_cb
There have been reports of crashes on transport_cb where the setup
would most likely already have been freed but transport_cb would still
be called, so instead of assuming the setup pointer would be valid try
to lookup the list of active setups and log a warning when it happens. |
Luiz Augusto von Dentz |
5 years ago |
1 file, +7, -1 |
| d565cc8d |
mesh: Fix FPE in overcommit logic.
During overcommit, mesh_config_save is called in asynchronous mode to
avoid blocking Send() calls. This means that update of cfg->write_time
is scheduled via l_idle_oneshot, so if the next Send() gets scheduled
first, the code may see elapsed time of zero.
If this happens, then the overcommit logic was already executed and the
overcommit is pending, so we can just return. |
Michał Lowas-Rzechonek |
5 years ago |
1 file, +8, -0 |
| ad372117 |
mesh: Remove unused functions from net.c
The folllowing functionsa are not being used anywhere in the code and
have been removed:
mesh_net_flush()
mesh_net_prov_caps_get()
mesh_net_priv_key_get()
mesh_net_priv_key_set()
mesh_net_prov_rand()
mesh_net_prov_uni()
mesh_net_id_uuid_set()
mesh_net_test_addr()
mesh_net_test_mode()
mesh_net_uni_range_set()
mesh_net_uni_range_get()
mesh_net_set_window_accuracy() |
Inga Stotland |
5 years ago |
2 files, +4, -166 |
| 962a759e |
mesh: Clean up style in net.c |
Inga Stotland |
5 years ago |
1 file, +100, -153 |
| c0013ccd |
mesh: Remove debug-only related callback for packet send
This removes callback for sending every single access layer packet
since the callback does nothing but print debug satement. This
functionality is mature enough not to require such heavy debugging. |
Inga Stotland |
5 years ago |
3 files, +5, -51 |