| 1106efd4 |
Add support for wiimote pairing
The Nintendo Wii Remote requires binary bluetooth addresses as PINs.
This is not possible via dbus agent API. So this adds a plugin that
registers a pin-callback and forces the right pin for every
authentication request of wiimotes. |
David Herrmann |
14 years ago |
3 files, +122, -0 |
| 092df7b4 |
Add pin-code hook to adapter API
Plugins may now register pincode callbacks which are called when the
authentication of a new device requires a pincode. This allows to have
hard-coded binary pins inside the daemon to circumvent the public D-Bus
API restrictions (only valid UTF8 strings).
The callbacks shall check via VID/PID information whether they support
the device and if not, return 0 so the D-Bus API is used to query the
current agent for pin input. |
David Herrmann |
14 years ago |
3 files, +45, -1 |
| 564197f2 |
Fix read_pin_code to return ssize_t
read_pin_code returns the length of a memory block and hence should use
ssize_t as type. |
David Herrmann |
14 years ago |
3 files, +4, -4 |
| 3dfad1a6 |
Remove unneeded hcid.h header include |
Claudio Takahasi |
14 years ago |
2 files, +0, -2 |
| ff7fd6ef |
Move attrib server init/exit declaration to hcid.h
Avoids GATT/ATT headers dependency in main.c. |
Claudio Takahasi |
14 years ago |
3 files, +3, -4 |
| 860b8161 |
Remove unnecessary assignment
D-Bus connection is set by the callers of the discover primary service
function on both situations: create device without bonding or after
bonding complete. |
Claudio Takahasi |
14 years ago |
1 file, +0, -3 |
| c3dd10b5 |
Add SAP driver for ST-Ericsson U8500 platform |
Szymon Janc |
14 years ago |
2 files, +727, -2 |
| c92a4af8 |
Clean up device bonding removal |
Johan Hedberg |
14 years ago |
2 files, +15, -30 |
| 33cdfcb0 |
Fix unpair device when disconnected for No Bonding
Fix Paired device property if 'No Bonding' authentication is used. It is
set to be false when device is disconnected and no link key is stored.
Otherwise, there can be cases when device is still valid and being
claimed as paired without available bonding information.
For instanse, use of CreateDevice method call and obex client file
transfer is such use case. |
Dmitriy Paliy |
14 years ago |
3 files, +25, -3 |
| c34e7956 |
Fix headset state callback in Media API
Headset watch is not registered per device. Therefore, when headset
disconnects, there is need to check for which audio device it is called. |
Lukasz Rymanowski |
14 years ago |
3 files, +12, -1 |
| 5d88d8d6 |
avdtp: fix race condition when starting a stream
The AVDTP spec allows for a race condition between remote and local
device when issuing an AVDTP_START cmd on a stream in the OPEN state.
However, the internal state must continue to be consistent. For example,
suppose that avdtp_start() has been called while in the OPEN state and
a AVDTP_START cmd is sent. Now before we have received a response (and
thus entered the STREAMING state), we *receive* a START cmd. Prior to
this fix, since the sep is still in the OPEN state, we would accept
the new START cmd. This will leads us to send both a Start_Ind and
Start_Cfm - not good.
Now, we track this transitional state (starting == TRUE).
NB - 'starting' is only in a valid state while the sep is in the
OPEN state. 'starting' is reset when we return to the OPEN state. |
Peter Hurley |
14 years ago |
1 file, +25, -4 |
| 13568564 |
avrcp: remove unused dbus reply message
Fix leak of dbus messages being created but not unreferenced after
method returns. |
Lucas De Marchi |
14 years ago |
1 file, +0, -10 |
| c141fcc3 |
btio: Fix the return value of bt_io functions
Some bt_io methods were ignoring the value stored in errno when
reporting the error to the caller. |
Vinicius Costa Gomes |
14 years ago |
1 file, +9, -6 |
| e1d2db49 |
gdbus: Fix white space coding style issue
- corrected the space before '{' |
Syam Sidhardhan |
14 years ago |
1 file, +1, -1 |
| 9897721d |
Add Proximity API
Covers the Proximity Monitor for Link Loss, Tx Power and Immediate
Alert services. This first proposal considers that the connections
will be managed by the bluetoothd core based on the registered
connection callbacks.
Only one instance of Immediate Alert service is allowed, "Alert Level"
characteristic of this service is used by Find Me and Path Loss. Note
that "Alert Level" for Path Loss is a LOCAL property written in the
Immediate Alert service when the threshold is reached. For Find Me
the user/application needs to actively enable the alert in the Immediate
Alert service. Link Loss has it's own instance of Alert Level
characteristic. |
Claudio Takahasi |
14 years ago |
1 file, +78, -0 |
| 7aa662d8 |
Health Thermometer Profile API |
Santiago Carot-Nemesio |
14 years ago |
1 file, +126, -0 |
| e2024851 |
Fix possible invalid read/free when using g_slist_free_full
This is probably a glib bug on g_slist_free_full which doesn't handle the
case where the list is modified inside the callback:
Invalid read of size 8
at 0x50AD5B2: g_slice_free_chain_with_offset (in /usr/lib64/libglib-2.0.so.0.2800.8)
by 0x13057B: a2dp_unregister (a2dp.c:1550)
by 0x12144C: a2dp_server_remove (manager.c:1032)
by 0x50ADF16: g_slist_foreach (in /usr/lib64/libglib-2.0.so.0.2800.8)
by 0x178B55: adapter_remove (adapter.c:2326)
by 0x175205: manager_remove_adapter (manager.c:290)
by 0x50ADF16: g_slist_foreach (in /usr/lib64/libglib-2.0.so.0.2800.8)
by 0x50ADF3A: g_slist_free_full (in /usr/lib64/libglib-2.0.so.0.2800.8)
by 0x175086: manager_cleanup (manager.c:298)
by 0x11D7A8: main (main.c:305)
Address 0x637a5e8 is 8 bytes inside a block of size 16 free'd
at 0x4C27D6E: free (vg_replace_malloc.c:366)
by 0x50AD9FC: g_slist_remove (in /usr/lib64/libglib-2.0.so.0.2800.8)
by 0x12E5C6: a2dp_remove_sep (a2dp.c:1667)
by 0x50ADF16: g_slist_foreach (in /usr/lib64/libglib-2.0.so.0.2800.8)
by 0x50ADF3A: g_slist_free_full (in /usr/lib64/libglib-2.0.so.0.2800.8)
by 0x13057B: a2dp_unregister (a2dp.c:1550)
by 0x12144C: a2dp_server_remove (manager.c:1032)
by 0x50ADF16: g_slist_foreach (in /usr/lib64/libglib-2.0.so.0.2800.8)
by 0x178B55: adapter_remove (adapter.c:2326)
by 0x175205: manager_remove_adapter (manager.c:290)
by 0x50ADF16: g_slist_foreach (in /usr/lib64/libglib-2.0.so.0.2800.8)
by 0x50ADF3A: g_slist_free_full (in /usr/lib64/libglib-2.0.so.0.2800.8)
Invalid free() / delete / delete[]
at 0x4C27D6E: free (vg_replace_malloc.c:366)
by 0x50AD5A3: g_slice_free_chain_with_offset (in /usr/lib64/libglib-2.0.so.0.2800.8)
by 0x13057B: a2dp_unregister (a2dp.c:1550)
by 0x12144C: a2dp_server_remove (manager.c:1032)
by 0x50ADF16: g_slist_foreach (in /usr/lib64/libglib-2.0.so.0.2800.8)
by 0x178B55: adapter_remove (adapter.c:2326)
by 0x175205: manager_remove_adapter (manager.c:290)
by 0x50ADF16: g_slist_foreach (in /usr/lib64/libglib-2.0.so.0.2800.8)
by 0x50ADF3A: g_slist_free_full (in /usr/lib64/libglib-2.0.so.0.2800.8)
by 0x175086: manager_cleanup (manager.c:298)
by 0x11D7A8: main (main.c:305)
Address 0x637a5e0 is 0 bytes inside a block of size 16 free'd
at 0x4C27D6E: free (vg_replace_malloc.c:366)
by 0x50AD9FC: g_slist_remove (in /usr/lib64/libglib-2.0.so.0.2800.8)
by 0x12E5C6: a2dp_remove_sep (a2dp.c:1667)
by 0x50ADF16: g_slist_foreach (in /usr/lib64/libglib-2.0.so.0.2800.8)
by 0x50ADF3A: g_slist_free_full (in /usr/lib64/libglib-2.0.so.0.2800.8)
by 0x13057B: a2dp_unregister (a2dp.c:1550)
by 0x12144C: a2dp_server_remove (manager.c:1032)
by 0x50ADF16: g_slist_foreach (in /usr/lib64/libglib-2.0.so.0.2800.8)
by 0x178B55: adapter_remove (adapter.c:2326)
by 0x175205: manager_remove_adapter (manager.c:290)
by 0x50ADF16: g_slist_foreach (in /usr/lib64/libglib-2.0.so.0.2800.8)
by 0x50ADF3A: g_slist_free_full (in /usr/lib64/libglib-2.0.so.0.2800.8)
Invalid read of size 8
at 0x50AD5B2: g_slice_free_chain_with_offset (in /usr/lib64/libglib-2.0.so.0.2800.8)
by 0x175086: manager_cleanup (manager.c:298)
by 0x11D7A8: main (main.c:305)
Address 0x62b7ea8 is 8 bytes inside a block of size 16 free'd
at 0x4C27D6E: free (vg_replace_malloc.c:366)
by 0x50AD9FC: g_slist_remove (in /usr/lib64/libglib-2.0.so.0.2800.8)
by 0x1751AE: manager_remove_adapter (manager.c:275)
by 0x50ADF16: g_slist_foreach (in /usr/lib64/libglib-2.0.so.0.2800.8)
by 0x50ADF3A: g_slist_free_full (in /usr/lib64/libglib-2.0.so.0.2800.8)
by 0x175086: manager_cleanup (manager.c:298)
by 0x11D7A8: main (main.c:305)
Invalid free() / delete / delete[]
at 0x4C27D6E: free (vg_replace_malloc.c:366)
by 0x50AD5A3: g_slice_free_chain_with_offset (in /usr/lib64/libglib-2.0.so.0.2800.8)
by 0x175086: manager_cleanup (manager.c:298)
by 0x11D7A8: main (main.c:305)
Address 0x62b7ea0 is 0 bytes inside a block of size 16 free'd
at 0x4C27D6E: free (vg_replace_malloc.c:366)
by 0x50AD9FC: g_slist_remove (in /usr/lib64/libglib-2.0.so.0.2800.8)
by 0x1751AE: manager_remove_adapter (manager.c:275)
by 0x50ADF16: g_slist_foreach (in /usr/lib64/libglib-2.0.so.0.2800.8)
by 0x50ADF3A: g_slist_free_full (in /usr/lib64/libglib-2.0.so.0.2800.8)
by 0x175086: manager_cleanup (manager.c:298)
by 0x11D7A8: main (main.c:305)
To fix this now adapter_remove and a2dp_unregister_sep are passed
directly as a callbacks so g_slist_remove is not triggered. |
Luiz Augusto von Dentz |
14 years ago |
2 files, +14, -3 |
| f9a27a69 |
Release 4.95 |
Marcel Holtmann |
14 years ago |
2 files, +12, -1 |
| 4179958d |
Update library version |
Marcel Holtmann |
14 years ago |
1 file, +1, -1 |
| 3f553a30 |
Allow building with GLib 2.16 for now |
Marcel Holtmann |
14 years ago |
9 files, +33, -2 |
| a128f026 |
Improve input server connect log messages
Added error log message for connection refusals and added
remote device BDADDR to existing debug messages. |
Peter Hurley |
14 years ago |
1 file, +10, -2 |
| fcb426c7 |
Fix common misspelled words
Accounting of misspelled words, as detected by codespell:
acording 2
ancilliary 1
appropiate 1
atribute 1
cant 1
comming 2
gracefull 1
lenght 1
mispelled 1
occured 1
occurences 1
ocurred 3
prefered 1
presense 1
reponse 1
seperate 1
succesful 1
successully 1
sucessfull 1
sucessfully 1 |
Lucas De Marchi |
14 years ago |
18 files, +36, -36 |
| 488af0f4 |
build: Remove deprecated options from bootstrap-configure |
Marcel Holtmann |
14 years ago |
1 file, +1, -2 |
| 7849eeee |
build: Add support for systemd service configuration |
Lucas De Marchi |
14 years ago |
4 files, +29, -1 |
| c053eac0 |
build: Remove udevrules option
Use the new datafiles options instead. |
Lucas De Marchi |
14 years ago |
2 files, +6, -14 |
| 9cec49b2 |
build: Rename configfiles option to datafiles
Instead of passing --[disable|enable]-configfiles, now we use
--[disable|enable]-datafiles as not all of the files are installed for
configuration but are rather data files. |
Lucas De Marchi |
14 years ago |
3 files, +8, -8 |
| b72a3526 |
avrcp: return NOT_IMPLEMENTED on request for vendor dep command
When a vendor dependent command is requested but target does not
implement it, the correct return value is CTYPE_NOT_IMPLEMENTED instead
of CTYPE_REJECTED.
AVRCP 1.3 spec clearly says so on section 4.5.1:
[ It is assumed that devices that do not support this metadata
transfer related features shall return a response of NOT
IMPLEMENTED as per AV/C protocol specification ]
And AV/C General Specification, section 8.3.2 talks about legacy
behavior and mandates that NOT_IMPLEMENTED is returned.
Finally, in section 11.6.1 we see that VENDOR-DEPENDENT command frame
depends on the company_ID. Therefore we can't assume it has the same
format as the one specified for metadata transfer (in case the company
ID is 0x001958) |
Lucas De Marchi |
14 years ago |
1 file, +2, -13 |
| 4560a956 |
avrcp: Factor out function to handle vendordep pdu
In order to support vendordep pdu as required by AVRCP 1.3 this part
will get very large. So, separate it to a new function like is done for
panel_passthrough. |
Lucas De Marchi |
14 years ago |
1 file, +24, -15 |
| 027c6819 |
avrcp: Check that AVCTP packet is of type COMMAND |
Lucas De Marchi |
14 years ago |
1 file, +2, -1 |
| 83064481 |
Make use of g_slist_free_full on audio plugin |
Luiz Augusto von Dentz |
14 years ago |
7 files, +46, -55 |
| 634f0a04 |
Make use of g_slist_free_full on hciops plugin |
Luiz Augusto von Dentz |
14 years ago |
1 file, +3, -8 |
| da608774 |
Make use of g_slist_free_full on serial plugin |
Luiz Augusto von Dentz |
14 years ago |
1 file, +7, -6 |
| 5a30030a |
Make use of g_slist_free_full on network plugin |
Luiz Augusto von Dentz |
14 years ago |
2 files, +5, -7 |
| 05cb01fc |
Make use of g_slist_free_full on attrib |
Luiz Augusto von Dentz |
14 years ago |
2 files, +3, -6 |
| 3058efa7 |
Make use of g_slist_free_full when elements are dynamically-allocated
This avoid having to iterate twice in the list to free its elements. |
Luiz Augusto von Dentz |
14 years ago |
7 files, +30, -51 |
| 9c6e404f |
Mark Headset.Play method deprecated
SCO socket should be connected using either unix socket ipc or Media API |
Luiz Augusto von Dentz |
14 years ago |
2 files, +3, -2 |
| c98f635b |
Add adaptername plugin
Replacing the name setting code in src/adapter.c.
Moving the adapter naming allows us to use the /etc/machine-info [1]
pretty hostname, as implemented by hostnamed [2] in systemd.
If /etc/machine-info is not present, the adapter name stored
on disk in /var/lib/bluetooth will be used. If no adapter name
has been set yet, the default from the main.conf will be used.
We don't currently number the name of hci0 if a pretty name is
available, but we should instead number it if it happens not
to be the default adapter. As we cannot be told when the default
adapter changes, we'll behave this way for now.
Note that when an adapter name is set automatically from
the pretty hostname, changing it through the D-Bus interface
will fail.
[1]: http://0pointer.de/public/systemd-man/machine-info.html
[2]: http://www.freedesktop.org/wiki/Software/systemd/hostnamed |
Bastien Nocera |
14 years ago |
4 files, +328, -66 |
| 016df2cc |
Add ability to block name changes |
Bastien Nocera |
14 years ago |
2 files, +14, -0 |
| 2ff8caf4 |
Simplify "SetName" D-Bus call
By merging most of the functionality into adapter_update_local_name()
This also allows us to drop the adapter->name_stored struct member
as in any calls to adapter_update_local_name(), we would want to
write out the adapter name. |
Bastien Nocera |
14 years ago |
2 files, +27, -36 |
| 9a653953 |
Fix finalize discovery if all stream end points are In Use
When handling the discover response, if all stream end points are
in use, then we must finalize discovery, as no GET_CAPABILITIES
command will be issued. |
Peter Hurley |
14 years ago |
1 file, +7, -4 |
| cb60fce5 |
Fix hid2hci compilation error
Do not compile hid2hci if udev is not present. |
Lukasz Rymanowski |
14 years ago |
1 file, +1, -1 |
| d70388cd |
Fix SAP message padding macro
With this patch it is not possible to have incorrect padding equal to 4. |
Lukasz Rymanowski |
14 years ago |
1 file, +1, -1 |
| 9edfc88f |
test/agent.c: Wait for reply from CreatePairedDevice before exiting
This matches the behavior of the Python sample agent, and is needed to
get my Bluetooth keyboard to pair. |
Steven Luo |
14 years ago |
1 file, +17, -2 |
| 7822123d |
Update company identifiers |
Marcel Holtmann |
14 years ago |
1 file, +26, -0 |
| 4c893ee4 |
Cleanup: read_local_features callback is no longer used
This patch removes read_local_features callback from struct
btd_adapter_ops and its hciops/mgmtops implementations. |
Andre Guedes |
14 years ago |
3 files, +0, -28 |
| ae6b64c0 |
Cleanup: 'features' in btd_adapter is no longer used. |
Andre Guedes |
14 years ago |
1 file, +0, -12 |
| afc11a2a |
Fix typo from deamon to daemon |
Nobuhiro Iwamatsu |
14 years ago |
2 files, +2, -2 |
| 650feaac |
Update Johan's email address |
Johan Hedberg |
14 years ago |
1 file, +1, -1 |
| 6c558d36 |
Add blacklisting support for management interface
Management interface commands for blocking and unblocking devices. |
Antti Julku |
14 years ago |
3 files, +70, -2 |
| e93fae6f |
Re-add manager_get_default_adapter()
This will be useful for upcoming plugins like the sixaxis one or the
adaptername one. |
Bastien Nocera |
14 years ago |
2 files, +6, -0 |