| Commit message (Collapse) | Author | Age | Files | Lines | 
| |  | 
 | 
| | 
| 
| 
| 
| 
| 
|  | 
* dbus/dbus-bus.c:
* dbus-errors.c:
* dbus/dbus-marshal-validate.c:
  Removed TODO items which were fixed or are no longer relevent
 | 
| | 
| 
| 
|  | 
test/Makefile.am, test/test-names.c: allow hyphens in bus names.
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
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
        varients
        * 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
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* 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-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-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
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* 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
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* 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-message-factory.c: more testing of message validation
	* dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
	header
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* Throughout, grand renaming to strip out the use of "service",
	just say "name" instead (or "bus name" when ambiguous).  Did not
	change the internal code of the message bus itself, only the
	programmer-facing API and messages.
	* doc/dbus-specification.xml: further update the message bus section
	* bus/config-parser.c (all_are_equiv): fix bug using freed string
	in error case
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* dbus/dbus-types.h: remove 16-bit types since we don't use them
	ever
	* dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
	"invalid name character" not only non-ASCII
	* doc/dbus-specification.xml: further update spec, message bus
	parts are still out-of-date but the marshaling etc. stuff is now
	accurate-ish
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* Throughout, align variant bodies according to the contained
	type, rather than always to 8. Should save a fair bit of space in
	message headers.
	* dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
	fix handling of case where p == end
	* doc/TODO: remove the dbus_bool_t item and variant alignment items
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
* dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
	* Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
	of an 8-bit type. Now dbus_bool_t is the type to use whenever you
	are marshaling/unmarshaling a boolean.
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* Add and fix docs according to Doxygen warnings throughout
	source.
	* dbus/dbus-marshal-recursive.c
	(_dbus_type_reader_array_is_empty): change this to just call
	array_reader_get_array_len() and make it static
	* dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
	from get_array_type
	(dbus_message_iter_init_append): rename from append_iter_init
	* dbus/dbus-marshal-recursive.c
	(_dbus_type_reader_get_element_type): rename from
	_dbus_type_reader_get_array_type
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
* Land the new message args API and type system.
	This patch is huge, but the public API change is not
	really large. The set of D-BUS types has changed somewhat,
	and the arg "getters" are more geared toward language bindings;
	they don't make a copy, etc.
	There are also some known issues. See these emails for details
	on this huge patch:
	http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
        http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
	* dbus/dbus-marshal-*: all the new stuff
	* dbus/dbus-message.c: basically rewritten
	* dbus/dbus-memory.c (check_guards): with "guards" enabled, init
	freed blocks to be all non-nul bytes so using freed memory is less
	likely to work right
	* dbus/dbus-internals.c (_dbus_test_oom_handling): add
	DBUS_FAIL_MALLOC=N environment variable, so you can do
	DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
	DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
	thorough.
	* qt/message.cpp: port to the new message args API
	(operator<<): use str.utf8() rather than str.unicode()
	(pretty sure this is right from the Qt docs?)
	* glib/dbus-gvalue.c: port to the new message args API
	* bus/dispatch.c, bus/driver.c: port to the new message args API
	* dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
	"locked" flag to TRUE and align_offset to 0; I guess we never
	looked at these anyhow, but seems cleaner.
	* dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
	move allocation padding macro to this header; use it to implement
	(_DBUS_STRING_STATIC): ability to declare a static string.
	* dbus/dbus-message.c (_dbus_message_has_type_interface_member):
	change to return TRUE if the interface is not set.
	* dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
	to dbus-marshal-validate.[hc]
	* dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
	dbus-internals.c
	* dbus/Makefile.am: cut over from dbus-marshal.[hc]
	to dbus-marshal-*.[hc]
	* dbus/dbus-object-tree.c (_dbus_decompose_path): move this
	function here from dbus-marshal.c
 | 
|    | 
 |