1. 27 May, 2015 1 commit
  2. 24 Feb, 2015 2 commits
    • Simon McVittie's avatar
      dbus-launch: use libdbus to read the UUID · 71c11a9e
      Simon McVittie authored
      As a side benefit, this means that dbus-launch now understands
      /etc/machine-id and not just /var/lib/dbus/machine-id.
      
      Since machine_uuid comes out of libdbus allocated with dbus_malloc,
      to avoid having to copy it from malloc-allocated to
      dbus_malloc-allocated storage, it makes sense to change it to be
      consistently dbus_malloc-allocated (particularly now that Bug #83115
      has made use of internal symbols relatively painless). However, I'm
      deliberately not changing the allocation model of any other strings
      in dbus-launch right now; that's a larger yak-shaving exercise.
      71c11a9e
    • Simon McVittie's avatar
      Add dbus-update-activation-environment tool · 2a6cefbc
      Simon McVittie authored
      If OS builders (distributions) have chosen to use the per-user bus,
      this provides two possible modes of operation for compatibility with
      existing X session startup hooks.
      
      A legacy-free system can just upload DISPLAY, XAUTHORITY and possibly
      DBUS_SESSION_BUS_ADDRESS into dbus-daemon's and systemd's activation
      environments, similar to
      http://cgit.freedesktop.org/systemd/systemd/tree/xorg/50-systemd-user.sh
      installed by systemd (but unlike systemctl,
      dbus-update-activation-environment works for traditional
      D-Bus-activated services, not just for systemd services).
      
      A system where compatibility is required for environment variables
      exported by snippets in /etc/X11/xinit/xinitrc.d (in Red Hat derivatives,
      Gentoo, etc.) or /etc/X11/Xsession.d (Debian derivatives) can upload
      the entire environment of the X session, minus some selected environment
      variables which are specific to a login session (notably XDG_SESSION_ID).
      
      In Debian, I plan to put the former in a new dbus-user-session package
      that enables a user-session-centric mode of operation for D-Bus,
      and the latter in the existing dbus-x11 package, with the intention that
      dbus-x11 eventually becomes a tool for change-averse setups or goes
      away entirely.
      
      Bug: https://bugs.freedesktop.org/show_bug.cgi?id=61301Reviewed-by: Philip Withnall's avatarPhilip Withnall <philip.withnall@collabora.co.uk>
      2a6cefbc
  3. 16 Feb, 2015 1 commit
  4. 04 Feb, 2015 1 commit
  5. 14 Oct, 2014 1 commit
  6. 06 Oct, 2014 1 commit
  7. 23 Aug, 2013 1 commit
  8. 05 Jun, 2013 1 commit
  9. 25 Jun, 2012 1 commit
  10. 15 Jun, 2012 1 commit
  11. 04 Jan, 2012 1 commit
    • Simon McVittie's avatar
      Revert all changes since a36d4918 · 5df8c3db
      Simon McVittie authored
      Someone seems to have merged part of master into 1.4. Again. Let's go
      back to the "last known good" point (the branch-point of some 1.4
      branches I had locally), then we can cherry-pick the changes that
      should have gone in.
      5df8c3db
  12. 29 Jul, 2011 6 commits
  13. 05 Oct, 2010 1 commit
    • Will Thompson's avatar
      Move manpages to doc/ · 46b9961b
      Will Thompson authored
      This will make integrating the building of HTML versions of these
      manpages into the build system way easier, at the cost of keeping
      manpages in a different directory to the source for the program they
      describe. I think this is an acceptable trade-off.
      46b9961b
  14. 14 Apr, 2010 1 commit
  15. 11 Feb, 2010 1 commit
  16. 01 Dec, 2009 3 commits
  17. 02 Nov, 2006 1 commit
    • John Palmieri's avatar
      * bus/config-parser.c (service_dirs_find_dir): use · a157ec7f
      John Palmieri authored
        _dbus_list_get_next_link so we don't get stuck in an infinite loop
        (start_busconfig_child): move processing of standard_session_servicedirs
        tags here because they have no content
        (bus_config_parser_content): check we don't have content in
        standard_session_servicedirs tag
      
      * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
        Packagers need to own this directory
      a157ec7f
  18. 26 Oct, 2006 1 commit
  19. 25 Oct, 2006 1 commit
  20. 02 Oct, 2006 1 commit
    • John Palmieri's avatar
      * dbus/dbus-sysdeps.c (_dbus_abort): Remove from · ff99239b
      John Palmieri authored
        #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
      
      * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
        #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
        macro because _dbus_abort calls it
      
      * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck works
      ff99239b
  21. 01 Oct, 2006 3 commits
    • Havoc Pennington's avatar
      2006-10-01 Havoc Pennington <hp@redhat.com> · 10fe37f5
      Havoc Pennington authored
      	* tools/dbus-launch.c (print_variables): if no syntax is given,
      	don't print something that's sort-of-half-sh-syntax, just print
      	a plain key-value pairs thing.
      
      	* tools/dbus-launch-x11.c: use machine ID rather than hostname for
      	the local machine representation (but still have the hostname in
      	the display). Remove the hostname from the display if it is
      	localhost. Change session files to be named
      	~/.dbus/session-bus/machine-display. Change X atoms to be
      	underscore-prefixed so nobody whines about ICCCM compliance.
      	Otherwise name them the same as the env variables.
      	Change session file format to include key-value pairs and an
      	explanatory comment. Keys are the same as the env variables.
      	(set_address_in_x11): X property format can't depend on
      	sizeof(pid_t) on a particular machine, fix to always be 32 bits
      
      	* tools/dbus-launch.c: make --autolaunch take a machine id
      	argument. If --autolaunch is used with a program to run, complain
      	for now (but add a FIXME). Also, don't look for existing bus if
      	there's a program to run (but add a FIXME).
      
      	* dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
      	machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
      	just to get this, and avoids duplicating uuid-reading code).
      
      	* tools/dbus-launch.1: clarify various things
      10fe37f5
    • 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_internal
      	(dbus_connection_close, dbus_connection_open,
      	dbus_connection_open_private): Improve docs to explain the deal
      	with when you should close or unref or both
      
      	* dbus/dbus-bus.c
      	(_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
      	from _dbus_bus_check_connection_and_unref_unlocked and modify to
      	loop over all connections
      
      	* test/test-utils.c (test_connection_shutdown): don't try to close
      	shared connections.
      
      	* test/name-test/test-threads-init.c (main): fix warnings in here
      
      	* dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
      	env variable to cause blocking waiting for gdb; drop
      	DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace()
      	unconditionally.
      
      	* configure.in: add -export-dynamic to libtool flags if assertions enabled
      	so _dbus_print_backtrace works.
      
      	* dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
      	instead of _dbus_verbose to print the backtrace, and diagnose lack
      	of -rdynamic/-export-dynamic
      a2129f7c
    • Havoc Pennington's avatar
      2006-09-30 Havoc Pennington <hp@redhat.com> · d8155bf5
      Havoc Pennington authored
      	* configure.in (LT_CURRENT, LT_AGE): increment current and age to
      	reflect addition of interfaces.
      
      	* doc/dbus-specification.xml: describe a new
      	org.freedesktop.DBus.Peer.GetMachineId method
      
      	* dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
      	(_dbus_string_skip_white, _dbus_string_skip_blank): use new
      	DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
      	at end of skip_white
      	(_dbus_string_chop_white): new function
      
      	* bus/connection.c (bus_connections_setup_connection): call
      	dbus_connection_set_route_peer_messages.
      
      	* dbus/dbus-connection.c
      	(_dbus_connection_peer_filter_unlocked_no_update): modify to
      	support a GetMachineId method.
      
      	Also, support a new flag to let the bus pass peer methods through
      	to apps on the bus, which can be set with
      	dbus_connection_set_route_peer_messages.
      
      	Finally, handle and return an error for anything unknown on the
      	Peer interface, which will allow us to extend the Peer interface
      	in the future without fear that we're now intercepting something
      	apps were wanting to see.
      
      	* tools/dbus-uuidgen.c: a thin wrapper around the functions in
      	dbus/dbus-uuidgen.c
      
      	* dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
      	binary here, since most of the code is already in libdbus
      
      	* dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
      	uuid from the system config file
      
      	* dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode)
      	(_dbus_read_uuid_file_without_creating)
      	(_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
      	uuid-related functions, partly factored out from dbus-server.c
      
      	* dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
      	DBUS_ERROR_FILE_EXISTS instead of EEXIST
      
      	* dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
      
      	* tools/dbus-cleanup-sockets.1: explain what the point of this
      	thing is a bit more
      
      	* autogen.sh (run_configure): add --config-cache to default
      	configure args
      
      	* dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
      	error set/clear assertions when DBUS_DISABLE_CHECKS is defined
      
      	* tools/dbus-launch.c (main): if xdisplay hasn't been opened,
      	don't try to save address, fixes crash in make check
      d8155bf5
  22. 30 Sep, 2006 1 commit
    • Thiago Macieira's avatar
      * configure.in: add DBUS_BINDIR as a #define to C source code. · f6fa0104
      Thiago Macieira authored
      	* tools/dbus-launch.c
      	* tools/dbus-launch.h
      	* tools/dbus-launch-x11.c:
      	* tools/dbus-launch.1: Add the --autolaunch option to
      	dbus-launch, which makes it scan for an existing session
      	started with --autolaunch. With that option, it also creates
      	an X11 window and saves the bus address and PID to it.
      
      	* dbus/dbus-sysdeps.h:
      	* dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
      	a function that runs "dbus-launch --autolaunch" to retrieve
      	the running D-Bus session address (or start one if none was running)
      
      	* dbus/dbus-transport.c: Add the handler for the "autolaunch:"
              address protocol, which tries to get the running session from
              dbus-launch.
      
      	* dbus/dbus-bus.c:
      	* dbus/dbus-internals.h: Make "autolaunch:" be the default
      	D-Bus session bus address.
      
      	* dbus/dbus-connection.c: Fix horrible typo in error message.
      f6fa0104
  23. 18 Sep, 2006 1 commit
  24. 08 Aug, 2006 1 commit
    • John Palmieri's avatar
      * configure.in: · aaa432b0
      John Palmieri authored
      * tools/Makefile.am:
      * tools/dbus-launch.c:
      * bus/Makefile.am:
        allow --with-dbus-daemondir switch to be used to make the
        daemon install to a seperate bindir like /usr/libexec
        (patch from Brian Cameron <brian dot cameron at sun dot com)
      aaa432b0
  25. 14 Jul, 2006 1 commit
  26. 14 Jun, 2006 1 commit
  27. 06 Sep, 2005 1 commit
    • John Palmieri's avatar
      * Released 0.50 · bc564a69
      John Palmieri authored
      * Patch from Steve Grubb:
      - bus/activation.c (bus_activation_service_reload_test): clean up
      some indentation
      - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional
      - dbus/dbus-message-factory.c (generate_special): fix a couple of
      buffer overflows in the test suite.  This is non critical because
      it can not be exploited and this code is only run when doing a
      make check.
      
      * Patch from Yaakov Selkowitz: Build fixes for Cygwin
      - configure.in: Don't check and link against kdecore, only qt headers
      - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
      - gcj/org/freedesktop/dbus/Makefile.am:
      add libdbus_gcj_1_la_LDFLAGS = -no-undefined
      - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
      and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
      - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
      - tools/Makefile.am: Add platform extentions to binaries
      (i.e. .exe on windows)
      
      * configure.in:
      - Make it so if no suitable version of python is found we only
      disable building python instead of exiting the configure script
      - Require version 2.4 of glib for glib bindings
      - Up version to 0.50
      
      * python/__init__.py: Sync version with libdbus to (0,50,0)
      bc564a69
  28. 08 Jul, 2005 1 commit
    • Colin Walters's avatar
      2005-07-08 Colin Walters <walters@verbum.org> · e888647a
      Colin Walters authored
      	* tools/Makefile.am: Kill of print-introspect in favor of using
      	dbus-send --print-reply=literal.
      	* tools/print-introspect.c: Deleted.
      
      	* test/glib/test-service-glib.xml:
      	* test/glib/test-service-glib.c (my_object_get_objs): New test
      	for "ao".
      
      	* test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
      	(main): Test GetObjs.
      
      	* glib/examples/statemachine/Makefile.am:
      	* glib/examples/statemachine/sm-marshal.list:
      	* glib/examples/statemachine/statemachine-client.c:
      	* glib/examples/statemachine/statemachine-server.c:
      	* glib/examples/statemachine/statemachine-server.xml:
      	* glib/examples/statemachine/statemachine.c:
      	* glib/examples/statemachine/statemachine.h:
      	* glib/examples/statemachine/statemachine.xml:
      
      	New example.
      
      	* glib/examples/example-service.c (main): Move invocation
      	of dbus_g_object_type_install_info earlier, to emphasize it
      	should only be done once.
      
      	* glib/examples/example-signal-emitter.c (main): Ditto.
      
      	* glib/examples/Makefile.am (SUBDIRS): Include statemachine.
      
      	* glib/dbus-gvalue.h (dbus_gtype_to_signature)
      	(dbus_gvalue_marshal): Update prototypes.
      
      	* glib/dbus-gvalue.c: Update all marshalling functions to take
      	const GValue instead of GValue.
      	(signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
      	types.
      	(dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
      	change.
      	(dbus_gtype_to_signature): Handle generic collecitons and maps.
      	Return a newly-allocated string.
      	(demarshal_proxy, demarshal_object_path, demarshal_object)
      	(demarshal_strv, demarshal_ghashtable): Set error, don't assert if
      	we get the wrong types from message.
      	(get_type_demarshaller): New function, extracted from
      	dbus_gvalue_demarshal.
      	(demarshal_collection): New function, demarshals generic
      	collection.
      	(dbus_gvalue_demarshal): Just invoke result of
      	get_type_demarshaller.  Throw error if we don't have one.
      	(marshal_garray_basic): Abort on OOM.
      	(get_type_marshaller): New function, extracted from
      	dbus_gvalue_marshal.
      	(collection_marshal_iterator, marshal_collection): New functions;
      	implements generic marshalling for an iteratable specialized
      	collection.
      	(dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
      
      	* glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
      	G_TYPE_STRING.
      	(ptrarray_value_from_gvalue): Ditto.
      	(ptrarray_append, ptrarray_free): New functions.
      	(slist_constructor, slist_iterator, slist_copy_elt, slist_copy)
      	(slist_append, slist_end_append, slist_free): New functions.
      	(dbus_g_type_specialized_builtins_init): Add append fuctions
      	for GPtrArray and GSList.  Register GSList.
      	(test_specialized_hash, _dbus_gvalue_utils_test): New functions.
      
      	* glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
      	New.
      	(dbus_g_type_specialized_collection_init_append)
      	(dbus_g_type_specialized_collection_append)
      	(dbus_g_type_specialized_collection_end_append): Prototype.
      	(DBusGTypeSpecializedCollectionVtable): Add append_func and
      	end_append_func.
      
      	* glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append)
      	(dbus_g_type_specialized_collection_append)
      	(dbus_g_type_specialized_collection_end_append): New functions.
      	(dbus_g_type_map_value_iterate): Take const GValue.
      	(dbus_g_type_collection_value_iterate): Ditto.
      
      	* glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
      	_dbus_gvalue_utils_test.
      
      	* glib/dbus-gtest.h: Prototype it.
      
      	* glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
      	using uninitialized owner_list.
      	(dbus_g_proxy_begin_call_internal): Move return_if_fail to
      	public API.
      	(dbus_g_proxy_end_call_internal): Update to use error set
      	from dbus_gvalue_demarshal instead of setting it here.
      	(dbus_g_proxy_begin_call): Move return_if_fail here.
      
      	* glib/dbus-gobject.c (write_interface): Update for
      	dbus_gtype_to_signature returning new string.
      
      	* configure.in: Add glib/examples/statemachine.
      e888647a
  29. 13 Jun, 2005 1 commit
    • Colin Walters's avatar
      2005-06-12 Colin Walters <walters@verbum.org> · beb9cd2e
      Colin Walters authored
      	Async signals and various bugfixes and testing by
      	Ross Burton <ross@burtonini.com>.
      
      	* glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
      	(dbus_gvalue_genmarshal_name_from_type)
      	(dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
      	(dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
      	(dbus_g_value_types_init, dbus_gtype_from_signature)
      	(dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
      	(dbus_gtypes_from_arg_signature): New function prototypes.
      	(dbus_gvalue_demarshal): Take context and error arguments.
      	(dbus_gvalue_demarshal_variant): New function.
      	(dbus_gvalue_demarshal_message): New function.
      	(dbus_gvalue_store): Delete.
      
      	* glib/dbus-gvalue.c:
      
      	File has been almost entirely rewritten; now we special-case
      	more types such as DBUS_TYPE_SIGNATURE, handle arrays and
      	hash tables correctly, etc.  Full support for recursive values
      	is not yet complete.
      
      	* glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
      	argument of signal to G_TYPE_POINTER since we now pass a
      	structure.
      	(lookup_g_marshaller): Delete in favor of
      	_dbus_gobject_lookup_marshaller.
      	(marshal_dbus_message_to_g_marshaller): Use
      	_dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
      	to handle remote signal callbacks.
      	(dbus_g_proxy_new_from_proxy): New function; creates a new
      	DBusGProxy by copying an existing one.
      	(dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
      	(dbus_g_proxy_get_path): New functions.
      	(dbus_g_proxy_marshal_args_to_message): New function;
      	factored out of existing code.
      	(DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
      	from a varargs array.
      	(dbus_g_proxy_begin_call_internal): New function.
      	(dbus_g_proxy_end_call_internal): New function.
      	(dbus_g_proxy_begin_call): Take GTypes instead of DBus types
      	as arguments; simply invoke dbus_g_proxy_begin_call_internal
      	after collecting args into value array.
      	(dbus_g_proxy_end_call): Take GTypes instead of DBus types;
      	invoke dbus_g_proxy_end_call_internal.
      	(dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
      	end_call_internal.
      	(dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
      	types.
      	(array_free_all): New function.
      	(dbus_g_proxy_add_signal): Take GTypes.
      
      	* glib/dbus-gobject.h:
      	(_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
      	(_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
      	Prototype.
      
      	* glib/dbus-gobject.c: Add a global marshal_table hash which
      	stores mappings from type signatures to marshallers.  Change lots
      	of invocations of dbus_gtype_to_dbus_type to
      	dbus_gtype_to_signature.
      	(_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
      	(introspect_signals): Fix test for query.return_type.
      	(set_object_property): Update invocation of dbus_gvalue_demarshal.
      	(invoke_object_method): Many changes.  Handle asynchronous
      	invocations.  Convert arguments with
      	dbus_gvalue_demarshal_message.  Handle errors.  Use
      	DBusSignatureIter instead of strlen on args. Handle all arguments
      	generically.  Special-case variants.
      	(dbus_g_method_return, dbus_g_method_return_error): New function.
      	(DBusGSignalClosure): New structure, closes over signal
      	information.
      	(dbus_g_signal_closure_new): New function.
      	(dbus_g_signal_closure_finalize): New function.
      	(signal_emitter_marshaller): New function; is special marshaller
      	which emits signals on bus.
      	(export_signals): New function; introspects object signals and
      	connects to them.
      	(dbus_g_object_type_install_info): Take GType instead of
      	GObjectClass.
      	(dbus_g_connection_register_g_object): Invoke export_signals.
      	(dbus_g_connection_lookup_g_object): New function.
      	(DBusGFuncSignature) New structure; used for mapping type
      	signatures to marshallers.
      	(funcsig_hash): New function; hashes DBusGFuncSignature.
      	(funcsig_equal): New function; compares DBusGFuncSignature.
      	(_dbus_gobject_lookup_marshaller): New function.
      	(dbus_g_object_register_marshaller): New function; used to
      	register a marshaller at runtime for a particular signature.
      
      	* glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
      
      	* glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
      	which notes a server method implementation should be
      	asynchronous.
      
      	* glib/dbus-binding-tool-glib.c
      	(dbus_binding_tool_output_glib_server): Call
      	dbus_g_value_types_init.
      	(write_formal_parameters): Use dbus_gtype_from_signature.  Handle
      	variants specially.
      	(dbus_g_type_get_lookup_function): Turn GType into an invocation
      	of a lookup function.
      	(write_args_for_direction): Use dbus_g_type_get_lookup_function.
      	(write_untyped_out_args): New method; write output arguments.
      	(write_formal_declarations_for_direction): Function for
      	writing prototypes.
      	(write_formal_parameters_for_direction): Function for
      	writing implementations.
      	(write_typed_args_for_direction): Function for writing
      	arguments prefixed with GTypes.
      	(write_async_method_client): Write out async version
      	of method.
      
      	* glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
      	(dbus_g_type_get_marshal_name): Move mapping from GType
      	to marshal name into here.
      	(dbus_g_type_get_c_name): Move into here.
      	(compute_marshaller): Convert signature to type with
      	dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
      	(compute_marshaller_name): Ditto.
      	(compute_marshaller): Handle async signal annotations.
      	(gather_marshallers): Return if we don't have a known
      	prefix.
      	(generate_glue): Collect introspection blob here, and
      	write all of the blob at the end.  This allows an object
      	with multiple interfaces to work.
      	Mark async methods in introspection blob.
      
      	* glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
      	dbus-gtype-specialized.c, dbus-gtype-specialized.h,
      	dbus-gvalue-utils.h, dbus-gvalue-utils.c.
      
      	* dbus/dbus-glib.h: Don't include dbus-protocol.h; this
      	avoids people accidentally using DBUS_TYPE_* which should
      	not be necessary anymore.
      	Do include dbus-gtype-specialized.h, which are utilities
      	for GLib container types.
      	Add various #defines for types such as
      	DBUS_TYPE_G_BOOLEAN_ARRAY.
      	(DBusGValueIterator, DBusGValue): Define, not fully used
      	yet.
      	(dbus_g_value_get_g_type): Type for recursive value.
      	(dbus_g_value_open, dbus_g_value_iterator_get_value)
      	(dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
      	(dbus_g_value_free): Prototypes.
      	(dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
      	(dbus_g_proxy_set_interface): Prototype.
      	(dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
      	(dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
      	types.
      	(dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
      	Accessors.
      	(DBusGAsyncData, DBusGMethodInvocation): Structures for
      	doing async invocations.
      	(dbus_g_method_return, dbus_g_method_return_error):
      	Prototypes.
      	* doc/dbus-tutorial.xml: Update GLib section.
      
      	* tools/dbus-viewer.c (load_child_nodes): Update
      	for new invocation type of dbus_g_proxy_end_call.
      	(load_from_service_thread_func): Ditto.
      
      	* tools/print-introspect.c (main): Ditto.
      
      	* tools/dbus-names-model.c (have_names_notify)
      	(names_model_reload, names_model_set_connection)
      	Use GTypes.
      
      	* python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
      	needed since Python bindings use GLib bindings.
      
      	* test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
      	Add --prefix argument.
      
      	* tools/Makefile.am: Define DBUS_COMPILATION.  Remove
      	unneeded --ignore-unsupported arg.
      
      	* test/glib/test-service-glib.c:
      	* test/glib/test-service-glib.xml:
      	* test/glib/test-dbus-glib.c: Add many more tests.
      beb9cd2e
  30. 24 Mar, 2005 1 commit