Commit graph

1097 commits

Author SHA1 Message Date
Havoc Pennington
51a4261d0e 2005-07-29 Havoc Pennington <hp@redhat.com>
* bus/signals.c (bus_signals_test): add match_rule_equal() tests
	(match_rule_matches): remove unused arg
	(test_matching): add tests for match_rule_matches()

	* bus/signals.c (bus_match_rule_parse_arg_match): add ability to
	do arg0='foo' arg5='bar' in the match rules
	(match_rule_matches): don't match if the arg0='foo' doesn't match.

	* dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2005-07-29 17:43:30 +00:00
Ross Burton
6e4af28a9b Remove unused condvar 2005-07-29 14:43:59 +00:00
Ross Burton
c9c16dd087 Reduce size of message cache 2005-07-27 19:38:41 +00:00
Ross Burton
915100a376 Remove matchers when all proxies are removed 2005-07-25 19:16:22 +00:00
Colin Walters
9ca6f45e86 2005-07-24 Colin Walters <walters@verbum.org>
* glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
	typedata; recursive arrays won't have it.

	* test/glib/test-dbus-glib.c:
	* test/glib/test-service-glib.c:
	* test/glib/test-service-glib.xml: Add recursive arrays tests.
2005-07-24 18:04:23 +00:00
John (J5) Palmieri
de689235e9 * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
proxies.py, service.py: Cleanup of code after running it through the
  pyflakes code checker mostly dealing with undefined names.
  (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2005-07-20 14:15:08 +00:00
Colin Walters
14acf6a263 add missing entry 2005-07-19 22:18:54 +00:00
John (J5) Palmieri
afc504f848 * Merge DBUS_0_35_2 branch into HEAD
2005-07-17  John (J5) Palmieri  <johnp@redhat.com>

        * NEWS: Update to 0.35.2

2005-07-17  John (J5) Palmieri  <johnp@redhat.com>

        * python/_dbus.py: Remove import of the dbus.services
        module as it no longer exists (patch from Dimitur Kirov)

        * python/service.py (Object::__init__): Fixed typo
        s/name/bus_name (patch from Dimitur Kirov)

        * python/examples/example-signal-emitter.py: import dbus.glib
        to get the main loop and use glib mainloop instead of gtk so
        X doesn't have to be running.

        * python/examples/example-signal-recipient.py: import dbus.glib
        to get the main loop and use glib mainloop instead of gtk so
        X doesn't have to be running. Import the decorators module
        directly.

        * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
        didn't pick up on but are needed to build

        * configure.in: upped version to 0.35.2

        * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
        added Colin Walters' SELinux API rename patch from head
        s/unix sercurity context/selinux security context/

2005-07-16  John (J5) Palmieri  <johnp@redhat.com>

        * python/Makefile.am: dbus_binding.pxd.in should be included
        in EXTRA_DIST not dbus_binding.pxd
        fix up $(srcdir) hopefully for the last time

        * NEWS: Update to 0.35.1
2005-07-17 21:02:56 +00:00
Colin Walters
9a94a1350b 2005-07-16 Colin Walters <walters@verbum.org>
* bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
	from bus_driver_handle_get_connection_unix_security_context.  Update for
	error usage.
	(message_handlers): Update for renames.

	* bus/selinux.c (bus_selinux_allows_send): Handle OOM on
	_dbus_string_init failure correctly.
	(bus_selinux_append_context): Convert SID to context.  Append it
	as a byte array.
	(bus_selinux_shutdown): Handle the case where bus_selinux_full_init
	hasn't been called.

	* bus/selinux.h: Update prototype.

	* dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
	from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2005-07-16 17:34:08 +00:00
Colin Walters
3b628f9209 2005-07-15 Colin Walters <walters@verbum.org>
* doc/TODO: Add note about convenience wrappers.
2005-07-15 22:02:25 +00:00
John (J5) Palmieri
3ca2bf5e16 * configure.in: upped version to 0.36 2005-07-15 20:35:25 +00:00
John (J5) Palmieri
b53a872945 * Update to 0.35 2005-07-15 20:33:35 +00:00
John (J5) Palmieri
0a04060376 * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
so distcheck doesn't fail

* glib/examples/Makefile.am: Add example-service.xml and
  example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail

* glib/examples/statemachine/Makefile.am: Add statemachine.xml and
  statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail

* python/Makefile.am: Preprend $(srcdir)/ to source files so the
  compiler looks in the right places during distcheck
2005-07-15 20:28:05 +00:00
John (J5) Palmieri
47e6b5ab88 * glib/example/Makefile.am: Fix a typo which cause make distcheck
to fail
2005-07-15 19:15:05 +00:00
John (J5) Palmieri
a89b13dd19 * python/examples/example-service.py,
python/examples/example-signal-emitter.py: Fixed up examples
  for API changes
2005-07-15 18:09:59 +00:00
John (J5) Palmieri
5cd694d5fb * python/__init__.py: Upped to version (0,42,0) because of
the API change
2005-07-15 17:33:17 +00:00
John (J5) Palmieri
b52d8bbdd4 * ChangeLog: fix date in last entry
* configure.in, bus/system.conf.in: add the ability to configure
  the system bus user at compiletime with the --with-dbus-user flag
  (patch from Kristof Vansant)
2005-07-15 17:28:35 +00:00
John (J5) Palmieri
a7595655fb * bus/dispatch.c, test/test-service.c: Add testcase
for sending messages to oneself (TODO item).

* python/service.py (class Object): Swap ordering of bus_name
  and object_path parameters to better support inheritance.

* doc/dbus-tutorial.xml: change Python docs to reflect change
  in parameter ordering and fix the inheritance section.

* doc/TODO: remove sending message to oneself TODO item
2005-07-15 15:21:43 +00:00
Ross Burton
16dbb17287 Don't leak messages when calling methods 2005-07-15 13:25:48 +00:00
Colin Walters
6be5b25a71 2005-07-15 Colin Walters <walters@verbum.org>
* bus/selinux.c (bus_selinux_append_context): Wrap in
	HAVE_SELINUX.
2005-07-15 04:04:43 +00:00
John (J5) Palmieri
dc4d80e567 * python/_dbus.py (Bus::remove_signal_receiver):
don't add a callback to the match if none has been passed in

* python/matchrules.py (SignalMatchTree::remove): if the rule
  being matched does not have a callback treat it as a wildcard
  fix matching logic

* doc/dbus-tutorial.xml: Add Python tutorial
2005-07-15 02:15:08 +00:00
Colin Walters
6c191520c8 2005-07-14 Colin Walters <walters@verbum.org>
* bus/driver.c
	(bus_driver_handle_get_connection_unix_security_context): New function.
	(message_handlers): Add.

	* bus/selinux.c (bus_selinux_append_context): New function; appends
	security context to message.

	* bus/selinux.h: Prototype.

	* dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2005-07-14 21:45:42 +00:00
John (J5) Palmieri
075945f611 Checking in Rodrigo's patch along with my fixes to the patch
2005-07-14  John (J5) Palmieri  <johnp@redhat.com>

	* bus/activation.c: clean up all tabs to be 8 spaces
	(bus_activation_activate_service): make sure we clean up
	if activation fails

	* bus/dispatch.c: clean up all tabs to be 8 spaces
	(check_shell_fail_service_auto_start): New function
	tests to make sure we get fail properly when trying to auto start a service
	with a faulty command line
	(check_shell_service_success_auto_start): New function tests to make sure
	auto started services get the arguments on the command line

	* test/test-shell-service.c: Added service for testing auto-starting with
	command line arguments

	* test/data/valid-service-files/debug-shell-echo-fail.service.in,
	test/data/valid-service-files/debug-shell-echo-success.service.in:
	Added service files for testing auto-starting with command line arguments

	* */.cvsignore: added a bunch of generated files to various .cvsignore files

2005-07-14  Rodrigo Moya  <rodrigo@novell.com>

	* dbus/dbus-shell.[ch]: copy/pasted code from GLib.

	* dbus/Makefile.am: added new files to build.

	* bus/activation.c (bus_activation_activate_service): support
	activation commands with parameters.

	* test/shell-test.c: added test program for the shell parsing
	code.
2005-07-14 20:44:15 +00:00
David Zeuthen
955cc78770 2005-07-13 David Zeuthen <davidz@redhat.com>
* tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
        64 bit signed and unsigned parameters
2005-07-13 21:13:16 +00:00
John (J5) Palmieri
2c413bf281 * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
* python/service.py (class Name): renamed BusName to make it clearer
  what the object is for (a name on the bus)

* python/examples/example-service.py,
  python/examples/example-signal-emitter.py: change the Name object to
  BusName
2005-07-13 18:22:35 +00:00
Colin Walters
9f92ac0ef5 2005-07-12 Colin Walters <walters@verbum.org>
Patch from Jim Gettys <Jim.Gettys@hp.com>.

	* tools/dbus-launch.c: Include sys/select.h.
2005-07-12 21:09:54 +00:00
John (J5) Palmieri
d06bfe528b * python/dbus_bindings.pyx.in: removed
* python/dbus_bindings.pyx: Added.
	- Fixed some memleaks (patch from
	  Sean Meiners <sean.meiners@linspireinc.com>)
	- Broke out the #include "dbus_h_wrapper.h" and put it in its
	  own pxd file (Pyrex definition)
	- Broke out glib dependancies into its own pyx module

* python/dbus_bindings.pdx: Added.
	- Defines C class Connection for exporting to other modules

* python/dbus_glib_bindings.pyx: Added.
	- New module to handle lowlevel dbus-glib mainloop integration

* python/glib.py: Added.
	- Registers the glib mainloop when you import this module

* python/services.py: Removed (renamed to service.py)

* python/service.py: Added.
	- (class Server): renamed Name

* python/__init__.py: Bump ro version (0,41,0)
	- don't import the decorators or service module
   	  by default.  These now reside in the dbus.service namespace

* python/_dbus.py (Bus::__init__): Add code run the main loop
  setup function on creation

* python/examples/example-service.py,
  python/examples/example-signal-emitter.py: update examples

* python/examples/gconf-proxy-service.py,
  python/examples/gconf-proxy-service2.py: TODO fix these up

* doc/TODO: Addition
	- Added a Python Bindings 1.0 section
	- added "Add match on args or match on details to match rules"
2005-07-12 18:16:07 +00:00
Colin Walters
922d6bb194 2005-07-12 Colin Walters <walters@verbum.org>
* glib/examples/statemachine/Makefile.am (statemachine-server-glue.h)
	(statemachine-glue.h):
	* glib/examples/Makefile.am (example-service-glue.h)
	(example-signal-emitter-glue.h):
	* glib/Makefile.am (dbus-glib-error-switch.h):
	Add libtool --mode=execute so we use the built library instead
	of any installed one.
2005-07-12 17:57:04 +00:00
Colin Walters
622cc8af61 2005-07-11 Colin Walters <walters@verbum.org>
* glib/dbus-gvalue.c (struct _DBusGValue): Delete.
	(dbus_g_value_types_init): Remove assertion.
	(dbus_g_value_get_g_type, dbus_g_value_open)
	(dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
	(dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
	functions related to DBusGValue.  Now we marshal/demarshal
	structures as GValueArray.
	(dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
	structures.
	(signature_iter_to_g_type_array): Don't call
	signature_iter_to_g_type_struct.
	(signature_iter_to_g_type_struct): Delete.
	(dbus_gvalue_to_signature): Delete.
	(dbus_gvalue_to_signature): New function with same name as other
	one; we can convert structures to signatures.
	(demarshal_valuearray): New function.
	(get_type_demarshaller): Use it.
	(demarshal_recurse): Delete.
	(marshal_proxy): New function.
	(marshal_map): Warn if we can't determine signature from type.
	(marshal_collection_ptrarray): Ditto.
	(marshal_collection_array): Ditto.
	(get_type_marshaller): Use marshal_valuearray.
	(marshal_recurse): Delete.
	(_dbus_gvalue_test): Add some tests.

	* dbus/dbus-glib.h (struct _DBusGValueIterator):
	(dbus_g_value_get_g_type, DBUS_TYPE_G_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): Remove prototypes.

	* glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
	G_TYPE_VALUE_ARRAY.

	* glib/examples/example-service.c:
	* glib/examples/example-client.c: Implement GetTuple.

	* test/glib/test-dbus-glib.c:
	* test/glib/test-service-glib.c:
	* test/glib/test-service-glib.xml: Add structure tests.
2005-07-11 16:12:50 +00:00
Colin Walters
8c095eea8f 2005-07-10 Colin Walters <walters@verbum.org>
* doc/TODO: Knock off some GLib items with this patch.

	* glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error)
	(_dbus_gvalue_signals_error): New functions.

	* glib/dbus-gvalue-utils.h: Prototype them.

	* glib/dbus-gobject.c (arg_iterate): Update to handle return vals
	and change to not output const/retval flags for input args.  All
	callers updated.
	(invoke_object_method): Refactor to handle return values.  Add
	some more comments in various places.  Remove debug g_print.

	* glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.

	* glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
	Handle G_TYPE_NONE.
	(compute_gsignature): New function; refactored from code from
	compute_marshaller and compute_marshaller_name.  Enhance to
	handle return values and async ops more cleanly.  Update for
	async ops returning NONE instead of BOOLEAN.
	(compute_marshaller, compute_marshaller_name): Call compute_gsignature
	and output appropriate string.
	(generate_glue): Handle return value annotation.  Also don't dump
	constness flag for input arguments.

	* glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
	files shared between installed library and utilities.
	(libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
	(libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
	binding tool can access gtype utility functions.

	* test/glib/test-service-glib.c:
	* test/glib/test-service-glib.xml:
	* test/glib/test-dbus-glib.c: Add some tests for return values.
2005-07-10 22:54:19 +00:00
Colin Walters
745b19d640 2005-07-09 Colin Walters <walters@verbum.org>
* glib/dbus-gparser.c (parse_annotation): Add annotations to
	argument if available, not method.

	* glib/dbus-gobject.c (arg_iterate): More verbose warnings.
	(invoke_object_method): First, remove some redundant
	GValues (object_value, error_value) in favor of working on
	array directly.  Second, rework constness to be less buggy.
	Now we iterate directly over the argument metadata instead
	of parallel iterating over output signature and metadata.

	* glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.

	* glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
	annotation on input args.
2005-07-09 18:54:45 +00:00
Colin Walters
b1ae5399f8 2005-07-09 Colin Walters <walters@verbum.org>
* glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
	Define.

	* glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
	annotation.

	* glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
	(method_dir_signature_from_object_info): Handle arg_iterate change.
	(write_interface): Ditto.
	(lookup_object_info): Don't barf if format_version is > 0.
	(invoke_object_method): Handle arg constness.

	* glib/dbus-gidl.c (struct ArgInfo): Add annotations.
	(arg_info_new): Create.
	(arg_info_unref): Destroy.
	(arg_info_get_annotations, arg_info_get_annotation)
	(arg_info_add_annotation): New functions.

	* glib/dbus-gidl.h: Prototype them.

	* glib/dbus-gparser.c (parse_annotation): Allow annotations in
	args, disallow them in properties.
	(parse_annotation): Handle arg annotations.

	* test/glib/test-service-glib.xml:
	* test/glib/test-service-glib.c: Update to make some methods
	const.
2005-07-09 17:52:52 +00:00
Colin Walters
0ccef79d7e 2005-07-08 Colin Walters <walters@verbum.org>
* test/glib/test-service-glib.xml:
	* test/glib/test-service-glib.c:
	* test/glib/test-dbus-glib.c: Test a{sv}.

	* glib/examples/statemachine/statemachine.c:
	* glib/examples/statemachine/statemachine-server.c:
	* glib/examples/statemachine/statemachine-client.c: Fix some bugs,
	add progress bar, etc.

	* glib/dbus-gvalue.c (register_array, register_dict): Delete; not
	needed anymore due to generic array/map marshalling.
	(dbus_g_value_types_init): Don't register basic arrays or the
	string/string hash.
	(dbus_gtype_from_signature_iter): Don't try to recurse into
	variants.
	(dbus_gtype_to_signature): Check collection/map before type
	metadata.
	(demarshal_garray_basic): Renamed to demarshal_collection_array.
	(demarshal_ghashtable): Renamed to demarshal_map; fix to use new
	generic map creation/append functions instead of hash table
	specifically.
	(get_type_demarshaller): Handle maps.
	(demarshal_collection): Dispatch on collection type to either
	demarshal_collection_ptrarray or demarshal_collection_array.
	(get_type_marshaller): Handle maps.
	(marshal_collection): Dispatch collection type to either
	marshal_collection_ptrarray or marshal_collection_array.
	(_dbus_gvalue_test): New test.

	* glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
	(hash_free_from_gtype): Use it to free GValues.
	(hashtable_append): New function.
	(ptrarray_append): Fix prototype.
	(slist_append): Ditto.
	(_dbus_gvalue_utils_test): Extend tests.

	* glib/dbus-gtype-specialized.c
	(dbus_g_type_specialized_init_append): Renamed from
	dbus_g_type_specialized_collection_init_append.  Remove const from
	value, since we steal it.
	(dbus_g_type_specialized_map_append): New function.

	* glib/dbus-gtype-specialized.h: Update prototypes.
	Add DBusGTypeSpecializedMapAppendFunc.

	* glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
	_dbus_gvalue_test.

	* glib/dbus-gtest.h: Prototype it.
2005-07-09 01:46:51 +00:00
Ross Burton
d8e7405eb3 Make async bindings work again 2005-07-08 17:02:42 +00:00
Colin Walters
82d6ea6ca6 2005-07-08 Colin Walters <walters@verbum.org>
* doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
	connection concept.
2005-07-08 16:41:57 +00:00
Colin Walters
e888647a70 2005-07-08 Colin Walters <walters@verbum.org>
* 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.
2005-07-08 16:25:39 +00:00
Joe Shaw
b1e21dad20 2005-07-08 Joe Shaw <joeshaw@novell.com>
* configure.in: Add a configure option, --with-console-auth-dir

	* dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
	new setting.  Patch from Kay Sievers.
2005-07-08 14:36:22 +00:00
Colin Walters
2ca6e95764 2005-07-06 Colin Walters <walters@verbum.org>
* dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
	(DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
	(dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
	(dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
	Delete in favor of dbus_g_proxy_begin_call and
	dbus_g_proxy_cancel_call.
	(DBusGProxyCall, DBusGProxyCallNotify): New.
	(dbus_g_proxy_begin_call): Change prototype to take callback, user
	data, and destroy function.  This replaces
	dbus_g_pending_call_set_notify.
	(dbus_g_proxy_cancel_call): Prototype.
	(DBusGAsyncData): Delete, shouldn't be needed anymore.

	* glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
	pending_calls map.
	(struct _DBusGProxyManager): Add bus_proxy member, which is an
	internal proxy for calls to the bus. Remove
	pending_nameowner_calls, now the internal proxy keeps track.
	(dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
	pending_nameowner_calls.
	(got_name_owner_cb): Update prototype, and use
	dbus_g_proxy_end_call.
	(got_name_owner_cb): Remove reference to pending_nameowner_calls.
	(dbus_g_proxy_manager_register): Delete directly libdbus code in
	favor of using internal proxy.
	(dbus_g_proxy_manager_unregister): Update to use
	dbus_g_proxy_cancel_call for any pending GetNameOwner call.
	(dbus_g_proxy_init): Initialize pending calls map.
	(dbus_g_proxy_constructor): New.
	(dbus_g_proxy_class_init): Add get/set property functions,
	constructor, and add NAME, PATH, and INTERFACE properties.
	(cancel_pending_call): New function.
	(dbus_g_proxy_dispose): Iterate over any outstanding calls and
	cancel them.
	(dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
	(GPendingNotifyClosure): New structure.
	(d_pending_call_notify, d_pending_call_free): Moved here from
	dbus-glib.c.
	(DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
	ordering.
	(manager_begin_bus_call): New internal function for talking to
	internal bus proxy.
	(dbus_g_proxy_new): Construct object using GObjet properties.
	(dbus_g_proxy_begin_call_internal): Update to take user data, etc.
	Create closure of same, and insert call into map of pending calls.
	(dbus_g_proxy_end_call_internal): Take call id instead of pending
	call.  Look up pending call in current set.  Remove it when we've
	completed.
	(dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
	(dbus_g_proxy_begin_call): Change API to take callback, user data,
	and destroy function directly.
	(dbus_g_proxy_end_call): Update to take DBusGProxyCall.
	(dbus_g_proxy_call): Invoke with NULL callback.
	(dbus_g_proxy_cancel_call): New function, replaces
	dbus_g_pending_call_cancel.

	* glib/dbus-gparser.c (validate_signature): Fix call to
	dbus_set_g_error.

	* glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
	New quark for attaching metadata to GType.
	(info_hash): Delete.
	(lookup_object_info): Look up using quark.
	(dbus_g_object_type_install_info): Check that a type is classed,
	not that it's an object.  Also just install type data using quark
	instead of using global hash.

	* glib/dbus-glib.c (dbus_g_pending_call_ref)
	(dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
	(GPendingNotifyClosure): Delete.
	(d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
	(dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.

	* glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
	client method generation until we can fix it...

	* tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
	(load_from_service_thread_func): Ditto.

	* tools/dbus-names-model.c (struct NamesModel): Hold
	DBusGProxyCall.
	(have_names_notify): Update prototype, use
	dbus_g_proxy_cancel_call.
	(names_model_reload): Update for new dbus_g_proxy_begin_call API.

	* tools/dbus-monitor.c (filter_func): Update for print_message
	API change.

	* test/glib/test-dbus-glib.c: Add more tests for async
	invocations.  Update many begin_call/end_call pairs to just use
	dbus_g_proxy_call.

	* tools/dbus-send.c (main): Add --print-reply=literal mode.  This
	allows us to dump print-introspect.c.

	* tools/dbus-print-message.h (print_message): Add literal argument
	to print_message which is intended to allow printing arguments without
	metadata like "string=".

	* tools/dbus-print-message.c (print_iter): Add literal argument.
	(print_message): Allow printing string messages literally.
2005-07-06 21:27:53 +00:00
Colin Walters
42c4a46d66 2005-07-05 Colin Walters <walters@verbum.org>
* glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
	Remove value refcount leak, original patch from Jorn Baayen
	<jorn@openedhand.com>.  Also remove useless extra value in favor
	of prepending to value array directly.
2005-07-05 16:39:56 +00:00
Colin Walters
22e9820814 2005-07-02 Colin Walters <walters@verbum.org>
* glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2005-07-02 06:05:23 +00:00
Colin Walters
249c5ea945 2005-07-01 Colin Walters <walters@verbum.org>
Patch from Jonathan Matthew <jonathan@kaolin.hn.org>

	* glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
	(dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
	G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
	and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2005-07-01 15:44:12 +00:00
Colin Walters
03d040311a 2005-06-30 Colin Walters <walters@verbum.org>
* test/glib/test-dbus-glib.c:
	* test/glib/test-service-glib.c:
	* test/glib/test-service-glib.xml: Update tests for new error
	setting bits, also add async tests (patch from Ross Burton).

	* test/glib/Makefile.am (test_service_glib_LDADD): Add
	DBUS_GLIB_THREADS_LIBS.

	* glib/dbus-gproxy.c (get_name_owner)
	(dbus_g_pending_call_end_valist): Ditto.

	* glib/dbus-gobject.c (error_metadata): New mapping from GError
	domain (GQuark) to DBusGErrorInfo.
	(gerror_domaincode_to_dbus_error_name): Attempt to look up error
	quark in error_metadata.  Take message interface as default
	error message interface.
	(gerror_to_dbus_error_message): Pass message interface.
	(dbus_set_g_error): Resurrected.
	(dbus_g_error_info_free): New function.
	(dbus_g_object_type_install_info): Use g_type_class_ref instead
	of _peek to actually create the object class if it hasn't been
	created yet.
	(dbus_g_error_domain_register): New function.

	* glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.

	* glib/dbus-gparser.c (validate_signature): Ditto.

	* dbus/dbus-glib.h (dbus_g_error_set): Delete.
	(dbus_g_error_domain_register): Prototype.

	* glib/dbus-glib.c (dbus_g_error_set): Delete.
	Update tests.
2005-06-30 18:22:10 +00:00
Colin Walters
b3c42d2264 2005-06-29 Colin Walters <walters@verbum.org>
* dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
	DBUS_TYPE_G_OBJECT_PATH.

	* glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
	for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
	be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
	(dbus_g_object_path_get_g_type): New function.
	(dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
	to DBUS_TYPE_G_OBJECT_PATH by default.
	(demarshal_proxy): Remove unused name variable.
	(demarshal_object_path, marshal_object_path): New functions.
	(demarshal_proxy_array, marshal_proxy_array): Delete.

	* glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
	DBUS_TYPE_G_OBJECT_PATH to char *.
	(dbus_g_type_get_lookup_function): Map builtin
	DBUS_TYPE_G_OBJECT_PATH.

	* test/glib/test-dbus-glib.c
	* test/glib/test-service-glib.c (my_object_objpath):
	Adapt tests to new object path marshalling.
2005-06-29 23:52:35 +00:00
John (J5) Palmieri
d8dd432f39 * configure.in: force check for Python >= 2.4 2005-06-29 19:12:17 +00:00
Colin Walters
a15a5811d7 2005-06-29 Colin Walters <walters@verbum.org>
Patch from Ross Burton <ross@openedhand.com>

	* glib/dbus-gobject.c (invoke_object_method): Unset object
	value in all cases, not only in async case.
2005-06-29 17:02:33 +00:00
Colin Walters
ab1ae1f4e2 2005-06-29 Colin Walters <walters@verbum.org>
* glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
	name_call for keeping track of any outgoing GetNameOwner call.
	Also add for_owner and associated.
	(struct _DBusGProxyManager): Add owner_names, which is hash table
	that maps a base name to a list of names it owns (that we're
	interested in).  Add pending_nameowner_calls which is a list of
	all outstanding GetNameOwner; avoids us having to iterate over
	every proxy.  Add unassociated_proxies which keeps track of name
	proxies with no associated name owner.
	(dbus_g_proxy_manager_unref): Destroy owner_names.
	(struct DBusGProxyNameOwnerInfo): New struct for keeping track of
	name refcounts.
	(find_name_in_info, name_owner_foreach)
	(dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
	(dbus_g_proxy_manager_monitor_name_owner)
	(dbus_g_proxy_manager_unmonitor_name_owner)
	(unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
	New functions; they manipulate the owner_names mapping.
	(got_name_owner_cb): New function.
	(get_name_owner): New function, extracted from
	dbus_g_proxy_new_for_name_owner.
	(dbus_g_proxy_manager_register): For now we need to keep track of
	all NameOwnerChanged.  Also if the proxy is for a name, if we
	don't already know the name owner, queue a new GetNameOwner
	request and add it to our list of unassociated proxies.  Otherwise
	inc the refcount.
	(dbus_g_proxy_manager_unregister): If this proxy is for a name,
	cancel any pending GetNameOwner call, etc.
	(dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
	the owner_names mapping to look up the current names for the
	signal source, and dispatch to any proxies for that name.
	(dbus_g_proxy_new): Initialize new members.
	(dbus_g_proxy_new_for_name): Delete unused proxy variable.
	(dbus_g_proxy_new_for_name_owner): Use get_name_owner.
	(dbus_g_pending_call_end_valist): New function, extracted from
	dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
	but want to use the GLib infrastructure.  Also note how many
	arguments in reply were over.
	(dbus_g_pending_call_end): New function, just call
	dbus_g_pending_call_end_valist.
	(dbus_g_proxy_end_call_internal): Just call
	dbus_g_pending_call_end_valist.

	* glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
	of builtin marshaller for STRING_STRING_STRING.

	* test/glib/test-dbus-glib.c:
	* test/glib/test-service-glib.c:
	* test/glib/test-service-glib.xml:
	Extend tests to cover name proxies, destruction of owner proxies,
	etc.

	* glib/examples/example-signal-recipient.c
	(dbus_g_proxy_new_for_name_owner): Create a name proxy.

	* tools/dbus-send.c (main): Print D-BUS error name in addition
	to message.
2005-06-29 16:59:00 +00:00
John (J5) Palmieri
a3406a8279 * python/dbus_bindings.pyx.in (cunregister_function_handler,
cmessage_function_handler): Patch from
  Anthony Baxter <anthony@interlink.com.au> fixes threading problems
  by using the Py_GILState_Ensure/Release to synchronize with the
  python runtime.
2005-06-28 19:36:51 +00:00
Ray Strode
c17dc995ce 2005-06-28 Ray Strode <rstrode@redhat.com>
*  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
	babysitter helper process on last unref, bug #2813.
2005-06-28 15:14:21 +00:00
Colin Walters
0c6f2bbff5 2005-06-27 Colin Walters <walters@verbum.org>
* test/glib/test-dbus-glib.c:
	* test/glib/test-service-glib.c:
	* test/glib/test-service-glib.xml:
	Test hash table signal emitting.

	* glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
	types to their fundamental basis types, since this is what
	marshallers operate on.  Also add an entry for VOID__BOXED.
	(dbus_g_object_register_marshaller_array): Convert to fundamental.
2005-06-27 18:20:20 +00:00
Havoc Pennington
3427ef3d39 2005-06-26 Havoc Pennington <hp@redhat.com>
* doc/dbus-tutorial.xml: fix names of interface/service/path, fix
	from Don Park
2005-06-27 01:37:03 +00:00