In the case that parent path data needs to be invalidated we shouldn't
stop at the immediate parent if it doesn't have our own handler
registered but should continue upwards in the tree until we reach root
or our own handler.
When the data is a string or a sequence, it is not ok to dereference
data->val because it is already a pointer. Additionally a lengths
variable is added because the strings are not terminated with '\0' and
otherwise it would not be possible to know their length.
Currently any change done to Trusted property generates a PropertyChanged
since no verification is done prior to apply the new value which may
generate an unnecessary write to the storage and extra D-Bus traffic.
To fix this trusted is now loaded from storage and cached in memory when
the device is created, which latter is used to make sure the value has
really changed avoiding storage reads to check current value.
Adds a check in function search_cb for whether the initiating DBus
call was CreateDevice or CreatePairedDevice. Previously both calls
triggered a positive reply regardless of the error code, but in case
of CreateDevice any error should be propagated in the DBus reply.
Modifies the store_profiles function to return immediately for a
temporary device.
When sockets are notified simultaneously of a disconnection or
connection failure, the sockets on the higher levels should be allowed
to handle the disconnect event before cleaning up the connection at
sockets on the lower level (HCI).
The issue behind creating the patch was that on a failed connection
attempt hcid_dbus_conn_complete could get called before the SDP
callbacks, which lead to the latter not being called.
Lowers the priority of the HCI socket to trigger it after higher level
sockets such as L2CAP and RFCOMM.
* Include UUIDs field to method GetProperties(org.bluez.Adapter).
Applications can get local services(UUIDs) available through D-Bus.
* UUIDs per-adapter stored at btd_adapter to prevent some searches not
necessary regarding it requires information from access_db and service_db.
* Emit Adapter.PropertyChanged signal when UUIDs change.
This is needed e.g. to create RFCOMM TTY's from incoming connections
since in that case the remote (clients) RFCOMM channel needs to be known
for the RFCOMMCREATEDEV ioctl.
MEDIUM makes more sense than the kernel default LOW which maps to "no
bonding" with SSP (something that's useful only for very special cases
such as OPP).
This should guarantee that any outstanding command in the queue is
cancelled, accourding to the avdtp spec:
"6.16 Abort
Because AVDTP is typically used on unreliable channels, signaling messages
can be lost due to L2CAP Flush Timeouts. To react to inconsistencies
between the INT and ACP states, the Abort Command may be used."
It also says abort can be send regardless of the state even in case of
packet fragmantation:
"Note that it is permitted to breakdown a packet sequence (command or
response message) to send an Abort command message in the same direction.
The remaining packets consecutive to an aborted message shall be flushed by
the sender."