Some io implementations might want to either make calls to other D-Bus
services, or provide additional objects/interfaces that allow
applications to fine-tune their operation, so allow them to use the bus
even before initializing mesh D-Bus interfaces.
---
mesh/dbus.c | 8 ++++++++
mesh/dbus.h | 1 +
mesh/main.c | 2 ++
3 files changed, 11 insertions(+)
diff --git a/mesh/dbus.c b/mesh/dbus.c
index a7abdc428..6e62abd27 100644
--- a/mesh/dbus.c
+++ b/mesh/dbus.c
@@ -75,6 +75,11 @@ struct l_dbus_message *dbus_error(struct l_dbus_message *msg, int err,
"%s", error_table[err].default_desc);
}
+void dbus_set_bus(struct l_dbus *bus)
+{
+ dbus = bus;
+}
+
struct l_dbus *dbus_get_bus(void)
{
return dbus;
@@ -82,6 +87,9 @@ struct l_dbus *dbus_get_bus(void)
bool dbus_init(struct l_dbus *bus)
{
+ if (dbus != bus)
+ return false;
+
/* Network interface */
if (!mesh_dbus_init(bus))
return false;
diff --git a/mesh/dbus.h b/mesh/dbus.h
index 8f00434d6..ab8b0a2cc 100644
--- a/mesh/dbus.h
+++ b/mesh/dbus.h
@@ -14,6 +14,7 @@
#define DEFAULT_DBUS_TIMEOUT 30
bool dbus_init(struct l_dbus *dbus);
+void dbus_set_bus(struct l_dbus *bus);
struct l_dbus *dbus_get_bus(void);
void dbus_append_byte_array(struct l_dbus_message_builder *builder,
const uint8_t *data, int len);
diff --git a/mesh/main.c b/mesh/main.c
index dd99c3085..0180c3768 100644
--- a/mesh/main.c
+++ b/mesh/main.c
@@ -278,6 +278,8 @@ int main(int argc, char *argv[])
goto done;
}
+ dbus_set_bus(dbus);
+
if (dbus_debug)
l_dbus_set_debug(dbus, do_debug, "[DBUS] ", NULL);
l_dbus_set_ready_handler(dbus, ready_callback, dbus, NULL);
--
2.25.1
This is automated email and please do not reply to this email!
Dear submitter,
Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=662693
---Test result---
Test Summary:
CheckPatch PASS 1.01 seconds
GitLint PASS 0.54 seconds
Prep - Setup ELL PASS 32.04 seconds
Build - Prep PASS 0.68 seconds
Build - Configure PASS 9.73 seconds
Build - Make PASS 736.69 seconds
Make Check PASS 11.17 seconds
Make Check w/Valgrind PASS 294.36 seconds
Make Distcheck PASS 246.27 seconds
Build w/ext ELL - Configure PASS 9.89 seconds
Build w/ext ELL - Make PASS 90.77 seconds
Incremental Build w/ patches PASS 0.00 seconds
Scan Build PASS 495.61 seconds
---
Regards,
Linux Bluetooth
Hi Michał,
On Mon, 2022-07-25 at 10:05 +0200, Michał Lowas-Rzechonek wrote:
> Some io implementations might want to either make calls to other D-
> Bus
> services, or provide additional objects/interfaces that allow
> applications to fine-tune their operation, so allow them to use the
> bus
> even before initializing mesh D-Bus interfaces.
> ---
> mesh/dbus.c | 8 ++++++++
> mesh/dbus.h | 1 +
> mesh/main.c | 2 ++
> 3 files changed, 11 insertions(+)
>
> diff --git a/mesh/dbus.c b/mesh/dbus.c
> index a7abdc428..6e62abd27 100644
> --- a/mesh/dbus.c
> +++ b/mesh/dbus.c
> @@ -75,6 +75,11 @@ struct l_dbus_message *dbus_error(struct
> l_dbus_message *msg, int err,
> "%s", error_table[err].default_desc);
> }
>
> +void dbus_set_bus(struct l_dbus *bus)
> +{
> + dbus = bus;
> +}
> +
> struct l_dbus *dbus_get_bus(void)
> {
> return dbus;
> @@ -82,6 +87,9 @@ struct l_dbus *dbus_get_bus(void)
>
> bool dbus_init(struct l_dbus *bus)
> {
> + if (dbus != bus)
> + return false;
> +
Since dbus_set_bus() is called prior to dbus_init(), wouldn't it make
sense to eliminate an input parameter for dbus_init() and to perform a
check (dbus != NULL) and also eliminate
"dbus = bus" statement at the end of dbus_init()?
> /* Network interface */
> if (!mesh_dbus_init(bus))
> return false;
> diff --git a/mesh/dbus.h b/mesh/dbus.h
> index 8f00434d6..ab8b0a2cc 100644
> --- a/mesh/dbus.h
> +++ b/mesh/dbus.h
> @@ -14,6 +14,7 @@
> #define DEFAULT_DBUS_TIMEOUT 30
>
> bool dbus_init(struct l_dbus *dbus);
> +void dbus_set_bus(struct l_dbus *bus);
> struct l_dbus *dbus_get_bus(void);
> void dbus_append_byte_array(struct l_dbus_message_builder *builder,
> const uint8_t *data,
> int len);
> diff --git a/mesh/main.c b/mesh/main.c
> index dd99c3085..0180c3768 100644
> --- a/mesh/main.c
> +++ b/mesh/main.c
> @@ -278,6 +278,8 @@ int main(int argc, char *argv[])
> goto done;
> }
>
> + dbus_set_bus(dbus);
> +
It is better to call dbus_set_bus from within ready_callback()
> if (dbus_debug)
> l_dbus_set_debug(dbus, do_debug, "[DBUS] ", NULL);
> l_dbus_set_ready_handler(dbus, ready_callback, dbus, NULL);
Best regards,
Inga