Commit graph

945 commits

Author SHA1 Message Date
Olivier Andrieu
bbc0cee637 2005-09-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
* dbus/dbus-object-tree.c (find_subtree_recurse):
	a couple of optimizations (bug #710):
	- do a binary search in the tree
	- insert a new child at the right place directly, no need for
	  qsort anymore
	- do the "double alloc" thing when allocating children
2005-09-05 19:37:19 +00:00
John (J5) Palmieri
236c7b7384 * python/Makefile.am: Break on pyrexc errors instead of ignoring them
* python/dbus_bindings.pyx: Memory management foo
(global): remove hacky _user_data_references global list
(GIL_safe_cunregister_function_handler): userdata now stuffed into
tuples. Unref user_data
(GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
(Connection::__del__): Remove and replace with __dealloc__ method
(Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
to keep tuple from being deallocated instead of the global var hack
(Connection::register_object_path): Stuff user_data into a tuple.
Use Py_INCREF to keep tuple from being deallocated instead of the
global var hack
(Connection::register_fallback): Stuff user_data into a tuple.
Use Py_INCREF to keep tuple from being deallocated instead of the
global var hack
(GIL_safe_pending_call_notification): Don't unref the message
because it gets unreffed when going out of scope.  Py_XDECREF
the user_data
(PendingCall::__del__): Remove and replace with __dealloc__ method
(PendingCall::set_notify): ref the pending call because we will
need it to stick around for when the notify callback gets called
(Message::__del__): Remove and replace with __dealloc__ method

* python/dbus_glib_bindings.pyx (init_gthreads): Changed to
gthreads_init to match up with the dbus call

* python/glib.py (init_threads): Changed to threads_init to match
up with gobject.threads_init().  init_threads is kept for backwards
compat but will most likely be deprecated in the future

* test/python/test-client.py:
- revamp to use Python's unittest functionality
- add async call tests
- setup threads in glib and dbus so we make sure locks are working
2005-09-01 01:22:06 +00:00
John (J5) Palmieri
1ea5d42dc0 * python/dbus_bindings.pyx
(_pending_call_notification, cunregister_function_handler,
cmessage_function_handler): All callback functions have been rearranged
to workaround a bug in Pyrex when working with the GIL which is Python's
global lock when dealing with threads.  They have been split into
a wrapper function (which assumes the name of the old function) and
a _GIL_safe_<function name> function which contains the functionality
of the old function.  This ensures that Pyrex does not write code
the lock is released.
2005-08-31 02:18:43 +00:00
John (J5) Palmieri
46a1e648fe * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
GIL global lock when calling back into Python
2005-08-30 15:21:04 +00:00
John (J5) Palmieri
b701a78aca * Release 0.36.2
* Add Havoc's patch that never got applied to HEAD (Bug #2436):

* bus/policy.c (bus_policy_allow_user): change default "user is
allowed" to be "user has same uid as the bus itself"; any
allow/deny rules will override.

* bus/session.conf.in: don't allow all users, since now by default
the user that ran the bus can connect.
2005-08-29 20:19:19 +00:00
Colin Walters
b2d215da38 2005-08-26 Colin Walters <walters@verbum.org>
* tools/dbus-print-message.c (print_message): Flush stdout
	after printing a message, so that redirecting to a file, then
	hitting Ctrl-C works.
2005-08-26 15:41:31 +00:00
John (J5) Palmieri
18170dd986 * s/Message(_create=0)/EmptyMessage everywhere else
* test/python/test-{server|client}.py: add the python/.libs directory
  to the lookup path so dbus_bindings and dbus_glib_bindings don't
  get picked up from the system
2005-08-26 04:23:33 +00:00
John (J5) Palmieri
64e468d21c * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
(EmptyMessage): new class that subclasses Message.  This is a workaround
 to a Pyrex bug that fails to call __del__ when the Message object goes out
 of scope.  For some reason subclassing Message fixes this bug
 (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2005-08-26 03:09:59 +00:00
Colin Walters
c2ff73e5c6 2005-08-25 Colin Walters <walters@verbum.org>
* glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
	to Ryan Lortie for the suggestion.
2005-08-26 02:00:37 +00:00
John (J5) Palmieri
781b0cdef9 * test/python: Add python regression test
* configure.in: Add test/python/Makefile

* test/Makefile.am: Add the python directory to SUBDIRS
2005-08-25 00:20:41 +00:00
John (J5) Palmieri
329ac511e9 - Merged changed from the DBUS_0_36_1 bugfix branch 2005-08-24 19:58:32 +00:00
John (J5) Palmieri
f94c475bfc * Release 0.36 2005-08-23 20:07:30 +00:00
Colin Walters
772cd2a510 *** empty log message *** 2005-08-23 19:48:42 +00:00
Colin Walters
f837e62f50 2005-08-23 Colin Walters <walters@verbum.org>
* test/glib/Makefile.am (test_profile_LDADD): Don't multiply-define
	EXTRA_DIST.
2005-08-23 19:48:30 +00:00
John (J5) Palmieri
54988532f4 * python/dbus_glib_bindings.pyx: reorder imports and c definitions
to fix some wranings. We now use dbus_bindings.DBusConnection instead
of defining DBusConnection ourselves.
2005-08-23 17:43:59 +00:00
John (J5) Palmieri
c7be77449d * python/dbus.pth: New path file to fix up problems when installing
c libraries to lib64 and python files to lib.

	* python/Makefile.am: install dbus.pth in the correct spot
2005-08-18 20:57:28 +00:00
John (J5) Palmieri
8d1e7dfeb9 * ChangeLog: clean up my last entry a bit
* doc/introspect.xsl: New stylesheet for converting introspection data
	into browser renderable xhtml. Contributed by Lennart Poettering.

	* doc/introspect.dtd: Fixups in the introspect format from Lennart
	Poettering.

	* doc/dbus-tutorial.xml:
	- Add Colin Walter to the Authors section for authoring the GLib
	section
	- Add descriptions of the new signature and type functionality
	in the Python complex type mapping section
	- Add a sidenote on the new args matching functionality in
	the Python bindings
	- Fixed up some of the examples to use the gobject.MainLoop
	instead of gtk.main

	* python/_dbus.py:
	(Bus::_create_args_dict): New. Converts a hash of arg matches
	to a more useable format
	(Bus::add_signal_receiver): add a **keywords parameter for catching
	arg match parameters
	(Bus::remove_signal_receiver): add a **keywords parameter for catching
	arg match parameters

	* python/matchrules.py:
	(MatchTree::exec_matches): Check for arg matches
	(SignalMatchRule::add_args_match): New method
	(SignalMatchRule::execute): Added args_list parameter as an optimization
	so we don't have to marshal the args more than once
	(SignalMatchRule::match_args_from_list): New method that checks to see
	if the rule's arg matches match an argument list.  Only arguments
	set in the rule are checked.
	(SignalMatchRule::match_args_from_rule): New method that checks to see
	if the rule's arg matches match another rule's.  All args have to match
	in order for this method to return true.  If either rule has more args
	then it is not a match.
	(SignalMatchRule::is_match): Add args match
	(SignalMatchRule::repr): Add args to the final output if they exist
2005-08-18 04:04:57 +00:00
Ross Burton
e5268be6b3 Unref message and protect against NULL 2005-08-17 17:30:45 +00:00
John (J5) Palmieri
ce84a7761a * python/__init__.py: Version updated (0, 43, 0)
* python/dbus_bindings.pyx:
	- Fixed type objects to have self passed into __init__
	- Added the Variant type
	- Add the ability to specify types or signatures for Array, Variant and Dictionary
	- (Connection::send_with_reply_handlers): return a PendingCall object
	- (_pending_call_notification): handle the case when an error is returned
	without an error message in the body
	- (MessageIter::get_boolean): return True or False instead of an integer
	- (MessageIter::python_value_to_dbus_sig): add direct checking of types and
	add checks for objects with embeded signatures or types (Array, Variant and
	Dictionary)
	- (MessageIter::append_byte): handle case when the value is a dbus.Byte
	- (MessageIter::append_dict): handle embeded types or signatures
	- (MessageIter::append_array): handle embeded types or signatures
	- (MessageIter::append_variant): new method

	* python/proxies.py:
	- (DeferedMethod): New. Dummy executable object used when queuing calls blocking on
	introspection data
	- (ProxyMethod::__call__): add the timeout keyword for specifying longer or
	shorter timeouts for method calls
	- (ProxyObject): Add first pass at an introspection state machine
	- (ProxyObject::__init__): Add introspect keyword for turing off an on
	introspection.
	- (ProxyObject::_Introspect): Internal Introspect call that bypasses the usual
	mechanisms for sending messages.  This is to avoid a deadlock where the Intospect
	call would be queued waiting for the Introspect call to finish ;-)
	- (ProxyObject::_introspect_reply_handler): New.  This method is called when
	introspection returns with no error
	- (ProxyObject::_introspect_error_handler): New.  This method is called when
	introspection encounters an error
	- (ProxyObject::__getattr__): Code to handle different introspection states.
	Queue async calls or block blocking calls if we are introspecting.  Pass through
	as normal if we are not or are done with introspecting.

	* python/service.py: Import signal and method from decorators.py

	* python/types.py: Add Variant type
2005-08-16 22:54:04 +00:00
Colin Walters
9746c7a978 2005-08-16 Colin Walters <walters@verbum.org>
* glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
	DBusError message is NULL.
2005-08-16 21:26:12 +00:00
Havoc Pennington
f20cee8e12 2005-08-09 Havoc Pennington <hp@redhat.com>
* dbus/dbus-errors.c: apply patch from Timo Teras to make a
	malloc'd copy of the name parameter
2005-08-09 21:36:55 +00:00
Havoc Pennington
2e3d1ea653 2005-08-09 Havoc Pennington <hp@redhat.com>
* dbus/dbus-message.c (dbus_message_set_reply_serial): print
	warning if the reply serial is set to 0
2005-08-09 17:38:15 +00:00
Colin Walters
8c7bbdbaea 2005-08-04 Colin Walters <walters@verbum.org>
* glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
	(dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
	(dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
	(dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
	(dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
	(dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
	(dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
	* glib/dbus-gvalue.h (dbus_g_value_types_init)
	(dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
	(dbus_gvalue_demarshal_message, dbus_gvalue_marshal):

	Prefix name with _ to ensure they're not exported.  All callers
	updated.

	* glib/dbus-gvalue.c (typecode_to_gtype)
	(dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
	(signature_iter_to_g_type_dict)
	(signature_iter_to_g_type_array)
	(dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
	(dbus_gtypes_from_arg_signature):
	Move to dbus-gsignature.c.

	* glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
	dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
	(dbus_binding_tool_output_glib_client): Ditto.

	* glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
	and dbus-gsignature.h

	* test/glib/test-service-glib.c (my_object_rec_arrays): Delete
	unused variable.
2005-08-04 15:49:30 +00:00
Colin Walters
bb8736c968 2005-08-03 Colin Walters <walters@verbum.org>
* glib/dbus-gobject.c: Add tests on hardcoded object info; this should
	catch any incompatible changes accidentally made.
2005-08-03 23:21:49 +00:00
Havoc Pennington
e3fa86b54a 2005-08-03 Havoc Pennington <hp@redhat.com>
* dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
	typo, from Julien Puydt

	* bus/connection.c (bus_connection_disconnected): we were always
	doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2005-08-03 17:42:56 +00:00
Colin Walters
9a4c459076 2005-08-01 Colin Walters <walters@verbum.org>
Patch from Joe Markus Clarke:

	* glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
	use-after-free.
2005-08-01 16:12:53 +00:00
Colin Walters
1889d97d4e 2005-08-01 Colin Walters <walters@verbum.org>
Patch from Joe Markus Clarke:

	* tools/dbus-send.c (main):

	Don't use C99 style initializers (bug #3933).
2005-08-01 16:10:34 +00:00
Colin Walters
932272884c 2005-08-01 Colin Walters <walters@verbum.org>
Patch from Joe Markus Clarke:

	* glib/dbus-gvalue.c (dbus_g_value_types_init):
	* glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init)
	* glib/dbus-gobject.c (write_interface):

	Don't use C99 style initializers (bug #3933).
2005-08-01 16:07:19 +00:00
Havoc Pennington
bd2a59b1d8 2005-07-31 Havoc Pennington <hp@redhat.com>
* tools/dbus-viewer.c (load_child_nodes): fix invocation of
	dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2005-07-31 14:58:42 +00:00
Havoc Pennington
cb81ac7ede 2005-07-30 Havoc Pennington <hp@redhat.com>
* fix a bunch of Doxygen warnings and mistakes
2005-07-31 02:09:15 +00:00
Havoc Pennington
c2764e0b9f 2005-07-30 Havoc Pennington <hp@redhat.com>
* dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
	DBUS_BUILD_TESTS since it's now used in production code
2005-07-30 15:17:29 +00:00
Havoc Pennington
ba04a545aa 2005-07-29 Havoc Pennington <hp@redhat.com>
* test/glib/test-profile.c (write_junk): initialize the junk
	buffer so valgrind doesn't have a breakdown
2005-07-30 01:33:55 +00:00
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
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
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