* Copyright (C) 2003 CodeFactory AB
* Copyright (C) 2003, 2004, 2005 Red Hat, Inc.
* Copyright (C) 2004 Imendio HB
+ * Copyright (C) 2013 Samsung Electronics
*
* Licensed under the Academic Free License version 2.1
*
#include "signals.h"
#include "test.h"
#include <dbus/dbus-internals.h>
+#include <dbus/dbus-misc.h>
#include <string.h>
+#ifdef ENABLE_KDBUS_TRANSPORT
+#include "kdbus-d.h"
+#endif
#ifdef HAVE_UNIX_FD_PASSING
#include <dbus/dbus-sysdeps-unix.h>
}
#endif /* DBUS_ENABLE_VERBOSE_MODE */
+ /* Create our transaction */
+ transaction = bus_transaction_new (context);
+ if (transaction == NULL)
+ {
+ BUS_SET_OOM (&error);
+ goto out;
+ }
+
/* If service_name is NULL, if it's a signal we send it to all
* connections with a match rule. If it's not a signal, there
* are some special cases here but mostly we just bail out.
result = DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
goto out;
}
- }
- /* Create our transaction */
- transaction = bus_transaction_new (context);
- if (transaction == NULL)
- {
- BUS_SET_OOM (&error);
- goto out;
+#ifdef ENABLE_KDBUS_TRANSPORT
+ if(bus_context_is_kdbus(context))
+ {
+ if (dbus_message_is_signal (message, DBUS_INTERFACE_DBUS, "NameOwnerChanged"))
+ {
+ handleNameOwnerChanged(message, transaction, connection);
+ goto out;
+ }
+ }
+#endif
}
+#ifdef ENABLE_KDBUS_TRANSPORT
/* Assign a sender to the message */
- if (bus_connection_is_active (connection))
+ if(bus_context_is_kdbus(context) == FALSE) //if using kdbus, sender must be set on library side
+#endif
+ {
+ if (bus_connection_is_active (connection))
{
sender = bus_connection_get_name (connection);
_dbus_assert (sender != NULL);
*/
service_name = dbus_message_get_destination (message);
}
+ }
if (service_name &&
strcmp (service_name, DBUS_SERVICE_DBUS) == 0) /* to bus driver */
_dbus_string_init_const (&service_string, service_name);
service = bus_registry_lookup (registry, &service_string);
+#ifdef ENABLE_KDBUS_TRANSPORT
+ if (dbus_message_get_auto_start (message) && (service == NULL || bus_service_get_is_kdbus_starter(service)))
+#else
if (service == NULL && dbus_message_get_auto_start (message))
+#endif
{
BusActivation *activation;
/* We can't do the security policy check here, since the addressed
NULL);
}
-#ifdef DBUS_BUILD_TESTS
+#ifdef DBUS_ENABLE_EMBEDDED_TESTS
#include <stdio.h>
_dbus_verbose ("Setting TEST_LAUNCH_HELPER_CONFIG to '%s'\n",
_dbus_string_get_const_data (&full));
- _dbus_setenv ("TEST_LAUNCH_HELPER_CONFIG", _dbus_string_get_const_data (&full));
+ dbus_setenv ("TEST_LAUNCH_HELPER_CONFIG", _dbus_string_get_const_data (&full));
_dbus_string_free (&full);
}
#endif
-#endif /* DBUS_BUILD_TESTS */
+#endif /* DBUS_ENABLE_EMBEDDED_TESTS */