platform/upstream/dbus.git
19 years ago2005-09-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
Olivier Andrieu [Mon, 5 Sep 2005 19:37:19 +0000 (19:37 +0000)]
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

19 years ago* python/Makefile.am: Break on pyrexc errors instead of ignoring them
John (J5) Palmieri [Thu, 1 Sep 2005 01:22:06 +0000 (01:22 +0000)]
* 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

19 years ago* python/dbus_bindings.pyx
John (J5) Palmieri [Wed, 31 Aug 2005 02:18:43 +0000 (02:18 +0000)]
* 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.

19 years ago* python/dbus_bindings.pyx (_pending_call_notification): Obtain the
John (J5) Palmieri [Tue, 30 Aug 2005 15:21:04 +0000 (15:21 +0000)]
* python/dbus_bindings.pyx (_pending_call_notification): Obtain the
  GIL global lock when calling back into Python

19 years ago* Release 0.36.2
John (J5) Palmieri [Mon, 29 Aug 2005 20:19:19 +0000 (20:19 +0000)]
* 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.

19 years agofixed two typos in API docs
Harald Fernengel [Fri, 26 Aug 2005 17:34:59 +0000 (17:34 +0000)]
fixed two typos in API docs

19 years ago2005-08-26 Colin Walters <walters@verbum.org>
Colin Walters [Fri, 26 Aug 2005 15:41:31 +0000 (15:41 +0000)]
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.

19 years ago* s/Message(_create=0)/EmptyMessage everywhere else
John (J5) Palmieri [Fri, 26 Aug 2005 04:23:33 +0000 (04:23 +0000)]
* 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

19 years ago* python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
John (J5) Palmieri [Fri, 26 Aug 2005 03:09:59 +0000 (03:09 +0000)]
* 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

19 years ago2005-08-25 Colin Walters <walters@verbum.org>
Colin Walters [Fri, 26 Aug 2005 02:00:37 +0000 (02:00 +0000)]
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.

19 years agolinks to some pending tasks
Havoc Pennington [Thu, 25 Aug 2005 03:15:46 +0000 (03:15 +0000)]
links to some pending tasks

19 years ago* forgot to add the service file
John (J5) Palmieri [Thu, 25 Aug 2005 00:27:35 +0000 (00:27 +0000)]
* forgot to add the service file

19 years ago* test/python: Add python regression test
John (J5) Palmieri [Thu, 25 Aug 2005 00:20:41 +0000 (00:20 +0000)]
* test/python: Add python regression test

* configure.in: Add test/python/Makefile

* test/Makefile.am: Add the python directory to SUBDIRS

19 years ago- Merged changed from the DBUS_0_36_1 bugfix branch
John (J5) Palmieri [Wed, 24 Aug 2005 19:58:32 +0000 (19:58 +0000)]
- Merged changed from the DBUS_0_36_1 bugfix branch

19 years ago- Bumped version
John (J5) Palmieri [Tue, 23 Aug 2005 20:11:39 +0000 (20:11 +0000)]
- Bumped version

19 years ago* Release 0.36 dbus-0.36
John (J5) Palmieri [Tue, 23 Aug 2005 20:07:30 +0000 (20:07 +0000)]
* Release 0.36

19 years ago*** empty log message ***
Colin Walters [Tue, 23 Aug 2005 19:48:42 +0000 (19:48 +0000)]
*** empty log message ***

19 years ago2005-08-23 Colin Walters <walters@verbum.org>
Colin Walters [Tue, 23 Aug 2005 19:48:30 +0000 (19:48 +0000)]
2005-08-23  Colin Walters  <walters@verbum.org>

* test/glib/Makefile.am (test_profile_LDADD): Don't multiply-define
EXTRA_DIST.

19 years ago* python/dbus_glib_bindings.pyx: reorder imports and c definitions
John (J5) Palmieri [Tue, 23 Aug 2005 17:43:59 +0000 (17:43 +0000)]
* 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.

19 years ago * python/dbus.pth: New path file to fix up problems when installing
John (J5) Palmieri [Thu, 18 Aug 2005 20:57:28 +0000 (20:57 +0000)]
* 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

19 years ago * ChangeLog: clean up my last entry a bit
John (J5) Palmieri [Thu, 18 Aug 2005 04:04:57 +0000 (04:04 +0000)]
* 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

19 years agoUnref message and protect against NULL
Ross Burton [Wed, 17 Aug 2005 17:30:45 +0000 (17:30 +0000)]
Unref message and protect against NULL

19 years ago * python/__init__.py: Version updated (0, 43, 0)
John (J5) Palmieri [Tue, 16 Aug 2005 22:54:04 +0000 (22:54 +0000)]
* 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

19 years ago2005-08-16 Colin Walters <walters@verbum.org>
Colin Walters [Tue, 16 Aug 2005 21:26:12 +0000 (21:26 +0000)]
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.

19 years ago2005-08-09 Havoc Pennington <hp@redhat.com>
Havoc Pennington [Tue, 9 Aug 2005 21:36:55 +0000 (21:36 +0000)]
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

19 years ago2005-08-09 Havoc Pennington <hp@redhat.com>
Havoc Pennington [Tue, 9 Aug 2005 17:38:15 +0000 (17:38 +0000)]
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

19 years ago2005-08-04 Colin Walters <walters@verbum.org>
Colin Walters [Thu, 4 Aug 2005 15:49:30 +0000 (15:49 +0000)]
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.

19 years ago2005-08-03 Colin Walters <walters@verbum.org>
Colin Walters [Wed, 3 Aug 2005 23:21:49 +0000 (23:21 +0000)]
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.

19 years ago2005-08-03 Havoc Pennington <hp@redhat.com>
Havoc Pennington [Wed, 3 Aug 2005 17:42:56 +0000 (17:42 +0000)]
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

19 years agoSmall docu update
Waldo Bastian [Tue, 2 Aug 2005 11:26:59 +0000 (11:26 +0000)]
Small docu update

19 years agosome docs cleanups
Havoc Pennington [Mon, 1 Aug 2005 18:59:02 +0000 (18:59 +0000)]
some docs cleanups

19 years ago2005-08-01 Colin Walters <walters@verbum.org>
Colin Walters [Mon, 1 Aug 2005 16:12:53 +0000 (16:12 +0000)]
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.

19 years ago2005-08-01 Colin Walters <walters@verbum.org>
Colin Walters [Mon, 1 Aug 2005 16:10:34 +0000 (16:10 +0000)]
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).

19 years ago2005-08-01 Colin Walters <walters@verbum.org>
Colin Walters [Mon, 1 Aug 2005 16:07:19 +0000 (16:07 +0000)]
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).

19 years ago2005-07-31 Havoc Pennington <hp@redhat.com>
Havoc Pennington [Sun, 31 Jul 2005 14:58:42 +0000 (14:58 +0000)]
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

19 years ago2005-07-30 Havoc Pennington <hp@redhat.com>
Havoc Pennington [Sun, 31 Jul 2005 02:09:15 +0000 (02:09 +0000)]
2005-07-30  Havoc Pennington  <hp@redhat.com>

* fix a bunch of Doxygen warnings and mistakes

19 years agoadd "publish introspect dtd" to TODO for 1.0
Havoc Pennington [Sun, 31 Jul 2005 01:38:55 +0000 (01:38 +0000)]
add "publish introspect dtd" to TODO for 1.0

19 years ago2005-07-30 Havoc Pennington <hp@redhat.com>
Havoc Pennington [Sat, 30 Jul 2005 15:17:29 +0000 (15:17 +0000)]
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

19 years ago2005-07-29 Havoc Pennington <hp@redhat.com>
Havoc Pennington [Sat, 30 Jul 2005 01:33:55 +0000 (01:33 +0000)]
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

19 years agoremove that todo item
Havoc Pennington [Fri, 29 Jul 2005 17:46:58 +0000 (17:46 +0000)]
remove that todo item

19 years ago2005-07-29 Havoc Pennington <hp@redhat.com>
Havoc Pennington [Fri, 29 Jul 2005 17:43:30 +0000 (17:43 +0000)]
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

19 years agoRemove unused condvar
Ross Burton [Fri, 29 Jul 2005 14:43:59 +0000 (14:43 +0000)]
Remove unused condvar

19 years agoReduce size of message cache
Ross Burton [Wed, 27 Jul 2005 19:38:41 +0000 (19:38 +0000)]
Reduce size of message cache

19 years agoRemove matchers when all proxies are removed
Ross Burton [Mon, 25 Jul 2005 19:16:22 +0000 (19:16 +0000)]
Remove matchers when all proxies are removed

19 years ago2005-07-24 Colin Walters <walters@verbum.org>
Colin Walters [Sun, 24 Jul 2005 18:04:23 +0000 (18:04 +0000)]
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.

19 years ago* python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
John (J5) Palmieri [Wed, 20 Jul 2005 14:15:08 +0000 (14:15 +0000)]
* 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>)

19 years agoadd missing entry
Colin Walters [Tue, 19 Jul 2005 22:18:54 +0000 (22:18 +0000)]
add missing entry

19 years ago* Merge DBUS_0_35_2 branch into HEAD
John (J5) Palmieri [Sun, 17 Jul 2005 21:02:56 +0000 (21:02 +0000)]
* 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

19 years ago2005-07-16 Colin Walters <walters@verbum.org>
Colin Walters [Sat, 16 Jul 2005 17:34:08 +0000 (17:34 +0000)]
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.

19 years ago2005-07-15 Colin Walters <walters@verbum.org>
Colin Walters [Fri, 15 Jul 2005 22:02:25 +0000 (22:02 +0000)]
2005-07-15  Colin Walters  <walters@verbum.org>

* doc/TODO: Add note about convenience wrappers.

19 years ago* configure.in: upped version to 0.36
John (J5) Palmieri [Fri, 15 Jul 2005 20:35:25 +0000 (20:35 +0000)]
* configure.in: upped version to 0.36

19 years ago* Update to 0.35 dbus-0.35
John (J5) Palmieri [Fri, 15 Jul 2005 20:33:35 +0000 (20:33 +0000)]
* Update to 0.35

19 years ago* glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
John (J5) Palmieri [Fri, 15 Jul 2005 20:28:05 +0000 (20:28 +0000)]
* 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

19 years ago* glib/example/Makefile.am: Fix a typo which cause make distcheck
John (J5) Palmieri [Fri, 15 Jul 2005 19:15:05 +0000 (19:15 +0000)]
* glib/example/Makefile.am: Fix a typo which cause make distcheck
  to fail

19 years ago* python/examples/example-service.py,
John (J5) Palmieri [Fri, 15 Jul 2005 18:09:59 +0000 (18:09 +0000)]
* python/examples/example-service.py,
  python/examples/example-signal-emitter.py: Fixed up examples
  for API changes

19 years ago* python/__init__.py: Upped to version (0,42,0) because of
John (J5) Palmieri [Fri, 15 Jul 2005 17:33:17 +0000 (17:33 +0000)]
* python/__init__.py: Upped to version (0,42,0) because of
  the API change

19 years ago* ChangeLog: fix date in last entry
John (J5) Palmieri [Fri, 15 Jul 2005 17:28:35 +0000 (17:28 +0000)]
* 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)

19 years ago* bus/dispatch.c, test/test-service.c: Add testcase
John (J5) Palmieri [Fri, 15 Jul 2005 15:21:43 +0000 (15:21 +0000)]
* 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

19 years agoDon't leak messages when calling methods
Ross Burton [Fri, 15 Jul 2005 13:25:48 +0000 (13:25 +0000)]
Don't leak messages when calling methods

19 years ago2005-07-15 Colin Walters <walters@verbum.org>
Colin Walters [Fri, 15 Jul 2005 04:04:43 +0000 (04:04 +0000)]
2005-07-15  Colin Walters  <walters@verbum.org>

* bus/selinux.c (bus_selinux_append_context): Wrap in
HAVE_SELINUX.

19 years ago* python/_dbus.py (Bus::remove_signal_receiver):
John (J5) Palmieri [Fri, 15 Jul 2005 02:15:08 +0000 (02:15 +0000)]
* 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

19 years ago2005-07-14 Colin Walters <walters@verbum.org>
Colin Walters [Thu, 14 Jul 2005 21:45:42 +0000 (21:45 +0000)]
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.

19 years agoChecking in Rodrigo's patch along with my fixes to the patch
John (J5) Palmieri [Thu, 14 Jul 2005 20:44:15 +0000 (20:44 +0000)]
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.

19 years ago2005-07-13 David Zeuthen <davidz@redhat.com>
David Zeuthen [Wed, 13 Jul 2005 21:13:16 +0000 (21:13 +0000)]
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

19 years ago* python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
John (J5) Palmieri [Wed, 13 Jul 2005 18:22:35 +0000 (18:22 +0000)]
* 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

19 years ago2005-07-12 Colin Walters <walters@verbum.org>
Colin Walters [Tue, 12 Jul 2005 21:09:54 +0000 (21:09 +0000)]
2005-07-12  Colin Walters  <walters@verbum.org>

Patch from Jim Gettys <Jim.Gettys@hp.com>.

* tools/dbus-launch.c: Include sys/select.h.

19 years ago* python/dbus_bindings.pyx.in: removed
John (J5) Palmieri [Tue, 12 Jul 2005 18:16:07 +0000 (18:16 +0000)]
* 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"

19 years ago2005-07-12 Colin Walters <walters@verbum.org>
Colin Walters [Tue, 12 Jul 2005 17:57:04 +0000 (17:57 +0000)]
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.

19 years ago2005-07-11 Colin Walters <walters@verbum.org>
Colin Walters [Mon, 11 Jul 2005 16:12:50 +0000 (16:12 +0000)]
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.

19 years ago2005-07-10 Colin Walters <walters@verbum.org>
Colin Walters [Sun, 10 Jul 2005 22:54:19 +0000 (22:54 +0000)]
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.

19 years ago2005-07-09 Colin Walters <walters@verbum.org>
Colin Walters [Sat, 9 Jul 2005 18:54:45 +0000 (18:54 +0000)]
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.

19 years ago2005-07-09 Colin Walters <walters@verbum.org>
Colin Walters [Sat, 9 Jul 2005 17:52:52 +0000 (17:52 +0000)]
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.

19 years ago2005-07-08 Colin Walters <walters@verbum.org>
Colin Walters [Sat, 9 Jul 2005 01:46:51 +0000 (01:46 +0000)]
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.

19 years agoMake async bindings work again
Ross Burton [Fri, 8 Jul 2005 17:02:42 +0000 (17:02 +0000)]
Make async bindings work again

19 years ago2005-07-08 Colin Walters <walters@verbum.org>
Colin Walters [Fri, 8 Jul 2005 16:41:57 +0000 (16:41 +0000)]
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.

19 years ago2005-07-08 Colin Walters <walters@verbum.org>
Colin Walters [Fri, 8 Jul 2005 16:25:39 +0000 (16:25 +0000)]
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.

19 years ago2005-07-08 Joe Shaw <joeshaw@novell.com>
Joe Shaw [Fri, 8 Jul 2005 14:36:22 +0000 (14:36 +0000)]
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.

19 years ago2005-07-06 Colin Walters <walters@verbum.org>
Colin Walters [Wed, 6 Jul 2005 21:27:53 +0000 (21:27 +0000)]
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.

19 years ago2005-07-05 Colin Walters <walters@verbum.org>
Colin Walters [Tue, 5 Jul 2005 16:39:56 +0000 (16:39 +0000)]
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.

19 years ago2005-07-02 Colin Walters <walters@verbum.org>
Colin Walters [Sat, 2 Jul 2005 06:05:23 +0000 (06:05 +0000)]
2005-07-02  Colin Walters  <walters@verbum.org>

* glib/dbus-gmain.c (_dbus_gmain_test): Fix test.

19 years ago2005-07-01 Colin Walters <walters@verbum.org>
Colin Walters [Fri, 1 Jul 2005 15:44:12 +0000 (15:44 +0000)]
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.

19 years ago2005-06-30 Colin Walters <walters@verbum.org>
Colin Walters [Thu, 30 Jun 2005 18:22:10 +0000 (18:22 +0000)]
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.

19 years ago2005-06-29 Colin Walters <walters@verbum.org>
Colin Walters [Wed, 29 Jun 2005 23:52:35 +0000 (23:52 +0000)]
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.

19 years ago* configure.in: force check for Python >= 2.4
John (J5) Palmieri [Wed, 29 Jun 2005 19:12:17 +0000 (19:12 +0000)]
* configure.in: force check for Python >= 2.4

19 years ago2005-06-29 Colin Walters <walters@verbum.org>
Colin Walters [Wed, 29 Jun 2005 17:02:33 +0000 (17:02 +0000)]
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.

19 years ago2005-06-29 Colin Walters <walters@verbum.org>
Colin Walters [Wed, 29 Jun 2005 16:59:00 +0000 (16:59 +0000)]
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.

19 years ago* python/dbus_bindings.pyx.in (cunregister_function_handler,
John (J5) Palmieri [Tue, 28 Jun 2005 19:36:51 +0000 (19:36 +0000)]
* 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.

19 years ago2005-06-28 Ray Strode <rstrode@redhat.com>
Ray Strode [Tue, 28 Jun 2005 15:14:21 +0000 (15:14 +0000)]
2005-06-28  Ray Strode  <rstrode@redhat.com>

*  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
babysitter helper process on last unref, bug #2813.

19 years ago2005-06-27 Colin Walters <walters@verbum.org>
Colin Walters [Mon, 27 Jun 2005 18:20:20 +0000 (18:20 +0000)]
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.

19 years ago2005-06-26 Havoc Pennington <hp@redhat.com>
Havoc Pennington [Mon, 27 Jun 2005 01:37:03 +0000 (01:37 +0000)]
2005-06-26  Havoc Pennington  <hp@redhat.com>

* doc/dbus-tutorial.xml: fix names of interface/service/path, fix
from Don Park

19 years ago2005-06-26 Colin Walters <walters@verbum.org>
Colin Walters [Sun, 26 Jun 2005 17:02:09 +0000 (17:02 +0000)]
2005-06-26  Colin Walters  <walters@verbum.org>

* glib/dbus-glib.c (dbus_set_g_error): Delete.
(dbus_g_error_set): New public function from its ashes; used by
both service-side method implementation and GLib bindings
internals.
(dbus_g_error_has_name, dbus_g_error_get_name): New function.
(_dbus_glib_test): Add some tests.

* test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.

* test/glib/test-service-glib.c (my_object_throw_error): Use
dbus_g_error_set.

* glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
errors thrown by dbus_g_error_set.

* glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.

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

* glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner)
(dbus_g_proxy_end_call_internal): Ditto.

* glib/Makefile.am: Generate dbus-glib-error-switch.h, which
converts DBUS_ERROR_x to DBUS_GERROR_x.
(libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.

* doc/TODO: Remove error TODO.

* doc/dbus-tutorial.xml: Update with documentation about error
handling.

* dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.

19 years ago2005-06-22 Colin Walters <walters@verbum.org>
Colin Walters [Wed, 22 Jun 2005 23:35:32 +0000 (23:35 +0000)]
2005-06-22  Colin Walters  <walters@verbum.org>

Patch from Ross Burton <ross@openedhand.com>

* glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.

19 years ago2005-06-20 Colin Walters <walters@verbum.org>
Colin Walters [Tue, 21 Jun 2005 01:18:25 +0000 (01:18 +0000)]
2005-06-20  Colin Walters  <walters@verbum.org>

* configure.in: Add glib/examples.

* glib/Makefile.am: Add examples/

* glib/examples/.cvsignore
* glib/examples/Makefile.am
* glib/examples/example-client.c
* glib/examples/example-service.c
* glib/examples/example-service.xml
* glib/examples/example-signal-emitter.c
* glib/examples/example-signal-emitter.xml
* glib/examples/example-signal-recipient.c:
New files; GLib binding examples, ported from
python/examples.

19 years ago2005-06-20 Colin Walters <walters@verbum.org>
Colin Walters [Tue, 21 Jun 2005 00:30:20 +0000 (00:30 +0000)]
2005-06-20  Colin Walters  <walters@verbum.org>

* dbus/dbus-glib.h:
* glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
dbus_g_proxy_call.

* glib/dbus-binding-tool-glib.c:
* doc/dbus-tutorial.xml:
* test/glib/test-dbus-glib.c: Update for rename.

19 years ago2005-06-20 Colin Walters <walters@verbum.org>
Colin Walters [Mon, 20 Jun 2005 19:54:22 +0000 (19:54 +0000)]
2005-06-20  Colin Walters  <walters@verbum.org>

Patch suggested by Ross Burton <ross@openedhand.com>

* glib/dbus-gobject.c (export_signals): Free signal name.
(g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
memory leak.  Add a bit of documentation.
(dbus_g_method_return_error): Free context, and note we do
so.

19 years ago2005-06-18 Murray Cumming <murrayc@murrayc.com>
Murray Cumming [Sun, 19 Jun 2005 15:31:25 +0000 (15:31 +0000)]
2005-06-18  Murray Cumming  <murrayc@murrayc.com>

        * dbus/dbus-glib.h:
        * glib/dbus-gobject.c:
        * glib/dbus-gproxy.c:
        * glib/dbus-gvalue.c: Predeclare structs as
        typedef struct _Something Something instead of
        typedef struct Something Something, so we can
        redeclare the prototypes. Other GNOME libraries
        do this already.

19 years ago2005-06-17 Colin Walters <walters@verbum.org>
Colin Walters [Fri, 17 Jun 2005 17:10:41 +0000 (17:10 +0000)]
2005-06-17  Colin Walters  <walters@verbum.org>

* tools/dbus-names-model.c (have_names_notify): Fix call
to dbus_g_proxy_end_call.

19 years ago2005-06-17 Colin Walters <walters@verbum.org>
Colin Walters [Fri, 17 Jun 2005 14:29:48 +0000 (14:29 +0000)]
2005-06-17  Colin Walters  <walters@verbum.org>

* glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
spew warnings if we get malformed remote signals.

* glib/dbus-gobject.c (propsig_iterate): New function.
(lookup_object_info): New function, extracted from
lookup_object_and_method.
(introspect_properties, introspect_signals): Delete; these
are merged into write_interface.
(write_interface): Write out signals and properties here;
dump the org.gtk.object stuff and use the interface given
in the introspection data blob.  Also fix up property XML.
(lookup_values): New function.
(introspect_interfaces): Gather a mapping from interface to a
list of its methods, signals, and properties, then write out
each interface.
(lookup_object_and_method): Use lookup_object_info.
(struct DBusGSignalClosure): Add interface.
(dbus_g_signal_closure_new): Add interface. Don't dup signame;
we can just use the constant data.
(dbus_g_signal_closure_finalize): Don't free signal name.
(signal_emitter_marshaller): Use interface from signal closure.
(export_signals): Only export signals mentioned in introspection
blob.
(dbus_g_connection_register_g_object): Warn if we have no
introspection data for an object.
(funcsig_equal): Remove unused variable.
(dbus_g_object_register_marshaller): Take varargs instead of
list.
(dbus_g_object_register_marshaller_array): New function,
extracted from old dbus_g_object_register_marshaller.

* glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
signals and property data.
(write_quoted_string): New function, extracted from generate_glue.
(generate_glue): Write signals and properties to introspection
blob.

* dbus/dbus-glib.h (struct DBusGObjectInfo): Include
exported_signals and exported_properties.
(dbus_g_object_register_marshaller): Update prototype.
(dbus_g_object_register_marshaller_array): Prototype.

* test/glib/test-dbus-glib.c: Extend testing to cover new signals.

* test/glib/test-service-glib.c: Add new test signals and method
to emit them.

* test/glib/test-service-glib.xml: Add some test signals.

* test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
and my-object-marshal.h
(test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
my-object-marshal.c.
(my-object-marshal.c, my-object-marshal.h): Implement.

* test/glib/.cvsignore: Update.

* doc/TODO: Remove two GLib TODO items fixed by this
patch.

19 years ago2005-06-16 Colin Walters <walters@verbum.org>
Colin Walters [Thu, 16 Jun 2005 19:57:31 +0000 (19:57 +0000)]
2005-06-16  Colin Walters  <walters@verbum.org>

* doc/TODO: Update for GLib bindings.

19 years ago2005-06-16 Colin Walters <walters@verbum.org>
Colin Walters [Thu, 16 Jun 2005 19:50:25 +0000 (19:50 +0000)]
2005-06-16  Colin Walters  <walters@verbum.org>

* glib/dbus-binding-tool-glib.c:
* glib/dbus-gobject.c:
* glib/dbus-gproxy.c:  Add Nokia copyright; Patch
from Ross Burton, for his GLib bindings work.