summaryrefslogtreecommitdiff
path: root/bus
Commit message (Collapse)AuthorAgeFilesLines
* Add uid, pid, and command to security logsColin Walters2009-01-213-19/+119
| | | | | | | | | | | | Extend the current security logs with even more relevant information than just the message content. This requires some utility code to look up and cache (as a string) the data such as the uid/pid/command when a connection is authenticated. Conflicts: bus/connection.c
* Add optional logging on allow rulesColin Walters2009-01-214-16/+34
| | | | | | | | | This lets us have a backwards compatibility allow rule but still easily see when that rule is being used. Conflicts: bus/config-parser.c
* Add message type to security syslog entriesColin Walters2009-01-211-2/+6
| | | | It's part of the security check, we should have it in the log.
* Add syslog of security denials and configuration file reloadsColin Walters2009-01-217-21/+129
| | | | | | | | | | | | | We need to start logging denials so that they become more easily trackable and debuggable. Conflicts: bus/bus.c bus/config-parser-common.c bus/config-parser-common.h bus/config-parser.c test/name-test/tmp-session-like-system.conf
* Clean up and clarify default system policyColin Walters2009-01-211-22/+18
| | | | | | | | | The former was too reliant on old bugs and was generally unclear. This one makes explicit exactly what is allowed and not. Conflicts: bus/system.conf.in
* Bug 18229: Allow signalsColin Walters2009-01-211-0/+2
| | | | | | | Our previous fix went too far towards lockdown; many things rely on signals to work, and there's no really good reason to restrict which signals can be emitted on the bus because we can't tie them to a particular sender.
* Bug 18229 - Change system.conf to correctly deny non-reply sends by defaultColin Walters2009-01-211-2/+12
| | | | | | | | | | | | | | | The previous rule <allow send_requested_reply="true"/> was actually applied to all messages, even if they weren't a reply. This meant that in fact the default DBus policy was effectively allow, rather than deny as claimed. This fix ensures that the above rule only applies to actual reply messages. Signed-off-by: Colin Walters <walters@verbum.org> Conflicts: bus/system.conf.in
* CVE-2008-0595 dbus security policy circumventionJohn (J5) Palmieri2008-02-261-6/+26
| | | | | | | | | | | * CVE-2008-0595 - security policy of the type <allow send_interface= "some.interface.WithMethods"/> work as an implicit allow for messages sent without an interface bypassing the default deny rules and potentially allowing restricted methods exported on the bus to be executed by unauthorized users. This patch fixes the issue. * bus/policy.c (bus_client_policy_check_can_send, bus_client_policy_check_can_receive): skip messages without an interface when evaluating an allow rule
* 2007-06-08 Havoc Pennington <hp@redhat.com>Havoc Pennington2007-06-081-0/+11
| | | | | * backport fix to allow a server to use port=0 or omit port so the port can be auto-selected by the OS
* 2007-05-23 Havoc Pennington <hp@redhat.com>Havoc Pennington2007-05-232-0/+5
| | | | | | | * bus/Makefile.am (install-data-hook): create session.d * bus/session.conf.in: add session.d for the session bus, so security policy can be extended
* 2007-01-31 Havoc Pennington <hp@redhat.com>Havoc Pennington2007-02-011-0/+53
| | | | | * bus/dbus-daemon.1.in: write a section in the man page on running a test daemon for debugging purposes
* 2007-01-26 Havoc Pennington <hp@redhat.com>Havoc Pennington2007-01-262-8/+35
| | | | | | | | | | * bus/session.conf.in: override all the default limits with much higher limits on the session bus, there is no reason the session bus should have low limits * bus/config-parser.c (bus_config_parser_new): increase default limits so they are less likely to be hit; in particular the max replies per connection was way too low
* * bus/signal.c: Fix match_rule_equal errataJohn (J5) Palmieri2006-12-121-0/+3
| | | | | (CVE-2006-6107 - Patch from Kimmo Hämäläinen <kimmo.hamalainen@nokia.com>)
* * bus/bus.c: Missed patch - pass in the context to the directory watchJohn (J5) Palmieri2006-11-061-1/+1
|
* * bus/activation.c (bus_activation_new): don't fail if we can not readJohn (J5) Palmieri2006-11-031-2/+8
| | | | the directory as it may not exist
* * bus/config-parser.c (service_dirs_find_dir): useJohn (J5) Palmieri2006-11-021-14/+15
| | | | | | | | | | | _dbus_list_get_next_link so we don't get stuck in an infinite loop (start_busconfig_child): move processing of standard_session_servicedirs tags here because they have no content (bus_config_parser_content): check we don't have content in standard_session_servicedirs tag * tools/Makefile.am: Make sure the /var/lib/dbus directory is created Packagers need to own this directory
* 2006-11-01 Havoc Pennington <hp@redhat.com>Havoc Pennington2006-11-021-0/+21
| | | | * bus/dbus-daemon.1.in: document standard_session_servicedirs
* * configure.in: expose DBUS_DATADIRJohn (J5) Palmieri2006-11-012-2/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * bus/config-parser.c: add the standard_session_servicedirs element to the parser (bus_config_parser_content): process the standard_session_servicedirs element by getting the standard directories from sysdeps and merging them into the service directory list (test_default_session_servicedirs): make sure we get what we expect * bus/session.conf.in: replace the servicedir tag with the standard_session_servicedirs tag * dbus/dbus-list.h: remove the typedef of DBusList and place it in dbus-sysdeps.h to avoid circular header dependencies * dbus/dbus-sysdeps.h: add the typedef of DBusList * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function which takes a string of directories delimited by colons, parses them out, appends a suffix and puts them in a list ignoring empty elements (_dbus_get_standard_session_servicedirs): returns the standard directories for a session bus to look for service activation files on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and DBUS_DATADIR directories * test/data/valid-config-files/many-rules.conf: add the standard_session_servicedirs tag to the valid config file tests
* * bus/config-parser.c (service_dirs_find_dir,John (J5) Palmieri2006-10-271-2/+48
| | | | | | | | | service_dirs_append_unique_or_free, service_dirs_append_link_unique_or_free): New static methods for only appending unique service directory names into the service directory list (merge_included, bus_config_parser_content): Only add unique service directory names into the list
* 2006-10-23 David Zeuthen <davidz@redhat.com>David Zeuthen2006-10-232-16/+28
| | | | | | | | | | | | | | * dbus/dbus-memory.c: Use atomic variable to protect n_blocks_outstanding otherwise OOM will be reported using SMP on some arches * bus/dispatch.c: Add missing end of line characters * bus/desktop-file.c (parse_section_start, parse_key_value) (bus_desktop_file_load): Propertly handle OOM * dbus/dbus-threads.c (init_uninitialized_locks): Check that thread_init_generation equals _dbus_current_generation, not 0
* * bus/dir-watch-default.c, bus/dir-watch-dnotify.c,John (J5) Palmieri2006-10-194-5/+7
| | | | | | | | | | bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext instead of a void *. kqueue uses this to get the context's loop while the other modules ignore the parameter. This allows us to avoid platform conditionals * bus/bus.c (process_config_postinit): Pass in the context to the watch
* * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensureJohn (J5) Palmieri2006-10-192-0/+8
| | | | when starting the system bus
* 2006-10-01 Havoc Pennington <hp@redhat.com>Havoc Pennington2006-10-012-10/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): Add a hack to make DBusNewConnectionFunction work right. * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use the hack here. Also, fix the todo about refcount leak. * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new): and use the hack here * dbus/dbus-connection.c: Kill the "shared" flag vs. the "shareable" flag; this was completely broken, since it meant dbus_connection_open() returned a connection of unknown shared-ness. Now, we always hold a ref on anything opened as shareable. Move the call to notify dbus-bus.c into connection_forget_shared_unlocked, so libdbus consistently forgets all its knowledge of a connection at once. This exposed numerous places where things were totally broken if we dropped a ref inside get_dispatch_status_unlocked where connection_forget_shared_unlocked was previously, so move connection_forget_shared_unlocked into _dbus_connection_update_dispatch_status_and_unlock. Also move the exit_on_disconnect here. (shared_connections_shutdown): this assumed weak refs to the shared connections; since we have strong refs now, the assertion was failing and stuff was left in the hash. Fix it to close still-open shared connections. * bus/dispatch.c: fixup to use dbus_connection_open_private on the debug pipe connections * dbus/dbus-connection.c (dbus_connection_dispatch): only notify dbus-bus.c if the closed connection is in fact shared (_dbus_connection_close_possibly_shared): rename from _dbus_connection_close_internal (dbus_connection_close, dbus_connection_open, dbus_connection_open_private): Improve docs to explain the deal with when you should close or unref or both * dbus/dbus-bus.c (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename from _dbus_bus_check_connection_and_unref_unlocked and modify to loop over all connections * test/test-utils.c (test_connection_shutdown): don't try to close shared connections. * test/name-test/test-threads-init.c (main): fix warnings in here * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT env variable to cause blocking waiting for gdb; drop DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() unconditionally. * configure.in: add -export-dynamic to libtool flags if assertions enabled so _dbus_print_backtrace works. * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf instead of _dbus_verbose to print the backtrace, and diagnose lack of -rdynamic/-export-dynamic
* 2006-09-30 Havoc Pennington <hp@redhat.com>Havoc Pennington2006-10-012-0/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * configure.in (LT_CURRENT, LT_AGE): increment current and age to reflect addition of interfaces. * doc/dbus-specification.xml: describe a new org.freedesktop.DBus.Peer.GetMachineId method * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function (_dbus_string_skip_white, _dbus_string_skip_blank): use new DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion at end of skip_white (_dbus_string_chop_white): new function * bus/connection.c (bus_connections_setup_connection): call dbus_connection_set_route_peer_messages. * dbus/dbus-connection.c (_dbus_connection_peer_filter_unlocked_no_update): modify to support a GetMachineId method. Also, support a new flag to let the bus pass peer methods through to apps on the bus, which can be set with dbus_connection_set_route_peer_messages. Finally, handle and return an error for anything unknown on the Peer interface, which will allow us to extend the Peer interface in the future without fear that we're now intercepting something apps were wanting to see. * tools/dbus-uuidgen.c: a thin wrapper around the functions in dbus/dbus-uuidgen.c * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen binary here, since most of the code is already in libdbus * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the uuid from the system config file * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) (_dbus_read_uuid_file_without_creating) (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new uuid-related functions, partly factored out from dbus-server.c * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to DBUS_ERROR_FILE_EXISTS instead of EEXIST * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error * tools/dbus-cleanup-sockets.1: explain what the point of this thing is a bit more * autogen.sh (run_configure): add --config-cache to default configure args * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the error set/clear assertions when DBUS_DISABLE_CHECKS is defined * tools/dbus-launch.c (main): if xdisplay hasn't been opened, don't try to save address, fixes crash in make check
* 2006-09-16 Havoc Pennington <hp@redhat.com>Havoc Pennington2006-09-162-6/+6
| | | | | | | | | | * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header. * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter Kümmel bug #8249 to make the sysdeps.h read/write/open/close functions specifically for sockets only, and move generic read/write/open/close into unix-specific code.
* * remove a bunch of todo items from the 1.0 listJohn (J5) Palmieri2006-09-112-3/+3
|
* * bus/activation.c, bus/desktop-file.c: Distinguish between OOM andJohn (J5) Palmieri2006-09-113-21/+29
| | | | key not found
* * bus/test-main.c (main): Initialize threading during testsJohn (J5) Palmieri2006-09-081-3/+0
| | | | | | | | | | * dbus/dbus-connection.c (_dbus_connection_new_for_transport): Unlock connection on error (generate_local_error_message): static method for generating an error message when we don't have a message to reply to (_dbus_connection_block_pending_call): Send a disconnect error instead of just a timeout (NULL) when the bus gets disconnected while blocking for a reply.
* * Clean up close calls to use _dbus_close (Patch fromJohn (J5) Palmieri2006-09-071-0/+3
| | | | Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
* * bus/driver.c:John (J5) Palmieri2006-09-063-79/+118
| | | | | | | | | | | | (bus_driver_generate_introspect_string): New method for populating a DBusString with the introspect data (bus_driver_handle_introspect): Move introspect generation code to bus_driver_generate_introspect_string * bus/main.c: (introspect): New function which prints out the intropect data and exits (main): Add a --introspect switch
* * doc/TODO, various source files: Audited todo's and FIXME's andJohn (J5) Palmieri2006-09-065-5/+5
| | | | | | prepended the ones we should be looking at with 1.0. Those prepended with 1.0? need clerification or might not be needed for 1.0
* * configure.ac, bus/Makefile.am: Generalize kqueue support so thatJohn (J5) Palmieri2006-08-251-1/+1
| | | | | it works on any system providing this interface, not only FreeBSD. For example, NetBSD. (Patch by Julio M. Merino Vidal <jmmv at NetBSD dot org>)
* * Released 0.92dbus-0.92John (J5) Palmieri2006-08-181-17/+21
| | | | | | | | * dbus/dbus-threads.c (dbus_threads_init): change the documentation to reflect the init late change * bus/bus.c (bus_context_new): Check user before we fork so we can print out an error message a user will be able to see
* Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de)John (J5) Palmieri2006-08-181-1/+26
| | | | | | | | | * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h: Add two more global locks for use on windows platforms. These are unused on non-windows platforms but are not ifdefed out to avoid potential bugs (i.e. the few bytes lost does not warrent the extra maintanence and complexity that having seperate sets of locks would cause)
* Patches by Kjartan Maraas <kmaraas at gnome dot org>John (J5) Palmieri2006-08-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * bus/services.c (bus_service_list_queued_owners): Add a pointer cast to fix compiler warning * dbus/dbus-dataslot.c (_dbus_data_slot_list_get): return a NULL instead of FALSE since the return type is not expecting a boolean * dbus/dbus-marshal-basic.c (_dbus_marshal_test): Remove unused variable * dbus/dbus-marshal-recursive-util.c (node_new): return a NULL instead of FALSE since the return type is not expecting a boolean * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new): Send a NULL into _dbus_transport_new_for_fd instead of a FALSE because we are expecting a pointer not a boolean * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): add void as the parameter so some compilers don't complain * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket, _dbus_transport_new_for_tcp_socket): Send a NULL into _dbus_transport_new_for_fd instead of a FALSE because we are expecting a pointer not a boolean * test/shell-test.c (test_command_line): cast the second argument to _dbus_list_append to avoid compiler warnings * test/test-names.c (main): remove unused variable * test/test-service.c (check_hello_from_self_reply): Initialize echo_message and echo_reply to NULL * test/test-shell-service.c (handle_echo): Remove unused variable and cast the third parameter passed to dbus_connection_get_object_path_data to avoid compiler warrnings * test/name-test/test-names.c (clear_message_queue): Remove unused function * test/name-test/test-pending-call-dispatch.c: Fix format string in printf
* * configure.in: make sure the compiler supports -Wfloat-equalJohn (J5) Palmieri2006-08-101-3/+3
| | | | | | * bus/dir-watch-dnotify.c: move functional code after variable declerations (C99 fix) (patches from Jens Granseuer <jensgr at gmx dot net>
* * dbus/dbus-sysdeps.c:John (J5) Palmieri2006-08-101-2/+6
| | | | | | | | * dbus/dbus-address.c: * bus/activation.c: * test/shell-test.c: don't hardcode tmp directory (patch from Dave Meikle <dmk at davemeikle dot co dot uk>)
* * missing semicolonJohn (J5) Palmieri2006-08-081-1/+1
|
* These are all patches from Kjartan Maraas <kmaraas at gnome dot org>John (J5) Palmieri2006-08-086-23/+68
| | | | | | | | | | | | | | | | | | | | | | | | | with cleanups of bugs found from Coverity reports: * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file): close the file on error to avoid a leak * bus/expirelist.c (bus_expire_list_test): Check for NULL on dbus_new0 * bus/activation.c (update_directory): remove dead code * bus/config-parser.c (merge_service_context_hash, start_selinux_child): Fix some leaks * bus/bus.c (process_config_every_time): Fixed a leak * bus/desktop-file.c (parse_key_value): Fixed leak * bus/selinux.c (bus_selinux_id_table_insert): Fixed leak
* * dbus/dbus-sysdeps.h:John (J5) Palmieri2006-08-084-22/+229
| | | | | | | | | | | | | | | | * dbus/dbus-sysdeps.c: * dbus/dbus-string.c: s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with GLib's function which does the same thing * configure.in: * bus/Makefile.am: * bus/dir-watch-default.c: * bus/dir-watch-dnotify.c: * bus/dir-watch-kqueue.c: Add kqueue directory watching for freebsd and split the directory watching code into seperate files per method/arch (patches from Timothy Redaelli <drizzt at gufi dotorg>)
* * configure.in:John (J5) Palmieri2006-08-081-3/+9
| | | | | | | | | * tools/Makefile.am: * tools/dbus-launch.c: * bus/Makefile.am: allow --with-dbus-daemondir switch to be used to make the daemon install to a seperate bindir like /usr/libexec (patch from Brian Cameron <brian dot cameron at sun dot com)
* * bus/Makefile.am (install-data-hook): removed the slash afterJohn (J5) Palmieri2006-08-081-3/+3
| | | | | | $(DESTDIR) so we don't get the double slash which does not work in windows (patch from Andras Porjesz <andras dot porjesz at siemens dot com>
* * s/D-BUS/D-Bus/gJohn (J5) Palmieri2006-08-035-14/+14
|
* * bus/activation.[ch] (bus_activation_list_services): new function toJohn (J5) Palmieri2006-07-144-4/+493
| | | | | | | | | | | | get the list of services that can be activated * bus/dispatch.c: test coverage for the new bus method ListActivatableNames * bus/driver.c: new bus method ListActivatableNames to get the list of services that can be activated * doc/dbus-specification.xml: ListActivatableNames method documentation
* * bus/bus.c: Fix eavesdropping on method callsJohn (J5) Palmieri2006-06-071-14/+14
|
* * bus/bus.c: (bus_context_reload_config): Flush the user database cache onSjoerd Simons2006-03-062-3/+7
| | | | | | | | | | | config reload. * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group information caches * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): * dbus/dbus-hash.h: Add function to remove all entries from a hash table * dbus/dbus-userdb.c: (_dbus_user_database_flush): * dbus/dbus-userdb.h: Add function to flush all user/group information caches.
* 2006-02-26 Havoc Pennington <hp@redhat.com>Havoc Pennington2006-02-261-6/+14
| | | | | | | | * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed * dbus/dbus-bus.c (internal_bus_get): in the error message if the session bus variable is unset, suggest "man dbus-launch" and "man dbus-daemon" to figure out how to fix the problem
* 2006-02-10 John (J5) Palmieri <johnp@redhat.com>John (J5) Palmieri2006-02-101-1/+2
| | | | | | * bus/connection.c (bus_connections_expect_reply): Make pending reply limit not common to all connections (Bug #5416) Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
* * bus/desktop-file.c (parse_key_value): Ignore locales allowingJohn (J5) Palmieri2005-11-301-4/+13
| | | | | | | | the parser to continue instead of returning error (bus_desktop_file_load): Do not free parser data when parse_section_start or parse_key_value fails because it was already freed by parser_free (patch from Carlos Garcia Campos <carlosgc at gnome.org>)
* * configure.in: Add test/name-test/Makefile to the generatedJohn (J5) Palmieri2005-11-227-128/+585
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Makefile list * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT): New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying not to queue an ower if it can't be the primary owner * bus/bus.h: Add new internal BusOwner struct * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default) to bus_registry_ensure and don't set the prohibit_replacement flag since they are now set per BusOwner and not per name. (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) that returns the list of connections in a name's connection queue * bus/services.c (struct BusService): remove prohibit_replacement field (struct BusOwner): new struct for keeping track of queued connections and their associated flags for the queue (struct BusRegistry): add a BusOwner memory pool (bus_registry_new): initialize the BusOwner memory pool (bus_registry_unref): free the BusOwner memory pool (_bus_service_find_owner_link): new internal method for searching the queue for a specific connection (bus_owner_set_flags): new method for adding setting the flags on a bus owner (bus_owner_new): new method that creates a BusOwner object from the pool and sets its flags (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects (bus_registry_ensure): Add the flags parameter (bus_registry_acquire_service): Switch from using raw connections to using the BusOwner struct Add new state machine for dealing with the new set of flags (bus_registry_set_service_context_table, struct OwnershipCancelData, cancel_ownership, free_ownership_cancel_data, add_cancel_ownership_to_transaction, struct OwnershipRestoreData, restore_ownership, free_ownership_restore_data, add_restore_ownership_to_transaction): Switch to using BusOwner instead of raw connections (bus_service_add_owner): Add flags parameter Switch to using BusOwner instead of raw connections Add state machine for dealing with the new set of flags (bus_service_swap_owner): Swaps the first and second owners in the queue. Used to make sure proper signals are sent when a service looses or gains primary ownership. We never insert an owner at the top of the queue. Instead we insert it in the second position and then swap. (bus_service_remove_owner): Remove the owner from the queue sending out the NameLost and NameOwnerChanged signals if the we were the primary owner (bus_service_get_primary_owners_connection): New method that extracts the connection from the primary owner (bus_service_get_primary_owner): Returns the BusOwner instead of the connection (bus_service_get_allow_replacement): Changed from the old bus_service_get_prohibit_replacement method. Checks the flags of the primary owner and returns if it can be replaced or not (bus_service_set_prohibit_replacement): removed (bus_service_has_owner): returns TRUE if and owner with the specified connection exists in the queue * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper method that only compiles if tests are enabled. Allows us to get the unique name of a connection so we can check it against the queue when doing regression tests * bus/activation.c (bus_activation_send_pending_auto_activate), bus/dispatch.c (bus_dispatch), bus/driver.c (bus_driver_handle_get_service_owner, bus_driver_handle_get_connection_unix_user, bus_driver_handle_get_connection_unix_process_id, bus_driver_handle_get_connection_selinux_security_context), bus/signals.c (connection_is_primary_owner): use bus_service_get_primary_owners_connection instead of bus_service_get_primary_owner * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, _dbus_listen_unix_socket): Calculate the length of the socket path and use that instead of using a fixed length which was causing socket names to contain many trailing Nul bytes. * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c (dbus_g_method_get_sender): New method for extracting the sender from a DBusGMethodInvocation (dbus_g_method_return_get_reply): changed name to dbus_g_method_get_reply (dbus_g_method_return_send_reply): changed name to dbus_g_method_send reply * doc/dbus-specification.xml: New docs that describe how the new queueing system works and talks about the changes to the how we specify socket names * glib/examples/example-service.c, glib/examples/example-signal-emitter.c, glib/examples/statemachine/statemachine-server.c: Changed the RequestName flags to the new system * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New regression test suite for testing various states of the new queueing system