aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2020-07-13fix segfaults due to races & missing adapterRaquel Medina4-21/+66
During start up, there are races between the bluetooth, persistence, bluetooth-map and bluetooth-pbap bindings; on top of it, in the case there's no bluetooth controller in the system, various key parameters can exhibit a null value. The combination of these races and the lack of bluetooth controller can manifest in a number of segfaults in the bluetooth binding (it's very easy to reproduce on qemu). This commit brings in several changes to make the bluetooth binding resilient to the races and lack of bluetooth controller: * on startup, retrieve the default adapter from the persistence binding from the init thread * store the system default adapter in the service init data structure, and store the active adapter in the bluetooth state structure. * update get_default_adapter to return value obtained from persistence biding, without further processing; * add guards to make sure the userdata retrieved from the application framework is valid; * on verbs processing, ensure the caller provides an adapter to apply the verb to, or that at least there's a valid adapter associated to the bluetooth state structure; * initialize agent_data's device_path following free operation; * add guards for mediaplayer_path. Bug-AGL: SPEC-3301 Signed-off-by: Raquel Medina <raquel.medina@konsulko.com> Change-Id: Ia5a0dc9a61024ff43cd247216d0dff6918046f7e
2020-07-13distinguish between no controller and no bluez serviceRaquel Medina1-2/+6
The initialization sequence for dbus services is not fixed, and some races have been observed between blutoothd and agl-service-bluetooth when running on qemu: sometimes Bluetooth-Manager can be ready before org.bluez and this results in reporting no adapter, even though it's not accurate. Also, although this issue has been seen only using qemu, the race is there and it could also manifest in other platforms with a bluetooth controller attached. This patch simply provides the logic to discern between 'no org.bluez service found' and 'no bluetooth controller present': - in the case of no org.bluez service detected, an error is returned to allow for retries, - in the case of no controller present, no error is returned and agl-service-bluetooth completes the initialization. Bug-AGL: SPEC-3301 Signed-off-by: Raquel Medina <raquel.medina@konsulko.com> Change-Id: I4868803bcfbd36fb65028cea5c997c4f174675a0
2020-07-09unregister agent if previously registeredRaquel Medina1-1/+2
Only unregister agent on exit path if it had been registered beforehand. Bug-AGL: SPEC-3301 Signed-off-by: Raquel Medina <raquel.medina@konsulko.com> Change-Id: I60fc2af01800521e0d5b026dbf7404b445eff6f9
2020-07-08force init completion if no controllerRaquel Medina1-8/+35
Add logic to obtain the number of bluetooth controllers in the system, if there's at least one, then apply the existing logic: register the agent, etc; if there's none, simply add a line to record this case in the journal, skip agent registration and signal that the Bluetooth-Manager service initialization completed without errors, to keep the service running. Also fixed indentation on 2 lines on the same file where the mentioned changes are applied: binding/bluetooth-api.c. Bug-AGL: SPEC-3301 Signed-off-by: Raquel Medina <raquel.medina@konsulko.com> Change-Id: I43a7aac709845bef71295ebd470546f252db8fa0
2020-06-09Update autobuild scriptsjellyfish_9.99.1jellyfish/9.99.19.99.1Scott Murray2-204/+154
Update autobuild scripts with reworked version that fixes building outside of the source tree. Bug-AGL: SPEC-2049, SPEC-3300 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: I5308eaf34f4bf209903601f4600bdbfcd0fd8d1c
2020-02-18Update autobuild script to create new targetsFrederic Marec2-26/+174
Update autobuild script to create multiple widget target debug, coverage and all Bug-AGL: SPEC-2049 Signed-off-by: Frederic Marec <frederic.marec@iot.bzh> Change-Id: I0b9b81355ff36a5217364df75b7b72bbc891e01f
2020-02-17binding: bluetooth: remove unused version verbMatt Ranostay1-14/+0
No other applications/bindings check the version verb to figure which schema version to use. Bug-AGL: SPEC-3156 Change-Id: I5baea8d7a38101bc9378f90c40981e73074ed558 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2020-02-11Update .gitreview fileJan-Simon Möller1-1/+0
This updates the gitreview file in the project . Change-Id: I48193cc394bf6602281654794c8efed4fe0dfe84 Signed-off-by: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
2019-09-12fix(test/CMakeLists.txt): make test wgt workicefish_8.99.5icefish_8.99.4icefish_8.99.3icefish_8.99.2icefish_8.99.1icefish/8.99.5icefish/8.99.4icefish/8.99.3icefish/8.99.2icefish/8.99.18.99.58.99.48.99.38.99.28.99.1Li Xiaoming1-1/+1
Bug-AGL: SPEC-2795 Change-Id: I12522a7adf2d0582495fc14a8a7af6324c7b4681 Signed-off-by: Li Xiaoming <lixm.fnst@cn.fujitsu.com>
2019-09-10refactor(config.xml.in):Replace required api with required bindingLi Xiaoming1-0/+3
Appfw docs: "required-api local": OBSOLETE SINCE FF (AGL6), PROVIDED FOR COMPATIBILITY.Use the feature urn:AGL:widget:required-binding instead. Bug-AGL: SPEC-2781 Change-Id: I1ccff7deb59208e1a74747add299d4208cdb19fd Signed-off-by: Li Xiaoming <lixm.fnst@cn.fujitsu.com>
2019-09-09fix(bluetooth-util.c): Remove -Wformat & -Woverflow warningLi Xiaoming1-2/+2
/work/agl-service-bluetooth/binding/bluetooth-util.c:170:14: warning: integer overflow in expression ‘-2147483648’ of type ‘long int’ results in ‘-2147483648’ [-Woverflow] if (i64 >= -(1L << 31) && i64 < (1L << 31)) ^ In file included from /xdt/sdk/sysroots/ armv7vet2hf-neon-vfpv4-agl-linux-gnueabi/usr/include/afb/afb-binding.h: 116, from /work/agl-service-bluetooth/binding/ bluetooth-util.c:36: /work/agl-service-bluetooth/binding/bluetooth-util.c:291:16: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 7 has type ‘gsize’ {aka ‘unsigned int’} [-Wformat=] AFB_WARNING("Can't handle variants with more than one children (%lu)", nitems); Bug-AGL: SPEC-2422 Change-Id: Ic0f1a9f20c8bbe17040c3c9727922bc930b6f786 Signed-off-by: Li Xiaoming <lixm.fnst@cn.fujitsu.com>
2019-09-06fix(confg.cmake): set PROJECT_URL to slience CMake warningLi Xiaoming1-0/+1
CMake Warning at /xdt/sdk/sysroots/x86_64-aglsdk-linux/usr/share/ cmake-3.12/Modules/CMakeAfbTemplates/cmake/cmake.d/ 02-variables.cmake:98 (message): No homepage url found. Please set a PROJECT_URL cmake variable in your config.cmake. Call Stack (most recent call first): /xdt/sdk/sysroots/x86_64-aglsdk-linux/usr/share/cmake-3.12/Modules/ CMakeAfbTemplates/cmake/common.cmake:101 (include) /xdt/sdk/sysroots/x86_64-aglsdk-linux/usr/share/cmake-3.12/Modules/ CMakeAfbTemplates.cmake:19 (include) conf.d/cmake/config.cmake:166 (include) CMakeLists.txt:21 (include) Bug-AGL: SPEC-2804 Change-Id: I032a9f0a8893f4cd781ba6728e7ef8ac411cad9e Signed-off-by: Li Xiaoming <lixm.fnst@cn.fujitsu.com>
2019-06-26binding: bluetooth: add scope-platform permission to config.xml.inhalibut_8.0.6halibut_8.0.5halibut_8.0.4halibut_8.0.3halibut_8.0.2halibut_8.0.1halibut_8.0.0halibut_7.99.3halibut_7.99.2halibut/8.0.6halibut/8.0.5halibut/8.0.4halibut/8.0.3halibut/8.0.2halibut/8.0.1halibut/8.0.0halibut/7.99.3halibut/7.99.28.0.68.0.58.0.48.0.38.0.28.0.18.0.07.99.37.99.2halibutMatt Ranostay1-0/+1
Add urn:AGL:permission::partner:scope-platform to run on the platform scope. Bug-AGL: SPEC-2575 Change-Id: Id6fa1242f3c7b8d9245f3319a6da51238944b29a Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-06-20binding: bluetooth: fix conversion compiler warningsMatt Ranostay1-4/+7
Remove follow warnings by switching from int to size_t warning: conversion from ‘size_t’ {aka ‘long unsigned int’} to ‘int’ may change value [-Wconversion] Bug-AGL: SPEC-2535 Change-Id: I28330f92097adc6aa03480078d168d37a60fc051 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-06-18Adding tests for agl-service-bluetooth.Edi Feschiyan7-0/+211
Commented tests needing real hardware device at the bottom. Bug-AGL: SPEC-2523 Signed-off-by: Edi Feschiyan <edi.feschiyan@konsulko.com> Change-Id: Iee0126665af34654d14e8bcd018175fc772f1ce3
2019-05-06binding: bluetooth: use BLUEZ_AT_DEVICE for call_work_create()halibut_7.99.1halibut/7.99.17.99.1Matt Ranostay1-2/+2
Use the BLUEZ_AT_DEVICE macro instead of explicit string references. Bug-AGL: SPEC-2361 Change-Id: I2e892a7b6e2d838765cfa12dadd970e34c2f5d86 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-05-05binding: bluetooth: add missing g_variant_unref() on repliesMatt Ranostay1-0/+1
To avoid memory leaks g_variant_unref() needs to be called on dbus replies. Bug-AGL: SPEC-2361 Change-Id: Ie8db961f182e77fe5a36c91acddff1e549e7f60a Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-04-28binding: bluetooth: use BLUEZ_AT_DEVICE macroMatt Ranostay1-5/+5
Use the BLUEZ_AT_DEVICE macro instead of explicit string references. Bug-AGL: SPEC-2361 Change-Id: Icddf5914433123e65d2a7d40629bab362b60c1c1 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-04-12binding: bluetooth: remove useless function prototypeMatt Ranostay1-4/+0
Remove function prototype from bluetooth-common.h for the deleted bluetooth-rfkill.c source file. Change-Id: I2bc9e789868a01a0b62643b6406970c436308567 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-04-05binding: bluetooth: remove versioning references in structsMatt Ranostay1-2/+2
In order to upgrade to future versions easier don't use versioned structs but the respective typedefs Change-Id: Ic789dc7c74e0a2a1352effa1cfeea4998cbc56f3 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-04-02binding: bluetooth: add changed action for adapter_changes eventMatt Ranostay2-14/+25
Report back property changes in the adapter_changes event, which is required for detecting when an adapter is truly powered on. Bug-AGL: SPEC-2295 Change-Id: I58441369277d2e778f2bb077e7b1be4aa3a3b1b4 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-03-27binding: bluetooth: allow multiple paths for org.bluez.MediaPlayer1 interfacesMatt Ranostay3-7/+12
Previously org.bluez.MediaPlayer1 paths could only resolve to player0 but certain phones request another instance for another application (e.g. player1). This patchset changes the default media player path to last connected, and which in theory should be from the media application in use on the phone. From limited experiments not in use interfaces will be reaped shortly after going idle. Bug-AGL: SPEC-2281 Change-Id: Id4bdc89cd395d5cd3ac043394761a95b306e5c6d Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-03-07Merge "binding: bluetooth: add adapter_changes event"Jan-Simon Moeller4-4/+71
2019-02-27autobuild: fix warnings due to cp command exit errorRaquel Medina4-120/+158
- bring latest version of autobuild script in - move conf.d/autobuild to root folder - update autobuild script to fix warnings triggered by cp operation error. Change-Id: I1e5f09cda1254e7ec9afd27e70ef97162189fda6 Bug-AGL: SPEC-2164 Signed-off-by: Raquel Medina <raquel.medina@konsulko.com>
2019-02-25binding: bluetooth: add adapter_changes eventMatt Ranostay4-4/+71
adapter_changes event allows clients to know when an adapter's status changes as in addition or removal. Bug-AGL: SPEC-1763 Change-Id: I7a442ece7cf6b508d6290130a939fccc1bddebb9 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-02-14binding: bluetooth: fix segfault when no adapters are connectedMatt Ranostay1-0/+4
Bug-AGL: SPEC-2047 Change-Id: I55a080af35dad1514ee0423eff80e65331891bc7 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-01-14binding: bluetooth: replace rfkill code with network servicehalibut_7.90.0halibut/7.90.0guppy_6.99.4guppy/6.99.47.90.06.99.4Matt Ranostay4-132/+13
Remove bluetooth-rfkill.c and replace with agl-service-network calls which in turn allows ConnMan to correctly manage bluetooth rfkill state. Bug-AGL: SPEC-2124 Change-Id: Ibe0460be0f29957f99ea06975a1fa12d01840080 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-01-03binding: bluetooth: fix formating in README.mdMatt Ranostay1-1/+1
Fix avrcp_controls verb markdown header to correct number Change-Id: I5b2599c16ea74ab98ce6cf8bca5c2b45cada1bc4 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2019-01-02binding: bluetooth: add Transport parameter to discovery filterMatt Ranostay2-14/+33
Allow clients to select what Bluetooth transport they want a discovery scan to attempt to detect. This will improve scanning in for example when a client only wants to detect bredr or ble devices . Bug-AGL: SPEC-2094 Change-Id: I2a983f5243aefcb582a7476bbae34d6ba88c39a6 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-12-11binding: bluetooth: don't display errors if no error pointer is passedguppy_6.99.3guppy/6.99.36.99.3Matt Ranostay1-2/+2
There is sometimes when you don't want AFB_ERROR to be displayed on a dbus failure. Example would be in the initial autoconnect attempt on binding startup. Don't display the AFB_ERROR if error pointer that is passed is NULL Bug-AGL: SPEC-1630 SPEC-1986 Change-Id: I2bc1e8575037a8e84721d2c2c369a409986eda43 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-12-11binding: bluetooth: g_variant_unref() isn't being called on replyMatt Ranostay1-2/+4
Fix logic check and run g_variant_unref() on reply of dbus call Bug-AGL: SPEC-1630 Change-Id: I7e89031d8cad64c3303227c0ec7fd85a6c85f0c3 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-12-10binding: bluetooth: add MediaTransport1 to managed_objects outputMatt Ranostay2-3/+28
To allow initial reporting of MediaTransport1 of audio transports add them to the managed_objects verb. Bug-AGL: SPEC-1630 SPEC-1986 Change-Id: Icc09ae063e5dfc52e5396b9ea7149178b1d8aaac Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-12-10binding: bluetooth: add MediaTransport1 supportMatt Ranostay4-14/+134
Bug-AGL: SPEC-1630 Change-Id: I6ad1f85d4edc00239f891edf6994db416e8a2dbd Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-12-07binding: bluetooth: add default_adapter verbMatt Ranostay7-5/+127
Allow setting of default adapter for use by other verbs within the binding. This allows to select an adapter on boards with more than one. Bug-AGL: SPEC-1630 Change-Id: Iec77b0abaa9f4c092dc5c827522efb1744953fce Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-12-07binding: bluetooth: add connect/disconnect actions to avrcp_controlsMatt Ranostay1-1/+26
Allow subscribers to connect/disconnect to a2dp/avrcp Bluetoothp profiles Bug-AGL: SPEC-1630 Change-Id: I5c4c2a2f06636b2b74cb453a3af576beb8026ab1 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-12-07binding: bluetooth: add autobuild scriptsMatt Ranostay2-0/+120
Bug-AGL: SPEC-1630 Change-Id: I161c1033f3357a1049a133c4f7382d5bafb25c37 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-11-14binding: bluetooth: add MediaPlayer1 interface media eventsguppy_6.99.2guppy_6.99.1guppy/6.99.2guppy/6.99.16.99.26.99.1Matt Ranostay6-35/+204
Report back MediaPlayer1 interface events for A2DP media playback Bug-AGL: SPEC-1630 Change-Id: I777f19af2de247fe676d5bede4bacbbad8ca9844 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-11-12binding: bluetooth: add new avrcp controls verbMatt Ranostay4-1/+83
Since MediaPlayer1 controls are part of bluez it makes sense to keep them here for now Bug-AGL: SPEC-1630 Change-Id: Ia02341179a322082357b0e7eff07264e34197d57 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-11-12binding: bluetooth: add autoconnect featureMatt Ranostay3-0/+51
Attempt connection on each paired device till one is successful on startup. Bug-AGL: SPEC-1630 Change-Id: I213876f65528d0eaeaa5b55a745f541b286f26b5 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-11-12binding: bluetooth: add power adapter change eventsMatt Ranostay1-0/+12
Bug-AGL: SPEC-1630 Change-Id: I615cbf19d180556b0650dbf6b5ba48848be49f97 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-11-12binding: bluetooth: fix interface removal eventMatt Ranostay2-2/+9
Don't send adapter name in 'device' parameter on removal of bluetooth interface. Bug-AGL: SPEC-1630 Change-Id: I15cb4dcc791d36beb8e8b41993644cad331d3cae Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-11-12binding: bluetooth: add input validation on device inputMatt Ranostay1-1/+11
Validate device input to filter out special characters being sent that may cause the dbus call to hang or segfault. Bug-AGL: SPEC-1630 Change-Id: I31aa458154c030181b905b7ccc9d6a8aa0f84ef0 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-11-12binding: bluetooth: change api name to old case sensitive formatMatt Ranostay1-1/+1
Bug-AGL: SPEC-1630 Change-Id: Iae18f069b7a8091331efda97a270b70d05de3e79 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-11-12binding: bluetooth: add initial discovery filter supportMatt Ranostay5-8/+60
Allow clients to request devices only with certain profile UUIDs to be displayed in an discovery scan. This allows to filter out things like location tokens, smart scales, and etc which can't possibly have a2dp or hfp profiles for instance. NOTE: This is a write only setting. In the future should be read/write to see current discovery filters. Bug-AGL: SPEC-1630 Change-Id: Ic8b18656f84ac8047b170d6e601fcc2e63786af0 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-11-12binding: bluetooth: remove bluez paths in documentationMatt Ranostay1-4/+4
Bug-AGL: SPEC-1630 Change-Id: I7e76a5a6e5ea49b331068d4cb21fd97e5d1287e6 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-11-12binding: bluetooth: add BLUEZ_DEFAULT_ADAPTERMatt Ranostay3-20/+10
Bug-AGL: SPEC-1630 Change-Id: I8e55d273ab58992e6f6327523853c6d330505278 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-11-12binding: bluetooth: add return_bluez_path functionMatt Ranostay3-21/+54
Concatenate adapter and device parameters to return a bluez path for usage within the binding's dbus calls. Bug-AGL: SPEC-1630 Change-Id: I4c96fa48baaf12b23aac98ba35f1ca82f7005bcb Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-11-12binding: bluetooth: add check to be sure GError has been setMatt Ranostay2-4/+7
segfaults can happen if the dbus call reply fails but doesn't set a GError. Bug-AGL: SPEC-1630 Change-Id: I83ea2f7997a8fcef1cdd73a7df2cf9ad97e00d91 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-11-12binding: bluetooth: return adapter/device versus bluez pathMatt Ranostay7-22/+73
To allow this binding API to be bluetooth stack agnostic remove pure bluez paths, and replace with generic fields. Bug-AGL: SPEC-1630 Change-Id: Iadba73782b6339df2ca5937e16a654e7ef3e477b Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
2018-11-12binding: bluetooth: don't send empty PropertiesChanged messagesMatt Ranostay1-1/+11
Possible to have an PropertiesChanged events that produces no changes that are useful to report. Bug-AGL: SPEC-1630 Change-Id: I09b25943e3676abd5dd0f1c8caa2c0a2414f409f Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>