*
*/
-#include <config.h>
+#include <../config.h>
#include "dbus-transport-protected.h"
#include "dbus-transport-unix.h"
#include "dbus-transport-socket.h"
#include "dbus-credentials.h"
#include "dbus-mainloop.h"
#include "dbus-message.h"
+
+#include "dbus-transport-kdbus.h"
#ifdef DBUS_BUILD_TESTS
#include "dbus-server-debug-pipe.h"
#endif
if (server_guid)
auth = _dbus_auth_server_new (server_guid);
else
- auth = _dbus_auth_client_new ();
+ {
+ _dbus_assert (address != NULL);
+ if (!_dbus_string_copy_data (address, &address_copy))
+ {
+ _dbus_message_loader_unref (loader);
+ return FALSE;
+ }
+ if(address_copy == strstr(address_copy, "kdbus:path="))
+ auth = _dbus_auth_client_new_kdbus();
+ else
+ auth = _dbus_auth_client_new ();
+ }
+
if (auth == NULL)
{
_dbus_message_loader_unref (loader);
_dbus_assert (address == NULL);
address_copy = NULL;
}
- else
- {
- _dbus_assert (address != NULL);
-
- if (!_dbus_string_copy_data (address, &address_copy))
- {
- _dbus_credentials_unref (creds);
- _dbus_counter_unref (counter);
- _dbus_auth_unref (auth);
- _dbus_message_loader_unref (loader);
- return FALSE;
- }
- }
transport->refcount = 1;
transport->vtable = vtable;
} open_funcs[] = {
{ _dbus_transport_open_socket },
{ _dbus_transport_open_platform_specific },
+ { _dbus_transport_open_kdbus },
{ _dbus_transport_open_autolaunch }
#ifdef DBUS_BUILD_TESTS
, { _dbus_transport_open_debug_pipe }
const DBusString *encoded;
DBusString *buffer;
int orig_len;
-
+
if (!_dbus_string_init (&plaintext))
goto nomem;
_dbus_string_free (&plaintext);
goto nomem;
}
-
+
_dbus_message_loader_get_buffer (transport->loader,
&buffer);
orig_len = _dbus_string_get_length (buffer);
-
+
if (!_dbus_string_move (&plaintext, 0, buffer,
orig_len))
{
&buffer);
orig_len = _dbus_string_get_length (buffer);
-
+
_dbus_auth_get_unused_bytes (transport->auth,
&bytes);