With these options, all BlueZ C files are compiled with
"./bootstrap-configure". The only exception is --enable-hal, which
conflicts with the "formfactor" plugin.
It was disabled for quite some time (since 2009), and does not even
compile anymore if enabled:
plugins/echo.c: In function 'session_event':
plugins/echo.c:53: error: implicit declaration of function
'g_io_channel_read'
plugins/echo.c:57: error: implicit declaration of function
'g_io_channel_write'
Whenever a regitration operation fails, the attributes stored in the
data base of handles remain. This patches removes all attributes
registered by a service when the operation is not succesful. In this
way, either all service attributes are registered or none of them are
stored in the data base.
Make struct names similar to kernel and remove static array since
fragment length can be other size than HCI_MAX_NAME_LENGTH, which
is for totally different purpose.
gcc 4.4.3 (from Ubuntu 10.04) started complaining about this code:
test/hciemu.c: In function ‘hci_host_control’:
test/hciemu.c:431: error: dereferencing pointer ‘({anonymous})’ does break
strict-aliasing rules
test/hciemu.c:431: note: initialized from here
The fix is based on commit 97046eaf3f.
Commit b06899eace introduced a new API for
device_get_address but apparently missed fixing the call in
plugins/wiimote.c. This patch converts the plugin to use the new API.
GATT servers should register their attributes on each adapter when it is
plugged instead of doing that when the plugins is loaded. This patch
registers a new adapter driver to manage plug and unplug events in order
to register attributes in each GATT served managed in each adapter.
All public attrib-server functions are marked as deprecated until they
expose adapter facilities to operate with. This is a transactional patch
toward multiple adapter support is implemented. All those functions use
default adapter in order to keep backward compatibility.
Each server use its own databa list to manage handlers so all operations
should managed separately by each GATT server instead of using a global
handler list.
This patch attaches attribute channels to the gatt server list instead
of using the global client list. Furthermore, we use the GATT server
started in the default adapter when attrib_channel_detach is invoked in
order to keep backward compatibility until the interface is updated to
accept the adapter too.
Each server has its own database so the global database list will be
removed. This patch makes a wrapper over attrib_db_add function to get
the default GATT server in order to add attributes in the default
adapter, int his way we keep backward compatibility with the gatt server
interface until the API is updated.
Each server has its own SDP registry wich will be managed separately.
Furthermore, this patch makes a wrapper over attrib_create_sdp function
using the default GATT server started in thye default adapter in order
to keep backward compatibility with the gatt server interface until the
api is finally updated.
We need neither to init nor stop gatt server whenever the demon
starts and finishes the execution, instead of doing that, we init
or stop the GATT server when the adapter is initialized or removed.
Due to the way legacy name resolving is handled for the mgmt interface
the entire logic that was previously part of the core daemon needs to be
moved into hciops. Essentially hciops now contains what the mgmt code
in the kernel will do when mgmtops is used.
If pending connection will stay after state has been changed to
HEADSET_STATE_DISCONNECTED, then crash may happen (e.g. when hs_connect
will be called quickly again after that) To avoid that kind of problems
using headset_shutdown, which does necessary cleanup first (finalizes
pending connections) and after that changes state to
HEADSET_STATE_DISCONNECTED.
SetProperty for "Value" property needs to be queued when disconnected.
Registering ATTIO connection callback does not mean that the link is
established, GAttrib instance is assigned in the connection callback.
Although ATT connection callbacks control GAttrib reference, each
entity using GAttrib should be increment the GAttrib reference to
keep the code standard.