diff --git a/comar/include/config.h b/comar/include/config.h index c29be54d8802aa9e8c67e63bc5d3808780ab03a1..45bf59b748e4ab2c272cd2147d42cae5af666f0c 100644 --- a/comar/include/config.h +++ b/comar/include/config.h @@ -64,6 +64,7 @@ #endif extern char *config_server_address; +extern char *config_unique_address; extern char *config_service_name; extern char *config_interface; extern char *config_dir_data; diff --git a/comar/src/config.c b/comar/src/config.c index 453bd5c3d5e2f6043acad749bd3bbe928c937c48..e4145b6906d1ae0290f759a94690f986650144fc 100644 --- a/comar/src/config.c +++ b/comar/src/config.c @@ -38,6 +38,9 @@ //! D-Bus socket file char *config_server_address = DBUS_SERVER_ADDRESS; +//! D-Bus unique address +char *config_unique_address; + //! D-Bus service name char *config_service_name = DBUS_SERVICE_NAME; diff --git a/comar/src/loop.c b/comar/src/loop.c index 3c2fc8010e2a6a18c60246ac6a3dbd55e49897d5..c0016d163cfc8f606b73a06382b49334b48af23f 100644 --- a/comar/src/loop.c +++ b/comar/src/loop.c @@ -196,6 +196,10 @@ filter_func(DBusConnection *conn, DBusMessage *bus_msg, void *data) PyObject *py_args = pydbus_import(bus_msg); + if (!dbus_message_has_destination(bus_msg, config_unique_address)) { + return DBUS_HANDLER_RESULT_HANDLED; + } + switch (dbus_message_get_type(bus_msg)) { case DBUS_MESSAGE_TYPE_METHOD_CALL: if (my_proc.nr_children > MAX_PROC) { @@ -320,6 +324,7 @@ loop_exec() return -1; } + config_unique_address = dbus_bus_get_unique_name(bus_conn); log_debug("Connected to D-Bus, unique id is %s\n", dbus_bus_get_unique_name(bus_conn)); // Request a name (example: com.server.test)