1. 09 Nov, 2006 1 commit
  2. 08 Nov, 2006 1 commit
  3. 07 Nov, 2006 1 commit
    • Havoc Pennington's avatar
      2006-11-07 Havoc Pennington <hp@redhat.com> · 151b3aaa
      Havoc Pennington authored
      	* doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
      	documentation updates. Bump faq/spec versions (not to 1.0; I don't
      	think the spec will be "finished"/1.0 when we ship the 1.0 library).
  4. 30 Oct, 2006 1 commit
  5. 27 Oct, 2006 1 commit
    • Havoc Pennington's avatar
      2006-10-26 Havoc Pennington <hp@redhat.com> · fbfec98d
      Havoc Pennington authored
      	* dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
      	to be recursive
      	(_dbus_pthread_mutex_unlock): make it recursive
      	(_dbus_pthread_condvar_wait): save/restore the recursion count
      	(_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
  6. 26 Oct, 2006 1 commit
  7. 20 Oct, 2006 2 commits
    • Havoc Pennington's avatar
      more todo items · 04964f95
      Havoc Pennington authored
    • Havoc Pennington's avatar
      2006-10-20 Havoc Pennington <hp@redhat.com> · ebb23964
      Havoc Pennington authored
      	* doc/TODO: remove the int64 thing from 1.0 since it doesn't
      	matter, and the message-loader-breaker thing since nobody is going
      	to do it.  Add an item to 1.0 about supporting recursive locks
      	in dbus_threads_init_default() though, since it should be easy.
      	* dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
      	Fix this in the !dispatch case to avoid busy-looping after
              * More misc docs improvements
  8. 14 Oct, 2006 1 commit
  9. 01 Oct, 2006 1 commit
    • Havoc Pennington's avatar
      2006-10-01 Havoc Pennington <hp@redhat.com> · a2129f7c
      Havoc Pennington authored
      	* 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, 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()
      	* 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
  10. 14 Sep, 2006 1 commit
  11. 06 Sep, 2006 3 commits
    • John Palmieri's avatar
      * doc/TODO: · 1eae1844
      John Palmieri authored
      - Remove pending call locking todo item
      - dbus_connection_open now holds hard ref.  Remove todo item
      - do proper locking on _dbus_bus_check_connection_and_unref
        and handle DBUS_BUS_STARTER. Remove todo item
      - Warn on closing of a shared connection.  Remove todo item
      * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
        dbus/dbus-connection.c: Use the dbus_connection_close_internal
        so we don't get the warning when closing shared connections
      * test/test-service.c, test/test-shell-service.c: Applications
        don't close shared connections themselves so we unref instead of
      * test/test-utils.c (test_connection_shutdown): Close the connection
      * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
        _dbus_bus_check_connection_and_unref_unlocked since we only call this
        method on a locked connection.
        Make sure we call _dbus_connection_unref_unlocked instead of
        dbus_connection_unref also.
        Handle DBUS_BUS_STARTER correctly
      * dbus/dbus-connection.c (connection_record_shared_unlocked):
        Mark as shared and hard ref the connection
        (connection_forget_shared_unlocked): Remove the hard ref from the
        (_dbus_connection_close_internal_and_unlock):  New internal function
        which takes a locked connection and unlocks it after closing it
        (_dbus_connection_close_internal): New internal function which acts
        like the origonal dbus_connection_close method by grabbing a connection
        lock and calling _dbus_connection_close_internal_and_unlock
        (dbus_connection_close): Public close method, warns when the app
        trys to close a shared connection
    • John Palmieri's avatar
      * doc/TODO: Removed dtd publishing item. · e4f3d0ca
      John Palmieri authored
        It seems the dtd has already been added at
    • John Palmieri's avatar
      * doc/TODO, various source files: Audited todo's and FIXME's and · 88f69757
      John Palmieri authored
        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
  12. 24 Aug, 2006 1 commit
  13. 21 Jul, 2006 1 commit
  14. 17 Jul, 2006 1 commit
    • John Palmieri's avatar
      * doc/TODO: · b459906a
      John Palmieri authored
      * dbus/dbus-bus.c:
      * dbus-errors.c:
      * dbus/dbus-marshal-validate.c:
        Removed TODO items which were fixed or are no longer relevent
  15. 07 Jul, 2006 1 commit
    • John Palmieri's avatar
      * dbus/dbus-connection.c (dbus_connection_close): removed deprecated · 50f88a03
      John Palmieri authored
        (dbus_connection_dispatch): On disconnect unref any shared connections
      * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
        for cleaning up shared connections on disconnect
        (internal_bus_get): get a hard refrence to shared connections when
        they are created
      * doc/TODO: Remove items which are no longer relevent or have been fixed
        Split 1.0 todo items with a 0.90 freeze todo list
  16. 14 Jun, 2006 1 commit
  17. 06 Jun, 2006 1 commit
  18. 15 Feb, 2006 1 commit
  19. 22 Nov, 2005 1 commit
    • John Palmieri's avatar
      * configure.in: Add test/name-test/Makefile to the generated · 1a163e76
      John Palmieri authored
      	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
      	(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/signals.c (connection_is_primary_owner):
      	use bus_service_get_primary_owners_connection instead of
      	* 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_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,
      	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
  20. 03 Oct, 2005 1 commit
    • John Palmieri's avatar
      * bus/driver.c (bus_driver_handle_introspect): Add signals · 66e1cb9e
      John Palmieri authored
        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
  21. 25 Aug, 2005 1 commit
  22. 01 Aug, 2005 1 commit
  23. 31 Jul, 2005 1 commit
  24. 30 Jul, 2005 1 commit
  25. 29 Jul, 2005 2 commits
    • Havoc Pennington's avatar
      remove that todo item · c8a5cff5
      Havoc Pennington authored
    • Havoc Pennington's avatar
      2005-07-29 Havoc Pennington <hp@redhat.com> · 51a4261d
      Havoc Pennington authored
      	* bus/signals.c (bus_signals_test): add match_rule_equal() tests
      	(match_rule_matches): remove unused arg
      	(test_matching): add tests for match_rule_matches()
      	* bus/signals.c (bus_match_rule_parse_arg_match): add ability to
      	do arg0='foo' arg5='bar' in the match rules
      	(match_rule_matches): don't match if the arg0='foo' doesn't match.
      	* dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
  26. 15 Jul, 2005 2 commits
  27. 12 Jul, 2005 1 commit
    • John Palmieri's avatar
      * python/dbus_bindings.pyx.in: removed · d06bfe52
      John Palmieri authored
      * python/dbus_bindings.pyx: Added.
      	- Fixed some memleaks (patch from
      	  Sean Meiners <sean.meiners@linspireinc.com>)
      	- Broke out the #include "dbus_h_wrapper.h" and put it in its
      	  own pxd file (Pyrex definition)
      	- Broke out glib dependancies into its own pyx module
      * python/dbus_bindings.pdx: Added.
      	- Defines C class Connection for exporting to other modules
      * python/dbus_glib_bindings.pyx: Added.
      	- New module to handle lowlevel dbus-glib mainloop integration
      * python/glib.py: Added.
      	- Registers the glib mainloop when you import this module
      * python/services.py: Removed (renamed to service.py)
      * python/service.py: Added.
      	- (class Server): renamed Name
      * python/__init__.py: Bump ro version (0,41,0)
      	- don't import the decorators or service module
         	  by default.  These now reside in the dbus.service namespace
      * python/_dbus.py (Bus::__init__): Add code run the main loop
        setup function on creation
      * python/examples/example-service.py,
        python/examples/example-signal-emitter.py: update examples
      * python/examples/gconf-proxy-service.py,
        python/examples/gconf-proxy-service2.py: TODO fix these up
      * doc/TODO: Addition
      	- Added a Python Bindings 1.0 section
      	- added "Add match on args or match on details to match rules"
  28. 10 Jul, 2005 1 commit
    • Colin Walters's avatar
      2005-07-10 Colin Walters <walters@verbum.org> · 8c095eea
      Colin Walters authored
      	* doc/TODO: Knock off some GLib items with this patch.
      	* glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error)
      	(_dbus_gvalue_signals_error): New functions.
      	* glib/dbus-gvalue-utils.h: Prototype them.
      	* glib/dbus-gobject.c (arg_iterate): Update to handle return vals
      	and change to not output const/retval flags for input args.  All
      	callers updated.
      	(invoke_object_method): Refactor to handle return values.  Add
      	some more comments in various places.  Remove debug g_print.
      	* glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
      	* glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
      	Handle G_TYPE_NONE.
      	(compute_gsignature): New function; refactored from code from
      	compute_marshaller and compute_marshaller_name.  Enhance to
      	handle return values and async ops more cleanly.  Update for
      	async ops returning NONE instead of BOOLEAN.
      	(compute_marshaller, compute_marshaller_name): Call compute_gsignature
      	and output appropriate string.
      	(generate_glue): Handle return value annotation.  Also don't dump
      	constness flag for input arguments.
      	* glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
      	files shared between installed library and utilities.
      	(libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
      	(libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
      	binding tool can access gtype utility functions.
      	* test/glib/test-service-glib.c:
      	* test/glib/test-service-glib.xml:
      	* test/glib/test-dbus-glib.c: Add some tests for return values.
  29. 08 Jul, 2005 1 commit
  30. 26 Jun, 2005 1 commit
    • Colin Walters's avatar
      2005-06-26 Colin Walters <walters@verbum.org> · df901b52
      Colin Walters authored
      	* glib/dbus-glib.c (dbus_set_g_error): Delete.
      	(dbus_g_error_set): New public function from its ashes; used by
      	both service-side method implementation and GLib bindings
      	(dbus_g_error_has_name, dbus_g_error_get_name): New function.
      	(_dbus_glib_test): Add some tests.
      	* test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
      	* test/glib/test-service-glib.c (my_object_throw_error): Use
      	* glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
      	errors thrown by dbus_g_error_set.
      	* glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
      	* glib/dbus-gparser.c (validate_signature): Ditto.
      	* glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner)
      	(dbus_g_proxy_end_call_internal): Ditto.
      	* glib/Makefile.am: Generate dbus-glib-error-switch.h, which
      	converts DBUS_ERROR_x to DBUS_GERROR_x.
      	(libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
      	* doc/TODO: Remove error TODO.
      	* doc/dbus-tutorial.xml: Update with documentation about error
      	* dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
      	sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
  31. 17 Jun, 2005 1 commit
    • Colin Walters's avatar
      2005-06-17 Colin Walters <walters@verbum.org> · 949436ff
      Colin Walters authored
      	* glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
      	spew warnings if we get malformed remote signals.
      	* glib/dbus-gobject.c (propsig_iterate): New function.
      	(lookup_object_info): New function, extracted from
      	(introspect_properties, introspect_signals): Delete; these
      	are merged into write_interface.
      	(write_interface): Write out signals and properties here;
      	dump the org.gtk.object stuff and use the interface given
      	in the introspection data blob.  Also fix up property XML.
      	(lookup_values): New function.
      	(introspect_interfaces): Gather a mapping from interface to a
      	list of its methods, signals, and properties, then write out
      	each interface.
      	(lookup_object_and_method): Use lookup_object_info.
      	(struct DBusGSignalClosure): Add interface.
      	(dbus_g_signal_closure_new): Add interface. Don't dup signame;
      	we can just use the constant data.
      	(dbus_g_signal_closure_finalize): Don't free signal name.
      	(signal_emitter_marshaller): Use interface from signal closure.
      	(export_signals): Only export signals mentioned in introspection
      	(dbus_g_connection_register_g_object): Warn if we have no
      	introspection data for an object.
      	(funcsig_equal): Remove unused variable.
      	(dbus_g_object_register_marshaller): Take varargs instead of
      	(dbus_g_object_register_marshaller_array): New function,
      	extracted from old dbus_g_object_register_marshaller.
      	* glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
      	signals and property data.
      	(write_quoted_string): New function, extracted from generate_glue.
      	(generate_glue): Write signals and properties to introspection
      	* dbus/dbus-glib.h (struct DBusGObjectInfo): Include
      	exported_signals and exported_properties.
      	(dbus_g_object_register_marshaller): Update prototype.
      	(dbus_g_object_register_marshaller_array): Prototype.
      	* test/glib/test-dbus-glib.c: Extend testing to cover new signals.
      	* test/glib/test-service-glib.c: Add new test signals and method
      	to emit them.
      	* test/glib/test-service-glib.xml: Add some test signals.
      	* test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
      	and my-object-marshal.h
      	(test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
      	(my-object-marshal.c, my-object-marshal.h): Implement.
      	* test/glib/.cvsignore: Update.
      	* doc/TODO: Remove two GLib TODO items fixed by this
  32. 16 Jun, 2005 1 commit
  33. 15 Jun, 2005 3 commits
    • John Palmieri's avatar
      * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method · 6043a0be
      John Palmieri authored
              (_dbus_connection_run_builtin_filters): New method
              (dbus_connection_dispatch): Run the builtin filters which in turn
              runs the peer filter which handles Ping messages.
              * doc/TODO:
               - Ping isn't handled: This patch fixes it
               - Add a test case for the Ping message: added TODO item
    • John Palmieri's avatar
      * dbus/dbus-message.c: · a93f9c04
      John Palmieri authored
              (dbus_message_has_path): New method
              (dbus_message_has_interface): New method
              (dbus_message_has_member): New method
              * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
              New method
              * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that
              the keyring directory is private to the user
              * doc/TODO:
               - The convenience functions in dbus-bus.h should perhaps have
               the signatures that they would have if they were autogenerated
               stubs. e.g. the acquire service function. We should also evaluate
               which of these functions to include, in light of the fact that
               GLib/Qt native stubs will probably also exist.: Punted
               - add dbus_message_has_path(), maybe has_member/interface:
               fixed in this patch
               - in dbus-keyring.c, enforce that the keyring dir is not
               world readable/writable: Fixed in this patch
    • John Palmieri's avatar
      * dbus/dbus-marshal-validate.h: Added a new validation · 5e389fdf
      John Palmieri authored
              error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for
              out of memory errors when validating signitures
              * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
              in places where we previously used DBUS_VALID and a FALSE return
              value to indicate OOM
              * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
              Use a stack to track the number of elements inside containers.  The
              stack values are then used to validate that dict entries have only two
              elements within them.
              (validate_body_helper): check the reason for failure when validating
              * dbus/dbus-message.c (load_message): use
              DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used
              DBUS_VALID and a FALSE return value to indicate OOM
              * doc/TODO: remove "- validate dict entry number of fields" as this
              patch fixes it