| Commit message (Collapse) | Author | Age | Files | Lines | 
| | 
| 
| 
| 
| 
| 
|  | 
* dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
	this unref; it doesn't match up evenly in some codepaths.
	(_dbus_connection_block_pending_call): Unref at every exitpoint;
	this evenly matches with the ref near the top of this function.
 | 
| | 
| 
| 
| 
| 
| 
|  | 
* dbus/dbus-object-tree.c
	(_dbus_object_tree_unregister_and_unlock): If checks are enabled
	and we try to unregister a path that's not registered, still go
	through the process of unlocking and don't just return.
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
	to this are generated for client-side wrappers.  Invokes a
	D-BUS method and returns reply values.
	* glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
	function; writes signature string for argument direction.
	(write_args_for_direction): Change to pass input values directly
	instead of via address, and fix indentation.
	(generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
	make generated wrappers inlineable.
	* dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
	note about using dbus_type_is_fixed.
	* dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
	dbus/dbus-signature.c as dbus_type_is_fixed.
	All callers updated.
	* dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
	from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
	* dbus/dbus-signature.h: Prototype.
	* glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
	error printf code.
	* test/glib/test-dbus-glib.c (main): Be sure to clear error as
	appropriate instead of just freeing it.
	(main): Free returned strings using g_free.
	* test/glib/Makefile.am (test-service-glib-glue.h)
	(test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
	* glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
	simply maps a simple D-BUS type to GType.
	(dbus_dbus_type_to_gtype): Function which maps D-BUS type to
	GType.
	(dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
	initialize the value with it.
	(dbus_gvalue_binding_type_from_type): Unused, delete.
	(dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
	various types instead of unmarshalling to value data directly.
	Remove can_convert boolean.
	(dbus_gvalue_marshal): Remove duplicate initialization; switch to
	returning directly instead of using can_convert boolean.
	(dbus_gvalue_store): New function; not related to D-BUS per-se.
	Stores a GValue in a pointer to a value of its corresponding C
	type.
	* glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
	add dbus_gvalue_store.
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* dbus/dbus-connection.c (dbus_connection_send_with_reply):
        After we attach our pending call to the connection, unref
        it.  Fixes a leak.
        * mono/Connection.cs (set_RawConnection): Disconnect our
        filter and match callbacks from the old connection and
        reconnect them to the new connection, if any.
	* mono/DBusType/Array.cs: "Code" is a static member, so
	don't use "this" to refer to it.  Fix for stricter checking
	in Mono 1.1.4.
        * mono/DBusType/ObjectPath.cs (Append): Don't leak the
	object path that we pass into unmanaged code.
        * mono/DBusType/String.cs (Append): Don't leak the string
	that we pass into unmanged code.
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* configure.in: Release 0.31
  add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
* qt/Makefile.am: fixed build
* dbus/Makefile.am: soname bump for libdbus
* glib/Makefile.am: soname bump for libdbus-glib
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* dbus/dbus-sysdeps.c:
	(pseudorandom_generate_random_bytes_buffer): fix to have no return
	value
	(_dbus_generate_random_bytes_buffer): fix return value
	* dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
	checks actually work, from Tom Parker <fdo@tevp.net>
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* doc/TODO: remove the "guid" item
	* test/glib/test-profile.c (no_bus_thread_func): use open_private
	(with_bus_thread_func): use open_private
	* dbus/dbus-connection.c (dbus_connection_open_private): new
	function that works like the old dbus_connection_open()
	(dbus_connection_open): now returns an existing connection if
	possible
	* dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
	through the GUID to the transport
	* dbus/dbus-server.c (_dbus_server_init_base): keep around the
	GUID in hex-encoded form.
	* dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
	pass GUID argument in to the transport
	* dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
	guid argument
	* dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
	* dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* doc/dbus-specification.xml: document the GUID thing
	* dbus/dbus-server.c (_dbus_server_init_base): initialize a
	globally unique ID for the server, and put a "guid=hexencoded"
	field in the address
	* dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
	* dbus/dbus-message.c: ditto
	* dbus/dbus-dataslot.c: ditto
	* dbus/dbus-list.c: ditto
	* dbus/dbus-internals.h: wait, just include
	dbus-threads-internal.h here
	* dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
	use in main library
	* dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
 | 
| |  | 
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
	you must disconnect before unref, since locking and other things
	are screwed up otherwise. Fix assorted other locking stuff.
	* dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
	fix compilation
	* dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
	into a private header and don't export from the library
	* throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* dbus/dbus-signature.c: New file; implements various functions
	related to type signatures.  Includes an interator for parsing,
	validation functions.
	(dbus_type_is_basic): Moved here from
	dbus-marshal-basic.c:_dbus_type_is_basic.
	(dbus_type_is_container): Moved here from
	dbus-marshal-basic.c:_dbus_type_is_container.
	All callers of _dbus_type_is_container and _dbus_type_is_basic
	updated, and include dbus-signature.h.
	* dbus/dbus-signature.h: New file; prototypes for the above.
	* dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
	dbus-signature.h.
	* dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
	function factored out of _dbus_first_type_in_signature.
	(_dbus_first_type_in_signature_c_str): New function; returns first
	type code for a type signature character.
	* dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
	handle function moves.
	* dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
	* dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
	function; skips to next complete type in type signature.
	Implemented using previous skip_one_complete_type.  Now
	skip_one_complete_type just delegates to
	_dbus_type_signature_next.
	* dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
	to dbus-signature.c
	(_dbus_type_is_container): Ditto.
	* doc/dbus-specification.xml: Update introspection sample to
	use real type signatures.
	* dbus/dbus-test.h: Prototype signature test.
	* dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
	signature tests.
	* dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* dbus/dbus-test-main.c (main): Take optional specific test
	argument.
	* dbus/dbus-test.c (run_test): New function, runs a test function
	with no data directory.
	(run_data_test): Like above, but takes data directory.
	(dbus_internal_do_not_use_run_tests): Take
	specific test argument.  Replace lots of cut n' paste code
	with run_test and run_data_test.
	* dbus/dbus-test.h: Update prototype for
	dbus_internal_do_not_use_run_tests.
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Fix bugs reported by Daniel P. Berrange
	* dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
	(protected_change_watch): new function
	(_dbus_server_toggle_watch, _dbus_server_remove_watch)
	(_dbus_server_add_watch): change to work like the
	dbus-connection.c equivalents; like those, probably kind of
	busted, but should at least mostly work for now
	(dbus_server_disconnect): drop the lock if we were already
	disconnected, patch from Daniel P. Berrange
	* dbus/dbus-server.c (_dbus_server_toggle_timeout)
	(_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
	same stuff
	* doc/TODO: todo about unscrewing this mess
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
	Rename to DBUS_SERVICE_DBUS.
	(DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
	(DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
	(DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
	(DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
	DBUS_INTERFACE_INTROSPECTABLE.
	(DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
	DBUS_INTERFACE_PROPERTIES.
	(DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
	DBUS_INTERFACE_PEER.
	(DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL):
	DBUS_INTERFACE_LOCAL.
	All other users of those constants have been changed.
	* bus/driver.c (bus_driver_handle_introspect): Use constants.
	* glib/dbus-gobject.c (handle_introspect): Use constants.
	* doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
This patch is based on initial work from
	Paul Kuliniewicz <kuliniew@purdue.edu>.
	* glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
	initialization of GValue from dbus type to here.
	(dbus_gvalue_genmarshal_name_from_type): New function; generates a string
	for the "glib-genmarshal" program from a DBus type.
	(dbus_gvalue_binding_type_from_type): New function; turns a DBus type
	into the C name for it we use in the glib bindings.
	(dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
	glib C type (not GValue).
	(dbus_gvalue_demarshal): invoke dbus_gvalue_init.
	* glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
	from dbus-gobject.c.
	* glib/dbus-gutils.h: Prototype it.
	* glib/dbus-gproxy.c: Include new dbus-gobject.h.
	(marshal_dbus_message_to_g_marshaller): Use new shared function
	dbus_glib_marshal_dbus_message_to_gvalue_array.
	* glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
	Will be changed once we have annotations.
	* glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
	GStaticRWLock.  Callers updated.
	(wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
	(string_table_next): New function for iterating over zero-terminated
	string value array.
	(string_table_lookup): New function; retrieves specific entry in
	array.
	(get_method_data): New function; look up method data in object data chunk.
	(object_error_domain_prefix_from_object_info)
	(object_error_code_from_object_info): New functions, but not implemented yet.
	(method_interface_from_object_info): New function; retrieve interface name.
	(method_name_from_object_info): New function; retrieve method name.
	(method_arg_info_from_object_info): New function; retrieve argument data.
	(arg_iterate): New function; iterates over serialized argument data.
	(method_dir_signature_from_object_info): New function; returns a
	GString holding type signature for arguments for just one
	direction (input or output).
	(method_input_signature_from_object_info)
	(method_output_signature_from_object_info): New functions.
	(dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
	converts dbus message arguments into a GValue array.  Used for both
	signal handling and method invocation.
	(struct DBusGlibWriteIterfaceData): New utility structure.
	(write_interface): New function; generate introspection XML for
	an interface.
	(introspect_interfaces): New function; gathers all interface->methods,
	generates introspection XML for them.
	(handle_introspect): Invoke introspect_interfaces.
	(get_object_property): Be sure to zero-initalize stack-allocated GValue.
	(lookup_object_and_method): New function; examines an incoming message
	and attempts to match it up (via interface, method name, and argument
	signature) with a known object and method.
	(gerror_domaincode_to_dbus_error_name): New function; converts a
	GError domain and code into a DBus error name.  Needs GError data
	added to object introspection to work well.
	(gerror_to_dbus_error_message): Creates a DBusMessage error return from
	GError.
	(invoke_object_method): New function to invoke an object method
	looked up via lookup_object_and_method.  Parses the incoming
	message, turns it into a GValue array, then invokes the marshaller
	specified in the DBusGMethodInfo.  Creates a new message with
	either return values or error message as appropriate.
	(gobject_message_function): Invoke lookup_object_and_method and
	invoke_object_method.
	* glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
	(enum DBusBindingOutputMode): New enum for binding output modes.
	(pretty_print): Print binding names.
	(dbus_binding_tool_error_quark): GError bits.
	(version): Fix typo.
	(main): Create GIOChannel for output.  Parse new --mode argument,
	possible values are "pretty-print", "glib-server", "glib-client".
	Use mode to invoke appropriate function.
	* glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
	* glib/dbus-glib-tool.h: New header, just includes GError bits
	for now.
	* glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
	maps binding style to name.
	(struct MethodInfo): Ditto.
	(get_hash_keys, get_hash_key): Utility function, returns keys for
	a GHashTable.
	(interface_info_new, method_info_new): Initialize bindings.
	(interface_info_unref, method_info_unref): Destroy bindings.
	(method_info_get_binding_names, method_info_get_binding_name)
	(interface_info_get_binding_names, interface_info_get_binding_name):
	Functions for retrieving binding names.
	(method_info_set_binding_name, interface_info_set_binding_name):
	Functions for setting binding names.
	* glib/dbus-binding-tool-glib.h: New file, has prototypes
	for glib binding generation.
	* glib/dbus-binding-tool-glib.c: New file, implements server-side
	and client-side glib glue generation.
	* glib/Makefile.am (dbus_binding_tool_SOURCES): Add
	dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
	dbus-glib-tool.h.
	* dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
	of using GClosureMarshal directly.
	(struct DBusGObjectInfo): Add n_infos member.
	* test/glib/test-service-glib.xml: New file; contains introspection data
	for MyTestObject used in test-service-glib.c.
	* test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
	(my_object_do_nothing, my_object_increment, my_object_throw_error)
	(my_object_uppercase, my_object_many_args): New test methods.
	(main): Use dbus_g_object_class_install_info to include generated object
	info.
	* test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
	as well as client-side bindings.
	* test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
	(main): Activate TestSuiteGLibService; test invoke a bunch of its methods
	using both the dbus_gproxy stuff directly as well as the generated bindings.
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* dbus/dbus-connection.c (dbus_connection_dispatch): always
	complete a pending call, don't run filters first.
	* glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
	dbus_pending_call_steal_reply
	* dbus/dbus-pending-call.c (dbus_pending_call_block): just call
	_dbus_connection_block_pending_call
	(dbus_pending_call_get_reply): change to steal_reply and return a
	ref
	* dbus/dbus-connection.c
	(dbus_connection_send_with_reply_and_block): port to work in terms
	of DBusPendingCall
	(_dbus_connection_block_pending_call): replace block_for_reply
	with this
 | 
| | 
| 
| 
| 
| 
|  | 
* dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
	properly handle looking up group information by name; fix
	from j@bootlab.org
 | 
| |  | 
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* dbus/dbus-connection.c (dbus_connection_return_message)
	(dbus_connection_borrow_message): hold dispatch lock while message
	is outstanding
	(_dbus_connection_block_for_reply): hold dispatch lock while we
	block for the reply, so nobody steals our reply
	(dbus_connection_pop_message): hold the dispatch lock while we
	pluck the message
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
	(_dbus_connection_release_dispatch)
	(_dbus_connection_acquire_io_path)
	(_dbus_connection_release_io_path): make the mutex and condvar
	control access to the "acquired" flag. Drop the connection lock
	while waiting on the condvar. Hopefully these are baby steps in
	roughly the right direction.
 | 
| | 
| 
| 
| 
| 
|  | 
* dbus/dbus-connection.c: use separate mutexes for the condition
	variables; this is some kind of baseline for sanity, but the
	condition variables still aren't used correctly afaict
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
	fix a double-unlock
	* dbus/dbus-connection.c
	(_dbus_connection_detach_pending_call_unlocked): add this
        Initial semi-correct pass through to fix thread locking; there are
	still some issues with the condition variable paths I'm pretty
	sure
	* dbus/dbus-server.c: add a mutex on DBusServer and appropriate
	lock/unlock calls
	* dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
	rename to add _unlocked
	(struct DBusConnection): move "dispatch_acquired" and
	"io_path_acquired" to use only one bit each.
	(CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
	(dbus_connection_set_watch_functions): hacky fix to reentrancy
	(_dbus_connection_add_watch, _dbus_connection_remove_watch)
	(_dbus_connection_toggle_watch, _dbus_connection_add_timeout)
	(_dbus_connection_remove_timeout)
	(_dbus_connection_toggle_timeout): drop lock when calling out to
	user functions; done in a hacky/bad way.
	(_dbus_connection_send_and_unlock): add a missing unlock
	(_dbus_connection_block_for_reply): add a missing unlock
	* dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
	drop lock in a hacky probably unsafe way to call out to user
	function
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
	(call dbus_g_proxy_add_signal)
	* dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
	escape the hostname
	(_dbus_server_new_for_domain_socket): escape the path
	* dbus/dbus-address.c (dbus_address_escape_value): new
	(dbus_address_unescape_value): new
	(dbus_parse_address): unescape values
	* dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
	* doc/dbus-specification.xml: explain how to escape values in
	addresses
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* dbus/dbus-message-factory.c (generate_special): modify test to
	avoid using a non-basic dict key
	* dbus/dbus-marshal-validate-util.c: add test for the below
	* doc/dbus-specification.xml: require that dict keys are a basic
	type
	* dbus/dbus-marshal-validate.c
	(_dbus_validate_signature_with_reason): require that dict key is a
	basic type
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
* dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
	change to be _and_unlock instead of _unlocked
	* dbus/dbus-connection.c
	(_dbus_connection_send_preallocated_unlocked_no_update): rename to
	have no_update so we can find this bug quickly in future
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
* dbus/dbus-message-util.c (verify_test_message): tests for string
	array
	* dbus/dbus-message.c (dbus_message_append_args_valist): add
	support for arrays of string/signature/path
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* dbus/dbus-connection.c
	(_dbus_connection_queue_received_message_link,
	_dbus_connection_message_sent): Add the path to
	the verbose output.
	(_dbus_connection_send_preallocated_and_unlock): Added.  Calls
	_dbus_connection_send_preallocated_unlocked(), updated the
	dispatch status, and unlocks.  Fixes a bug where certain
	situations (like a broken pipe) could cause a Disconnect message
	to not be sent, tricking the bus into thinking a service was still
	there when the process had quit.
	(_dbus_connection_send_preallocated): Call
	_dbus_connection_send_preallocated_and_unlock().
	(_dbus_connection_send_and_unlock): Added.  Calls
	_dbus_connection_send_preallocated_and_unlock().
	(dbus_connection_send): Call _dbus_connection_send_and_unlock().
	(dbus_connection_send_with_reply): Update the dispatch status and
	unlock.
	* mono/Service.cs (~Service): Added.  Removes the filter so that
	we don't get unmanaged code calling back into a GCed delegate.
	(RemoveFilter); Added.
 | 
| | 
| 
| 
| 
| 
|  | 
- Removed check for iterator type being an array because
	get_arg_type does not work with writer iterators
	- Pass NULL to _dbus_type_writer_recurse if signiture is NULL
 | 
| | 
| 
| 
| 
| 
| 
|  | 
* doc/dbus-specification.xml: some more language cleanups; add
	stuff about how to deal with invalid protocol and extension
	points; add _ to allowed chars in auth commands; add EXTENSION_
	auth command prefix
 | 
| | 
| 
| 
| 
| 
| 
|  | 
* dbus/dbus-message-factory.c (generate_special): more tests
	* dbus/dbus-marshal-validate.c (validate_body_helper): detect
	array length that exceeds the maximum
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* dbus/dbus-message-factory.c (generate_special): more test cases,
	increasing coverage
	* dbus/dbus-marshal-validate.c (validate_body_helper): return the
	reason why a signature was invalid
	* dbus/dbus-marshal-header.c (load_and_validate_field): fix to
	skip the length of the string before we look at it in validation
	* dbus/dbus-string-util.c (_dbus_string_test): add tests for
	equal_substring
	* dbus/dbus-message.c (_dbus_message_loader_new): default
	max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
	if the signature of a variant was empty
	(_dbus_validate_signature_with_reason): catch "(a)" (array inside
	struct with no element type)
	* dbus/dbus-message-factory.c (generate_uint32_changed): add more
	mangled messages to break things
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* tools/dbus-names-model.c: dynamically watch NameOwnerChanged
	* autogen.sh: change to autotools 1.9
	* glib/dbus-gproxy.c: completely change how signals work
	(dbus_g_proxy_add_signal): new function to specify signature of a
	signal
	(dbus_g_proxy_emit_received): marshal the dbus message to GValues,
	and g_warning if the incoming message has the wrong signature.
 | 
| | 
| 
| 
| 
| 
| 
|  | 
* tools/dbus-names-model.c (have_names_notify): fix this
	* dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
	up the string array handling a bit
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
	(dbus_g_pending_call_cancel): new function
	* dbus/dbus-glib.h: move GType decls for connection/message here;
	* dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
	here, just kind of rationalizing how we handle all that
	* tools/dbus-names-model.c: new file for a tree model listing the
	services on a bus
	* tools/dbus-tree-view.c (model_new): use proper typing on the
	model rows
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* glib/dbus-gmain.c: add a custom GSource back that just checks
	whether the message queue has anything in it; otherwise, there are
	cases where we won't see messages in the queue since there was no
	IO visible to the glib main loop
	* dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
	increase default message timeout to 25 seconds
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* glib/dbus-gobject.c (introspect_properties): fix the XML
	generated
	* dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
	which effectively detects the use of freed messages
	* glib/dbus-gobject.c (handle_introspect): modify and return the
	reply message instead of the incoming message
	* dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
	gee, maybe it should SEND THE XML instead of just making a string
	and freeing it again ;-)
	* tools/dbus-print-message.c (print_message): improve printing of
	messages
	* configure.in: add debug-glib.service to the output
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
dbus-viewer introspected and displayed the bus driver
	* dbus/dbus-object-tree.c
	(object_tree_test_iteration): add tests for a handler registered on "/"
	* dbus/dbus-object-tree.c
	(_dbus_decompose_path): fix to handle path "/" properly
	(run_decompose_tests): add tests for path decomposition
	* glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
	properly
	* glib/dbus-gobject.c (handle_introspect): fix quotes
	* test/glib/run-test.sh: support launching the bus, then running
	dbus-viewer
	* test/glib/test-service-glib.c (main): put in a trivial gobject
	subclass and register it on the connection
	* bus/driver.c (bus_driver_handle_introspect): implement
	introspection of the bus driver service
	* dbus/dbus-protocol.h: add #defines for the XML namespace,
	identifiers, doctype decl
	* bus/driver.c (bus_driver_handle_get_service_owner): handle
	attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by
	returning the service unchanged.
	(bus_driver_handle_message): remove old check for reply_serial in
	method calls, now the message type deals with that
	(bus_driver_handle_message): handle NULL interface
	* glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
	* glib/dbus-gloader-expat.c (description_load_from_string): allow
	-1 for len
	* tools/dbus-viewer.c: add support for introspecting a service on
	a bus
	* glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
	(dbus_g_pending_call_unref): add
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
	though it uses glib, it could be extended for any binding in
	principle
	* glib/dbus-gobject.c (gobject_message_function): change to the
	new way properties work
	* dbus/dbus-protocol.h: add the new interfaces
	* doc/dbus-specification.xml: document the introspection format,
	Introspectable interface, and add an org.freedesktop.Properties
	interface.
	* glib/dbus-gparser.c: add support for a <property> element
	* glib/dbus-gidl.c: add PropertyInfo
	* glib/dbus-gobject.c (handle_introspect): put the outermost
	<node> outside the signal and property descriptions.
	(introspect_properties): export properties as <property> rather
	than as method calls
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* doc/dbus-specification.xml: update to describe 16-bit types and
	dict entries
	* dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
	assertion
	* dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
	type
	* dbus/dbus-marshal-recursive.c: implement
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* dbus/dbus-arch-deps.h.in: add 16/32-bit types
	* configure.in: find the right type for 16 and 32 bit ints as well
	as 64
	* dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
	the 16-bit types so people don't have to stuff them in 32-bit or
	byte arrays.
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* dbus/dbus-message.c: byteswap the message if you init an
	iterator to read/write from it
	* dbus/dbus-marshal-byteswap.c: new file implementing
	_dbus_marshal_byteswap()
	* dbus/dbus-marshal-basic.c: add _dbus_swap_array()
 | 
| | 
| 
| 
| 
|  | 
* dbus/dbus-marshal-validate-util.c: break this out (and fix
	build, apparently - nobody noticed?)
 | 
| | 
| 
| 
|  | 
* dbus/dbus-marshal-recursive.h: remove todo comment
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
	signature for the method that can't be found.
	* dbus/dbus-message.c (dbus_message_iter_init): To check to see if
	the message has any arguments, we need to call
	_dbus_type_reader_get_current_type(), not
	_dbus_type_reader_has_next().
 | 
| | 
| 
| 
| 
| 
| 
|  | 
* dbus/dbus-message-factory.c: more testing of message validation
	* dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
	header
 | 
| | 
| 
| 
| 
|  | 
* dbus/dbus-message-factory.c, dbus/dbus-message-util.c:
	get this all working, not many tests in the framework yet though
 | 
| | 
| 
| 
|  | 
broken, will fix it soon
 | 
| | 
| 
| 
| 
|  | 
* doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
	tutorial, based on work from David Wheeler.
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* dbus/dbus-bus.c: add more return_if_fail checks
	* dbus/dbus-message.c (load_message): have the "no validation"
	mode (have to edit the code to toggle the mode for now though)
	* dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
	skips all validation; I want to use this at least for benchmark
	baseline, I'm not sure if it should be a publicly-available switch.
 |