- fixed dbus_bus_request_name
[platform/upstream/dbus.git] / dbus / dbus-transport.c
index f743d01..af5f97b 100644 (file)
@@ -21,7 +21,7 @@
  *
  */
 
-#include <config.h>
+#include <../config.h>
 #include "dbus-transport-protected.h"
 #include "dbus-transport-unix.h"
 #include "dbus-transport-socket.h"
@@ -31,8 +31,9 @@
 #include "dbus-address.h"
 #include "dbus-credentials.h"
 #include "dbus-mainloop.h"
-#include "dbus-message-private.h"
-#include "dbus-marshal-header.h"
+#include "dbus-message.h"
+
+#include "dbus-transport-kdbus.h"
 #ifdef DBUS_BUILD_TESTS
 #include "dbus-server-debug-pipe.h"
 #endif
@@ -118,7 +119,19 @@ _dbus_transport_init_base (DBusTransport             *transport,
   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);
@@ -147,19 +160,6 @@ _dbus_transport_init_base (DBusTransport             *transport,
       _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;
@@ -254,7 +254,6 @@ check_address (const char *address, DBusError *error)
   int len, i;
 
   _dbus_assert (address != NULL);
-  _dbus_assert (*address != '\0');
 
   if (!dbus_parse_address (address, &entries, &len, error))
     return NULL;              /* not a valid address */
@@ -349,6 +348,7 @@ static const struct {
 } 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 }
@@ -991,7 +991,7 @@ recover_unused_bytes (DBusTransport *transport)
       const DBusString *encoded;
       DBusString *buffer;
       int orig_len;
-      
+
       if (!_dbus_string_init (&plaintext))
         goto nomem;
       
@@ -1004,12 +1004,12 @@ recover_unused_bytes (DBusTransport *transport)
           _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))
         {
@@ -1041,7 +1041,7 @@ recover_unused_bytes (DBusTransport *transport)
                                        &buffer);
                 
       orig_len = _dbus_string_get_length (buffer);
-                
+
       _dbus_auth_get_unused_bytes (transport->auth,
                                    &bytes);
 
@@ -1339,7 +1339,7 @@ _dbus_transport_get_unix_process_id (DBusTransport *transport,
   if (_dbus_credentials_include (auth_identity,
                                  DBUS_CREDENTIAL_UNIX_PROCESS_ID))
     {
-      *pid = _dbus_credentials_get_unix_pid (auth_identity);
+      *pid = _dbus_credentials_get_pid (auth_identity);
       return TRUE;
     }
   else