Commit graph

304 commits

Author SHA1 Message Date
Ralf Habacker
a780c4e834 * bus/activation.c: (bus_activation_activate_service):
fixed call to _dbus_spawn_async_with_babysitter().
2007-03-04 22:09:50 +00:00
Havoc Pennington
aa2f74f551 2007-01-31 Havoc Pennington <hp@redhat.com>
* bus/dbus-daemon.1.in: write a section in the man page on running
	a test daemon for debugging purposes
2007-02-01 22:41:27 +00:00
Havoc Pennington
8d3d8ff557 2007-01-26 Havoc Pennington <hp@redhat.com>
* 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
2007-01-26 16:10:26 +00:00
Ray Strode
5d77d1503e 2006-12-19 Ray Strode <rstrode@redhat.com>
* bus/bus.c (process_config_every_time):
	don't overwrite existing bus context activation object
	until after we've checked that the new activation is
	valid.

	* bus/main.c
	(signal_handler), (handle_reload_watch):
	don't call exit() on failure, instead make do and keep
	going.
	(close_reload_pipe): new function to turn off
	hangup-causes-config-reload behavior if an unexpected
	error occurs
2006-12-20 06:18:19 +00:00
Ralf Habacker
f2e17db66f * dbus/dbus-string.c (_dbus_string_pop_line),
bus/desktop-file.c (parse_section_start,
	parse_comment_or_blank,parse_key_value,): uses
	_dbus_string_find_eol() to support platform independent eol style.
2006-12-12 23:58:32 +00:00
Tim Dijkstra
145fb99b6e commit.msg 2006-12-12 21:24:07 +00:00
John (J5) Palmieri
1a90c01930 * bus/signal.c: Fix match_rule_equal errata
(CVE-2006-6107 - Patch from Kimmo Hämäläinen
  <kimmo.hamalainen@nokia.com>)
2006-12-12 19:08:04 +00:00
John (J5) Palmieri
4c31ea9ee2 * bus/bus.c: Missed patch - pass in the context to the directory watch 2006-11-06 16:02:19 +00:00
John (J5) Palmieri
b6f91340c3 * bus/activation.c (bus_activation_new): don't fail if we can not read
the directory as it may not exist
2006-11-03 01:03:43 +00:00
John (J5) Palmieri
a157ec7f72 * bus/config-parser.c (service_dirs_find_dir): use
_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-02 23:56:48 +00:00
Havoc Pennington
524ddfcb34 2006-11-01 Havoc Pennington <hp@redhat.com>
* bus/dbus-daemon.1.in: document standard_session_servicedirs
2006-11-02 04:26:23 +00:00
John (J5) Palmieri
5640f7a57b * configure.in: expose DBUS_DATADIR
* 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
2006-11-01 23:30:46 +00:00
John (J5) Palmieri
feb7d3a0f0 * bus/config-parser.c (service_dirs_find_dir,
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-27 18:30:22 +00:00
David Zeuthen
cb905b58f0 2006-10-23 David Zeuthen <davidz@redhat.com>
* 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
2006-10-23 17:25:52 +00:00
John (J5) Palmieri
fe1f793a4f * bus/dir-watch-default.c, bus/dir-watch-dnotify.c,
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
2006-10-19 19:43:05 +00:00
John (J5) Palmieri
eb357c5ff9 * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
when starting the system bus
2006-10-19 15:34:47 +00:00
Havoc Pennington
a2129f7ccc 2006-10-01 Havoc Pennington <hp@redhat.com>
* 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-10-01 15:36:19 +00:00
Havoc Pennington
d8155bf51b 2006-09-30 Havoc Pennington <hp@redhat.com>
* 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-10-01 03:18:47 +00:00
Havoc Pennington
08079a5bde 2006-09-16 Havoc Pennington <hp@redhat.com>
* 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.
2006-09-16 15:34:34 +00:00
John (J5) Palmieri
15c6023885 * remove a bunch of todo items from the 1.0 list 2006-09-11 17:41:21 +00:00
John (J5) Palmieri
9cfb902807 * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
key not found
2006-09-11 15:24:10 +00:00
John (J5) Palmieri
f61a63cefb * bus/test-main.c (main): Initialize threading during tests
* 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.
2006-09-08 17:21:37 +00:00
John (J5) Palmieri
d3ae852746 * Clean up close calls to use _dbus_close (Patch from
Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
2006-09-07 18:24:11 +00:00
John (J5) Palmieri
61316dd897 * bus/driver.c:
(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
2006-09-06 21:16:12 +00:00
John (J5) Palmieri
88f69757b9 * doc/TODO, various source files: Audited todo's and FIXME's and
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
2006-09-06 00:14:06 +00:00
John (J5) Palmieri
4af7b0cfd2 * configure.ac, bus/Makefile.am: Generalize kqueue support so that
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>)
2006-08-25 19:18:52 +00:00
John (J5) Palmieri
79b1e99664 * Released 0.92
* 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
2006-08-18 20:24:56 +00:00
John (J5) Palmieri
7cd5291944 Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de)
* 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)
2006-08-18 15:46:59 +00:00
John (J5) Palmieri
c1091cbbd2 Patches by Kjartan Maraas <kmaraas at gnome dot org>
* 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
2006-08-14 19:11:35 +00:00
John (J5) Palmieri
1eba6a2bf0 * configure.in: make sure the compiler supports -Wfloat-equal
* bus/dir-watch-dnotify.c: move functional code after
  variable declerations (C99 fix)  (patches from Jens Granseuer
  <jensgr at gmx dot net>
2006-08-10 21:00:30 +00:00
John (J5) Palmieri
2974c82428 * dbus/dbus-sysdeps.c:
* 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>)
2006-08-10 20:09:43 +00:00
John (J5) Palmieri
10b79991cc * missing semicolon 2006-08-08 23:30:39 +00:00
John (J5) Palmieri
9a3145b9f3 These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
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
2006-08-08 23:29:03 +00:00
John (J5) Palmieri
d387411488 * dbus/dbus-sysdeps.h:
* 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>)
2006-08-08 22:08:39 +00:00
John (J5) Palmieri
aaa432b064 * configure.in:
* 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)
2006-08-08 21:30:31 +00:00
John (J5) Palmieri
d33564292f * bus/Makefile.am (install-data-hook): removed the slash after
$(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>
2006-08-08 21:15:56 +00:00
John (J5) Palmieri
7652304bff * s/D-BUS/D-Bus/g 2006-08-03 20:34:36 +00:00
John (J5) Palmieri
7628b54125 * bus/activation.[ch] (bus_activation_list_services): new function to
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
2006-07-14 01:17:59 +00:00
John (J5) Palmieri
d062db4c27 * bus/bus.c: Fix eavesdropping on method calls 2006-06-07 20:07:34 +00:00
Sjoerd Simons
caf220015b * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
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-03-06 19:06:45 +00:00
Havoc Pennington
f46701b47a 2006-02-26 Havoc Pennington <hp@redhat.com>
* 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-26 08:11:03 +00:00
John (J5) Palmieri
34bb5b690b 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
* 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>
2006-02-10 21:44:15 +00:00
John (J5) Palmieri
9825929920 * bus/desktop-file.c (parse_key_value): Ignore locales allowing
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>)
2005-11-30 20:14:30 +00:00
John (J5) Palmieri
1a163e765c * configure.in: Add test/name-test/Makefile to the generated
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
2005-11-22 20:37:00 +00:00
Robert McQueen
b5e4d26ade 2005-11-15 Robert McQueen <robot101@debian.org>
* bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
	method to org.freedesktop.DBus to release a bus name or give up
	waiting in the queue for it.

	* dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
	dbus_bus_release_name method to send the ReleaseName method calls.
	Add constants for the return values to dbus/dbus-shared.h.

	* doc/dbus-specification.xml: Document the new ReleaseName method
	in the specification.

	* python/dbus_bindings.pyx: Add a low-level python binding for the
	release name method.

	* python/exceptions.py, python/service.py: Make freeing BusName
	objects release the name. Add a NameExistsException, and fix a
	bug with creating UnknownMethodException.

	* test/python/test-client.py: Add tests for freeing BusName
	objects causing names to be released.
2005-11-15 17:19:19 +00:00
David Zeuthen
5e948ff7cd 2005-11-14 David Zeuthen <davidz@redhat.com>
Patch from Timo Hoenig <thoenig@suse.de>.

        * bus/bus.c: I've recently investigated why the automatic reload
        of configuration files does not work as expected.

        Currently, reloading configuration files does only work when
        running dbus-daemon with --nodaemon.  If we are running as daemon
        we're hitting a dnotify bug once we fork the process.

        We're initializing the dnotify fds before calling fork().  Once
        the child process forked it does still have the fds (and they
        still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
        getting SIGIO as changes are made to the configuration files.

        The attached patch moves the initialization of the dnotify fds to
        process_config_postinit().  This is safe for all current code
        paths and solves the dnotify disfunction.  If we're running
        dbus-daemon as daemon the fds for dnotify are now being
        initialized after fork() for the child process.

        * configure.in: The current configure.in check for dnotify probes
        'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
        match for 'xlinux', too. Additionally I have adapted the configure
        option's style to match with the others.
2005-11-14 20:51:25 +00:00
John (J5) Palmieri
45ef0fbc4f * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an
empty reply so blocking calls don't block forever (Patch from Sjoerd
  Simons <sjoerd at luon.net>)

* AUTHORS: Add Robert McQueen for his work on the Python
  Bindings and other parts of D-Bus
2005-11-07 21:57:13 +00:00
John (J5) Palmieri
66e1cb9e68 * bus/driver.c (bus_driver_handle_introspect): Add signals
to the introspect data. (patch from Daniel P. Berrange
  <dan at berrange.com>)

* bus/dispatch.c (check_existent_ping): Add testcase for Ping

* dbus/dbus-connection.c (_dbus_connection_peer_filter,
  _dbus_connection_run_builtin_filters): Changed these to
  be unlock_no_update functions and call
  _dbus_connection_send_unlocked_no_update instead of
  dbus_connection_send to avoid locking errors.

* doc/TODO: Removed the make Ping test TODO
2005-10-03 19:55:56 +00:00
Mark McLoughlin
5e8110d79a 2005-09-11 Mark McLoughlin <mark@skynet.ie>
* test/data/auth/fallback.auth-script: we don't
	retry the EXTERNAL method when we know its going
	to fail anymore.

2005-09-11  Mark McLoughlin  <mark@skynet.ie>

	* dbus/dbus-connection-internal.h: rename
	(add|remove|toggle)_(watch|timeout) to unlocked()

	* dbus/dbus-connection.c: ditto.

	* dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
	Update some callers for the renaming.

2005-09-10  Mark McLoughlin  <mark@skynet.ie>

	* dbus/dbus-auth.c: (record_mechanisms): don't
	retry the first auth mechanism because we know
	we're just going to get rejected again.

	* dbus/dbus-keyring.c: (_dbus_keyring_reload):
	Fix thinko ... and what a nasty little bugger to
	track down you were ...

	* dbus/dbus-connection.c:
	(_dbus_connection_add_watch),
	(_dbus_connection_remove_watch): add note about
	these needing the connection to be locked.
	(_dbus_connection_get_dispatch_status_unlocked):
	set status to DATA_REMAINS when we queue the
	disconnected message.

	* bus/dispatch.c:
	(bus_dispatch): fix warning.
	(check_existent_service_no_auto_start):
	Expect ChildSignaled error too.
	(check_existent_hello_from_self): fix another
	couple of warnings.
2005-09-11 10:02:47 +00:00
John (J5) Palmieri
bc564a69c2 * Released 0.50
* Patch from Steve Grubb:
- bus/activation.c (bus_activation_service_reload_test): clean up
some indentation
- dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional
- dbus/dbus-message-factory.c (generate_special): fix a couple of
buffer overflows in the test suite.  This is non critical because
it can not be exploited and this code is only run when doing a
make check.

* Patch from Yaakov Selkowitz: Build fixes for Cygwin
- configure.in: Don't check and link against kdecore, only qt headers
- dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
- gcj/org/freedesktop/dbus/Makefile.am:
add libdbus_gcj_1_la_LDFLAGS = -no-undefined
- glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
- qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
- tools/Makefile.am: Add platform extentions to binaries
(i.e. .exe on windows)

* configure.in:
- Make it so if no suitable version of python is found we only
disable building python instead of exiting the configure script
- Require version 2.4 of glib for glib bindings
- Up version to 0.50

* python/__init__.py: Sync version with libdbus to (0,50,0)
2005-09-06 22:38:54 +00:00