1. 05 Mar, 2005 1 commit
    • Havoc Pennington's avatar
      2005-03-05 Havoc Pennington <hp@redhat.com> · ae94f92b
      Havoc Pennington authored
      	* 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>
      ae94f92b
  2. 02 Mar, 2005 1 commit
    • Colin Walters's avatar
      2005-03-01 Colin Walters <walters@verbum.org> · 8a66b12a
      Colin Walters authored
      	* test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
      	functions copied from dbus-glib-tool.c.
      	(main): Convert lots of error code to use them.
      	Also add some testing for introspection bits.
      8a66b12a
  3. 01 Mar, 2005 1 commit
  4. 27 Feb, 2005 1 commit
    • Colin Walters's avatar
      2005-02-27 Colin Walters <walters@verbum.org> · 2b97fb81
      Colin Walters authored
      	* glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
      	Change return value to const char * instead of int so we can do
      	full signatures.
      	(struct PropertyInfo, struct ArgInfo): Store char *.
      	(property_info_new, arg_info_new): Update parameters, strdup.
      	(property_info_unref, arg_info_unref): Free.
      
      	* glib/dbus-gidl.h: Update prototypes.
      
      	* glib/dbus-gparser.c (basic_type_from_string): Delete.
      	(validate_signature): New function, just validates signature and
      	sets GError.
      	(parse_property, parse_arg): Invoke validate_signature.  Store
      	signature instead of just type code.
      
      	* glib/dbus-gvalue.c (base_type_from_signature): New utility
      	function to return a primary type for a signature, dropping
      	information about types in container types.
      	(dbus_gvalue_genmarshal_name_from_type)
      	(dbus_gvalue_binding_type_from_type)
      	(dbus_gvalue_ctype_from_type): Update to take full signature
      	 instead of type code.
      	(dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
      
      	* glib/dbus-gvalue.h: Update prototypes for above.
      
      	* glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
      	glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
      	(introspect_properties, introspect_signals, write_interface):
      	Update to handle signatures, and remove usage of
      	_dbus_gutils_type_to_string.
      	(handle_introspect): Print out type codes instead of e.g. "string"
      	in hardcoded introspection XML; also use x_AS_STRING constants
      	instead of hardcoding in string.
      
      	* glib/dbus-glib-tool.c (pretty_print): Handle signature change
      	to string.  Remove usage of _dbus_gutils_type_to_string.
      
      	* glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
      
      	* glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
      	deletion.
      
      	* glib/dbus-binding-tool-glib.c (compute_marshaller)
      	(compute_marshaller_name, generate_glue): Handle signature change
      	to string.
      	(write_formal_parameters, write_args_for_direction): Ditto, and
      	remove FIXME.
      
      	* tools/dbus-tree-view.c (type_to_string): Delete.
      	(info_set_func_text): Update to print full signatures.
      
      	* test/glib/test-service-glib.xml: Change types to new
      	introspection format.
      2b97fb81
  5. 26 Feb, 2005 1 commit
    • Havoc Pennington's avatar
      2005-02-26 Havoc Pennington <hp@redhat.com> · ee27481d
      Havoc Pennington authored
      	* 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
      ee27481d
  6. 25 Feb, 2005 1 commit
    • Havoc Pennington's avatar
      2005-02-25 Havoc Pennington <hp@redhat.com> · 7ce7502e
      Havoc Pennington authored
      	* 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
      7ce7502e
  7. 24 Feb, 2005 6 commits
    • Colin Walters's avatar
      2005-02-24 Colin Walters <walters@verbum.org> · 1b5dace8
      Colin Walters authored
      	* test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
      1b5dace8
    • John Palmieri's avatar
      glib/Makefile.am: added dbus-gobject.h to sources list · 651ca12a
      John Palmieri authored
      so distcheck doesn't fail
      651ca12a
    • Havoc Pennington's avatar
      remove the todo item I just did · 2d0ae3d7
      Havoc Pennington authored
      2d0ae3d7
    • Havoc Pennington's avatar
      doh · f0e8a174
      Havoc Pennington authored
      f0e8a174
    • Havoc Pennington's avatar
      2005-02-24 Havoc Pennington <hp@redhat.com> · cc73b3da
      Havoc Pennington authored
      	* 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
      cc73b3da
    • Colin Walters's avatar
      2005-02-24 Colin Walters <walters@verbum.org> · 54a2e9f7
      Colin Walters authored
      	* 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.
      54a2e9f7
  8. 23 Feb, 2005 1 commit
  9. 21 Feb, 2005 2 commits
    • Colin Walters's avatar
      2005-02-21 Colin Walters <walters@verbum.org> · f9a7bcc2
      Colin Walters authored
      	* 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.
      f9a7bcc2
    • Havoc Pennington's avatar
      2005-02-20 Havoc Pennington <hp@redhat.com> · 209a5011
      Havoc Pennington authored
              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
      209a5011
  10. 19 Feb, 2005 3 commits
    • Colin Walters's avatar
      2005-02-19 Colin Walters <walters@verbum.org> · 4c3d2abe
      Colin Walters authored
      	* glib/dbus-binding-tool-glib.c
      	(dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
      
      	* glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
      	as errno.h and sys/stat.h.
      	(lose): New function, prints error with
      	newline and exits.
      	(lose_gerror): Similar, but takes GError for message.
      	(main): Add --output argument to specify output file to write to,
      	instead of always printing to stdout.  In this mode, determine
      	timestamps on source files to see whether any are newer than the
      	target file.  If not, exit.  Also convert a number of error
      	messages to use lose (since it's shorter), and switch to using
      	g_io_channel_shutdown.
      4c3d2abe
    • Havoc Pennington's avatar
      4ec87547
    • Havoc Pennington's avatar
      2005-02-19 Havoc Pennington <hp@redhat.com> · f9bbe3c0
      Havoc Pennington authored
      	* glib/dbus-gobject.c
      	(_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
      
      	* glib/dbus-glib.c: fix doxygen warnings
      
      	* glib/dbus-gparser.c (parse_annotation): error if an annotation
      	is found on an <arg>
      f9bbe3c0
  11. 18 Feb, 2005 1 commit
    • Colin Walters's avatar
      2005-02-17 Colin Walters <walters@verbum.org> · 74ae666f
      Colin Walters authored
      	* glib/dbus-gobject.h: Don't export
      	_dbus_glib_marshal_dbus_message_to_gvalue_array.
      
      	* glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
      	(invoke_object_method): Handle it.
      
      	* glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
      	Handle rename.
      74ae666f
  12. 17 Feb, 2005 5 commits
    • Colin Walters's avatar
      *** empty log message *** · 390bab20
      Colin Walters authored
      390bab20
    • Colin Walters's avatar
      2005-02-17 Colin Walters <walters@verbum.org> · a9a4cc5f
      Colin Walters authored
      	* bus/.cvsignore, doc/.cvsignore
      	* test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
      	Update.
      a9a4cc5f
    • Colin Walters's avatar
      2005-02-17 Colin Walters <walters@verbum.org> · 24889520
      Colin Walters authored
      	* 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.
      24889520
    • Colin Walters's avatar
      2005-02-17 Colin Walters <walters@verbum.org> · dc12fac5
      Colin Walters authored
      	* glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
      	(parse_node, parse_interface, parse_method, parse_signal)
      	(parse_property, parse_annotation): Lose if we're currently in an
      	annotation.
      	(parse_annotation): New function.
      	(parser_start_element, parser_end_element): Handle annotation.
      	(parse_method, parse_interface): Remove support for c_name attribute,
      	switch to annotations.
      
      	* glib/dbus-gidl.h (interface_info_get_binding_names)
      	(method_info_get_binding_names)
      	(interface_info_get_binding_name, method_info_get_binding_name)
      	(interface_info_set_binding_name, method_info_set_binding_name):
      	Remove.
      	(interface_info_get_annotations, method_info_get_annotations)
      	(interface_info_get_annotation, method_info_get_annotation)
      	(interface_info_add_annotation, method_info_add_annotation):
      	Prototype.
      
      	* glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
      	for "bindings".
      	(struct MethodInfo): Ditto.
      	Straightfoward conversion of binding methods into annotation methods
      	as prototyped.
      
      	* glib/dbus-glib-tool.c (pretty_print): Print annotations.
      
      	* glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
      
      	* glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
      	Use new annotation API.
      
      	* doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
      	annotation element.
      
      	* doc/dbus-specification.xml: Discuss introspection annotations,
      	include list of well-known annotations.
      
      	* test/glib/test-service-glib.xml: Make validate against new DTD.
      dc12fac5
    • Colin Walters's avatar
      2005-02-17 Colin Walters <walters@verbum.org> · 03f6615e
      Colin Walters authored
      	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.
      03f6615e
  13. 16 Feb, 2005 1 commit
    • Havoc Pennington's avatar
      2005-02-15 Havoc Pennington <hp@redhat.com> · 9e445087
      Havoc Pennington authored
      	* 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
      9e445087
  14. 14 Feb, 2005 1 commit
  15. 13 Feb, 2005 5 commits
    • Havoc Pennington's avatar
      oops, committed some debug junk · be672187
      Havoc Pennington authored
      be672187
    • Havoc Pennington's avatar
      2005-02-13 Havoc Pennington <hp@redhat.com> · 7f2973c8
      Havoc Pennington authored
      	* 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
      7f2973c8
    • Havoc Pennington's avatar
      2005-02-13 Havoc Pennington <hp@redhat.com> · 770dfe05
      Havoc Pennington authored
      	* 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.
      770dfe05
    • Havoc Pennington's avatar
      2005-02-13 Havoc Pennington <hp@redhat.com> · 46ee6086
      Havoc Pennington authored
      	* 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
      46ee6086
    • Havoc Pennington's avatar
      2005-02-13 Havoc Pennington <hp@redhat.com> · f349e6b8
      Havoc Pennington authored
      	* 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
      f349e6b8
  16. 12 Feb, 2005 6 commits
  17. 11 Feb, 2005 3 commits
    • John Palmieri's avatar
      * python/dbus.py (class Sender): added to support dbus signals better · 38dad64a
      John Palmieri authored
      (Bus::add_signal_receiver): added expand_args parameter which defaults
      to True.  When expand args is True the signal handler will pass the
      message arguments as parameters to the signal handler.  If False
      revert to previous behavior where the signal handler must get the
      argument list from the message.  This is to help port applications
      like HAL that have a tendancy to send variable length argument lists.
      self._match_rule_to_receivers is now a dict of dicts.
      (Bus::remove_signal_receiver): pop handler off the dict intead of
      removing it from a list
      (Bus::_signal_func): change signal handlers so that interface,
      signal_name, service, path and message are packed into a Sender
      object and that is passed to the handler.  If expand_args is True
      extract the args list from the message and append it to the parameter
      list
      
      * python/dbus_bindings.pyx.in (class Signature): added to support
      signiature types
      (MessageIter::__init__): changed iteration limit to match D-BUS
      (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY,
      STRUCT and VARIENT type support
      (MessageIter::python_value_to_dbus_sig): made recursive to support
      recursive types
      (MessageIter::append*): added Signature, dict, tuple
      support
      
      * python/examples/example-client.py: added examples of getting tuples
      and dicts
      
      * python/examples/example-service.py: added examples of sending tuples
      and dicts
      
      * python/examples/example-signal-recipient.py: Fixed to handle new
      signal callback format
      38dad64a
    • Havoc Pennington's avatar
      2005-02-10 Havoc Pennington <hp@redhat.com> · aa4f8237
      Havoc Pennington authored
      	* 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
      aa4f8237
    • Havoc Pennington's avatar
      2005-02-10 Havoc Pennington <hp@redhat.com> · 71f3b461
      Havoc Pennington authored
      	* 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
      71f3b461