1 2006-09-14 John (J5) Palmieri <johnp@redhat.com>
3 * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
4 dbus_threads_init and be used by the dbus mutex functions to
7 * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
9 2006-09-13 John (J5) Palmieri <johnp@redhat.com>
11 * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
12 use threadsafe readdir_r instead of readdir
14 2006-09-13 John (J5) Palmieri <johnp@redhat.com>
16 * dbus-threads.c (dbus_threads_init_default): New method for
17 initializing the internal thread implementation (Patch from
18 Alexander Larsson <alexl at redhat dot com>)
20 2006-09-11 John (J5) Palmieri <johnp@redhat.com>
22 * remove a bunch of todo items from the 1.0 list
24 2006-09-11 John (J5) Palmieri <johnp@redhat.com>
26 * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
29 2006-09-11 John (J5) Palmieri <johnp@redhat.com>
31 * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
32 complex debugging code
34 * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
35 between the test suite ifdefs
36 (_dbus_verbose_bytes): return if verbosity is not enabled
38 2006-09-11 John (J5) Palmieri <johnp@redhat.com>
40 * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
43 2006-09-10 Havoc Pennington <hp@redhat.com>
45 patch mostly by Peter Kümmel, bug #8211
47 * dbus/dbus-sysdeps-unix.c: new file, which splits out
48 unix-specific stuff in dbus-sysdeps.c
50 * dbus/dbus-sysdeps.c: don't include any UNIX-only headers,
51 and move unix-specific stuff to dbus-sysdeps-unix.c
53 * configure.in: check HAVE_ERRNO_H
55 2006-09-08 John (J5) Palmieri <johnp@redhat.com>
57 * bus/test-main.c (main): Initialize threading during tests
59 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
60 Unlock connection on error
61 (generate_local_error_message): static method for generating
62 an error message when we don't have a message to reply to
63 (_dbus_connection_block_pending_call): Send a disconnect error
64 instead of just a timeout (NULL) when the bus gets disconnected
65 while blocking for a reply.
67 2006-09-08 John (J5) Palmieri <johnp@redhat.com>
69 * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
70 filters (Patch from Kimmo Hämäläinen
71 <kimmo dot hamalainen at nokia dot com>)
73 2006-09-07 John (J5) Palmieri <johnp@redhat.com>
75 * dbus/dbus-connection-internal.h: Add prototype for
76 _dbus_connection_test_get_locks to remove warning
78 2006-09-07 John (J5) Palmieri <johnp@redhat.com>
80 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
81 close child_err_report_pipe[WRITE_END] on exec (Patch from
82 Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
84 2006-09-07 John (J5) Palmieri <johnp@redhat.com>
86 * Clean up close calls to use _dbus_close (Patch from
87 Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
89 2006-09-06 John (J5) Palmieri <johnp@redhat.com>
92 - Remove pending call locking todo item
93 - dbus_connection_open now holds hard ref. Remove todo item
94 - do proper locking on _dbus_bus_check_connection_and_unref
95 and handle DBUS_BUS_STARTER. Remove todo item
96 - Warn on closing of a shared connection. Remove todo item
98 * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
99 dbus/dbus-connection.c: Use the dbus_connection_close_internal
100 so we don't get the warning when closing shared connections
102 * test/test-service.c, test/test-shell-service.c: Applications
103 don't close shared connections themselves so we unref instead of
106 * test/test-utils.c (test_connection_shutdown): Close the connection
108 * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
109 _dbus_bus_check_connection_and_unref_unlocked since we only call this
110 method on a locked connection.
111 Make sure we call _dbus_connection_unref_unlocked instead of
112 dbus_connection_unref also.
113 Handle DBUS_BUS_STARTER correctly
115 * dbus/dbus-connection.c (connection_record_shared_unlocked):
116 Mark as shared and hard ref the connection
117 (connection_forget_shared_unlocked): Remove the hard ref from the
119 (_dbus_connection_close_internal_and_unlock): New internal function
120 which takes a locked connection and unlocks it after closing it
121 (_dbus_connection_close_internal): New internal function which acts
122 like the origonal dbus_connection_close method by grabbing a connection
123 lock and calling _dbus_connection_close_internal_and_unlock
124 (dbus_connection_close): Public close method, warns when the app
125 trys to close a shared connection
127 2006-09-06 John (J5) Palmieri <johnp@redhat.com>
130 (bus_driver_generate_introspect_string): New method for populating
131 a DBusString with the introspect data
132 (bus_driver_handle_introspect): Move introspect generation code to
133 bus_driver_generate_introspect_string
136 (introspect): New function which prints out the intropect data and
138 (main): Add a --introspect switch
140 2006-09-06 John (J5) Palmieri <johnp@redhat.com>
142 * doc/TODO: Removed dtd publishing item.
143 It seems the dtd has already been added at
144 http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
146 2006-09-05 John (J5) Palmieri <johnp@redhat.com>
148 * doc/TODO, various source files: Audited todo's and FIXME's and
149 prepended the ones we should be looking at with 1.0. Those
150 prepended with 1.0? need clerification or might not be needed
153 2006-09-05 John (J5) Palmieri <johnp@redhat.com>
155 * dbus/dbus-pending-call.c: Add some checks so we don't crash on
156 NULL in the public API (Patch from Kimmo Hämäläinen
157 <kimmo dot hamalainen at nokia dot com>)
159 2006-09-05 John (J5) Palmieri <johnp@redhat.com>
161 * configure.in: Fix for OS-X compile time endian issues (patch from
162 Benjamin Reed <ranger at befunk dot com>)
164 2006-09-05 John (J5) Palmieri <johnp@redhat.com>
166 * configure.in: Check for no-common compiler flag (OS-X fix from
167 Benjamin Reed <ranger at befunk dot com>)
169 2006-09-01 John (J5) Palmieri <johnp@redhat.com>
171 * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
172 <fcrozat at mandriva dot com>)
174 2006-08-29 Havoc Pennington <hp@redhat.com>
176 * test/test-service.c (path_message_func): fix lack of return value
178 * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
179 formatting, remove #ifdef, and fix docs. #ifdef doesn't make
180 any more sense than on anything else in this file.
181 (_dbus_get_tmpdir): add const to return value, and keep the
182 results of the various getenv around in a static variable.
184 2006-08-29 Havoc Pennington <hp@redhat.com>
186 * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
187 from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
189 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
191 * test/Makefile.am: change find to use syntax that works with non
194 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
196 * dbus/dbus-transport.c: fix invalid deref when checking if
197 a vtable method exists (Patch from Christian Ehrlicher
198 <ch dot ehrlicher at gmx dot de>)
200 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
202 * configure.in, dbus/Makefile.am, test/name-test/run-test.sh,
203 test/name-test/Makefile.am: Fixed some issues with getting get dbus
204 to build with builddir != srcdir (Taken from a patch by Bernard Leak
205 <bernard at brenda-arkle dot demon dot co dot uk>)
207 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
209 * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
212 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
214 * configure.ac, bus/Makefile.am: Generalize kqueue support so that
215 it works on any system providing this interface, not only FreeBSD.
216 For example, NetBSD. (Patch by Julio M. Merino Vidal <jmmv at NetBSD dot org>)
218 2006-08-20 Havoc Pennington <hp@redhat.com>
220 * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
223 2006-08-18 John (J5) Palmieri <johnp@redhat.com>
227 2006-08-18 John (J5) Palmieri <johnp@redhat.com>
229 * dbus/dbus-threads.c (dbus_threads_init): change the documentation
230 to reflect the init late change
232 * bus/bus.c (bus_context_new): Check user before we fork so we can
233 print out an error message a user will be able to see
235 2006-08-18 John (J5) Palmieri <johnp@redhat.com>
237 Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de)
239 * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
240 Add two more global locks for use on windows platforms. These are
241 unused on non-windows platforms but are not ifdefed out to avoid
242 potential bugs (i.e. the few bytes lost does not warrent the extra
243 maintanence and complexity that having seperate sets of locks would
246 2006-08-18 John (J5) Palmieri <johnp@redhat.com>
248 * bus/services.c (bus_registry_acquire_service): Return an error
249 when an application tries to register the org.freedesktop.DBus Bus Name
251 * bus/services.c (bus_registry_release_service): Return an error
252 when an application tries to release the org.freedesktop.DBus Bus Name
254 2006-08-17 Alp Toker <alp@atoker.com>
256 * doc/dbus-specification.xml: Fix some minor typos.
258 2006-08-17 John (J5) Palmieri <johnp@redhat.com>
260 * configure.in: use $with_init_scripts instead of $operating_system
261 to determine where to store the pid since the init scripts manipulate
262 the pid file (patch from Marcelo Ricardo Leitner
263 <marcelo dot leitner at terra dot com dot br>.
265 2006-08-16 John (J5) Palmieri <johnp@redhat.com>
267 * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
268 static DBusList *uninitialized_condvar_list to support new late
269 initialization threading model. In this model threads can be initialized
270 even after the D-Bus API has been used but still needs to be initialized
271 before the second thread has been started. Mutexes and condvar addresses
272 are stored in the two static lists and are replaced with actuall locks
273 when threads are initalized.
274 (_dbus_mutex_new_at_location): New method for creating a mutex and placing
275 the location into the static list
276 (_dbus_mutex_free_at_location): New method for removing a mutex location
277 from the static list and freeing the mutex
278 (_dbus_condvar_new_at_location): New method for creating a conditional
279 variable and placing the location into the static list
280 (_dbus_condvar_free_at_location): New method for removing a conditional
281 variable location from the static list and freeing the conditional variable
282 (init_uninitialized_locks): Atomic method which goes through the static
283 lists of mutex and condvar location and updates them with actuall locks
284 (init_global_locks): changed to init_locks
286 * dbus/dbus-connection.c:
287 (_dbus_connection_test_get_locks): New method for tests to check connections
288 (_dbus_connection_new_for_transport): Use the new at_location mutex and
290 (dbus_connection_allocate_data_slot): Pass in the global lock address
291 to _dbus_data_slot_allocator_alloc
293 * dbus/dbus-dataslot.c:
294 (_dbus_data_slot_allocator_alloc): Use the address of the mutex
295 instead of the mutex itself
297 * dbus/dbus-message.c:
298 (dbus_message_allocate_data_slot): Pass in the global lock address
299 to _dbus_data_slot_allocator_alloc
301 * dbus/dbus-pending-call.c:
302 (dbus_pending_call_allocate_data_slot): Pass in the global lock address
303 to _dbus_data_slot_allocator_alloc
305 * dbus/dbus-server.c:
306 (_dbus_server_init_base): Use the new at_location mutex API
307 (dbus_server_allocate_data_slot): Pass in the global lock address
308 to _dbus_data_slot_allocator_alloc
310 * test/name-test/test-threads-init.c: New test case for late thread
313 2006-08-14 John (J5) Palmieri <johnp@redhat.com>
315 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
316 Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
317 causes compile problems when asserts are turned off
318 Keeping _dbus_warn for printing out the message so even if
319 asserts are turned off the user gets the messages that something is
322 2006-08-14 John (J5) Palmieri <johnp@redhat.com>
324 Patches by Kjartan Maraas <kmaraas at gnome dot org>
326 * bus/services.c (bus_service_list_queued_owners):
327 Add a pointer cast to fix compiler warning
329 * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
330 return a NULL instead of FALSE since the return type
331 is not expecting a boolean
333 * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
334 Remove unused variable
336 * dbus/dbus-marshal-recursive-util.c (node_new):
337 return a NULL instead of FALSE since the return type
338 is not expecting a boolean
340 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
341 Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
342 because we are expecting a pointer not a boolean
344 * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir):
345 add void as the parameter so some compilers
348 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
349 _dbus_transport_new_for_tcp_socket):
350 Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
351 because we are expecting a pointer not a boolean
353 * test/shell-test.c (test_command_line):
354 cast the second argument to _dbus_list_append to avoid compiler
357 * test/test-names.c (main): remove unused variable
359 * test/test-service.c (check_hello_from_self_reply):
360 Initialize echo_message and echo_reply to NULL
362 * test/test-shell-service.c (handle_echo):
363 Remove unused variable and cast the third parameter passed to
364 dbus_connection_get_object_path_data to avoid compiler warrnings
366 * test/name-test/test-names.c (clear_message_queue):
367 Remove unused function
369 * test/name-test/test-pending-call-dispatch.c:
370 Fix format string in printf
373 2006-08-14 John (J5) Palmieri <johnp@redhat.com>
376 * test/name-test/test-names.c:
377 Remove test method dbus_bus_connection_get_unique_name because
378 we already have public method dbus_bus_get_unique_name that
379 does the exact same thing
381 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
383 * dbus/dbus-signature.c:
384 fix typos in Julio's previous patch which cause make check to fail
386 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
388 * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.
389 In any case it was wrong since this is a test checking to see if
390 address parsing is correct. There was no need to get the true
393 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
395 * dbus/dbus-macros.h: Revert the addition of stddef.h
396 as we should not be adding it to library headers
398 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
400 * dbus/dbus-signature.c:
401 Fix the unit tests so that they work if assertions are not enabled.
402 (patch from Julio M. Merino Vidal <jmmv at NetBSD dot org>)
404 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
406 * tools/run-with-tmp-session-bus.sh:
407 * test/name-test/run-test.sh:
408 Remove bashisms (patch from Julio M. Merino Vidal
409 <jmmv at NetBSD dot org>)
411 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
413 * configure.in: add a version (>= 2.6.0) check for libxml2
415 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
417 * configure.in: make sure the compiler supports -Wfloat-equal
419 * bus/dir-watch-dnotify.c: move functional code after
420 variable declerations (C99 fix) (patches from Jens Granseuer
421 <jensgr at gmx dot net>
423 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
425 * dbus/dbus-macros.h:
426 add #include <stddef.h> so that Sun compilers don't complain about
429 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
431 * dbus/dbus-sysdeps.c:
432 * dbus/dbus-address.c:
435 don't hardcode tmp directory (patch from Dave Meikle
436 <dmk at davemeikle dot co dot uk>)
438 2006-08-09 John (J5) Palmieri <johnp@redhat.com>
440 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
441 Change an assert to a detailed warning and abort.
442 When allocator->lock != mutex it indicates that the user has failed
443 to initalize threads before using the D-Bus library. This warning
444 helps the user identify the issue and fix their app.
446 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
448 These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
449 with cleanups of bugs found from Coverity reports:
451 * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
452 close the file on error to avoid a leak
454 * bus/expirelist.c (bus_expire_list_test):
455 Check for NULL on dbus_new0
457 * bus/activation.c (update_directory):
460 * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
463 * bus/bus.c (process_config_every_time):
466 * bus/desktop-file.c (parse_key_value):
469 * bus/selinux.c (bus_selinux_id_table_insert):
472 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
474 * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
477 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
479 * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
482 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
484 * Doxyfile.in: fix the INPUT line so we can generate docs
485 when sourcedir != builddir (patch from Cygwin Ports maintainer
486 <yselkowitz at users dot sourceforge dot net>
488 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
490 * dbus/dbus-sysdeps.h:
491 * dbus/dbus-sysdeps.c:
492 * dbus/dbus-string.c:
493 s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
494 GLib's function which does the same thing
498 * bus/dir-watch-default.c:
499 * bus/dir-watch-dnotify.c:
500 * bus/dir-watch-kqueue.c:
501 Add kqueue directory watching for freebsd and split the directory
502 watching code into seperate files per method/arch
503 (patches from Timothy Redaelli <drizzt at gufi dotorg>)
505 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
509 * tools/dbus-launch.c:
511 allow --with-dbus-daemondir switch to be used to make the
512 daemon install to a seperate bindir like /usr/libexec
513 (patch from Brian Cameron <brian dot cameron at sun dot com)
515 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
517 * bus/Makefile.am (install-data-hook): removed the slash after
518 $(DESTDIR) so we don't get the double slash which does not work
519 in windows (patch from Andras Porjesz
520 <andras dot porjesz at siemens dot com>)
522 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
524 * dbus/dbus-sysdeps.h:
525 * dbus/dbus-sysdeps.c:
526 add _dbus_printf_length (patch from Peter Kümmel
527 <syntheticpp at gmx dot net>)
529 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
531 * dbus/dbus-internals.c: unistd.h is not used
532 (_dbus_verbose_real): only enable verbose printing
533 if DBUS_VERBOSE environment var is set to '1'
534 (patch from Peter Kümmel <syntheticpp at gmx dot net>)
536 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
538 * configure.in: add a GCC flag check for -Wdeclaration-after-statement
539 so we still compile on older gcc (patch from Frederic Peters
540 <fpeters at 0d dot be>
542 2006-08-04 Havoc Pennington <hp@redhat.com>
544 * configure.in: add -Wdeclaration-after-statement
546 * dbus/dbus-connection.c: change all the pending call stuff to
547 reflect the fact that pending call operations use the connection
550 * dbus/dbus-pending-call.c: add locking here
552 * dbus/dbus-errors.c (struct DBusRealError): don't make the name
553 field const consistent with how message field is done
555 2006-08-03 John (J5) Palmieri <johnp@redhat.com>
559 2006-08-03 John (J5) Palmieri <johnp@redhat.com>
561 * dbus/dbus-object-tree.c: Patch by Benjamin Otte
562 <in7y118 at public.uni-hamburg dot de> - fix invalid
563 read/write reported by valgrind
565 2006-07-24 John (J5) Palmieri <johnp@redhat.com>
569 2006-07-22 John (J5) Palmieri <johnp@redhat.com>
571 * dbus/dbus-connection.c:
572 (_dbus_connection_attach_pending_call_unlocked):
573 (connection_timeout_and_complete_all_pending_calls_unlocked):
574 Make sure we set timeout_added on pending calls to FALSE when
575 we remove the timeout from the connection
577 2006-07-21 John (J5) Palmieri <johnp@redhat.com>
579 * Removed some extra bindings stuff lingering around (thanks timo)
580 * dbus-pendingcall.c (_dbus_pending_call_new):
581 s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
582 when we tried to take a lock on an already locked connection
584 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
588 2006-07-17 Havoc Pennington <hp@redhat.com>
590 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
591 ints, reported by Owen Taylor
593 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
598 * dbus/dbus-marshal-validate.c:
599 Removed TODO items which were fixed or are no longer relevent
601 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
603 * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
604 Remove stray files from the stripped bindings
606 2006-07-16 Havoc Pennington <hp@redhat.com>
608 * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
609 Improve the error message on reply timeout
611 2006-07-14 John (J5) Palmieri <johnp@redhat.com>
613 * Remove all bindings
615 2006-07-13 John (J5) Palmieri <johnp@redhat.com>
617 * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
618 and set pending_reply out arg to NULL is connection is disconnected
619 (connection_timeout_and_complete_all_pending_calls_unlocked): New
620 static method for cleaning up pending calls on disconnect
621 (_dbus_connection_get_dispatch_status_unlocked): If we have pending
622 calls queued timeouts on disconnect
624 * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
627 2006-07-13 Carlos Garcia Campos <carlosgc@gnome.org>
629 * bus/activation.[ch] (bus_activation_list_services): new function to
630 get the list of services that can be activated
632 * bus/dispatch.c: test coverage for the new bus method
635 * bus/driver.c: new bus method ListActivatableNames to get the list of
636 services that can be activated
638 * doc/dbus-specification.xml: ListActivatableNames method documentation
640 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
641 * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
644 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
645 * dbus/dbus-message-factory.c:
646 Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
648 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
649 * dbus/dbus-connection-internal.h:
650 * dbus/dbus-connection.c:
651 * file dbus/dbus-pending-call.c:
652 * dbus/dbus-pending-call.h:
653 Make DBusPendingCall an opaque type even to D-Bus internals
655 2006-07-07 John (J5) Palmieri <johnp@redhat.com>
657 * dbus/dbus-connection.h: remove connection_disconnect and replace with
660 * dbus/dbus-connection.c: include dbus-bus.h
661 (_dbus_connection_read_write_dispatch): make static
663 2006-07-07 John (J5) Palmieri <johnp@redhat.com>
665 * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
667 (dbus_connection_dispatch): On disconnect unref any shared connections
669 * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
670 for cleaning up shared connections on disconnect
671 (internal_bus_get): get a hard refrence to shared connections when
674 * doc/TODO: Remove items which are no longer relevent or have been fixed
675 Split 1.0 todo items with a 0.90 freeze todo list
677 2006-06-14 Ross Burton <ross@openedhand.com>
679 * glib/dbus-gobject.c:
680 Free a leaking GArray (surely not!) in dbus_g_method_return.
682 2006-06-14 Ross Burton <ross@openedhand.com>
685 * tools/dbus-monitor.c:
686 Don't use the GLib bindings in dbus-monitor (patch from Ralf
689 2006-06-14 Ross Burton <ross@openedhand.com>
691 * tools/dbus-print-message.c:
692 Also print the object path when outputting signals or method calls.
694 2006-06-13 Thiago Macieira <thiago.macieira@trolltech.com>
696 * qt/src/Makefile.am: install the qdbus.h header.
697 This allows people to actually use the installed code.
699 2006-06-12 Ross Burton <ross@openedhand.com>
701 * glib/dbus-gproxy.c:
702 Don't leak a GArray when firing signals (thank Rob Taylor for review).
704 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
708 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
710 * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
711 break pedantic builds. Closes bug 6043 (patch approved by
712 Havoc back in February).
714 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
716 * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
717 that took a QDBusMessage parameter.
718 * qt/src/qdbusbus.h: Add a default flag for RequestName.
719 * qt/tools/dbus.cpp: Don't use automatic call because we might
720 be calling an async method: request a reply.
722 2006-06-11 Thiago Macieira <thiago.macieira@trolltech.com>
724 * test/qt/*: Update the testcases, including testing the new
725 functionality of sending null QByteArray and QString over the
726 bus. Add new headertest test and restore the old
729 2006-06-11 Thiago Macieira <thiago.macieira@trolltech.com>
731 * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
732 * qt/tools/dbusidl2cpp.cpp: Add missing newline.
734 * qt/examples/Makefile.am:
735 * qt/examples/chat.h: Use UI-generated files with the ui_*.h
738 * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
739 QByteArray() (nulls) over the bus.
740 * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
741 the one that has the signature suffix stripped.
742 * qt/src/qdbusreply.h: Make some methods const.
744 2006-06-09 Thiago Macieira <thiago.macieira@trolltech.com>
746 Patch from Timo Hoenig <thoenig@suse.de>.
748 * qt/dbus/Makefile.am: New file. Fix "make dist", add all headers
749 required during build to EXTRA_DIST.
750 * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
751 * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
752 * configure.in: Fix "make dist", take care that the Makefile for
753 qt/dbus is being generated.
755 2006-06-07 John (J5) Palmieri <johnp@redhat.com>
757 * bus/bus.c: Fix eavesdropping on method calls
759 2006-06-07 John (J5) Palmieri <johnp@redhat.com>
762 * dbus/dbus-userdb-util.c:
763 Add Solaris console owner patch from Artem Kachitchkine
765 2006-06-07 Thiago Macieira <thiago.macieira@trolltech.com>
768 * qt/src/Makefile.am: Fix the EXTRA_DIST after the
769 reorganisation. Thanks to Timo Hoenig for pointing this out.
771 2006-06-06 Robert McQueen <robot101@debian.org>
773 * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
774 call to dbus_g_type_get_struct.
776 2006-06-06 Robert McQueen <robot101@debian.org>
778 * glib/dbus-gvalue-utils.c: Fix the failing test where static string
779 pointers were put into a GPtrArray-based specialised collection, and
780 then freed along with the array. GValues which you add into
781 collections or maps which have the NOCOPY flag set are assumed to not
782 belong to the caller, so rather than the existing pointer-stealing
783 semantics, they are copied instead. Given that the main consumers of
784 this abstraction are the bindings themselves, I don't think this is
785 too bad, but others should watch their choice of take vs set_static.
787 2006-06-06 Robert McQueen <robot101@debian.org>
789 * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
790 of g_slist_prepend not being used. Fixed copying of slist-based
791 specialised collections, then wrote a test case and found that it was
792 all broken. Went on to fix iterating and appending too. Good thing
793 nobody uses this code yet.
795 2006-06-06 Robert McQueen <robot101@debian.org>
797 * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
798 the iterators use gvalue_take_ptrarray_value (the GValues themselves
799 are discarded without unsetting, so it makes no difference whether
800 we take or set_static). Remove cases for G_TYPE_POINTER because
801 there really is nothing useful we can do with them in our
802 specialised types - we *need* boxed copy/free functions at the very
805 2006-06-05 Thiago Macieira <thiago.macieira@trolltech.com>
807 * qt/dbus: Add directory. I had forgotten to add this
808 yesterday after the move...
810 * qt/examples/Makefile.am:
811 * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
813 * qt/tools/Makefile.am:
814 * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
815 Added feature to get and set properties.
816 Added validation of service, object path and interface names.
818 * qt/tools/dbusidl2cpp.cpp: Two new features:
819 1) Allow specifying both the header and the source file names,
820 by separating them with a colon.
821 2) Don't write an interface output if the -p switch wasn't
822 given, but the -a was.
824 * qt/src/*: Fix usage of Iterators and ConstIterators.
825 Fix shadowing of variables by other variables (-Wshadow).
826 Fix keyword-cleanliness in headers.
827 Fix ASCII-cast (QLatin1String, QLatin1Char).
828 Fix validation of member names.
829 Add extra checking of introspection data during XML parsing.
832 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
835 * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
838 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
840 * configure.in: Make --disable-qt actually do
841 something. Patch inspired by Zack Rusin.
843 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
845 * qt/: Update to Subversion r548032.
846 This includes a big reorganisation of the files inside the
849 2006-05-30 Sjoerd Simons <sjoerd@luon.net>
851 * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
853 "Failed to connect to socket <host>:<port> <error>" instead of
854 "Failed to connect to socket <host>: <error>:<port>"
856 * dbus/dbus-transport-unix.c: Fix crash when no host option is given
859 2006-05-29 Thiago Macieira <thiago.macieira@trolltech.com>
861 * qt/*: Update the QtDBus bindings up to revision 546310 in
863 This adds the dbuscpp2xml tool, that parses a C++ header and
864 outputs a D-BUS Introspection XML.
866 2006-05-21 Havoc Pennington <hp@redhat.com>
868 * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
869 is not NULL when it shouldn't be. Also a couple of possible fixes
870 for #4637 though I don't understand why the bug happens, to be
871 honest... also the object constructor has an assert name != NULL
872 and the name is only currently NULL for peer-to-peer proxies that
873 I don't think anyone uses? So it should be asserting.
874 Anyway, for now at least see if we get an earlier assertion failure.
876 * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
877 apparently broken code to be sure the tests fail and someone
880 2006-05-07 Thiago Macieira <thiago.macieira@trolltech.com>
882 * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
883 and arrays when they had a single element: has_next returns
884 false, even before you read the element. So, instead, check
887 2006-05-06 Thiago Macieira <thiago.macieira@trolltech.com>
889 * qt/qdbusmessage.cpp:
890 * qt/qdbustypehelper_p.h:
891 * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
892 the list is a const-reference
894 2006-05-03 John (J5) Palmieri <johnp@redhat.com>
896 * Adding old doc patch that never got applied
898 * dbus/bus.c (dbus_bus_add_match): Add documentation
900 * doc/dbus-specification.xml: Add documentation for the match rules
901 and the AddMatch and RemoveMatch methods
903 2006-05-02 Thiago Macieira <thiago.macieira@trolltech.com>
905 * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
908 * qt/dbusidl2cpp.cpp:
909 * qt/qdbusabstractadaptor.cpp:
910 * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
911 sibling of the QDBusAbstractAdaptor objects instead of the
914 * qt/dbusidl2cpp.cpp:
915 * qt/qdbusabstractinterface.cpp:
916 * qt/qdbusabstractinterface.h:
917 * qt/qdbusabstractinterface_p.h:
918 * qt/qdbusinterface.cpp: Make properties in interfaces
919 actually work. The code that was generated would not compile,
920 due to moc calls to functions that did not exist. They now
923 2006-04-30 Thiago Macieira <thiago.macieira@trolltech.com>
927 * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
928 Thanks to Brad Hards for providing the patch
930 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
932 * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
935 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
937 * qt/examples/dbus.cpp: Enhance error messages and use
940 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
942 * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
943 and disable the copy operators. (r533772, r534746)
945 * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
947 * qt/qdbusabstractinterface.cpp:
948 * qt/qdbusabstractinterface.h: Change the default call mode to
949 not use the event loop. Add convenience call() methods that
950 take a CallMode parameter. (r534042)
952 * qt/qdbusconnection.h: Change the default call mode to not
953 use the event loop. (r534042)
955 * qt/qdbusinterface.cpp:
956 * qt/qdbusinterface.h: Add a method to tell us if the
957 interface is valid (since we don't return a null pointer
960 * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
963 * qt/qdbusinternalfilters.cpp: Decouple the introspection
964 function in two so taht we get the chance to introspect
965 without having a QDBusMessage (r534102)
968 * qt/qdbusconnection.cpp:
969 * qt/qdbusconnection_p.h:
970 * qt/qdbusintegrator.cpp: Keep a list of our own names to
971 avoid a round-trip to the server when attempting to introspect
972 one of our own objects. Also make sure the filter functions
973 match the empty interface as well. (r534108)
974 Don't keep the connection names. Instead, trust the unique
975 connection name (r534111)
976 Remove event loop usage (r534112)
978 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
980 * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
983 2006-04-28 Robert McQueen <robot101@debian.org>
985 * glib/dbus-gproxy.c: Fix properties so that they can be given in
986 any order, making it easier for people who inherit from this
989 2006-04-28 Robert McQueen <robot101@debian.org>
991 * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
992 of memory from within pointer arrays and lists. Fixes bug #6300.
994 2006-04-28 Robert McQueen <robot101@debian.org>
996 * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
997 generating struct signatures. Fixes bug #6083.
999 2006-04-28 Robert McQueen <robot101@debian.org>
1001 * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
1002 to qdbusconnection_p.moc.
1004 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
1006 * README, INSTALL: Doc fixes
1007 Patch from Brad Hards <bradh at frogmouth.net>
1009 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
1011 * qt/examples/dbus.cpp: Use the new merged-interface mode for
1012 the dynamic meta object. No need to guess which interface to
1015 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
1017 * qt/qdbusconnection_p.h:
1018 * qt/qdbusmetaobject.cpp:
1019 * qt/qdbusmetaobject_p.h:
1020 * qt/qdbusintegrator.cpp: Use the new merged-interface mode
1021 for the dynamic meta object. No need to guess which
1023 * qt/qdbusabstractinterface_p.h:
1024 * qt/qdbusconnection.cpp:
1025 * qt/qdbusintegrator.cpp:
1026 * qt/qdbusinterface.cpp:
1027 * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
1028 Add a QDBusRef that looks and behaves like DCOPRef.
1030 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
1032 * dbus/dbus-connection.c: Interfaces are optional in method
1033 calls, so don't give up if the interface parameter is NULL.
1034 Patch reviewed by Havoc Pennington.
1036 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
1038 * qt/qdbusreply.h: Add default constructor and operator=
1040 * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
1041 in public headers (r532952)
1042 * qt/qdbusabstractinterface.cpp:
1043 * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
1044 make it the default (r532951)
1046 2006-04-19 John (J5) Palmieri <johnp@redhat.com>
1048 * dbus/dbus-connection.c: Fix asserts
1049 Patch from Tim Moloney <t.moloney at verizon.net>
1051 2006-04-19 John (J5) Palmieri <johnp@redhat.com>
1053 * mono/Connection.cs, mono/Message.cs: Check Target type
1054 Patch from Aaron Bockover (abockover at novell.com)
1056 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
1058 * INSTALL: fine-tune the requirements for the Qt4 binding.
1060 2006-04-16 Daniel P. Berrange <dan@berrange.com>
1062 * tools/dbus-print-message.c: Added support for printing of all
1063 remaining data types. Fixed logic for indentation of compound
1066 2006-04-15 Daniel P. Berrange <dan@berrange.com>
1068 * INSTALL: fill out content of file providing DBus specific
1069 build installations, followed by generic Auto* INSTALL file
1072 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
1074 * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
1075 Patch by Stefan Eilers. (r529537)
1077 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
1079 * qt/qdbusinternalfilters.cpp: Don't show the parent's
1082 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
1084 * qt/Makefile.am: fix the dependency for
1085 qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1086 not in qdbusconnection.cpp.
1087 Thanks to Jakub Stachowski <stachowski@hypair.net> for
1090 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
1092 * qt/examples/listnames.cpp:
1093 * qt/examples/Makefile.am: Three ways to list the names on the
1096 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
1098 * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1099 needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1101 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
1103 Merge from Subversion:
1104 * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1105 something that exists (r526315)
1106 * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1107 slots/signals (r526316)
1108 * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1109 also return an unknown-method error if the parameters don't
1110 match for org.freedesktop.DBus.Properties. (r526842)
1111 * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1112 * qt/qdbusintegrator.cpp: Restore the proper order of
1113 delivery: don't make method returns be delivered on priority
1116 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
1118 * configure.in qt/Makefile.am: add qt/examples
1119 * qt/examples: Add QtDBus example programs:
1120 - hello: Hello, World
1121 - ping: Simple method-calling program
1122 - pong: Simple object-exporting program (not using adaptors)
1123 - complexping: Interactive method-calling program
1124 (also gets and sets properties).
1125 - complexpong: Sample program exporting methods, signals and
1126 properties, using adaptors.
1127 - dbus: Simple implementation of a generic method-calling
1128 program, similar to 'dbus-send', but with semantics
1130 - chat: Simplistic chat program, implemented using signals
1131 and the system bus. Looks like IRC.
1133 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
1135 * configure.in: Detect QtGui (necessary for one of the
1136 example programs). Note: this increases the minimum required
1137 version of Qt to 4.1.3.
1139 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
1141 * test/qt/*: Sync with KDE Subversion revision 523647.
1142 Update the testcases to the new API. Remove testcases for
1143 classes that are no longer public or have been removed.
1145 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
1148 * dbus/qdbus.h: Sync with KDE Subversion revision
1149 523647. Hopefully, this will be the last of the
1150 source-incompatible changes. Documentation has been improved;
1151 support for QList<basic-types> has been added; QDBusObject is
1152 gone; QDBus(Abstract)Interface is now a QObject with
1153 auto-generated meta-object; QDBusIntrospection is marked
1154 private, since QMetaObject can be used now; lots of bugfixes.
1156 2006-03-16 John (J5) Palmieri <johnp@redhat.com>
1158 Patch from Milosz Derezynski <internalerror at gmail.com>
1161 Output the service directory in the configure summary
1164 Add session_bus_services_dir
1166 2006-03-10 Ross Burton <ross@openedhand.com>
1168 * tools/dbus-print-message.c:
1169 Add support for object paths and signatures.
1171 2006-03-06 Sjoerd Simons <sjoerd@luon.net>
1173 * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1175 * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1177 * dbus/dbus-hash.c: (_dbus_hash_table_remove_all):
1178 * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1179 * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1180 * dbus/dbus-userdb.h: Add function to flush all user/group information
1183 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
1185 * qt/dbusidl2cpp.cpp:
1186 * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1187 for dcopidl2cpp, found in the KDE installations (or the more
1188 modern kalyptus): generate Qt4 C++ code for the input XML
1189 introspection. Currently no IDL parsing.
1191 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
1193 * test/qt/*: Update the self-tests.
1195 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
1198 * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1199 represents the first feature-complete version of the Qt4
1200 bindings since I took ove maintainership.
1202 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
1204 * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1205 dir. This is C++, so we can't use the DBus ones.
1207 2006-03-02 John (J5) Palmieri <johnp@redhat.com>
1209 * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1210 (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1212 2006-03-02 John (J5) Palmieri <johnp@redhat.com>
1214 * dbus/dbus-connection.c:
1215 (_dbus_connection_block_pending_call):
1216 Check to see if our data has already been read off the connection
1217 by another blocking pending call before we block in poll.
1218 (check_for_reply_and_update_dispatch_unlocked):
1219 Code taken from _dbus_connection_block_pending_call - checks for
1220 an already read reply and updates the dispatch if there is one.
1222 * test/name-test/test-pending-call-dispatch.c:
1223 New test for making sure we don't get stuck polling a
1224 dbus connection which has no data on the socket when
1225 blocking out of order on two or more pending calls.
1227 2006-02-28 Thiago Macieira <thiago.macieira@trolltech.com>
1229 * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1230 make/automake don't detect that we're talking about the same
1231 .lo file if I specify the full path to the source files.
1233 2006-02-26 Havoc Pennington <hp@redhat.com>
1235 * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1237 * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1238 session bus variable is unset, suggest "man dbus-launch" and "man
1239 dbus-daemon" to figure out how to fix the problem
1241 2006-02-25 Havoc Pennington <hp@redhat.com>
1243 * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1244 should make this thing use the new glib options parser
1246 2006-02-25 Thiago Macieira <thiago.macieira@trolltech.com>
1248 * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1249 .lo files taking moc sources.
1251 2006-02-25 Havoc Pennington <hp@redhat.com>
1253 * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1254 and install it as a public header
1256 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
1260 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
1262 * proxies.py: Fix the callchain
1264 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
1266 * patch from Sjoerd Simons <sjoerd at debian.org>:
1268 * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to
1271 * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1272 call _dbus_group_info_free_allocated which causes infinite loop,
1273 correctly call _dbus_group_info_free
1275 2006-02-20 Thiago Macieira <thiago.macieira@trolltech.com>
1277 * qt/qdbusinterface_p.h:
1278 * qt/qdbusinterface.cpp: Use the standard
1279 org.freedesktop.DBus.Method.NoReply annotation for the "async"
1280 calls instead of creating one for us.
1282 * qt/qdbusconnection_p.h:
1283 * qt/qdbusintegrator.cpp: Remove debugging code.
1285 * qt/qdbusintegrator.cpp:
1286 * qt/qdbusmessage.cpp:
1287 * qt/qdbusmessage_p.h:
1288 * qt/qdbusmessage.h: Change the behaviour of automatic
1289 reply-sending: now a reply is always sent, unless the caller
1290 didn't request one or if the user slot has already sent one.
1292 2006-02-16 Robert McQueen <robot101@debian.org>
1294 * configure.in: Patch from Debian packages by Sjoerd Simons
1295 <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
1296 arguments so it's possible to build both bindings in the
1299 * qt/Makefile.am: Fix truncated value so that make dist works.
1301 2006-02-16 Robert McQueen <robot101@debian.org>
1303 * acinclude.m4, configure.in: Patch from Brad Hards
1304 <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
1305 improving quoting, re-ordering a few checks, and a few other
1308 2006-02-16 Robert McQueen <robot101@debian.org>
1310 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
1311 Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1312 assertion that the next element to read from the iter is fixed in
1313 size. This is not the case when you are at the end of the iter,
1314 because the next element type is INVALID.
1316 * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1317 a bogus assert which means that you may not initialise a 0-length
1318 string unless you provide a non-NULL pointer. This prevented
1319 you from marshalling messages containing zero-length arrays in
1322 * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1323 from Rob to correct bogus asserts when trying to demarshal an
1324 array and get_fixed_array got you 0 elements. Append nothing to
1325 the GArray in this case.
1327 * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1328 an empty array via the glib bindings. Without all of the above
1329 patches, this new test fails.
1331 2006-02-16 Robert McQueen <robot101@debian.org>
1333 * glib/dbus-gmain.c: Make the previous commit compile.
1335 * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1336 Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1337 specify sender_keyword="foo", path_keyword="bar" when adding
1338 a signal listener, so that you can bind to signals generically
1339 but still do something useful in your callback.
1341 * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1342 chars so that they're not cast to chars and made negative. Thanks
1343 to Jakub Stachowski for reporting this and testing the fix.
1345 2006-02-15 John (J5) Palmieri <johnp@redhat.com>
1348 * glib/dbus-gmain.h:
1349 (dbus_g_connection_open): new method for openning
1350 a connection to an arbitrary address in the glib bindings
1352 * ChangeLog: checkin last entry which doesn't seem to be commited
1354 2006-02-13 John (J5) Palmieri <johnp@redhat.com>
1356 * tools/dbus-launch.c: Fixed sh syntax output
1358 2006-02-13 Robert McQueen <robot101@debian.org>
1360 * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1361 glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1362 glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1363 glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1364 Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1365 missing piece of the glib bindings jigsaw puzzle. This modifies
1366 the existing specialised types to have N type parameters (rather
1367 than the current 1 or 2 for arrays and dictionaries respectively).
1368 You can then use this to get a glib type to represent any arbitrary
1369 D-Bus struct type using dbus_g_type_get_struct. The only
1370 implementation of these types is with GValueArrays as before,
1371 but it's now possible to store these in arrays, emit them in
1374 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
1376 * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1377 deal with nested arrays (Bug #5823) Patch by Thiago Macieira
1378 <thiago.macieira at trolltech.com>
1380 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
1382 * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1383 (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1385 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
1387 * bus/connection.c (bus_connections_expect_reply): Make
1388 pending reply limit not common to all connections (Bug #5416)
1389 Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1391 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
1393 * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1395 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
1397 * gcj/Makefile.am: point to correct jar command (Bug #4529)
1398 patch from Doug Goldstein <cardoe at gentoo.org>
1400 2006-02-09 Joe Shaw <joeshaw@novell.com>
1402 * mono/Arguments.cs: Fix a magic number in the mono bindings
1403 that doesn't work on 64 bit arches. Patch from Peter Johanson.
1405 2006-01-27 Robert McQueen <robot101@debian.org>
1407 * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1408 patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1409 when generating the client-side methods, instead of overloading
1410 CSymbol which broke everything horribly. My apologies.
1412 2006-01-27 Robert McQueen <robot101@debian.org>
1414 * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1415 by me and Rob Taylor to add a simple_free function to D-Bus map
1416 and collection types, which allows those types which can be freed
1417 with a GDestroyNotify (such as GHashTables and GArrays, but not
1418 GPtrArrays) to be stored as the values in hashtables.
1420 * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1421 Patch by Rob Taylor to add nested dicts to the glib tests to check
1422 the above code works, and appears not to leak when called repeatedly.
1424 2006-01-27 Robert McQueen <robot101@debian.org>
1426 * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1427 to free a D-Bus allocated string with dbus_free () instead of
1430 2006-01-27 Iain Holmes <iain@openedhand.com>
1432 * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1433 method from being called multiple times.
1435 2006-01-19 Robert McQueen <robot101@debian.org>
1437 * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1438 <rob.taylor@collabora.co.uk> to add support for generating bindings
1439 to arrays that are represented as GPtrArrays rather than GArrays (ie
1440 size-variable things, such as strings, objects, structs, etc).
1442 2006-01-05 Robert McQueen <robot101@debian.org>
1444 * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1445 <ricardo.kekki@movial.fi> to make it possible to inherit from
1446 DBusGProxy, by splitting the DBusGProxy struct into a public part and
1447 a private part, and moving the setting of the DBusGProxyManager into a
1448 connection property, allowing proper GObject construction.
1450 2006-01-05 Robert McQueen <robot101@debian.org>
1452 * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1453 <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1454 annotations when generating glib client bindings.
1456 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
1458 * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1460 * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1462 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
1464 * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1466 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
1468 * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1470 2005-12-19 Ross Burton <ross@openedhand.com>
1472 * doc/dbus-tutorial.xml:
1473 Document the Glib client-side bindings, and list all possible annotations.
1475 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
1477 * dbus/bus.c (dbus_bus_release_name): Add documentation
1479 2005-12-06 Robert McQueen <robot101@debian.org>
1481 * python/service.py: s/sucessful/successful/ so we're allocating to
1482 and reading from the same variable. Oops.
1484 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1488 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1490 * test/qt/Makefile.am: build from srcdir
1492 * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1493 Note - this code is wrong and needs to be fixed by the Qt binding
1494 developers. The flags should be treated as bitfields and not enums.
1496 * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1498 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1500 * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after,
1501 link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods
1504 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1506 * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1507 method for getting messages off the bus in the absence of a
1508 mainloop. This method is much like
1509 dbus_connection_read_write_dispatch except it does not dispatch
1510 the messages to a registered filter function. Instead it
1511 allows a developer to process messages by directly popping
1514 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1516 * bus/desktop-file.c (parse_key_value): Ignore locales allowing
1517 the parser to continue instead of returning error
1518 (bus_desktop_file_load): Do not free parser data when
1519 parse_section_start or parse_key_value fails because it was
1520 already freed by parser_free (patch from Carlos Garcia Campos
1521 <carlosgc at gnome.org>)
1523 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1525 * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1526 dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1527 glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1528 test/test-segfault.c, test/test-utils.c,
1529 test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1530 tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1531 Various cleanup of dead code and compiler warnings (patch from
1532 Kjartan Maraas <kmaraas at gnome.org>)
1534 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1536 * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1537 (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1539 2005-11-27 Robert McQueen <robot101@debian.org>
1541 * python/dbus_bindings.pyx: Repair my previous commit which reverted
1542 part of the preceding one. Oops. Merge patch by Johan Hedberg
1543 <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1544 on big-endian platforms.
1546 * test/python/test-client.py: Add some 16-bit integers to the test
1549 2005-11-27 Carlos Garcia Campos <carlosgc@gnome.org>
1551 * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1552 method return message for property getters
1554 2005-11-27 Robert McQueen <robot101@debian.org>
1556 * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1557 with type v of an instance of dbus.Variant(foo, type='x') caused
1558 it to be boxed twice before sending over the bus.
1560 * python/dbus_bindings.pyx, python/service.py,
1561 test/python/test-client.py: Update the constants for the new
1562 request_name flags, and update comments/test cases now that queueing
1563 is the default action.
1565 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
1568 - Change version to 0.60 for impending release
1569 - upped the sonames because of ABI and API breakage
1571 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
1573 * configure.in: Add test/name-test/Makefile to the generated
1576 * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1577 New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1578 (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1579 not to queue an ower if it can't be the primary owner
1581 * bus/bus.h: Add new internal BusOwner struct
1583 * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1584 to bus_registry_ensure and don't set the prohibit_replacement flag
1585 since they are now set per BusOwner and not per name.
1586 (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners)
1587 that returns the list of connections in a name's connection queue
1589 * bus/services.c (struct BusService): remove prohibit_replacement field
1590 (struct BusOwner): new struct for keeping track of queued connections
1591 and their associated flags for the queue
1592 (struct BusRegistry): add a BusOwner memory pool
1593 (bus_registry_new): initialize the BusOwner memory pool
1594 (bus_registry_unref): free the BusOwner memory pool
1595 (_bus_service_find_owner_link): new internal method for
1596 searching the queue for a specific connection
1597 (bus_owner_set_flags): new method for adding setting the flags on a
1599 (bus_owner_new): new method that creates a BusOwner object from the
1600 pool and sets its flags
1601 (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1602 (bus_registry_ensure): Add the flags parameter
1603 (bus_registry_acquire_service): Switch from using raw connections to
1604 using the BusOwner struct
1605 Add new state machine for dealing with the new set of flags
1606 (bus_registry_set_service_context_table, struct OwnershipCancelData,
1607 cancel_ownership, free_ownership_cancel_data,
1608 add_cancel_ownership_to_transaction, struct OwnershipRestoreData,
1609 restore_ownership, free_ownership_restore_data,
1610 add_restore_ownership_to_transaction): Switch to using BusOwner
1611 instead of raw connections
1612 (bus_service_add_owner): Add flags parameter
1613 Switch to using BusOwner instead of raw connections
1614 Add state machine for dealing with the new set of flags
1615 (bus_service_swap_owner): Swaps the first and second owners in the
1616 queue. Used to make sure proper signals are sent when a service looses
1617 or gains primary ownership. We never insert an owner at the top of the
1618 queue. Instead we insert it in the second position and then swap.
1619 (bus_service_remove_owner): Remove the owner from the queue sending
1620 out the NameLost and NameOwnerChanged signals if the we were the
1622 (bus_service_get_primary_owners_connection): New method that extracts
1623 the connection from the primary owner
1624 (bus_service_get_primary_owner): Returns the BusOwner instead of the
1626 (bus_service_get_allow_replacement): Changed from the old
1627 bus_service_get_prohibit_replacement method. Checks the flags of the
1628 primary owner and returns if it can be replaced or not
1629 (bus_service_set_prohibit_replacement): removed
1630 (bus_service_has_owner): returns TRUE if and owner with
1631 the specified connection exists in the queue
1633 * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1634 method that only compiles if tests are enabled. Allows us to get the
1635 unique name of a connection so we can check it against the queue when
1636 doing regression tests
1638 * bus/activation.c (bus_activation_send_pending_auto_activate),
1639 bus/dispatch.c (bus_dispatch),
1640 bus/driver.c (bus_driver_handle_get_service_owner,
1641 bus_driver_handle_get_connection_unix_user,
1642 bus_driver_handle_get_connection_unix_process_id,
1643 bus_driver_handle_get_connection_selinux_security_context),
1644 bus/signals.c (connection_is_primary_owner):
1645 use bus_service_get_primary_owners_connection instead of
1646 bus_service_get_primary_owner
1648 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket,
1649 _dbus_listen_unix_socket): Calculate the length of the socket
1650 path and use that instead of using a fixed length which was
1651 causing socket names to contain many trailing Nul bytes.
1653 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1654 (dbus_g_method_get_sender): New method for extracting the sender
1655 from a DBusGMethodInvocation
1656 (dbus_g_method_return_get_reply): changed name to
1657 dbus_g_method_get_reply
1658 (dbus_g_method_return_send_reply): changed name to
1659 dbus_g_method_send reply
1661 * doc/dbus-specification.xml: New docs that describe how the new
1662 queueing system works and talks about the changes to the how
1663 we specify socket names
1665 * glib/examples/example-service.c,
1666 glib/examples/example-signal-emitter.c,
1667 glib/examples/statemachine/statemachine-server.c:
1668 Changed the RequestName flags to the new system
1670 * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1671 regression test suite for testing various states of the new
1674 2005-11-15 Robert McQueen <robot101@debian.org>
1676 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1677 Taylor to add two methods, dbus_g_method_return_get_reply and
1678 dbus_g_method_return_send_reply, to allow you to get the reply
1679 message from a DBusGMethodInvocation, append arbitrary stuff to it,
1680 and send it. The GLib bindings can't marshal a return value of
1681 something like a(s) if the array is empty - ultimately they should be
1682 made to heed the signature of the out arguments as the Python bindings
1683 now can, but this is a workable interim solution which might have
1686 2005-11-15 Robert McQueen <robot101@debian.org>
1688 * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1689 method to org.freedesktop.DBus to release a bus name or give up
1690 waiting in the queue for it.
1692 * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1693 dbus_bus_release_name method to send the ReleaseName method calls.
1694 Add constants for the return values to dbus/dbus-shared.h.
1696 * doc/dbus-specification.xml: Document the new ReleaseName method
1697 in the specification.
1699 * python/dbus_bindings.pyx: Add a low-level python binding for the
1700 release name method.
1702 * python/exceptions.py, python/service.py: Make freeing BusName
1703 objects release the name. Add a NameExistsException, and fix a
1704 bug with creating UnknownMethodException.
1706 * test/python/test-client.py: Add tests for freeing BusName
1707 objects causing names to be released.
1709 2005-11-14 Robert McQueen <robot101@debian.org>
1711 * python/service.py: Include the traceback in the error reply when we
1712 send an exception over the bus. _BEST_ _PATCH_ _EVER_
1714 2005-11-14 David Zeuthen <davidz@redhat.com>
1716 Patch from Timo Hoenig <thoenig@suse.de>.
1718 * bus/bus.c: I've recently investigated why the automatic reload
1719 of configuration files does not work as expected.
1721 Currently, reloading configuration files does only work when
1722 running dbus-daemon with --nodaemon. If we are running as daemon
1723 we're hitting a dnotify bug once we fork the process.
1725 We're initializing the dnotify fds before calling fork(). Once
1726 the child process forked it does still have the fds (and they
1727 still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1728 getting SIGIO as changes are made to the configuration files.
1730 The attached patch moves the initialization of the dnotify fds to
1731 process_config_postinit(). This is safe for all current code
1732 paths and solves the dnotify disfunction. If we're running
1733 dbus-daemon as daemon the fds for dnotify are now being
1734 initialized after fork() for the child process.
1736 * configure.in: The current configure.in check for dnotify probes
1737 'x$target_os' for being 'xlinux-gnu'. I've changed the check to
1738 match for 'xlinux', too. Additionally I have adapted the configure
1739 option's style to match with the others.
1741 2005-11-14 Robert McQueen <robot101@debian.org>
1743 * python/decorators.py, python/service.py: Add a new argument to the
1744 dbus.service.method decorator called sender_keyword, which if set,
1745 specifies the name of an argument which will be provided the bus
1746 name of the method caller.
1748 * test/python/test-client.py, test/python/test-service.py: Add a
1749 method and test to check the sender_keyword functionality.
1751 2005-11-07 John (J5) Palmieri <johnp@redhat.com>
1753 * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an
1754 empty reply so blocking calls don't block forever (Patch from Sjoerd
1755 Simons <sjoerd at luon.net>)
1757 * AUTHORS: Add Robert McQueen for his work on the Python
1758 Bindings and other parts of D-Bus
1760 2005-11-07 Robert McQueen <robot101@debian.org>
1762 * python/decorators.py: Change emit_signal function to use the
1763 signature annotation of the signal when marhsalling the arguments from
1764 the service. Fix a bug where the code checking signature length
1765 against argument length referenced the wrong variable.
1767 * python/introspect_parser.py: Avoid adding the type signature of
1768 signal arguments to any methods which occur after them in the
1769 introspection data (!) by making the parser a little more careful
1770 about its current state.
1772 * python/service.py: Remove debug prints from last commit (again :D).
1774 * test/python/test-client.py, test/python/test-service.py: Add test
1775 signals with signature decorators to test the strict marshalling code
1776 gives errors at the right time. Could do with checking the signals
1777 actually get emitted too, given that the test does nothing with
1778 signals at the moment...
1780 2005-11-07 Robert McQueen <robot101@debian.org>
1782 * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1783 instances to stop madness of creating new instances representing
1784 the same bus connection all the time, rendering any tracking of
1785 match rules and bus names quite meaningless. Caught a bug where
1786 the private argument to SessionBus() and friends was being passed
1787 in as use_default_mainloop by mistake. Still some problems with
1788 multiple dbus_binding.Connection instances representing the same
1789 low-level connection (eg when you use both SessionBus() and
1790 StarterBus() in same process), but it's a lot better now than it
1793 * python/dbus_bindings.pyx: Add constants with the return values
1794 for bus_request_name().
1796 * python/service.py: Store bus name instances in a per-dbus.Bus cache
1797 and retrieve the same instances for the same name, so deletion can be
1798 done with refcounting. Also now throws some kind of error if you
1799 don't actually get the name you requested, unlike previously...
1801 * test/python/test-client.py: Add tests for instance caching of buses
1802 and bus name objects.
1804 2005-11-04 Robert McQueen <robot101@debian.org>
1806 * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1807 marshalling of boolean values. Add some booleans to the values in
1810 * python/decorators.py, python/service.py: Add an 'async_callbacks'
1811 argument to the dbus.service.method decorator, which allows you to
1812 name arguments to take two callback functions for replying with
1813 return values or an exception.
1815 * test/python/test-client.py, test/python/test-service.py: Add test
1816 case using asynchronous method reply functions, both return values and
1817 errors, and from within both the function itself and from a mainloop
1820 * python/decorators.py, python/service.py: Perform checking that the
1821 number of method/signal arguments matches the number of types in the
1822 signature at class loading time, not when you first introspect the
1825 * python/service.py: Remove debug print left by the last commit.
1827 2005-11-03 Robert McQueen <robot101@debian.org>
1829 * python/service.py: Heavy refactoring of method invocation, with
1830 hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1831 in favour of a new _message_cb that uses seperate functions for
1832 looking up the method to call, marshalling the return values, and
1833 sending exceptions as errors, and is easier to follow as a
1834 consequence. Fixes some corner cases about returning things that
1835 don't match your declared out_signature, allows exceptions to define
1836 _dbus_error_name and have it be sent over the bus as the error name,
1837 and paves the way for cool stuff like heeding the message no reply
1838 flag, asynchronous method implementations, informing the method of the
1839 sender, and including backtraces in the error messages.
1841 * test/python/test-client.py: Catch and print exceptions thrown in the
1842 async callback tests, rather than passing them to the low-level
1843 bindings to be ignored in a noisy and frustrating manner.
1845 2005-11-03 Robert McQueen <robot101@debian.org>
1847 * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1848 functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1849 tweak others to be consistent.
1851 * test/python/test-client.py: Tweak output of testInheritance.
1853 2005-10-29 Robert McQueen <robot101@debian.org>
1855 * python/service.py: Major changes to allow multiple inheritance
1856 from classes that define D-Bus interfaces:
1858 1. Create a new Interface class which is the parent class of
1859 Object, and make the ObjectType metaclass into InterfaceType.
1861 2. Patch written with Rob Taylor to replace use of method_vtable
1862 with code that walks the class's __MRO__ (method resolution order)
1863 to behave like Python does when invoking methods and allow
1864 overriding as you'd expect. Code is quite tricky because
1865 we have to find two methods, the one to invoke which has the
1866 right name and isn't decorated with the /wrong/ interface,
1867 and the one to pick up the signatures from which is decorated
1868 with the right interface.
1870 The same caveats apply as to normal multiple inheritance -
1871 this has undefined behaviour if you try and inherit from two
1872 classes that define a method with the same name but are
1873 decorated with different interfaces. You should decorate
1874 your overriding method with the interface you want.
1876 3. Replace grungy introspection XML generation code in the metaclass
1877 with dictionaries that cope correctly with multiple inheritance
1878 and the overriding of methods. This also uses the signature
1879 decorations to provide correct introspection data, including
1880 the debut appearance of the types of your return values. :D
1882 * test/python/test-client.py, test/python/test-service.py: Add a test
1883 case to try invoking an method that overrides one inherited from a
1884 D-Bus interface class.
1886 2005-10-29 Robert McQueen <robot101@debian.org>
1888 * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1889 Add checking for the end of struct character when marshalling a
1890 struct in MessageIter.append_strict.
1892 * python/examples/example-service.py,
1893 python/examples/gconf-proxy-service.py,
1894 python/examples/gconf-proxy-service2.py: Update to use gobject
1895 mainloop directly rather than appearing to depend on gtk.
1897 * python/test/test-client.py, python/test/test-server.py: Remove
1898 obsolete and broken test scripts for old bindings. We have up to date
1899 and working tests in test/python/.
1901 2005-10-29 Robert McQueen <robot101@debian.org>
1903 * python/decorators.py: Add optional arguments to the method and
1904 signal decorators to allow you to specify the signature of arguments
1905 and return values. Preserve the doc strings of signal functions in the
1906 decorated version, for pydoc and friends.
1908 * python/dbus_bindings.pyx, python/proxies.py: Replace the
1909 parse_signature_block function with an iterable dbus.Signature()
1910 type. Fix a bug in MessageIter.append_strict where you could append
1911 anything by claiming it was a string.
1913 * python/service.py: Use the out_signature decoration on methods to
1914 marshal return values, meaning you no longer require dbus.Array()
1915 or dbus.Dictionary() to indicate the type when returning empty
1916 arrays or dictionaries. Fix a bug where exceptions which are defined
1917 in __main__ are not turned into error replies.
1919 * test/python/test-client.py, test/python/test-service.py: Add test
1920 for correct marshalling of return values according to out_signature.
1921 Fix a bug in the async call test where the error_handler is missing a
1924 2005-10-29 Robert McQueen <robot101@debian.org>
1926 * glib/Makefile.am, glib/examples/Makefile.am,
1927 glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1928 Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1930 * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1932 * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1933 from Ubuntu by Daniel Silverstone to allow specifying match rules on
1936 2005-10-27 Ross Burton <ross@openedhand.com>
1938 * dbus/dbus-marshal-header.c:
1941 * glib/dbus-gobject.c:
1942 Stop compiler warning.
1944 2005-10-25 Ross Burton <ross@openedhand.com>
1947 * dbus/dbus-server-unix.c:
1948 * dbus/dbus-transport-unix.c:
1949 * glib/dbus-gmain.c:
1950 * glib/dbus-gobject.c:
1951 Add some const keywords.
1953 2005-10-25 Ross Burton <ross@openedhand.com>
1955 * doc/dbus-specification.xml:
1956 Document the NoReply annotation.
1958 * glib/dbus-binding-tool-glib.h:
1959 * glib/dbus-binding-tool-glib.c:
1960 Respect the NoReply annotation.
1962 2005-10-24 Robert McQueen <robot101@debian.org>
1964 * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1965 derive from unicode instead of str, and encode/decode UTF-8 when
1966 marshalling/unmarshalling bus messages
1968 * python/introspect_parser.py: encode introspection data as UTF-8
1969 before passing the buffer into libxml2
1971 * test/python/test-client.py: add unicode test strings
1973 * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1974 ignore generated python test files
1976 2005-10-17 John (J5) Palmieri <johnp@redhat.com>
1978 * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1979 and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1980 (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1982 * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1983 DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1984 when constructing struct signatures
1986 * python/_dbus.py (Bus): handle private connections using the
1987 private keyword in the constructor. defaults to private=False
1988 (Bus::close): new method to close a connection to the bus
1990 * python/dbus_bindings.pyx (Connection::close): renamed method
1991 was previously called disconnect
1992 (bus_get): now supports getting a private connection
1994 * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1995 keyword is set to True. if it is, execute the method without waiting
1997 (ProxyObject::_introspect_execute_queue): new method for executing
1998 all the pending methods that were waiting for the introspect to
1999 finish. this is called when introspect either succeeds or fails
2000 (ProxyObject::_introspect_error_handler): call queued methods
2002 2005-10-14 John (J5) Palmieri <johnp@redhat.com>
2004 * python/dbus_bindings.pyx (MessageIter::append_strict): check for
2005 STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
2007 * python/service.py (Object::_message_cb): handle exceptions correctly
2008 by sending them over the wire to the calling app. This makes sure
2009 the client returns immediately instead of waiting the 15 seconds to
2012 * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect):
2013 Add a test to benchmark how long it takes to introspect a service and
2014 call a method which returns a large element (pretty fast)
2016 * test/python/test-service.py (TestObject::GetComplexArray): new test
2017 method which pushes a lot of data
2019 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
2021 * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):
2022 reclaim memory outside of the loop and use del istead of just setting
2025 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
2027 * python/service.py (ObjectType::_reflect_on_signal): Always close
2028 signal tag even when there are no arguments
2030 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
2032 * configure.in: Set mono, mono-docs and Qt3 to default
2033 to no instead of auto when building. These bindings do not
2034 have full time maintainers and will not be supported for the
2037 2005-10-12 John (J5) Palmieri <johnp@redhat.com>
2039 patches from Michael Krivoruchko <misha at sun.com>:
2041 * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
2042 _dbus_connection_message_sent,
2043 _dbus_connection_send_preallocated_unlocked_no_update,
2044 _dbus_connection_pop_message_link_unlocked): handle the case when path
2045 is NULL when calling _dbus_verbose
2047 * configure.in: check for functions getpeerucred and getpeereid
2049 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides
2050 support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+,
2051 OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid).
2052 Patch was only tested on Solaris 10 x86 so it might be issues
2053 with other platforms (i.e. BSDs and MacOSX)
2056 2005-10-05 John (J5) Palmieri <johnp@redhat.com>
2058 * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal
2059 instead of marshal basic so we can handle recursive types in a variant
2061 * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
2064 * test/glib/test-service-glib.c, test-service-glib.xml
2065 (my_object_echo_variant [EchoVariant],
2066 my_object_process_variant_of_array_of_ints123
2067 [ProcessVariantOfArrayOfInts123]):
2068 Add two test methods
2070 * python/introspect_parser.py: New module for parsing introspect
2073 * python/dbus_bindings.pyx:
2074 (various places): when throwing errors fix to use errormsg instead
2075 of message local variable because Pyrex can get confused with other
2076 message variables (initial patch by Robert McQueen
2077 <robert.mcqueen at collabora.co.uk>)
2078 (MessageIter::parse_signature_block): new method for getting the next
2079 block in a signiture.
2080 (MessageIter::append_strict): new method for appending values strictly
2081 using the passed in signature instead of guessing at the type
2082 (MessageItter:: append_dict, append_struct, append_array): use
2083 signatures to marshal children if the signature is available
2085 * python/exceptions.py (IntrospectionParserException): new exception
2087 * python/proxies.py (ProxyMethod::__call__): Marshal args with
2088 introspected signatures if available, else we fall back to the
2089 old way of doing things.
2090 (ProxyObject::_introspect_reply_handler ): parse introspection data
2092 * python/service.py (ObjectType::_reflect_on_method): Properly
2093 terminate <method> if there are no args in the reflection data
2095 * test/python/test-client.py: add tests for talking with the GLib
2096 test server. This gives us better coverage for introspection since
2097 python to python will always generate arguments as variants. It also
2098 allows us to test the robustness of the GLib bindings and interlanguage
2102 2005-10-03 John (J5) Palmieri <johnp@redhat.com>
2104 * bus/driver.c (bus_driver_handle_introspect): Add signals
2105 to the introspect data. (patch from Daniel P. Berrange
2106 <dan at berrange.com>)
2108 * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2110 * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2111 _dbus_connection_run_builtin_filters): Changed these to
2112 be unlock_no_update functions and call
2113 _dbus_connection_send_unlocked_no_update instead of
2114 dbus_connection_send to avoid locking errors.
2116 * doc/TODO: Removed the make Ping test TODO
2118 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
2120 * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2121 We now copy the message from a DBusError and then free
2122 the error object befor throwing the error
2124 * glib/dbus-glib-tool.c: removed extra comma at the end of the
2125 DBusBindingOutputMode enum which was causing a warning.
2126 #include <time.h> so using time_t is explicitly defined
2128 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
2130 * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2132 (internal_bus_get): new method that take over the heavy lifting
2133 of dbus_bus_get and adds the ability to get a private connection
2135 (dbus_bus_get): wrapper to internal_bus_get that provides the same
2136 interface as in previous versions
2137 (dbus_bus_get_private): new method that is a wrapper to
2138 internal_bus_get to get a private connection to the bus
2141 (dbus_bus_get_private): add as a public libdbus interface
2143 - dbus-1.pc.in: output system_bus_default_address and
2144 sysconfdir variables so apps can use them when compiling
2146 2005-09-23 Harald Fernengel <harry@kdevelop.org>
2147 * dbus/qt: New Qt bindings
2149 2005-09-12 Waldo Bastian <bastian@kde.org>
2151 * dbus/dbus-marshal-validate.c,
2152 doc/dbus-specification.xml, test/Makefile.am,
2153 test/test-names.c: allow hyphens in bus names.
2155 2005-09-11 Mark McLoughlin <mark@skynet.ie>
2157 * test/data/auth/fallback.auth-script: we don't
2158 retry the EXTERNAL method when we know its going
2161 2005-09-11 Mark McLoughlin <mark@skynet.ie>
2163 * dbus/dbus-connection-internal.h: rename
2164 (add|remove|toggle)_(watch|timeout) to unlocked()
2166 * dbus/dbus-connection.c: ditto.
2168 * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2169 Update some callers for the renaming.
2171 2005-09-10 Mark McLoughlin <mark@skynet.ie>
2173 * dbus/dbus-auth.c: (record_mechanisms): don't
2174 retry the first auth mechanism because we know
2175 we're just going to get rejected again.
2177 * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2178 Fix thinko ... and what a nasty little bugger to
2179 track down you were ...
2181 * dbus/dbus-connection.c:
2182 (_dbus_connection_add_watch),
2183 (_dbus_connection_remove_watch): add note about
2184 these needing the connection to be locked.
2185 (_dbus_connection_get_dispatch_status_unlocked):
2186 set status to DATA_REMAINS when we queue the
2187 disconnected message.
2190 (bus_dispatch): fix warning.
2191 (check_existent_service_no_auto_start):
2192 Expect ChildSignaled error too.
2193 (check_existent_hello_from_self): fix another
2196 2005-09-08 Joe Shaw <joeshaw@novell.com>
2198 Patches from James Willcox <snorp@snorp.net>
2200 * mono/Makefile.am: Add Int16.cs and UInt16.cs
2202 * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2203 support array "out" parameters.
2205 * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2206 for 16-bit int support.
2208 2005-09-06 John (J5) Palmieri <johnp@redhat.com>
2212 * Patch from Steve Grubb:
2213 - bus/activation.c (bus_activation_service_reload_test): clean up
2215 - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional
2216 - dbus/dbus-message-factory.c (generate_special): fix a couple of
2217 buffer overflows in the test suite. This is non critical because
2218 it can not be exploited and this code is only run when doing a
2221 * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2222 - configure.in: Don't check and link against kdecore, only qt headers
2223 - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2224 - gcj/org/freedesktop/dbus/Makefile.am:
2225 add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2226 - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2227 and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2228 - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2229 - tools/Makefile.am: Add platform extentions to binaries
2230 (i.e. .exe on windows)
2233 - Make it so if no suitable version of python is found we only
2234 disable building python instead of exiting the configure script
2235 - Require version 2.4 of glib for glib bindings
2236 - Up version to 0.50
2238 * python/__init__.py: Sync version with libdbus to (0,50,0)
2240 2005-09-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
2242 * dbus/dbus-object-tree.c (find_subtree_recurse):
2243 a couple of optimizations (bug #710):
2244 - do a binary search in the tree
2245 - insert a new child at the right place directly, no need for
2247 - do the "double alloc" thing when allocating children
2249 2005-08-31 John (J5) Palmieri <johnp@redhat.com>
2251 * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2253 * python/dbus_bindings.pyx: Memory management foo
2254 (global): remove hacky _user_data_references global list
2255 (GIL_safe_cunregister_function_handler): userdata now stuffed into
2256 tuples. Unref user_data
2257 (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2258 (Connection::__del__): Remove and replace with __dealloc__ method
2259 (Connection::add_filter): Stuff user_data into a tuple. Use Py_INCREF
2260 to keep tuple from being deallocated instead of the global var hack
2261 (Connection::register_object_path): Stuff user_data into a tuple.
2262 Use Py_INCREF to keep tuple from being deallocated instead of the
2264 (Connection::register_fallback): Stuff user_data into a tuple.
2265 Use Py_INCREF to keep tuple from being deallocated instead of the
2267 (GIL_safe_pending_call_notification): Don't unref the message
2268 because it gets unreffed when going out of scope. Py_XDECREF
2270 (PendingCall::__del__): Remove and replace with __dealloc__ method
2271 (PendingCall::set_notify): ref the pending call because we will
2272 need it to stick around for when the notify callback gets called
2273 (Message::__del__): Remove and replace with __dealloc__ method
2275 * python/dbus_glib_bindings.pyx (init_gthreads): Changed to
2276 gthreads_init to match up with the dbus call
2278 * python/glib.py (init_threads): Changed to threads_init to match
2279 up with gobject.threads_init(). init_threads is kept for backwards
2280 compat but will most likely be deprecated in the future
2282 * test/python/test-client.py:
2283 - revamp to use Python's unittest functionality
2284 - add async call tests
2285 - setup threads in glib and dbus so we make sure locks are working
2287 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
2289 * python/dbus_bindings.pyx
2290 (_pending_call_notification, cunregister_function_handler,
2291 cmessage_function_handler): All callback functions have been rearranged
2292 to workaround a bug in Pyrex when working with the GIL which is Python's
2293 global lock when dealing with threads. They have been split into
2294 a wrapper function (which assumes the name of the old function) and
2295 a _GIL_safe_<function name> function which contains the functionality
2296 of the old function. This ensures that Pyrex does not write code
2297 the lock is released.
2300 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
2302 * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
2303 GIL global lock when calling back into Python
2305 2005-08-29 John (J5) Palmieri <johnp@redhat.com>
2309 * Add Havoc's patch that never got applied to HEAD (Bug #2436):
2311 * bus/policy.c (bus_policy_allow_user): change default "user is
2312 allowed" to be "user has same uid as the bus itself"; any
2313 allow/deny rules will override.
2315 * bus/session.conf.in: don't allow all users, since now by default
2316 the user that ran the bus can connect.
2318 2005-08-26 Colin Walters <walters@verbum.org>
2320 * tools/dbus-print-message.c (print_message): Flush stdout
2321 after printing a message, so that redirecting to a file, then
2322 hitting Ctrl-C works.
2324 2005-08-25 John (J5) Palmieri <johnp@redhat.com>
2326 * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2327 (EmptyMessage): new class that subclasses Message. This is a workaround
2328 to a Pyrex bug that fails to call __del__ when the Message object goes out
2329 of scope. For some reason subclassing Message fixes this bug
2330 (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2331 - s/Message(_create=0)/EmptyMessage everywhere else
2333 * test/python/test-{server|client}.py: add the python/.libs directory
2334 to the lookup path so dbus_bindings and dbus_glib_bindings don't
2335 get picked up from the system
2337 2005-08-25 Colin Walters <walters@verbum.org>
2339 * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2340 to Ryan Lortie for the suggestion.
2342 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
2344 * test/python: Add python regression test
2346 * configure.in: Add test/python/Makefile
2348 * test/Makefile.am: Add the python directory to SUBDIRS
2350 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
2355 (Interface::connect_to_signal): propigate keywords for match on args
2356 (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2358 * python/proxies.py (ProxyObject::connect_to_signal):
2359 propigate keywords for match on args
2361 * Makefile.am: point everything to pyexecdir since python borks
2364 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
2368 2005-08-23 Colin Walters <walters@verbum.org>
2370 * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2372 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
2374 * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2375 to fix some wranings. We now use dbus_bindings.DBusConnection instead
2376 of defining DBusConnection ourselves.
2378 2005-08-18 John (J5) Palmieri <johnp@redhat.com>
2380 * python/dbus.pth: New path file to fix up problems when installing
2381 c libraries to lib64 and python files to lib.
2383 * python/Makefile.am: install dbus.pth in the correct spot
2385 2005-08-17 John (J5) Palmieri <johnp@redhat.com>
2386 * ChangeLog: clean up my last entry a bit
2388 * doc/introspect.xsl: New stylesheet for converting introspection data
2389 into browser renderable xhtml. Contributed by Lennart Poettering.
2391 * doc/introspect.dtd: Fixups in the introspect format from Lennart
2394 * doc/dbus-tutorial.xml:
2395 - Add Colin Walter to the Authors section for authoring the GLib
2397 - Add descriptions of the new signature and type functionality
2398 in the Python complex type mapping section
2399 - Add a sidenote on the new args matching functionality in
2401 - Fixed up some of the examples to use the gobject.MainLoop
2405 (Bus::_create_args_dict): New. Converts a hash of arg matches
2406 to a more useable format
2407 (Bus::add_signal_receiver): add a **keywords parameter for catching
2408 arg match parameters
2409 (Bus::remove_signal_receiver): add a **keywords parameter for catching
2410 arg match parameters
2412 * python/matchrules.py:
2413 (MatchTree::exec_matches): Check for arg matches
2414 (SignalMatchRule::add_args_match): New method
2415 (SignalMatchRule::execute): Added args_list parameter as an optimization
2416 so we don't have to marshal the args more than once
2417 (SignalMatchRule::match_args_from_list): New method that checks to see
2418 if the rule's arg matches match an argument list. Only arguments
2419 set in the rule are checked.
2420 (SignalMatchRule::match_args_from_rule): New method that checks to see
2421 if the rule's arg matches match another rule's. All args have to match
2422 in order for this method to return true. If either rule has more args
2423 then it is not a match.
2424 (SignalMatchRule::is_match): Add args match
2425 (SignalMatchRule::repr): Add args to the final output if they exist
2427 2005-08-17 Ross Burton <ross@burtonini.com>
2429 * glib/dbus-gproxy.c:
2430 (dbus_g_proxy_call_no_reply): unref the message once sent.
2431 (dbus_g_proxy_call): protect against NULL proxy.
2433 2005-08-16 John (J5) Palmieri <johnp@redhat.com>
2435 * python/__init__.py: Version updated (0, 43, 0)
2437 * python/dbus_bindings.pyx:
2438 - Fixed type objects to have self passed into __init__
2439 - Added the Variant type
2440 - Add the ability to specify types or signatures for Array, Variant
2442 (Connection::send_with_reply_handlers): return a PendingCall object
2443 (_pending_call_notification): handle the case when an error is returned
2444 without an error message in the body
2445 (MessageIter::get_boolean): return True or False instead of an integer
2446 (MessageIter::python_value_to_dbus_sig): add direct checking of types
2447 and add checks for objects with embeded signatures or types (Array,
2448 Variant and Dictionary)
2449 (MessageIter::append_byte): handle case when the value is a dbus.Byte
2450 (MessageIter::append_dict): handle embeded types or signatures
2451 (MessageIter::append_array): handle embeded types or signatures
2452 (MessageIter::append_variant): new method
2454 * python/proxies.py:
2455 (DeferedMethod): New. Dummy executable object used when queuing calls
2456 blocking on introspection data
2457 (ProxyMethod::__call__): add the timeout keyword for specifying longer
2458 or shorter timeouts for method calls
2459 (ProxyObject): Add first pass at an introspection state machine
2460 (ProxyObject::__init__): Add introspect keyword for turing off an on
2462 (ProxyObject::_Introspect): Internal Introspect call that bypasses
2463 the usual mechanisms for sending messages. This is to avoid a deadlock
2464 where the Intospect call would be queued waiting for the Introspect
2466 (ProxyObject::_introspect_reply_handler): New. This method is called
2467 when introspection returns with no error
2468 (ProxyObject::_introspect_error_handler): New. This method is called
2469 when introspection encounters an error
2470 (ProxyObject::__getattr__): Code to handle different introspection
2471 states. Queue async calls or block blocking calls if we are
2472 introspecting. Pass through as normal if we are not or are done with
2475 * python/service.py: Import signal and method from decorators.py
2477 * python/types.py: Add Variant type
2479 2005-08-16 Colin Walters <walters@verbum.org>
2481 * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2482 DBusError message is NULL.
2484 2005-08-09 Havoc Pennington <hp@redhat.com>
2486 * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2487 malloc'd copy of the name parameter
2489 2005-08-09 Havoc Pennington <hp@redhat.com>
2491 * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2492 warning if the reply serial is set to 0
2494 2005-08-04 Colin Walters <walters@verbum.org>
2496 * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2497 (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2498 (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2499 (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2500 (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2501 (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2502 (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2503 * glib/dbus-gvalue.h (dbus_g_value_types_init)
2504 (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2505 (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2507 Prefix name with _ to ensure they're not exported. All callers
2510 * glib/dbus-gvalue.c (typecode_to_gtype)
2511 (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2512 (signature_iter_to_g_type_dict)
2513 (signature_iter_to_g_type_array)
2514 (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2515 (dbus_gtypes_from_arg_signature):
2516 Move to dbus-gsignature.c.
2518 * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2519 dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2520 (dbus_binding_tool_output_glib_client): Ditto.
2522 * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2523 and dbus-gsignature.h
2525 * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2528 2005-08-03 Colin Walters <walters@verbum.org>
2530 * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2531 catch any incompatible changes accidentally made.
2533 2005-08-03 Havoc Pennington <hp@redhat.com>
2535 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2536 typo, from Julien Puydt
2538 * bus/connection.c (bus_connection_disconnected): we were always
2539 doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2541 2005-08-01 Colin Walters <walters@verbum.org>
2543 Patch from Joe Markus Clarke:
2545 * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2548 2005-08-01 Colin Walters <walters@verbum.org>
2550 Patch from Joe Markus Clarke:
2552 * tools/dbus-send.c (main):
2554 Don't use C99 style initializers (bug #3933).
2556 2005-08-01 Colin Walters <walters@verbum.org>
2558 Patch from Joe Markus Clarke:
2560 * glib/dbus-gvalue.c (dbus_g_value_types_init):
2561 * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init)
2562 * glib/dbus-gobject.c (write_interface):
2564 Don't use C99 style initializers (bug #3933).
2566 2005-07-31 Havoc Pennington <hp@redhat.com>
2568 * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2569 dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2571 2005-07-30 Havoc Pennington <hp@redhat.com>
2573 * fix a bunch of Doxygen warnings and mistakes
2575 2005-07-30 Havoc Pennington <hp@redhat.com>
2577 * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2578 DBUS_BUILD_TESTS since it's now used in production code
2580 2005-07-29 Havoc Pennington <hp@redhat.com>
2582 * test/glib/test-profile.c (write_junk): initialize the junk
2583 buffer so valgrind doesn't have a breakdown
2585 2005-07-29 Havoc Pennington <hp@redhat.com>
2587 * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2588 (match_rule_matches): remove unused arg
2589 (test_matching): add tests for match_rule_matches()
2591 * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2592 do arg0='foo' arg5='bar' in the match rules
2593 (match_rule_matches): don't match if the arg0='foo' doesn't match.
2595 * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2597 2005-07-29 Ross Burton <ross@openedhand.com>
2599 * dbus/dbus-connection.c:
2600 Don't create a DBusCondVar which is never used.
2602 2005-07-27 Ross Burton <ross@openedhand.com>
2604 * dbus/dbus-message.c:
2605 Reduce the size of the maximum cached message to 10K.
2607 2005-07-25 Ross Burton <ross@openedhand.com>
2609 * glib/dbus-gproxy.c:
2610 Remove matches when all proxies are unregistered.
2612 2005-07-24 Colin Walters <walters@verbum.org>
2614 * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2615 typedata; recursive arrays won't have it.
2617 * test/glib/test-dbus-glib.c:
2618 * test/glib/test-service-glib.c:
2619 * test/glib/test-service-glib.xml: Add recursive arrays tests.
2621 2005-07-20 John (J5) Palmieir <johnp@redhat.com>
2623 * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2624 proxies.py, service.py: Cleanup of code after running it through the
2625 pyflakes code checker mostly dealing with undefined names.
2626 (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2628 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
2630 * NEWS: Update to 0.35.2
2632 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
2634 * python/_dbus.py: Remove import of the dbus.services
2635 module as it no longer exists (patch from Dimitur Kirov)
2637 * python/service.py (Object::__init__): Fixed typo
2638 s/name/bus_name (patch from Dimitur Kirov)
2640 * python/examples/example-signal-emitter.py: import dbus.glib
2641 to get the main loop and use glib mainloop instead of gtk so
2642 X doesn't have to be running.
2644 * python/examples/example-signal-recipient.py: import dbus.glib
2645 to get the main loop and use glib mainloop instead of gtk so
2646 X doesn't have to be running. Import the decorators module
2649 * test/glib/Makefile.am: Added DIST_EXTRA files that distcheck
2650 didn't pick up on but are needed to build
2652 * configure.in: upped version to 0.35.2
2654 * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2655 added Colin Walters' SELinux API rename patch from head
2656 s/unix sercurity context/selinux security context/
2658 2005-07-16 John (J5) Palmieri <johnp@redhat.com>
2660 * python/Makefile.am: dbus_binding.pxd.in should be included
2661 in EXTRA_DIST not dbus_binding.pxd
2662 fix up $(srcdir) hopefully for the last time
2664 * NEWS: Update to 0.35.1
2666 2005-07-16 Colin Walters <walters@verbum.org>
2668 * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2669 from bus_driver_handle_get_connection_unix_security_context. Update for
2671 (message_handlers): Update for renames.
2673 * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2674 _dbus_string_init failure correctly.
2675 (bus_selinux_append_context): Convert SID to context. Append it
2677 (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2680 * bus/selinux.h: Update prototype.
2682 * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2683 from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2685 2005-07-15 Colin Walters <walters@verbum.org>
2687 * doc/TODO: Add note about convenience wrappers.
2689 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2691 * NEWS: Update to 0.35
2693 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2695 * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2696 so distcheck doesn't fail
2698 * glib/examples/Makefile.am: Add example-service.xml and
2699 example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2701 * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2702 statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2704 * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2705 compiler looks in the right places during distcheck
2707 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2709 * glib/example/Makefile.am: Fix a typo which cause make distcheck
2712 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2714 * python/examples/example-service.py,
2715 python/examples/example-signal-emitter.py: Fixed up examples
2718 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2720 * python/__init__.py: Upped to version (0,42,0) because of
2723 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2725 * ChangeLog: fix date in last entry
2727 * configure.in, bus/system.conf.in: add the ability to configure
2728 the system bus user at compiletime with the --with-dbus-user flag
2729 (patch from Kristof Vansant)
2731 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2733 * bus/dispatch.c, test/test-service.c: Add testcase
2734 for sending messages to oneself (TODO item).
2736 * python/service.py (class Object): Swap ordering of bus_name
2737 and object_path parameters to better support inheritance.
2739 * doc/dbus-tutorial.xml: change Python docs to reflect change
2740 in parameter ordering and fix the inheritance section.
2742 * doc/TODO: remove sending message to oneself TODO item
2744 2005-07-15 Ross Burton <ross@openedhand.com>
2746 * glib/dbus-gproxy.c:
2747 Fix a leak when calling methods via the proxy.
2749 2005-07-15 Colin Walters <walters@verbum.org>
2751 * bus/selinux.c (bus_selinux_append_context): Wrap in
2754 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
2756 * python/_dbus.py (Bus::remove_signal_receiver):
2757 don't add a callback to the match if none has been passed in
2759 * python/matchrules.py (SignalMatchTree::remove): if the rule
2760 being matched does not have a callback treat it as a wildcard
2763 * doc/dbus-tutorial.xml: Add Python tutorial
2765 2005-07-14 Colin Walters <walters@verbum.org>
2768 (bus_driver_handle_get_connection_unix_security_context): New function.
2769 (message_handlers): Add.
2771 * bus/selinux.c (bus_selinux_append_context): New function; appends
2772 security context to message.
2774 * bus/selinux.h: Prototype.
2776 * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2778 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
2780 * bus/activation.c: clean up all tabs to be 8 spaces
2781 (bus_activation_activate_service): make sure we clean up
2784 * bus/dispatch.c: clean up all tabs to be 8 spaces
2785 (check_shell_fail_service_auto_start): New function
2786 tests to make sure we get fail properly when trying to auto start a service
2787 with a faulty command line
2788 (check_shell_service_success_auto_start): New function tests to make sure
2789 auto started services get the arguments on the command line
2791 * test/test-shell-service.c: Added service for testing auto-starting with
2792 command line arguments
2794 * test/data/valid-service-files/debug-shell-echo-fail.service.in,
2795 test/data/valid-service-files/debug-shell-echo-success.service.in:
2796 Added service files for testing auto-starting with command line arguments
2798 * */.cvsignore: added a bunch of generated files to various .cvsignore files
2800 2005-07-14 Rodrigo Moya <rodrigo@novell.com>
2802 * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2804 * dbus/Makefile.am: added new files to build.
2806 * bus/activation.c (bus_activation_activate_service): support
2807 activation commands with parameters.
2809 * test/shell-test.c: added test program for the shell parsing
2812 2005-07-13 David Zeuthen <davidz@redhat.com>
2814 * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2815 64 bit signed and unsigned parameters
2817 2005-07-13 John (J5) Palmieri <johnp@redhat.com>
2819 * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2821 * python/service.py (class Name): renamed BusName to make it clearer
2822 what the object is for (a name on the bus)
2824 * python/examples/example-service.py,
2825 python/examples/example-signal-emitter.py: change the Name object to
2828 2005-07-12 Colin Walters <walters@verbum.org>
2830 Patch from Jim Gettys <Jim.Gettys@hp.com>.
2832 * tools/dbus-launch.c: Include sys/select.h.
2834 2005-07-12 John (J5) Palmieri <johnp@redhat.com>
2835 * python/dbus_bindings.pyx.in: removed
2837 * python/dbus_bindings.pyx: Added.
2838 - Fixed some memleaks (patch from
2839 Sean Meiners <sean.meiners@linspireinc.com>)
2840 - Broke out the #include "dbus_h_wrapper.h" and put it in its
2841 own pxd file (Pyrex definition)
2842 - Broke out glib dependancies into its own pyx module
2844 * python/dbus_bindings.pdx: Added.
2845 - Defines C class Connection for exporting to other modules
2847 * python/dbus_glib_bindings.pyx: Added.
2848 - New module to handle lowlevel dbus-glib mainloop integration
2850 * python/glib.py: Added.
2851 - Registers the glib mainloop when you import this module
2853 * python/services.py: Removed (renamed to service.py)
2855 * python/service.py: Added.
2856 - (class Server): renamed Name
2858 * python/__init__.py: Bump ro version (0,41,0)
2859 -don't import the decorators or service module
2860 by default. These now reside in the dbus.service namespace
2862 * python/_dbus.py (Bus::__init__): Add code run the main loop
2863 setup function on creation
2865 * python/examples/example-service.py,
2866 python/examples/example-signal-emitter.py: update examples
2868 * python/examples/gconf-proxy-service.py,
2869 python/examples/gconf-proxy-service2.py: TODO fix these up
2871 * doc/TODO: Addition
2872 - Added a Python Bindings 1.0 section
2873 - added "Add match on args or match on details to match rules"
2876 2005-07-12 Colin Walters <walters@verbum.org>
2878 * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h)
2879 (statemachine-glue.h):
2880 * glib/examples/Makefile.am (example-service-glue.h)
2881 (example-signal-emitter-glue.h):
2882 * glib/Makefile.am (dbus-glib-error-switch.h):
2883 Add libtool --mode=execute so we use the built library instead
2884 of any installed one.
2886 2005-07-11 Colin Walters <walters@verbum.org>
2888 * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2889 (dbus_g_value_types_init): Remove assertion.
2890 (dbus_g_value_get_g_type, dbus_g_value_open)
2891 (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2892 (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2893 functions related to DBusGValue. Now we marshal/demarshal
2894 structures as GValueArray.
2895 (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2897 (signature_iter_to_g_type_array): Don't call
2898 signature_iter_to_g_type_struct.
2899 (signature_iter_to_g_type_struct): Delete.
2900 (dbus_gvalue_to_signature): Delete.
2901 (dbus_gvalue_to_signature): New function with same name as other
2902 one; we can convert structures to signatures.
2903 (demarshal_valuearray): New function.
2904 (get_type_demarshaller): Use it.
2905 (demarshal_recurse): Delete.
2906 (marshal_proxy): New function.
2907 (marshal_map): Warn if we can't determine signature from type.
2908 (marshal_collection_ptrarray): Ditto.
2909 (marshal_collection_array): Ditto.
2910 (get_type_marshaller): Use marshal_valuearray.
2911 (marshal_recurse): Delete.
2912 (_dbus_gvalue_test): Add some tests.
2914 * dbus/dbus-glib.h (struct _DBusGValueIterator):
2915 (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2916 (dbus_g_value_open, dbus_g_value_iterator_get_value)
2917 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2918 (dbus_g_value_free): Remove prototypes.
2920 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2923 * glib/examples/example-service.c:
2924 * glib/examples/example-client.c: Implement GetTuple.
2926 * test/glib/test-dbus-glib.c:
2927 * test/glib/test-service-glib.c:
2928 * test/glib/test-service-glib.xml: Add structure tests.
2930 2005-07-10 Colin Walters <walters@verbum.org>
2932 * doc/TODO: Knock off some GLib items with this patch.
2934 * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error)
2935 (_dbus_gvalue_signals_error): New functions.
2937 * glib/dbus-gvalue-utils.h: Prototype them.
2939 * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2940 and change to not output const/retval flags for input args. All
2942 (invoke_object_method): Refactor to handle return values. Add
2943 some more comments in various places. Remove debug g_print.
2945 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2947 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2949 (compute_gsignature): New function; refactored from code from
2950 compute_marshaller and compute_marshaller_name. Enhance to
2951 handle return values and async ops more cleanly. Update for
2952 async ops returning NONE instead of BOOLEAN.
2953 (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2954 and output appropriate string.
2955 (generate_glue): Handle return value annotation. Also don't dump
2956 constness flag for input arguments.
2958 * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2959 files shared between installed library and utilities.
2960 (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2961 (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2962 binding tool can access gtype utility functions.
2964 * test/glib/test-service-glib.c:
2965 * test/glib/test-service-glib.xml:
2966 * test/glib/test-dbus-glib.c: Add some tests for return values.
2968 2005-07-09 Colin Walters <walters@verbum.org>
2970 * glib/dbus-gparser.c (parse_annotation): Add annotations to
2971 argument if available, not method.
2973 * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2974 (invoke_object_method): First, remove some redundant
2975 GValues (object_value, error_value) in favor of working on
2976 array directly. Second, rework constness to be less buggy.
2977 Now we iterate directly over the argument metadata instead
2978 of parallel iterating over output signature and metadata.
2980 * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2982 * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2983 annotation on input args.
2985 2005-07-09 Colin Walters <walters@verbum.org>
2987 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2990 * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2993 * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2994 (method_dir_signature_from_object_info): Handle arg_iterate change.
2995 (write_interface): Ditto.
2996 (lookup_object_info): Don't barf if format_version is > 0.
2997 (invoke_object_method): Handle arg constness.
2999 * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
3000 (arg_info_new): Create.
3001 (arg_info_unref): Destroy.
3002 (arg_info_get_annotations, arg_info_get_annotation)
3003 (arg_info_add_annotation): New functions.
3005 * glib/dbus-gidl.h: Prototype them.
3007 * glib/dbus-gparser.c (parse_annotation): Allow annotations in
3008 args, disallow them in properties.
3009 (parse_annotation): Handle arg annotations.
3011 * test/glib/test-service-glib.xml:
3012 * test/glib/test-service-glib.c: Update to make some methods
3015 2005-07-08 Colin Walters <walters@verbum.org>
3017 * test/glib/test-service-glib.xml:
3018 * test/glib/test-service-glib.c:
3019 * test/glib/test-dbus-glib.c: Test a{sv}.
3021 * glib/examples/statemachine/statemachine.c:
3022 * glib/examples/statemachine/statemachine-server.c:
3023 * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
3024 add progress bar, etc.
3026 * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
3027 needed anymore due to generic array/map marshalling.
3028 (dbus_g_value_types_init): Don't register basic arrays or the
3030 (dbus_gtype_from_signature_iter): Don't try to recurse into
3032 (dbus_gtype_to_signature): Check collection/map before type
3034 (demarshal_garray_basic): Renamed to demarshal_collection_array.
3035 (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
3036 generic map creation/append functions instead of hash table
3038 (get_type_demarshaller): Handle maps.
3039 (demarshal_collection): Dispatch on collection type to either
3040 demarshal_collection_ptrarray or demarshal_collection_array.
3041 (get_type_marshaller): Handle maps.
3042 (marshal_collection): Dispatch collection type to either
3043 marshal_collection_ptrarray or marshal_collection_array.
3044 (_dbus_gvalue_test): New test.
3046 * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
3047 (hash_free_from_gtype): Use it to free GValues.
3048 (hashtable_append): New function.
3049 (ptrarray_append): Fix prototype.
3050 (slist_append): Ditto.
3051 (_dbus_gvalue_utils_test): Extend tests.
3053 * glib/dbus-gtype-specialized.c
3054 (dbus_g_type_specialized_init_append): Renamed from
3055 dbus_g_type_specialized_collection_init_append. Remove const from
3056 value, since we steal it.
3057 (dbus_g_type_specialized_map_append): New function.
3059 * glib/dbus-gtype-specialized.h: Update prototypes.
3060 Add DBusGTypeSpecializedMapAppendFunc.
3062 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3065 * glib/dbus-gtest.h: Prototype it.
3067 2005-07-08 Ross Burton <ross@openedhand.com>
3070 Add DBysGAsyncData for the async bindings.
3072 * glib/dbus-binding-tool-glib.c:
3073 Re-enable the async bindings.
3075 * test/glib/test-dbus-glib.c:
3076 Add a test for the generated async bindings.
3078 2005-07-08 Colin Walters <walters@verbum.org>
3080 * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3083 2005-07-08 Colin Walters <walters@verbum.org>
3085 * tools/Makefile.am: Kill of print-introspect in favor of using
3086 dbus-send --print-reply=literal.
3088 * test/glib/test-service-glib.xml:
3089 * test/glib/test-service-glib.c (my_object_get_objs): New test
3092 * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3093 (main): Test GetObjs.
3095 * glib/examples/statemachine/Makefile.am:
3096 * glib/examples/statemachine/sm-marshal.list:
3097 * glib/examples/statemachine/statemachine-client.c:
3098 * glib/examples/statemachine/statemachine-server.c:
3099 * glib/examples/statemachine/statemachine-server.xml:
3100 * glib/examples/statemachine/statemachine.c:
3101 * glib/examples/statemachine/statemachine.h:
3102 * glib/examples/statemachine/statemachine.xml:
3106 * glib/examples/example-service.c (main): Move invocation
3107 of dbus_g_object_type_install_info earlier, to emphasize it
3108 should only be done once.
3110 * glib/examples/example-signal-emitter.c (main): Ditto.
3112 * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3114 * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3115 (dbus_gvalue_marshal): Update prototypes.
3117 * glib/dbus-gvalue.c: Update all marshalling functions to take
3118 const GValue instead of GValue.
3119 (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3121 (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3123 (dbus_gtype_to_signature): Handle generic collecitons and maps.
3124 Return a newly-allocated string.
3125 (demarshal_proxy, demarshal_object_path, demarshal_object)
3126 (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3127 we get the wrong types from message.
3128 (get_type_demarshaller): New function, extracted from
3129 dbus_gvalue_demarshal.
3130 (demarshal_collection): New function, demarshals generic
3132 (dbus_gvalue_demarshal): Just invoke result of
3133 get_type_demarshaller. Throw error if we don't have one.
3134 (marshal_garray_basic): Abort on OOM.
3135 (get_type_marshaller): New function, extracted from
3136 dbus_gvalue_marshal.
3137 (collection_marshal_iterator, marshal_collection): New functions;
3138 implements generic marshalling for an iteratable specialized
3140 (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3142 * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3144 (ptrarray_value_from_gvalue): Ditto.
3145 (ptrarray_append, ptrarray_free): New functions.
3146 (slist_constructor, slist_iterator, slist_copy_elt, slist_copy)
3147 (slist_append, slist_end_append, slist_free): New functions.
3148 (dbus_g_type_specialized_builtins_init): Add append fuctions
3149 for GPtrArray and GSList. Register GSList.
3150 (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3152 * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3154 (dbus_g_type_specialized_collection_init_append)
3155 (dbus_g_type_specialized_collection_append)
3156 (dbus_g_type_specialized_collection_end_append): Prototype.
3157 (DBusGTypeSpecializedCollectionVtable): Add append_func and
3160 * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append)
3161 (dbus_g_type_specialized_collection_append)
3162 (dbus_g_type_specialized_collection_end_append): New functions.
3163 (dbus_g_type_map_value_iterate): Take const GValue.
3164 (dbus_g_type_collection_value_iterate): Ditto.
3166 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3167 _dbus_gvalue_utils_test.
3169 * glib/dbus-gtest.h: Prototype it.
3171 * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3172 using uninitialized owner_list.
3173 (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3175 (dbus_g_proxy_end_call_internal): Update to use error set
3176 from dbus_gvalue_demarshal instead of setting it here.
3177 (dbus_g_proxy_begin_call): Move return_if_fail here.
3179 * glib/dbus-gobject.c (write_interface): Update for
3180 dbus_gtype_to_signature returning new string.
3182 * configure.in: Add glib/examples/statemachine.
3184 2005-07-08 Joe Shaw <joeshaw@novell.com>
3186 * configure.in: Add a configure option, --with-console-auth-dir
3188 * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3189 new setting. Patch from Kay Sievers.
3191 2005-07-06 Colin Walters <walters@verbum.org>
3193 * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3194 (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3195 (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3196 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3197 Delete in favor of dbus_g_proxy_begin_call and
3198 dbus_g_proxy_cancel_call.
3199 (DBusGProxyCall, DBusGProxyCallNotify): New.
3200 (dbus_g_proxy_begin_call): Change prototype to take callback, user
3201 data, and destroy function. This replaces
3202 dbus_g_pending_call_set_notify.
3203 (dbus_g_proxy_cancel_call): Prototype.
3204 (DBusGAsyncData): Delete, shouldn't be needed anymore.
3206 * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3208 (struct _DBusGProxyManager): Add bus_proxy member, which is an
3209 internal proxy for calls to the bus. Remove
3210 pending_nameowner_calls, now the internal proxy keeps track.
3211 (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3212 pending_nameowner_calls.
3213 (got_name_owner_cb): Update prototype, and use
3214 dbus_g_proxy_end_call.
3215 (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3216 (dbus_g_proxy_manager_register): Delete directly libdbus code in
3217 favor of using internal proxy.
3218 (dbus_g_proxy_manager_unregister): Update to use
3219 dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3220 (dbus_g_proxy_init): Initialize pending calls map.
3221 (dbus_g_proxy_constructor): New.
3222 (dbus_g_proxy_class_init): Add get/set property functions,
3223 constructor, and add NAME, PATH, and INTERFACE properties.
3224 (cancel_pending_call): New function.
3225 (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3227 (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3228 (GPendingNotifyClosure): New structure.
3229 (d_pending_call_notify, d_pending_call_free): Moved here from
3231 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3233 (manager_begin_bus_call): New internal function for talking to
3235 (dbus_g_proxy_new): Construct object using GObjet properties.
3236 (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3237 Create closure of same, and insert call into map of pending calls.
3238 (dbus_g_proxy_end_call_internal): Take call id instead of pending
3239 call. Look up pending call in current set. Remove it when we've
3241 (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3242 (dbus_g_proxy_begin_call): Change API to take callback, user data,
3243 and destroy function directly.
3244 (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3245 (dbus_g_proxy_call): Invoke with NULL callback.
3246 (dbus_g_proxy_cancel_call): New function, replaces
3247 dbus_g_pending_call_cancel.
3249 * glib/dbus-gparser.c (validate_signature): Fix call to
3252 * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3253 New quark for attaching metadata to GType.
3254 (info_hash): Delete.
3255 (lookup_object_info): Look up using quark.
3256 (dbus_g_object_type_install_info): Check that a type is classed,
3257 not that it's an object. Also just install type data using quark
3258 instead of using global hash.
3260 * glib/dbus-glib.c (dbus_g_pending_call_ref)
3261 (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3262 (GPendingNotifyClosure): Delete.
3263 (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3264 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3266 * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3267 client method generation until we can fix it...
3269 * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3270 (load_from_service_thread_func): Ditto.
3272 * tools/dbus-names-model.c (struct NamesModel): Hold
3274 (have_names_notify): Update prototype, use
3275 dbus_g_proxy_cancel_call.
3276 (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3278 * tools/dbus-monitor.c (filter_func): Update for print_message
3281 * test/glib/test-dbus-glib.c: Add more tests for async
3282 invocations. Update many begin_call/end_call pairs to just use
3285 * tools/dbus-send.c (main): Add --print-reply=literal mode. This
3286 allows us to dump print-introspect.c.
3288 * tools/dbus-print-message.h (print_message): Add literal argument
3289 to print_message which is intended to allow printing arguments without
3290 metadata like "string=".
3292 * tools/dbus-print-message.c (print_iter): Add literal argument.
3293 (print_message): Allow printing string messages literally.
3295 2005-07-05 Colin Walters <walters@verbum.org>
3297 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3298 Remove value refcount leak, original patch from Jorn Baayen
3299 <jorn@openedhand.com>. Also remove useless extra value in favor
3300 of prepending to value array directly.
3302 2005-07-02 Colin Walters <walters@verbum.org>
3304 * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
3306 2005-07-01 Colin Walters <walters@verbum.org>
3308 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3310 * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
3311 (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3312 G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3313 and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3315 2005-06-30 Colin Walters <walters@verbum.org>
3317 * test/glib/test-dbus-glib.c:
3318 * test/glib/test-service-glib.c:
3319 * test/glib/test-service-glib.xml: Update tests for new error
3320 setting bits, also add async tests (patch from Ross Burton).
3322 * test/glib/Makefile.am (test_service_glib_LDADD): Add
3323 DBUS_GLIB_THREADS_LIBS.
3325 * glib/dbus-gproxy.c (get_name_owner)
3326 (dbus_g_pending_call_end_valist): Ditto.
3328 * glib/dbus-gobject.c (error_metadata): New mapping from GError
3329 domain (GQuark) to DBusGErrorInfo.
3330 (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3331 quark in error_metadata. Take message interface as default
3332 error message interface.
3333 (gerror_to_dbus_error_message): Pass message interface.
3334 (dbus_set_g_error): Resurrected.
3335 (dbus_g_error_info_free): New function.
3336 (dbus_g_object_type_install_info): Use g_type_class_ref instead
3337 of _peek to actually create the object class if it hasn't been
3339 (dbus_g_error_domain_register): New function.
3341 * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3343 * glib/dbus-gparser.c (validate_signature): Ditto.
3345 * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3346 (dbus_g_error_domain_register): Prototype.
3348 * glib/dbus-glib.c (dbus_g_error_set): Delete.
3351 2005-06-29 Colin Walters <walters@verbum.org>
3353 * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY. Add
3354 DBUS_TYPE_G_OBJECT_PATH.
3356 * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3357 for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3358 be handled more generically). Add DBUS_TYPE_G_OBJECT_PATH.
3359 (dbus_g_object_path_get_g_type): New function.
3360 (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3361 to DBUS_TYPE_G_OBJECT_PATH by default.
3362 (demarshal_proxy): Remove unused name variable.
3363 (demarshal_object_path, marshal_object_path): New functions.
3364 (demarshal_proxy_array, marshal_proxy_array): Delete.
3366 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3367 DBUS_TYPE_G_OBJECT_PATH to char *.
3368 (dbus_g_type_get_lookup_function): Map builtin
3369 DBUS_TYPE_G_OBJECT_PATH.
3371 * test/glib/test-dbus-glib.c
3372 * test/glib/test-service-glib.c (my_object_objpath):
3373 Adapt tests to new object path marshalling.
3375 2005-06-29 John (J5) Palmieri <johnp@redhat.com>
3377 * configure.in: force check for Python >= 2.4
3379 2005-06-29 Colin Walters <walters@verbum.org>
3381 Patch from Ross Burton <ross@openedhand.com>
3383 * glib/dbus-gobject.c (invoke_object_method): Unset object
3384 value in all cases, not only in async case.
3386 2005-06-29 Colin Walters <walters@verbum.org>
3388 * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3389 name_call for keeping track of any outgoing GetNameOwner call.
3390 Also add for_owner and associated.
3391 (struct _DBusGProxyManager): Add owner_names, which is hash table
3392 that maps a base name to a list of names it owns (that we're
3393 interested in). Add pending_nameowner_calls which is a list of
3394 all outstanding GetNameOwner; avoids us having to iterate over
3395 every proxy. Add unassociated_proxies which keeps track of name
3396 proxies with no associated name owner.
3397 (dbus_g_proxy_manager_unref): Destroy owner_names.
3398 (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3400 (find_name_in_info, name_owner_foreach)
3401 (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3402 (dbus_g_proxy_manager_monitor_name_owner)
3403 (dbus_g_proxy_manager_unmonitor_name_owner)
3404 (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3405 New functions; they manipulate the owner_names mapping.
3406 (got_name_owner_cb): New function.
3407 (get_name_owner): New function, extracted from
3408 dbus_g_proxy_new_for_name_owner.
3409 (dbus_g_proxy_manager_register): For now we need to keep track of
3410 all NameOwnerChanged. Also if the proxy is for a name, if we
3411 don't already know the name owner, queue a new GetNameOwner
3412 request and add it to our list of unassociated proxies. Otherwise
3414 (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3415 cancel any pending GetNameOwner call, etc.
3416 (dbus_g_proxy_manager_filter): Handle NameOwnerChanged. Also use
3417 the owner_names mapping to look up the current names for the
3418 signal source, and dispatch to any proxies for that name.
3419 (dbus_g_proxy_new): Initialize new members.
3420 (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3421 (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3422 (dbus_g_pending_call_end_valist): New function, extracted from
3423 dbus_g_proxy_end_call_internal. Useful when we don't have a proxy
3424 but want to use the GLib infrastructure. Also note how many
3425 arguments in reply were over.
3426 (dbus_g_pending_call_end): New function, just call
3427 dbus_g_pending_call_end_valist.
3428 (dbus_g_proxy_end_call_internal): Just call
3429 dbus_g_pending_call_end_valist.
3431 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3432 of builtin marshaller for STRING_STRING_STRING.
3434 * test/glib/test-dbus-glib.c:
3435 * test/glib/test-service-glib.c:
3436 * test/glib/test-service-glib.xml:
3437 Extend tests to cover name proxies, destruction of owner proxies,
3440 * glib/examples/example-signal-recipient.c
3441 (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3443 * tools/dbus-send.c (main): Print D-BUS error name in addition
3446 2005-06-28 John (J5) Palmieri <johnp@redhat.com>
3448 * python/dbus_bindings.pyx.in (cunregister_function_handler,
3449 cmessage_function_handler): Patch from
3450 Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3451 by using the Py_GILState_Ensure/Release to synchronize with the
3454 2005-06-28 Ray Strode <rstrode@redhat.com>
3456 * dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3457 babysitter helper process on last unref, bug #2813.
3459 2005-06-27 Colin Walters <walters@verbum.org>
3461 * test/glib/test-dbus-glib.c:
3462 * test/glib/test-service-glib.c:
3463 * test/glib/test-service-glib.xml:
3464 Test hash table signal emitting.
3466 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3467 types to their fundamental basis types, since this is what
3468 marshallers operate on. Also add an entry for VOID__BOXED.
3469 (dbus_g_object_register_marshaller_array): Convert to fundamental.
3471 2005-06-26 Havoc Pennington <hp@redhat.com>
3473 * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3476 2005-06-26 Colin Walters <walters@verbum.org>
3478 * glib/dbus-glib.c (dbus_set_g_error): Delete.
3479 (dbus_g_error_set): New public function from its ashes; used by
3480 both service-side method implementation and GLib bindings
3482 (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3483 (_dbus_glib_test): Add some tests.
3485 * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3487 * test/glib/test-service-glib.c (my_object_throw_error): Use
3490 * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3491 errors thrown by dbus_g_error_set.
3493 * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3495 * glib/dbus-gparser.c (validate_signature): Ditto.
3497 * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner)
3498 (dbus_g_proxy_end_call_internal): Ditto.
3500 * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3501 converts DBUS_ERROR_x to DBUS_GERROR_x.
3502 (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3504 * doc/TODO: Remove error TODO.
3506 * doc/dbus-tutorial.xml: Update with documentation about error
3509 * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3510 sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3511 GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION.
3513 2005-06-22 Colin Walters <walters@verbum.org>
3515 Patch from Ross Burton <ross@openedhand.com>
3517 * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3519 2005-06-20 Colin Walters <walters@verbum.org>
3521 * configure.in: Add glib/examples.
3523 * glib/Makefile.am: Add examples/
3525 * glib/examples/.cvsignore
3526 * glib/examples/Makefile.am
3527 * glib/examples/example-client.c
3528 * glib/examples/example-service.c
3529 * glib/examples/example-service.xml
3530 * glib/examples/example-signal-emitter.c
3531 * glib/examples/example-signal-emitter.xml
3532 * glib/examples/example-signal-recipient.c:
3533 New files; GLib binding examples, ported from
3536 2005-06-20 Colin Walters <walters@verbum.org>
3539 * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3542 * glib/dbus-binding-tool-glib.c:
3543 * doc/dbus-tutorial.xml:
3544 * test/glib/test-dbus-glib.c: Update for rename.
3546 2005-06-20 Colin Walters <walters@verbum.org>
3548 Patch suggested by Ross Burton <ross@openedhand.com>
3550 * glib/dbus-gobject.c (export_signals): Free signal name.
3551 (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3552 memory leak. Add a bit of documentation.
3553 (dbus_g_method_return_error): Free context, and note we do
3556 2005-06-18 Murray Cumming <murrayc@murrayc.com>
3559 * glib/dbus-gobject.c:
3560 * glib/dbus-gproxy.c:
3561 * glib/dbus-gvalue.c: Predeclare structs as
3562 typedef struct _Something Something instead of
3563 typedef struct Something Something, so we can
3564 redeclare the prototypes. Other GNOME libraries
3567 2005-06-17 Colin Walters <walters@verbum.org>
3569 * tools/dbus-names-model.c (have_names_notify): Fix call
3570 to dbus_g_proxy_end_call.
3572 2005-06-17 Colin Walters <walters@verbum.org>
3574 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3575 spew warnings if we get malformed remote signals.
3577 * glib/dbus-gobject.c (propsig_iterate): New function.
3578 (lookup_object_info): New function, extracted from
3579 lookup_object_and_method.
3580 (introspect_properties, introspect_signals): Delete; these
3581 are merged into write_interface.
3582 (write_interface): Write out signals and properties here;
3583 dump the org.gtk.object stuff and use the interface given
3584 in the introspection data blob. Also fix up property XML.
3585 (lookup_values): New function.
3586 (introspect_interfaces): Gather a mapping from interface to a
3587 list of its methods, signals, and properties, then write out
3589 (lookup_object_and_method): Use lookup_object_info.
3590 (struct DBusGSignalClosure): Add interface.
3591 (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3592 we can just use the constant data.
3593 (dbus_g_signal_closure_finalize): Don't free signal name.
3594 (signal_emitter_marshaller): Use interface from signal closure.
3595 (export_signals): Only export signals mentioned in introspection
3597 (dbus_g_connection_register_g_object): Warn if we have no
3598 introspection data for an object.
3599 (funcsig_equal): Remove unused variable.
3600 (dbus_g_object_register_marshaller): Take varargs instead of
3602 (dbus_g_object_register_marshaller_array): New function,
3603 extracted from old dbus_g_object_register_marshaller.
3605 * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3606 signals and property data.
3607 (write_quoted_string): New function, extracted from generate_glue.
3608 (generate_glue): Write signals and properties to introspection
3611 * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3612 exported_signals and exported_properties.
3613 (dbus_g_object_register_marshaller): Update prototype.
3614 (dbus_g_object_register_marshaller_array): Prototype.
3616 * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3618 * test/glib/test-service-glib.c: Add new test signals and method
3621 * test/glib/test-service-glib.xml: Add some test signals.
3623 * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3624 and my-object-marshal.h
3625 (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3626 my-object-marshal.c.
3627 (my-object-marshal.c, my-object-marshal.h): Implement.
3629 * test/glib/.cvsignore: Update.
3631 * doc/TODO: Remove two GLib TODO items fixed by this
3634 2005-06-16 Colin Walters <walters@verbum.org>
3636 * doc/TODO: Update for GLib bindings.
3638 2005-06-16 Colin Walters <walters@verbum.org>
3640 * glib/dbus-binding-tool-glib.c:
3641 * glib/dbus-gobject.c:
3642 * glib/dbus-gproxy.c: Add Nokia copyright; Patch
3643 from Ross Burton, for his GLib bindings work.
3645 2005-06-16 Colin Walters <walters@verbum.org>
3647 * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3648 to iterate instead of walking to G_TYPE_INVALID.
3650 Patch based on a patch from Ryan Gammon.
3652 2005-06-16 Colin Walters <walters@verbum.org>
3654 * bus/bus.c (bus_context_new): Set parser to NULL
3655 after we unref it (Patch from Chris Boscolo, #2174).
3657 2005-06-16 Colin Walters <walters@verbum.org>
3659 * python/dbus_bindings.pyx.in: Import size_t,
3660 __int64_t, __uint64_t, and __signed.
3662 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3663 Define cmsg struct, output it.
3664 (_dbus_read_credentials_unix_socket):
3667 Patch from Joe Markus Clarke for FreeBSD support.
3669 2005-06-16 Colin Walters <walters@verbum.org>
3671 * tools/dbus-send.c (append_array): Use strtok.
3672 (append_dict): New function.
3673 (type_from_name): New function, extracted from main.
3674 (main): Handle sending dicts.
3676 * tools/dbus-print-message.c (print_iter): Print dict
3679 2005-06-16 Colin Walters <walters@verbum.org>
3681 * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3682 values as the empty string (#2948).
3684 2005-06-16 Colin Walters <walters@verbum.org>
3687 * mono/doc/Makefile.am:
3688 * test/glib/Makefile.am:
3690 Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3692 2005-06-16 Colin Walters <walters@verbum.org>
3694 * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3695 header byte order from expected byte order (Patch from Chris Wilson, #3475).
3697 * dbus/dbus-marshal-byteswap.c (byteswap_body_helper):
3698 Increment pointer after swapping fixed array. Add assertion
3701 2005-06-15 Colin Walters <walters@verbum.org>
3703 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3704 Fix call to dbus_set_error. (Patch from Michael Banck, #3461)
3706 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3708 * NEWS: Update to 0.34
3710 2005-06-15 David Zeuthen <davidz@redhat.com>
3712 * configure.in (LT_CURRENT): Revert back to 1 as the library
3713 hasn't changed and we've certainly not committed to protocol
3714 stability yet. All this does is to break ABI. See commit note
3715 from hp@redhat.com 2005-05-05 for details.
3717 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3719 * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method
3720 (_dbus_connection_run_builtin_filters): New method
3721 (dbus_connection_dispatch): Run the builtin filters which in turn
3722 runs the peer filter which handles Ping messages.
3725 - Ping isn't handled: This patch fixes it
3727 - Add a test case for the Ping message: added TODO item
3729 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3731 * dbus/dbus-message.c:
3732 (dbus_message_has_path): New method
3733 (dbus_message_has_interface): New method
3734 (dbus_message_has_member): New method
3736 * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3739 * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that
3740 the keyring directory is private to the user
3743 - The convenience functions in dbus-bus.h should perhaps have
3744 the signatures that they would have if they were autogenerated
3745 stubs. e.g. the acquire service function. We should also evaluate
3746 which of these functions to include, in light of the fact that
3747 GLib/Qt native stubs will probably also exist.: Punted
3749 - add dbus_message_has_path(), maybe has_member/interface:
3752 - in dbus-keyring.c, enforce that the keyring dir is not
3753 world readable/writable: Fixed in this patch
3755 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3757 * dbus/dbus-marshal-validate.h: Added a new validation
3758 error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for
3759 out of memory errors when validating signitures
3761 * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3762 in places where we previously used DBUS_VALID and a FALSE return
3763 value to indicate OOM
3765 * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3766 Use a stack to track the number of elements inside containers. The
3767 stack values are then used to validate that dict entries have only two
3768 elements within them.
3769 (validate_body_helper): check the reason for failure when validating
3772 * dbus/dbus-message.c (load_message): use
3773 DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used
3774 DBUS_VALID and a FALSE return value to indicate OOM
3776 * doc/TODO: remove "- validate dict entry number of fields" as this
3779 2005-06-14 David Zeuthen <davidz@redhat.com>
3781 * bus/bus.c (process_config_every_time): Drop existing conf-dir
3782 watches (if applicable) and add new watches
3784 * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3785 (main): Setup SIGIO signal handler if using D_NOTIFY
3787 * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3789 * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3790 (merge_included): Also merge conf_dirs list
3791 (bus_config_parser_unref): Clear conf_dirs list
3792 (include_dir): Add directory to conf_dirs list
3793 (bus_config_parser_get_conf_dirs): New function
3795 * bus/dir-watch.[ch]: New files
3797 * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3799 * configure.in: Add checks for D_NOTIFY on Linux
3801 2005-06-14 Colin Walters <walters@verbum.org>
3803 * glib/dbus-binding-tool-glib.c:
3804 * glib/dbus-gobject.c:
3805 * glib/dbus-gvalue.c: Fix indentation and brace style.
3807 2005-06-14 Ross Burton <ross@openedhand.com>.
3809 * glib/dbus-glib.h: Make DBusGMethodInvocation
3810 a private structure. Rearrange prototypes a bit.
3812 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3813 documentation for first_arg_type.
3815 * glib/dbus-gobject.c: Move DBusGMethodInvocation
3816 here, add documentation. Move dbus_g_method_return
3817 and dbus_g_method_return_error into public API
3820 2005-06-14 Colin Walters <walters@verbum.org>
3822 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3823 Add missing return statements, noticed by Ross Burton.
3825 2005-06-13 Ross Burton <ross@openedhand.com>.
3827 * glib/dbus-gobject.c: Handle errors on message
3828 demarshalling by sending error message back.
3829 * glib/dbus-gvalue.c: Initialize return variables.
3831 2005-06-13 Colin Walters <walters@verbum.org>
3833 * glib/Makefile.am: Fix thinko in last patch.
3835 2005-06-13 Colin Walters <walters@verbum.org>
3837 * glib/Makefile.am: Move dbus-gtype-specialized.c
3838 and dbus-gtype-specialized.h into a _HEADERS variable,
3841 2005-06-12 Colin Walters <walters@verbum.org>
3843 Async signals and various bugfixes and testing by
3844 Ross Burton <ross@openedhand.com>.
3846 * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3847 (dbus_gvalue_genmarshal_name_from_type)
3848 (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3849 (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3850 (dbus_g_value_types_init, dbus_gtype_from_signature)
3851 (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3852 (dbus_gtypes_from_arg_signature): New function prototypes.
3853 (dbus_gvalue_demarshal): Take context and error arguments.
3854 (dbus_gvalue_demarshal_variant): New function.
3855 (dbus_gvalue_demarshal_message): New function.
3856 (dbus_gvalue_store): Delete.
3858 * glib/dbus-gvalue.c:
3860 File has been almost entirely rewritten; now we special-case
3861 more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3862 hash tables correctly, etc. Full support for recursive values
3863 is not yet complete.
3865 * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3866 argument of signal to G_TYPE_POINTER since we now pass a
3868 (lookup_g_marshaller): Delete in favor of
3869 _dbus_gobject_lookup_marshaller.
3870 (marshal_dbus_message_to_g_marshaller): Use
3871 _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3872 to handle remote signal callbacks.
3873 (dbus_g_proxy_new_from_proxy): New function; creates a new
3874 DBusGProxy by copying an existing one.
3875 (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3876 (dbus_g_proxy_get_path): New functions.
3877 (dbus_g_proxy_marshal_args_to_message): New function;
3878 factored out of existing code.
3879 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3880 from a varargs array.
3881 (dbus_g_proxy_begin_call_internal): New function.
3882 (dbus_g_proxy_end_call_internal): New function.
3883 (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3884 as arguments; simply invoke dbus_g_proxy_begin_call_internal
3885 after collecting args into value array.
3886 (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3887 invoke dbus_g_proxy_end_call_internal.
3888 (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3890 (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3892 (array_free_all): New function.
3893 (dbus_g_proxy_add_signal): Take GTypes.
3895 * glib/dbus-gobject.h:
3896 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3897 (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3900 * glib/dbus-gobject.c: Add a global marshal_table hash which
3901 stores mappings from type signatures to marshallers. Change lots
3902 of invocations of dbus_gtype_to_dbus_type to
3903 dbus_gtype_to_signature.
3904 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3905 (introspect_signals): Fix test for query.return_type.
3906 (set_object_property): Update invocation of dbus_gvalue_demarshal.
3907 (invoke_object_method): Many changes. Handle asynchronous
3908 invocations. Convert arguments with
3909 dbus_gvalue_demarshal_message. Handle errors. Use
3910 DBusSignatureIter instead of strlen on args. Handle all arguments
3911 generically. Special-case variants.
3912 (dbus_g_method_return, dbus_g_method_return_error): New function.
3913 (DBusGSignalClosure): New structure, closes over signal
3915 (dbus_g_signal_closure_new): New function.
3916 (dbus_g_signal_closure_finalize): New function.
3917 (signal_emitter_marshaller): New function; is special marshaller
3918 which emits signals on bus.
3919 (export_signals): New function; introspects object signals and
3921 (dbus_g_object_type_install_info): Take GType instead of
3923 (dbus_g_connection_register_g_object): Invoke export_signals.
3924 (dbus_g_connection_lookup_g_object): New function.
3925 (DBusGFuncSignature) New structure; used for mapping type
3926 signatures to marshallers.
3927 (funcsig_hash): New function; hashes DBusGFuncSignature.
3928 (funcsig_equal): New function; compares DBusGFuncSignature.
3929 (_dbus_gobject_lookup_marshaller): New function.
3930 (dbus_g_object_register_marshaller): New function; used to
3931 register a marshaller at runtime for a particular signature.
3933 * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3935 * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3936 which notes a server method implementation should be
3939 * glib/dbus-binding-tool-glib.c
3940 (dbus_binding_tool_output_glib_server): Call
3941 dbus_g_value_types_init.
3942 (write_formal_parameters): Use dbus_gtype_from_signature. Handle
3944 (dbus_g_type_get_lookup_function): Turn GType into an invocation
3945 of a lookup function.
3946 (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3947 (write_untyped_out_args): New method; write output arguments.
3948 (write_formal_declarations_for_direction): Function for
3950 (write_formal_parameters_for_direction): Function for
3951 writing implementations.
3952 (write_typed_args_for_direction): Function for writing
3953 arguments prefixed with GTypes.
3954 (write_async_method_client): Write out async version
3957 * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3958 (dbus_g_type_get_marshal_name): Move mapping from GType
3959 to marshal name into here.
3960 (dbus_g_type_get_c_name): Move into here.
3961 (compute_marshaller): Convert signature to type with
3962 dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3963 (compute_marshaller_name): Ditto.
3964 (compute_marshaller): Handle async signal annotations.
3965 (gather_marshallers): Return if we don't have a known
3967 (generate_glue): Collect introspection blob here, and
3968 write all of the blob at the end. This allows an object
3969 with multiple interfaces to work.
3970 Mark async methods in introspection blob.
3972 * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3973 dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3974 dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3976 * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3977 avoids people accidentally using DBUS_TYPE_* which should
3978 not be necessary anymore.
3979 Do include dbus-gtype-specialized.h, which are utilities
3980 for GLib container types.
3981 Add various #defines for types such as
3982 DBUS_TYPE_G_BOOLEAN_ARRAY.
3983 (DBusGValueIterator, DBusGValue): Define, not fully used
3985 (dbus_g_value_get_g_type): Type for recursive value.
3986 (dbus_g_value_open, dbus_g_value_iterator_get_value)
3987 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3988 (dbus_g_value_free): Prototypes.
3989 (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3990 (dbus_g_proxy_set_interface): Prototype.
3991 (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3992 (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3994 (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3996 (DBusGAsyncData, DBusGMethodInvocation): Structures for
3997 doing async invocations.
3998 (dbus_g_method_return, dbus_g_method_return_error):
4000 * doc/dbus-tutorial.xml: Update GLib section.
4002 * tools/dbus-viewer.c (load_child_nodes): Update
4003 for new invocation type of dbus_g_proxy_end_call.
4004 (load_from_service_thread_func): Ditto.
4006 * tools/print-introspect.c (main): Ditto.
4008 * tools/dbus-names-model.c (have_names_notify)
4009 (names_model_reload, names_model_set_connection)
4012 * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
4013 needed since Python bindings use GLib bindings.
4015 * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
4016 Add --prefix argument.
4018 * tools/Makefile.am: Define DBUS_COMPILATION. Remove
4019 unneeded --ignore-unsupported arg.
4021 * test/glib/test-service-glib.c:
4022 * test/glib/test-service-glib.xml:
4023 * test/glib/test-dbus-glib.c: Add many more tests.
4025 2005-06-06 David Zeuthen <davidz@redhat.com>
4027 * doc/TODO: Add item about need to remove deprecated functions.
4029 * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
4031 * dbus/dbus-connection.c (dbus_connection_disconnect): New function
4032 to repair the ABI which was broken with the last commit.
4034 2005-06-02 John (J5) Palmieri <johnp@redhat.com>
4036 * dbus/dbus-connection.c, dbus/dbus-connection.h
4037 (dbus_connection_disconnect): renamed to dbus_connection_close
4038 for API symmetry with dbus_connection_open
4039 (_dbus_connection_open_internal):
4040 s/dbus_connection_disconnect/dbus_connection_close
4042 * dbus/dbus-bus.c (dbus_bus_get):
4043 s/dbus_connection_disconnect/dbus_connection_close
4045 * bus/connection.c (bus_connections_unref,
4046 bus_connections_setup_connection, bus_connections_expire_incomplete):
4047 s/dbus_connection_disconnect/dbus_connection_close
4049 * bus/dispatch.c (bus_dispatch, kill_client_connection,
4050 kill_client_connection_unchecked, check_hello_connection):
4051 s/dbus_connection_disconnect/dbus_connection_close
4053 * bus/bus.c (new_connection_callback):
4054 s/dbus_connection_disconnect/dbus_connection_close
4056 * tools/dbus-send.c (main):
4057 s/dbus_connection_disconnect/dbus_connection_close
4059 * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
4060 s/dbus_connection_disconnect/dbus_connection_close
4062 * test/test-service.c (path_message_func, filter_func):
4063 s/dbus_connection_disconnect/dbus_connection_close
4065 * doc/TODO: remove connection_open/connection_disconnect lacks symmetry item that was just fixed
4067 2005-05-25 Colin Walters <walters@verbum.org>
4069 * dbus/dbus-protocol.h: Move various bus service #defines such
4070 as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
4072 * dbus/dbus-shared.h: Various defines moved here.
4073 * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4075 2005-05-25 John (J5) Palmieri <johnp@redhat.com>
4077 * python/__init__.py: Python bindings deserve a minor version
4078 update. Upped to (0, 40, 2)
4080 2005-05-24 John (J5) Palmieri <johnp@redhat.com>
4082 * python/decorators.py: add explicitly_pass_message decorator
4083 for passing in the dbus message as keyword for edge case signal
4086 * python/matchrules.py (SignalMatchRule.__repr__): fix output
4087 to conform with what dbus expects for match rules
4088 (SignalMatchRule.execute): add the dbus message as a keyword
4089 if the signal handler has requested it
4091 * python/examples/example/signal-recipient.py: added some more
4092 examples on how to hook up to signals
4094 2005-05-23 John (J5) Palmieri <johnp@redhat.com>
4096 * python/decorators.py: import dbus_bindings
4098 * python/matchrules.py (SignalMatchRule, SignalMatchTree,
4099 SignalMatchNode): new classes that implement wildcard signal
4100 callback matching using a tree lookup. Heavily modified from a
4101 patch sent by Celso Pinto (fd.o bug #3241)
4103 * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4104 use new match classes to handle signals.
4106 2005-05-19 John (J5) Palmieri <johnp@redhat.com>
4108 * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4110 2005-05-18 Havoc Pennington <hp@redhat.com>
4112 * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4113 gettext. Not really worth requiring yet perhaps, but any
4114 production quality 1.0 would require it so we should go ahead and
4115 get things set up. We do have a couple token calls to
4116 bindtextdomain in the code already.
4118 2005-05-16 John (J5) Palmieri <johnp@redhat.com>
4120 * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4121 when using recursive g_main_loops
4123 * python/_dbus.py (class Bus): add the ProxyObjectClass
4124 alias for ProxyObject to make it easier for the Twisted
4125 networking framework to integrate dbus.
4127 * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4128 alias for ProxyMethod to make it easier for the Twisted
4129 networking framework to integrate dbus.
4131 2005-05-11 Ross Burton <ross@openedhand.com>
4133 * glib/dbus-glib-tool.c: Add --prefix argument.
4134 * glib/dbus-binding-tool-glib.h: Add prefix argument.
4135 * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
4136 Add prefix argument.
4137 (generate_glue): Pass prefix argument down.
4138 (dbus_binding_tool_output_glib_server): Pass prefix to
4141 2005-05-11 Colin Walters <walters@verbum.org>
4143 * tools/dbus-send.c (append_array): New function.
4144 (append_arg): Broken out from main.
4145 (main): Add cheesy hack to send arrays and variants.
4147 * tools/dbus-print-message.c (print_iter): Broken out
4150 2005-05-11 Colin Walters <walters@verbum.org>
4152 * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4153 New function, returns signature string for signature iter.
4154 * dbus/dbus-signature.h: Prototype it.
4155 * dbus/dbus-message.c (dbus_message_iter_get_signature):
4156 New function, returns signature string for message iter.
4157 (dbus_message_iter_get_array_len): New function, returns
4159 (dbus_message_iter_get_fixed_array): Fix assertion; this
4160 function should be used when the iter is pointing to the
4161 contents of an array
4162 * dbus/dbus-message.h: Prototypes.
4163 * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4164 New function; returns length of an array.
4165 * dbus/dbus-marshal-recursive.h: Prototype it.
4167 2005-05-11 Colin Walters <walters@verbum.org>
4169 * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4172 2005-05-08 Havoc Pennington <hp@redhat.com>
4174 * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4175 daemon's pid, not the parent's pid, to the file descriptor.
4176 Reported by Taj Morton.
4178 2005-05-05 Havoc Pennington <hp@redhat.com>
4180 * configure.in (LT_*): add notes on how the libtool versioning
4181 works to save thinking. Increment soname to indicate protocol
4182 breakage (though really the library interface hasn't changed I
4185 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4186 verify the GUID received from server matches what we were
4187 expecting, if we had an expectation
4189 * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4190 (_dbus_auth_get_guid_from_server): new function
4191 (send_begin): parse the OK args
4193 * doc/dbus-specification.xml: add GUID to the auth protocol
4195 2005-05-05 John (J5) Palmieri <johnp@redhat.com>
4197 * Fix my name in previous changelog ;)
4199 * python/proxies.py (ProxyObject.__getattr__): add further patch
4200 from Anthony Baxter to throw an AttributeError when python
4201 __special__ functions are called instead of marshling them over
4202 the bus (Bug#1685 comment 3).
4204 2005-05-04 John (J5) Palmieri <johnp@redhat.com>
4206 * python/Makefile.am: changed to use pyexecdir for the binding
4207 shared libraries (Bug#2494)
4209 * python/exceptions.py: bring exceptions over from the bindings
4210 so they can be used in applications (Bug#2036)
4211 Make all exceptions derive from DBusException
4213 * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4214 of classes so that print obj doesn't throw an exception (Bug #1685)
4216 2005-05-03 Ross Burton <ross@openedhand.com>
4218 * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4219 Return if we get an error during registration. Set up a
4220 weak reference on object to unregister if object is destroyed.
4221 (unregister_gobject): New function.
4223 2005-05-01 John (J5) Palmieri <johnp@redhat.com>
4225 * python/dbus_bindings.pyx.in:
4226 - added new type classes for hinting to the marashaler what type
4227 to send over the wire
4228 - added int16 and uint16 marshalers
4229 - Fixed a bug in the type constants that caused int32 to go out
4230 as uint16 over the wire
4231 * python/dbus.py: split up into different files and renamed _dbus.py
4232 * python/__init__.py, python/_util.py, python/decorators.py,
4233 python/exceptions.py, python/proxies.py, python/services.py,
4234 python/types.py: new files split off from dbus.py
4235 * python/Makefile.am: Add new files, remove dbus.py and
4236 install all python files to <python module dir>/dbus
4237 * python/examples/*: Added #!/usr/bin/env python to the top of
4238 every example. Patch provided by Tatavarty Kalyan
4240 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
4242 * NEWS: Update to 0.33
4244 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
4246 * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4247 method for doing async calls
4248 (_pending_call_notification): New C function for handling pendning call
4250 (set_notify): New method for setting pending call notification
4252 * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4253 Async capabilities added to remote method calls
4254 (Sender): class removed
4255 (RemoteService): class removed
4256 (ObjectTree): class removed for now
4257 (RemoteObject): Renamed to ProxyObject
4258 (RemoteMethod): Renamed to ProxyMethod
4259 (method): Decorator added for decorating python methods as dbus methods
4260 (signal): Decorator added for decorating python methods as signal emitters
4261 (ObjectType): Metaclass added for generating introspection data and the
4262 method callback vtable
4263 (Interface): Wrapper class added to wrap objects in a dbus interface
4264 (Object): Uses ObjectType as its metaclass and exports Introspect
4265 of the org.freedesktop.DBus.Introspectable interface
4266 (ValidationException, UnknownMethodException): new exceptions
4268 * python/examples/*: Modified to fit with the new bindings
4270 2005-04-23 Havoc Pennington <hp@redhat.com>
4272 * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4273 reported by Tony Houghton
4275 * test/test-service.c (main): test
4276 dbus_connection_get_object_path_data()
4278 * dbus/dbus-object-tree.c (find_handler): be sure we always init
4280 (_dbus_object_tree_get_user_data_unlocked): new function used by
4281 dbus_connection_get_object_path_data()
4282 (do_register): add assertion test for get_user_data_unlocked
4283 (object_tree_test_iteration): more tests
4285 * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
4286 new function from Dan Reed to let you get the user data from
4287 dbus_connection_register_object_path()
4289 2005-04-23 John (J5) Palmieri <johnp@redhat.com>
4291 * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
4292 in numerous places that did not account for the NULL terminator
4293 (signature_from_seed): changed the manual string copy loop to
4294 just use strcpy instead
4295 make check should now pass
4297 2005-04-19 John (J5) Palmieri <johnp@redhat.com>
4299 * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
4300 so that it allows messages that are not signals to pass in
4301 NULL as the interface.
4303 2005-04-18 David Zeuthen <davidz@redhat.com>
4305 * glib/dbus-gmain.c (io_handler_destroy_source):
4306 (timeout_handler_destroy_source, connection_setup_free):
4307 Also unref the source to avoid memory leaks.
4309 2005-04-13 David Zeuthen <davidz@redhat.com>
4311 * bus/config-parser.c (bus_config_parser_new): Bump this to a
4312 more reasonable, yet still totally arbitrary, value :-).
4314 2005-04-13 David Zeuthen <davidz@redhat.com>
4316 * doc/TODO: Added an "important for 1.0" item about selinux
4319 2005-04-13 David Zeuthen <davidz@redhat.com>
4321 * bus/selinux.c: Add c-file-style to top of file
4322 (log_audit_callback): Don't free the data here anymore
4323 (bus_selinux_check): Don't take spid and tpid since appending
4324 that to auxdata may OOM.
4325 (bus_selinux_allows_acquire_service): Handle OOM and signal back
4326 to the caller if we are OOM by taking an error object.
4327 (bus_selinux_allows_send): -do-
4329 * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4330 and bus_selinux_allows_send
4332 * bus/bus.c (bus_context_check_security_policy): Pass error and
4333 pass on OOM thrown by bus_selinux_allows_send()
4335 * bus/services.c (bus_registry_acquire_service): Pass error and
4336 pass on OOM thrown by bus_selinux_allows_acquire_service()
4338 2005-04-13 Havoc Pennington <hp@redhat.com>
4340 * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4341 message at a time to avoid monopolizing the main loop, bug
4342 #2953 from Benjamin Otte
4344 2005-04-09 Havoc Pennington <hp@redhat.com>
4346 * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4347 possible overlap, fix from Daniel Reed
4348 (fixup_alignment): fix signedness warnings
4349 (_dbus_string_append_unichar): ditto
4351 2005-04-09 Havoc Pennington <hp@redhat.com>
4353 * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4355 * glib/dbus-glib-tool.c (main): fix warning
4357 * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4359 * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4360 add a new function that can be used in simple applications that
4361 don't have a main loop and are willing to block
4363 2005-04-05 David Zeuthen <davidz@redhat.com>
4365 Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4367 * glib/dbus-gmain.c:
4368 (io_handler_destroy_source): Remove from list of IO handlers
4369 of the ConnectionSetup object
4370 (timeout_handler_destroy_source): -do- for timeout handlers
4371 (io_handler_source_finalized): Don't remove from list since
4372 we now do that in io_handler_destroy_source(). Renamed from
4373 io_handler_source_destroyed
4374 (timeout_handler_source_destroyed): -do- for timeout handlers
4375 (connection_setup_free): It is now safe to iterate over all
4376 IO and timeout handlers as the _destroy_source removes them
4377 from the list synchronously
4379 2005-03-30 Havoc Pennington <hp@redhat.com>
4381 * configure.in: change check to gtk 2.4
4383 * tools/dbus-viewer.c (name_combo_changed_callback): remove
4384 gtk_combo_box_get_active_text() usage to decrement GTK requirement
4387 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
4391 * HACKING: Fixed realease instructions. configure.in should be updated to
4392 the next release by the person who made the last release.
4394 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
4396 * python/lvalue_cast_post_process.py - removed. Patch has been
4397 submitted to Pyrex maintainers that fixes gcc4.0 errors
4399 * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4401 2005-03-24 Daniel Reed <n@ml.org>
4403 * tools/Makefile.am: Make print-introspect and
4404 dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4406 2005-03-22 John (J5) Palmieri <johnp@redhat.com>
4408 * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4410 * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have
4411 had in Red Hat packages for a while but for some reason never
4413 (_dbus_is_a_number): New checks if a string
4414 can be converted to a number and does the conversion if it can
4415 (_dbus_user_database_lookup): Add check to see if the given username
4416 is a udi. This allows udi's to be used instead of usernames in the
4418 (_dbus_user_database_lookup_group): Add check to see if the given groupname
4419 is a gdi. This allows gdi's to be used instead of groupnames in the
4422 2005-03-21 John (J5) Palmieri <johnp@redhat.com>
4424 * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4425 code so that it compiles with gcc4.0
4427 * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4428 run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4429 results back to dbus_binding.c
4431 2005-03-20 Colin Walters <walters@verbum.org>
4433 Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4435 * configure.in: Require GTK+ 2.6.
4437 2005-03-20 Colin Walters <walters@verbum.org>
4439 * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4441 2005-03-17 Tom Parker <palfrey@tevp.net>
4443 * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4444 print DBUS_UID_UNSET; instead print passed username. Also
4445 be sure to actually use gid looked up in cache.
4447 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4448 for DBUS_GID_UNSET and groupname.
4450 2005-03-17 Colin Walters <walters@verbum.org>
4452 * bus/print-introspect.c: Move to tools/.
4453 * bus/run-with-tmp-session-bus.sh: Ditto.
4455 * glib/Makefile.am (dbus-glib-bindings.h): Move
4456 generation to tools/Makefile.am.
4458 * test/glib/run-test.sh: Update to handle move
4459 of run-with-tmp-session-bus.sh.
4461 * test/glib/test-service-glib.c: Update to handle
4462 move of dbus-glib-bindings.h.
4464 * tools/print-introspect.c: Moved here
4465 from bus/, and ported to GLib bindings.
4467 * tools/run-with-tmp-session-bus.sh: Moved here
4470 * tools/Makefile.am: Generate dbus-glib-bindings.h
4471 and dbus-bus-introspect.xml here.
4473 * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4476 2005-03-17 Colin Walters <walters@verbum.org>
4478 * bus/driver.c (write_args_for_direction): Use
4479 _dbus_string_get_const_data to retrieve string;
4480 _dbus_string_get_const_data_len doesn't actually return
4481 a NULL-terminated substring.
4483 * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4484 (main): Change to use org_freedesktop_DBus_request_name
4485 instead of using g_proxy_begin_call/end_call.
4487 2005-03-15 Joe Shaw <joeshaw@novell.com>
4489 * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4490 generating the finalizer. Fixes from Ben Maurer.
4492 2005-03-12 Joe Shaw <joeshaw@novell.com>
4494 * mono/BusDriver.cs: Update method names: ListServices
4495 becomes ListNames; GetOwner becomes GetNameOwner.
4497 * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4498 onto the eval stack when removing the delegate.
4500 2005-03-12 Joe Shaw <joeshaw@novell.com>
4502 * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4503 LT_CURRENT. Set it to the autoconf variable.
4505 * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4506 classes that disconnects the signal handler delegate from the
4507 service object. Fixes a big leak of proxy objects on the
4508 client side of things. Patch from Ben Maurer
4509 <bmaurer@ximian.com>
4511 2005-03-12 Colin Walters <walters@verbum.org>
4513 * bus/driver.c (write_args_for_direction): New function,
4514 parses a type signature into arguments and outputs to
4516 (bus_driver_handle_introspect): Use it instead of
4517 hardcoding XML for certain signatures.
4519 * bus/Makefile.am (dbus-bus-introspect.xml): Add
4520 dependency on dbus-daemon.
4522 * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4523 argument, pass it to dbus_binding_tool_output_glib_client.
4525 * glib/dbus-binding-tool-glib.c
4526 (generate_client_glue): Protect against multiple inclusion.
4527 (dbus_binding_tool_output_glib_client): Add
4528 G_BEGIN_DECLS/G_END_DECLS.
4530 * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4531 Change to just take iface prefix directly.
4532 (write_formal_parameters): Clarify error message.
4533 (check_supported_parameters): New function; checks to see type
4534 signatures of method parameters are supported.
4535 (generate_client_glue): Handle ignore_unsupported flag.
4536 (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4539 * glib/Makefile.am (dbus-glib-bindings.h): Pass
4540 --ignore-unsupported by default until glib bindings
4543 2005-03-11 Colin Walters <walters@verbum.org>
4545 * glib/Makefile.am: Generate dbus-glib-bindings.h and
4548 * bus/print-introspect.c: New file; prints introspection
4549 data for a given name and object path.
4551 * bus/run-with-tmp-session-bus.sh: New file, refactored
4552 from test/glib/run-test.sh. Creates a temporary session
4553 bus and runs another program.
4555 * test/glib/run-test.sh: Refactor to invoke
4556 run-with-tmp-session-bus.sh.
4558 * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4559 introspection format. Also change to use DBUS_TYPE_x_AS_STRING
4560 macros instead of hardcoding.
4562 * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4564 2005-03-11 Joe Shaw <joeshaw@novell.com>
4566 * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4567 this unref; it doesn't match up evenly in some codepaths.
4568 (_dbus_connection_block_pending_call): Unref at every exitpoint;
4569 this evenly matches with the ref near the top of this function.
4571 2005-03-09 Joe Shaw <joeshaw@novell.com>
4573 * dbus/dbus-object-tree.c
4574 (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4575 and we try to unregister a path that's not registered, still go
4576 through the process of unlocking and don't just return.
4578 2005-03-09 Colin Walters <walters@verbum.org>
4580 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4581 to this are generated for client-side wrappers. Invokes a
4582 D-BUS method and returns reply values.
4584 * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4585 function; writes signature string for argument direction.
4586 (write_args_for_direction): Change to pass input values directly
4587 instead of via address, and fix indentation.
4588 (generate_client_glue): Change to invoke dbus_g_proxy_invoke. Also
4589 make generated wrappers inlineable.
4591 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4592 note about using dbus_type_is_fixed.
4594 * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4595 dbus/dbus-signature.c as dbus_type_is_fixed.
4597 All callers updated.
4599 * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4600 from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4602 * dbus/dbus-signature.h: Prototype.
4604 * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4607 * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4608 appropriate instead of just freeing it.
4609 (main): Free returned strings using g_free.
4611 * test/glib/Makefile.am (test-service-glib-glue.h)
4612 (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4614 * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4615 simply maps a simple D-BUS type to GType.
4616 (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4618 (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4619 initialize the value with it.
4620 (dbus_gvalue_binding_type_from_type): Unused, delete.
4621 (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4622 various types instead of unmarshalling to value data directly.
4623 Remove can_convert boolean.
4624 (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4625 returning directly instead of using can_convert boolean.
4626 (dbus_gvalue_store): New function; not related to D-BUS per-se.
4627 Stores a GValue in a pointer to a value of its corresponding C
4630 * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4631 add dbus_gvalue_store.
4633 2005-03-08 Joe Shaw <joeshaw@novell.com>
4635 Fix a bunch of lifecycle and memory management problems
4636 in the mono bindings.
4638 * mono/Arguments.cs (Arguments): Implement IDisposable
4640 * mono/Bus.cs (Bus): Don't allow public instantiation. This is
4641 strictly a static class.
4643 * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4644 delegates into this file.
4645 (Connection): Implement IDisposable.
4646 (Dispose): Disconnect the connection and set the raw connection
4647 pointer to IntPtr.Zero.
4648 (~Connection): Call Dispose().
4649 (RegisterObjectPath): Added. Manages the registration of object
4650 paths so we can cleanly disconnect them at dispose/finalize time.
4651 (UnregisterObjectPath): Ditto.
4652 (set_RawConnection): Unregister all of the object paths when
4653 changing the underlying DBusConnection. Add them back onto the
4654 new connection, if any.
4656 * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4657 more unmanaged resources anymore, so it's not necessary. Move all
4658 the DBusObjectPathVTable stuff out of here.
4659 (Handler): Save references to our delegates so that they don't get
4660 finalized. Call Connection.RegisterObjectPath() instead of
4661 dbus_connection_register_object_path() directly.
4662 (Message_Called): Dispose the message after we're finished with
4665 * mono/Message.cs (Message): Implement IDisposable.
4666 (Dispose): Dispose the Arguments, and set the RawMessage to
4668 (SendWithReplyAndBlock): We own the ref to the reply that comes
4669 back from dbus_connection_send_with_reply_and_block() so add a
4670 comment about that and unref it after we've constructed a managed
4671 MethodReturn class around it. Fixes a big, big leak.
4673 * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4675 (BuildSignalHandler): After we've sent the Signal message, dispose
4677 (BuildMethod): Dispose of the method call and reply messages after
4678 we've sent the message and extracted the data we want from the
4681 * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4683 (Service_FilterCalled): Dispose of the message after we're
4686 2005-03-08 Joe Shaw <joeshaw@novell.com>
4688 * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4689 After we attach our pending call to the connection, unref
4692 * mono/Connection.cs (set_RawConnection): Disconnect our
4693 filter and match callbacks from the old connection and
4694 reconnect them to the new connection, if any.
4696 * mono/DBusType/Array.cs: "Code" is a static member, so
4697 don't use "this" to refer to it. Fix for stricter checking
4700 * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4701 object path that we pass into unmanaged code.
4703 * mono/DBusType/String.cs (Append): Don't leak the string
4704 that we pass into unmanged code.
4706 2005-03-07 John (J5) Palmieri <johnp@redhat.com>
4707 * NEWS: Update for 0.31
4709 * configure.in: Release 0.31
4710 add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4712 * qt/Makefile.am: fixed build
4714 * dbus/Makefile.am: soname bump for libdbus
4716 * glib/Makefile.am: soname bump for libdbus-glib
4718 2005-03-05 Havoc Pennington <hp@redhat.com>
4720 * dbus/dbus-sysdeps.c:
4721 (pseudorandom_generate_random_bytes_buffer): fix to have no return
4723 (_dbus_generate_random_bytes_buffer): fix return value
4725 * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4726 checks actually work, from Tom Parker <fdo@tevp.net>
4728 2005-03-01 Colin Walters <walters@verbum.org>
4730 * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4731 functions copied from dbus-glib-tool.c.
4732 (main): Convert lots of error code to use them.
4733 Also add some testing for introspection bits.
4735 2005-03-01 Colin Walters <walters@verbum.org>
4737 * doc/TODO: Remove introspection signature TODO.
4739 2005-02-27 Colin Walters <walters@verbum.org>
4741 * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4742 Change return value to const char * instead of int so we can do
4744 (struct PropertyInfo, struct ArgInfo): Store char *.
4745 (property_info_new, arg_info_new): Update parameters, strdup.
4746 (property_info_unref, arg_info_unref): Free.
4748 * glib/dbus-gidl.h: Update prototypes.
4750 * glib/dbus-gparser.c (basic_type_from_string): Delete.
4751 (validate_signature): New function, just validates signature and
4753 (parse_property, parse_arg): Invoke validate_signature. Store
4754 signature instead of just type code.
4756 * glib/dbus-gvalue.c (base_type_from_signature): New utility
4757 function to return a primary type for a signature, dropping
4758 information about types in container types.
4759 (dbus_gvalue_genmarshal_name_from_type)
4760 (dbus_gvalue_binding_type_from_type)
4761 (dbus_gvalue_ctype_from_type): Update to take full signature
4762 instead of type code.
4763 (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4765 * glib/dbus-gvalue.h: Update prototypes for above.
4767 * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4768 glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4769 (introspect_properties, introspect_signals, write_interface):
4770 Update to handle signatures, and remove usage of
4771 _dbus_gutils_type_to_string.
4772 (handle_introspect): Print out type codes instead of e.g. "string"
4773 in hardcoded introspection XML; also use x_AS_STRING constants
4774 instead of hardcoding in string.
4776 * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4777 to string. Remove usage of _dbus_gutils_type_to_string.
4779 * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4781 * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4784 * glib/dbus-binding-tool-glib.c (compute_marshaller)
4785 (compute_marshaller_name, generate_glue): Handle signature change
4787 (write_formal_parameters, write_args_for_direction): Ditto, and
4790 * tools/dbus-tree-view.c (type_to_string): Delete.
4791 (info_set_func_text): Update to print full signatures.
4793 * test/glib/test-service-glib.xml: Change types to new
4794 introspection format.
4796 2005-02-26 Havoc Pennington <hp@redhat.com>
4798 * doc/TODO: remove the "guid" item
4800 * test/glib/test-profile.c (no_bus_thread_func): use open_private
4801 (with_bus_thread_func): use open_private
4803 * dbus/dbus-connection.c (dbus_connection_open_private): new
4804 function that works like the old dbus_connection_open()
4805 (dbus_connection_open): now returns an existing connection if
4808 * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4809 through the GUID to the transport
4811 * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4812 GUID in hex-encoded form.
4814 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4815 pass GUID argument in to the transport
4817 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4820 * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4822 * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4824 2005-02-25 Havoc Pennington <hp@redhat.com>
4826 * doc/dbus-specification.xml: document the GUID thing
4828 * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4829 globally unique ID for the server, and put a "guid=hexencoded"
4830 field in the address
4832 * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4834 * dbus/dbus-message.c: ditto
4836 * dbus/dbus-dataslot.c: ditto
4838 * dbus/dbus-list.c: ditto
4840 * dbus/dbus-internals.h: wait, just include
4841 dbus-threads-internal.h here
4843 * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4846 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4848 2005-02-24 Colin Walters <walters@verbum.org>
4850 * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4852 2005-02-24 John (J5) Palmieir <johnp@redhat.com>
4854 * glib/Makefile.am: added dbus-gobject.h to sources list
4855 so distcheck doesn't fail
4857 2005-02-24 Havoc Pennington <hp@redhat.com>
4859 * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4860 you must disconnect before unref, since locking and other things
4861 are screwed up otherwise. Fix assorted other locking stuff.
4863 * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4866 * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4867 into a private header and don't export from the library
4869 * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4871 2005-02-24 Colin Walters <walters@verbum.org>
4873 * dbus/dbus-signature.c: New file; implements various functions
4874 related to type signatures. Includes an interator for parsing,
4875 validation functions.
4876 (dbus_type_is_basic): Moved here from
4877 dbus-marshal-basic.c:_dbus_type_is_basic.
4878 (dbus_type_is_container): Moved here from
4879 dbus-marshal-basic.c:_dbus_type_is_container.
4881 All callers of _dbus_type_is_container and _dbus_type_is_basic
4882 updated, and include dbus-signature.h.
4884 * dbus/dbus-signature.h: New file; prototypes for the above.
4886 * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4889 * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4890 function factored out of _dbus_first_type_in_signature.
4891 (_dbus_first_type_in_signature_c_str): New function; returns first
4892 type code for a type signature character.
4894 * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4895 handle function moves.
4897 * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4899 * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4900 function; skips to next complete type in type signature.
4901 Implemented using previous skip_one_complete_type. Now
4902 skip_one_complete_type just delegates to
4903 _dbus_type_signature_next.
4905 * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4907 (_dbus_type_is_container): Ditto.
4909 * doc/dbus-specification.xml: Update introspection sample to
4910 use real type signatures.
4912 * dbus/dbus-test.h: Prototype signature test.
4914 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4917 * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4919 2005-02-23 John (J5) Palmieri <johnp@redhat.com>
4921 * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4922 s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4924 2005-02-21 Colin Walters <walters@verbum.org>
4926 * dbus/dbus-test-main.c (main): Take optional specific test
4929 * dbus/dbus-test.c (run_test): New function, runs a test function
4930 with no data directory.
4931 (run_data_test): Like above, but takes data directory.
4932 (dbus_internal_do_not_use_run_tests): Take
4933 specific test argument. Replace lots of cut n' paste code
4934 with run_test and run_data_test.
4936 * dbus/dbus-test.h: Update prototype for
4937 dbus_internal_do_not_use_run_tests.
4939 2005-02-20 Havoc Pennington <hp@redhat.com>
4941 Fix bugs reported by Daniel P. Berrange
4943 * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4944 (protected_change_watch): new function
4945 (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4946 (_dbus_server_add_watch): change to work like the
4947 dbus-connection.c equivalents; like those, probably kind of
4948 busted, but should at least mostly work for now
4949 (dbus_server_disconnect): drop the lock if we were already
4950 disconnected, patch from Daniel P. Berrange
4952 * dbus/dbus-server.c (_dbus_server_toggle_timeout)
4953 (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4956 * doc/TODO: todo about unscrewing this mess
4958 2005-02-19 Colin Walters <walters@verbum.org>
4960 * glib/dbus-binding-tool-glib.c
4961 (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4963 * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4964 as errno.h and sys/stat.h.
4965 (lose): New function, prints error with
4967 (lose_gerror): Similar, but takes GError for message.
4968 (main): Add --output argument to specify output file to write to,
4969 instead of always printing to stdout. In this mode, determine
4970 timestamps on source files to see whether any are newer than the
4971 target file. If not, exit. Also convert a number of error
4972 messages to use lose (since it's shorter), and switch to using
4973 g_io_channel_shutdown.
4975 2005-02-19 Havoc Pennington <hp@redhat.com>
4977 * glib/dbus-gobject.c
4978 (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4980 * glib/dbus-glib.c: fix doxygen warnings
4982 * glib/dbus-gparser.c (parse_annotation): error if an annotation
4983 is found on an <arg>
4985 2005-02-17 Colin Walters <walters@verbum.org>
4987 * glib/dbus-gobject.h: Don't export
4988 _dbus_glib_marshal_dbus_message_to_gvalue_array.
4990 * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4991 (invoke_object_method): Handle it.
4993 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4996 2005-02-17 Colin Walters <walters@verbum.org>
4998 * bus/.cvsignore, doc/.cvsignore
4999 * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
5002 2005-02-17 Colin Walters <walters@verbum.org>
5004 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
5005 Rename to DBUS_SERVICE_DBUS.
5006 (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
5007 (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
5008 Change the value from "org.freedesktop.Local"
5009 to "org.freedesktop.DBus.Local".
5010 (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
5011 (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
5012 DBUS_INTERFACE_INTROSPECTABLE.
5013 Change the value from "org.freedesktop.Introspectable"
5014 to "org.freedesktop.DBus.Introspectable".
5015 (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
5016 DBUS_INTERFACE_PROPERTIES.
5017 Change the value from "org.freedesktop.Properties"
5018 to "org.freedesktop.DBus.Properties".
5019 (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
5020 DBUS_INTERFACE_PEER.
5021 Change the value from "org.freedesktop.Peer"
5022 to "org.freedesktop.DBus.Peer".
5023 (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL):
5024 DBUS_INTERFACE_LOCAL.
5025 Change the value from "org.freedesktop.Local"
5026 to "org.freedesktop.DBus.Local".
5028 All other users of those constants have been changed.
5030 * bus/driver.c (bus_driver_handle_introspect): Use constants.
5032 * glib/dbus-gobject.c (handle_introspect): Use constants.
5034 * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
5036 2005-02-17 Colin Walters <walters@verbum.org>
5038 * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
5039 (parse_node, parse_interface, parse_method, parse_signal)
5040 (parse_property, parse_annotation): Lose if we're currently in an
5042 (parse_annotation): New function.
5043 (parser_start_element, parser_end_element): Handle annotation.
5044 (parse_method, parse_interface): Remove support for c_name attribute,
5045 switch to annotations.
5047 * glib/dbus-gidl.h (interface_info_get_binding_names)
5048 (method_info_get_binding_names)
5049 (interface_info_get_binding_name, method_info_get_binding_name)
5050 (interface_info_set_binding_name, method_info_set_binding_name):
5052 (interface_info_get_annotations, method_info_get_annotations)
5053 (interface_info_get_annotation, method_info_get_annotation)
5054 (interface_info_add_annotation, method_info_add_annotation):
5057 * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
5059 (struct MethodInfo): Ditto.
5060 Straightfoward conversion of binding methods into annotation methods
5063 * glib/dbus-glib-tool.c (pretty_print): Print annotations.
5065 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
5067 * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
5068 Use new annotation API.
5070 * doc/introspect.dtd: Fix a number of DTD syntax errors. Add
5073 * doc/dbus-specification.xml: Discuss introspection annotations,
5074 include list of well-known annotations.
5076 * test/glib/test-service-glib.xml: Make validate against new DTD.
5078 2005-02-17 Colin Walters <walters@verbum.org>
5080 This patch is based on initial work from
5081 Paul Kuliniewicz <kuliniew@purdue.edu>.
5083 * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5084 initialization of GValue from dbus type to here.
5085 (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5086 for the "glib-genmarshal" program from a DBus type.
5087 (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5088 into the C name for it we use in the glib bindings.
5089 (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5090 glib C type (not GValue).
5091 (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5093 * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5094 from dbus-gobject.c.
5096 * glib/dbus-gutils.h: Prototype it.
5098 * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5099 (marshal_dbus_message_to_g_marshaller): Use new shared function
5100 dbus_glib_marshal_dbus_message_to_gvalue_array.
5102 * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5103 Will be changed once we have annotations.
5105 * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5106 GStaticRWLock. Callers updated.
5107 (wincaps_to_uscore): Move to dbus-gutils.c. Callers updated.
5108 (string_table_next): New function for iterating over zero-terminated
5110 (string_table_lookup): New function; retrieves specific entry in
5112 (get_method_data): New function; look up method data in object data chunk.
5113 (object_error_domain_prefix_from_object_info)
5114 (object_error_code_from_object_info): New functions, but not implemented yet.
5115 (method_interface_from_object_info): New function; retrieve interface name.
5116 (method_name_from_object_info): New function; retrieve method name.
5117 (method_arg_info_from_object_info): New function; retrieve argument data.
5118 (arg_iterate): New function; iterates over serialized argument data.
5119 (method_dir_signature_from_object_info): New function; returns a
5120 GString holding type signature for arguments for just one
5121 direction (input or output).
5122 (method_input_signature_from_object_info)
5123 (method_output_signature_from_object_info): New functions.
5124 (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5125 converts dbus message arguments into a GValue array. Used for both
5126 signal handling and method invocation.
5127 (struct DBusGlibWriteIterfaceData): New utility structure.
5128 (write_interface): New function; generate introspection XML for
5130 (introspect_interfaces): New function; gathers all interface->methods,
5131 generates introspection XML for them.
5132 (handle_introspect): Invoke introspect_interfaces.
5133 (get_object_property): Be sure to zero-initalize stack-allocated GValue.
5134 (lookup_object_and_method): New function; examines an incoming message
5135 and attempts to match it up (via interface, method name, and argument
5136 signature) with a known object and method.
5137 (gerror_domaincode_to_dbus_error_name): New function; converts a
5138 GError domain and code into a DBus error name. Needs GError data
5139 added to object introspection to work well.
5140 (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5142 (invoke_object_method): New function to invoke an object method
5143 looked up via lookup_object_and_method. Parses the incoming
5144 message, turns it into a GValue array, then invokes the marshaller
5145 specified in the DBusGMethodInfo. Creates a new message with
5146 either return values or error message as appropriate.
5147 (gobject_message_function): Invoke lookup_object_and_method and
5148 invoke_object_method.
5150 * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5151 (enum DBusBindingOutputMode): New enum for binding output modes.
5152 (pretty_print): Print binding names.
5153 (dbus_binding_tool_error_quark): GError bits.
5154 (version): Fix typo.
5155 (main): Create GIOChannel for output. Parse new --mode argument,
5156 possible values are "pretty-print", "glib-server", "glib-client".
5157 Use mode to invoke appropriate function.
5159 * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5161 * glib/dbus-glib-tool.h: New header, just includes GError bits
5164 * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5165 maps binding style to name.
5166 (struct MethodInfo): Ditto.
5167 (get_hash_keys, get_hash_key): Utility function, returns keys for
5169 (interface_info_new, method_info_new): Initialize bindings.
5170 (interface_info_unref, method_info_unref): Destroy bindings.
5171 (method_info_get_binding_names, method_info_get_binding_name)
5172 (interface_info_get_binding_names, interface_info_get_binding_name):
5173 Functions for retrieving binding names.
5174 (method_info_set_binding_name, interface_info_set_binding_name):
5175 Functions for setting binding names.
5177 * glib/dbus-binding-tool-glib.h: New file, has prototypes
5178 for glib binding generation.
5180 * glib/dbus-binding-tool-glib.c: New file, implements server-side
5181 and client-side glib glue generation.
5183 * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5184 dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5187 * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5188 of using GClosureMarshal directly.
5189 (struct DBusGObjectInfo): Add n_infos member.
5191 * test/glib/test-service-glib.xml: New file; contains introspection data
5192 for MyTestObject used in test-service-glib.c.
5194 * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5195 (my_object_do_nothing, my_object_increment, my_object_throw_error)
5196 (my_object_uppercase, my_object_many_args): New test methods.
5197 (main): Use dbus_g_object_class_install_info to include generated object
5200 * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5201 as well as client-side bindings.
5203 * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5204 (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5205 using both the dbus_gproxy stuff directly as well as the generated bindings.
5207 2005-02-15 Havoc Pennington <hp@redhat.com>
5209 * dbus/dbus-connection.c (dbus_connection_dispatch): always
5210 complete a pending call, don't run filters first.
5212 * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5213 dbus_pending_call_steal_reply
5215 * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5216 _dbus_connection_block_pending_call
5217 (dbus_pending_call_get_reply): change to steal_reply and return a
5220 * dbus/dbus-connection.c
5221 (dbus_connection_send_with_reply_and_block): port to work in terms
5223 (_dbus_connection_block_pending_call): replace block_for_reply
5226 2005-02-14 Havoc Pennington <hp@redhat.com>
5228 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5229 properly handle looking up group information by name; fix
5232 2005-02-13 Havoc Pennington <hp@redhat.com>
5234 * dbus/dbus-connection.c (dbus_connection_return_message)
5235 (dbus_connection_borrow_message): hold dispatch lock while message
5237 (_dbus_connection_block_for_reply): hold dispatch lock while we
5238 block for the reply, so nobody steals our reply
5239 (dbus_connection_pop_message): hold the dispatch lock while we
5242 2005-02-13 Havoc Pennington <hp@redhat.com>
5244 * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5245 (_dbus_connection_release_dispatch)
5246 (_dbus_connection_acquire_io_path)
5247 (_dbus_connection_release_io_path): make the mutex and condvar
5248 control access to the "acquired" flag. Drop the connection lock
5249 while waiting on the condvar. Hopefully these are baby steps in
5250 roughly the right direction.
5252 2005-02-13 Havoc Pennington <hp@redhat.com>
5254 * dbus/dbus-connection.c: use separate mutexes for the condition
5255 variables; this is some kind of baseline for sanity, but the
5256 condition variables still aren't used correctly afaict
5258 2005-02-13 Havoc Pennington <hp@redhat.com>
5260 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5263 * dbus/dbus-connection.c
5264 (_dbus_connection_detach_pending_call_unlocked): add this
5266 Initial semi-correct pass through to fix thread locking; there are
5267 still some issues with the condition variable paths I'm pretty
5270 * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5273 * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5274 rename to add _unlocked
5275 (struct DBusConnection): move "dispatch_acquired" and
5276 "io_path_acquired" to use only one bit each.
5277 (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5278 (dbus_connection_set_watch_functions): hacky fix to reentrancy
5279 (_dbus_connection_add_watch, _dbus_connection_remove_watch)
5280 (_dbus_connection_toggle_watch, _dbus_connection_add_timeout)
5281 (_dbus_connection_remove_timeout)
5282 (_dbus_connection_toggle_timeout): drop lock when calling out to
5283 user functions; done in a hacky/bad way.
5284 (_dbus_connection_send_and_unlock): add a missing unlock
5285 (_dbus_connection_block_for_reply): add a missing unlock
5287 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5288 drop lock in a hacky probably unsafe way to call out to user
5291 2005-02-12 Havoc Pennington <hp@redhat.com>
5293 * tools/dbus-tree-view.c (info_set_func_text): display more
5296 * bus/driver.c (bus_driver_handle_list_services): list the bus
5299 * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
5301 * glib/dbus-gidl.c (signal_info_get_n_args): new function
5302 (method_info_get_n_args): new function
5304 2005-02-12 Havoc Pennington <hp@redhat.com>
5306 * bus/driver.c (bus_driver_handle_introspect): add introspection
5309 2005-02-12 Havoc Pennington <hp@redhat.com>
5311 * bus/driver.c: put the signature of each bus driver method in the
5312 table of handlers and check it on incoming calls; this isn't
5313 really useful, but going to add introspect support in a minute.
5315 2005-02-11 Joe Shaw <joeshaw@novell.com>
5317 * mono/Connection.cs: The unpredictability of finalizers in mono
5318 prevents us from deterministically disconnecting the filters from
5319 the Service class's finalizer, so move tracking of filters and
5320 matches here. Add API for that.
5322 * mono/Service.cs: Remove the code, add code which calls the
5323 methods now on the Connection class.
5325 2005-02-11 John (J5) Palmieri <johnp@redhat.com>
5327 * python/dbus.py (class Sender): added to support dbus signals better
5328 (Bus::add_signal_receiver): added expand_args parameter which defaults
5329 to True. When expand args is True the signal handler will pass the
5330 message arguments as parameters to the signal handler. If False
5331 revert to previous behavior where the signal handler must get the
5332 argument list from the message. This is to help port applications
5333 like HAL that have a tendancy to send variable length argument lists.
5334 self._match_rule_to_receivers is now a dict of dicts.
5335 (Bus::remove_signal_receiver): pop handler off the dict intead of
5336 removing it from a list
5337 (Bus::_signal_func): change signal handlers so that interface,
5338 signal_name, service, path and message are packed into a Sender
5339 object and that is passed to the handler. If expand_args is True
5340 extract the args list from the message and append it to the parameter
5343 * python/dbus_bindings.pyx.in (class Signature): added to support
5345 (MessageIter::__init__): changed iteration limit to match D-BUS
5346 (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY,
5347 STRUCT and VARIENT type support
5348 (MessageIter::python_value_to_dbus_sig): made recursive to support
5350 (MessageIter::append*): added Signature, dict, tuple
5353 * python/examples/example-client.py: added examples of getting tuples
5356 * python/examples/example-service.py: added examples of sending tuples
5359 * python/examples/example-signal-recipient.py: Fixed to handle new
5360 signal callback format
5362 2005-02-10 Havoc Pennington <hp@redhat.com>
5364 * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5365 (call dbus_g_proxy_add_signal)
5367 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5369 (_dbus_server_new_for_domain_socket): escape the path
5371 * dbus/dbus-address.c (dbus_address_escape_value): new
5372 (dbus_address_unescape_value): new
5373 (dbus_parse_address): unescape values
5375 * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5377 * doc/dbus-specification.xml: explain how to escape values in
5380 2005-02-10 Havoc Pennington <hp@redhat.com>
5382 * dbus/dbus-message-factory.c (generate_special): modify test to
5383 avoid using a non-basic dict key
5385 * dbus/dbus-marshal-validate-util.c: add test for the below
5387 * doc/dbus-specification.xml: require that dict keys are a basic
5390 * dbus/dbus-marshal-validate.c
5391 (_dbus_validate_signature_with_reason): require that dict key is a
5394 2005-02-10 Havoc Pennington <hp@redhat.com>
5396 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5397 change to be _and_unlock instead of _unlocked
5399 * dbus/dbus-connection.c
5400 (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5401 have no_update so we can find this bug quickly in future
5403 2005-02-10 Havoc Pennington <hp@redhat.com>
5405 * dbus/dbus-message-util.c (verify_test_message): tests for string
5408 * dbus/dbus-message.c (dbus_message_append_args_valist): add
5409 support for arrays of string/signature/path
5411 2005-02-10 Joe Shaw <joeshaw@novell.com>
5413 * dbus/dbus-connection.c
5414 (_dbus_connection_queue_received_message_link,
5415 _dbus_connection_message_sent): Add the path to
5417 (_dbus_connection_send_preallocated_and_unlock): Added. Calls
5418 _dbus_connection_send_preallocated_unlocked(), updated the
5419 dispatch status, and unlocks. Fixes a bug where certain
5420 situations (like a broken pipe) could cause a Disconnect message
5421 to not be sent, tricking the bus into thinking a service was still
5422 there when the process had quit.
5423 (_dbus_connection_send_preallocated): Call
5424 _dbus_connection_send_preallocated_and_unlock().
5425 (_dbus_connection_send_and_unlock): Added. Calls
5426 _dbus_connection_send_preallocated_and_unlock().
5427 (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5428 (dbus_connection_send_with_reply): Update the dispatch status and
5431 * mono/Service.cs (~Service): Added. Removes the filter so that
5432 we don't get unmanaged code calling back into a GCed delegate.
5433 (RemoveFilter); Added.
5435 2005-02-09 John (J5) Palmieri <johnp@redhat.com>
5437 * dbus/dbus-message.c (dbus_message_iter_open_container):
5438 - Removed check for iterator type being an array because
5439 get_arg_type does not work with writer iterators
5440 - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5442 2005-02-07 Havoc Pennington <hp@redhat.com>
5444 * doc/dbus-specification.xml: some more language cleanups; add
5445 stuff about how to deal with invalid protocol and extension
5446 points; add _ to allowed chars in auth commands; add EXTENSION_
5449 2005-02-06 Havoc Pennington <hp@redhat.com>
5451 * s/expected/required/ in a couple places for clarity
5453 2005-02-07 Colin Walters <walters@verbum.org>
5455 * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5456 sender or proposed_recipient.
5458 2005-02-06 Havoc Pennington <hp@redhat.com>
5460 * dbus/dbus-message-factory.c (generate_special): more tests
5462 * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5463 array length that exceeds the maximum
5465 2005-02-05 Havoc Pennington <hp@redhat.com>
5467 * dbus/dbus-message-factory.c (generate_special): more test cases,
5470 * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5471 reason why a signature was invalid
5473 * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5474 skip the length of the string before we look at it in validation
5476 * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5479 * dbus/dbus-message.c (_dbus_message_loader_new): default
5480 max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5482 2005-02-05 Havoc Pennington <hp@redhat.com>
5484 * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5485 if the signature of a variant was empty
5486 (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5487 struct with no element type)
5489 * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5490 mangled messages to break things
5492 2005-02-04 Havoc Pennington <hp@redhat.com>
5494 * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5495 g_quark_try_string() so it actually can return 0
5496 (dbus_g_proxy_connect_signal): ditto
5498 2005-02-04 Havoc Pennington <hp@redhat.com>
5500 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5502 (tristring_from_message): assert cleanly on null path/interface
5503 (should not be possible though I decided later)
5504 (dbus_g_proxy_dispose): move proxy manager unregistration here
5505 (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5506 g_return_if_fail() checks
5508 2005-02-04 Havoc Pennington <hp@redhat.com>
5510 * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5512 * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5513 (with some minor changes)
5515 * doc/dbus-specification.xml: add deprecated attribute to
5516 introspection format
5518 2005-01-31 Havoc Pennington <hp@redhat.com>
5520 * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5521 think it's sort of right
5523 2005-01-30 Havoc Pennington <hp@redhat.com>
5525 * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5527 2005-01-30 Havoc Pennington <hp@redhat.com>
5529 * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5531 * autogen.sh: change to autotools 1.9
5533 * glib/dbus-gproxy.c: completely change how signals work
5534 (dbus_g_proxy_add_signal): new function to specify signature of a
5536 (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5537 and g_warning if the incoming message has the wrong signature.
5539 2005-01-30 Havoc Pennington <hp@redhat.com>
5541 * tools/dbus-names-model.c (have_names_notify): fix this
5543 * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5544 up the string array handling a bit
5546 2005-01-30 Havoc Pennington <hp@redhat.com>
5548 * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5549 (dbus_g_pending_call_cancel): new function
5551 * dbus/dbus-glib.h: move GType decls for connection/message here;
5552 * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5553 here, just kind of rationalizing how we handle all that
5555 * tools/dbus-names-model.c: new file for a tree model listing the
5558 * tools/dbus-tree-view.c (model_new): use proper typing on the
5561 2005-01-30 Havoc Pennington <hp@redhat.com>
5563 * glib/dbus-gmain.c: add a custom GSource back that just checks
5564 whether the message queue has anything in it; otherwise, there are
5565 cases where we won't see messages in the queue since there was no
5566 IO visible to the glib main loop
5568 * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5569 increase default message timeout to 25 seconds
5571 2005-01-30 Havoc Pennington <hp@redhat.com>
5573 * test/glib/test-profile.c (no_bus_stop_server): remove the
5574 warning about the g_warning that I just fixed
5576 * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5577 custom source, seems to be a lot easier to understand and work
5580 2005-01-30 Havoc Pennington <hp@redhat.com>
5582 I think this main loop thing is conceptually broken, but here are
5583 some band aids. I'll maybe rewrite it in a minute.
5585 * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5586 custom GSource, so don't pass it in; confusing
5587 (gsource_server_finalize, gsource_connection_finalize): add
5588 finalize handlers that remove all the watches.
5590 2005-01-30 Havoc Pennington <hp@redhat.com>
5592 * glib/dbus-gobject.c (introspect_properties): fix the XML
5595 * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5596 which effectively detects the use of freed messages
5598 * glib/dbus-gobject.c (handle_introspect): modify and return the
5599 reply message instead of the incoming message
5601 * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5602 gee, maybe it should SEND THE XML instead of just making a string
5603 and freeing it again ;-)
5605 * tools/dbus-print-message.c (print_message): improve printing of
5608 * configure.in: add debug-glib.service to the output
5610 2005-01-30 Havoc Pennington <hp@redhat.com>
5612 dbus-viewer introspected and displayed the bus driver
5614 * dbus/dbus-object-tree.c
5615 (object_tree_test_iteration): add tests for a handler registered on "/"
5617 * dbus/dbus-object-tree.c
5618 (_dbus_decompose_path): fix to handle path "/" properly
5619 (run_decompose_tests): add tests for path decomposition
5621 * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5624 * glib/dbus-gobject.c (handle_introspect): fix quotes
5626 * test/glib/run-test.sh: support launching the bus, then running
5629 * test/glib/test-service-glib.c (main): put in a trivial gobject
5630 subclass and register it on the connection
5632 * bus/driver.c (bus_driver_handle_introspect): implement
5633 introspection of the bus driver service
5635 * dbus/dbus-protocol.h: add #defines for the XML namespace,
5636 identifiers, doctype decl
5638 * bus/driver.c (bus_driver_handle_get_service_owner): handle
5639 attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by
5640 returning the service unchanged.
5641 (bus_driver_handle_message): remove old check for reply_serial in
5642 method calls, now the message type deals with that
5643 (bus_driver_handle_message): handle NULL interface
5645 * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5647 * glib/dbus-gloader-expat.c (description_load_from_string): allow
5650 * tools/dbus-viewer.c: add support for introspecting a service on
5653 * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5654 (dbus_g_pending_call_unref): add
5656 2005-01-29 Havoc Pennington <hp@redhat.com>
5658 * tools/dbus-tree-view.c: add support for displaying properties.
5659 (run dbus-viewer with an introspect xml file as arg, then resize
5660 the window so the tree elements show up, not sure what that is)
5662 * glib/dbus-gobject.c (handle_introspect): return
5663 org.freedesktop.Properties and org.freedesktop.Introspectable
5664 interfaces when we are introspected.
5666 * doc/dbus-specification.xml: allow empty interface name when
5669 2005-01-29 Havoc Pennington <hp@redhat.com>
5671 * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5672 though it uses glib, it could be extended for any binding in
5675 * glib/dbus-gobject.c (gobject_message_function): change to the
5676 new way properties work
5678 * dbus/dbus-protocol.h: add the new interfaces
5680 * doc/dbus-specification.xml: document the introspection format,
5681 Introspectable interface, and add an org.freedesktop.Properties
5684 * glib/dbus-gparser.c: add support for a <property> element
5686 * glib/dbus-gidl.c: add PropertyInfo
5688 * glib/dbus-gobject.c (handle_introspect): put the outermost
5689 <node> outside the signal and property descriptions.
5690 (introspect_properties): export properties as <property> rather
5691 than as method calls
5693 2005-01-28 Havoc Pennington <hp@redhat.com>
5695 * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5696 related to authentication protocol
5698 2005-01-28 John (J5) Palmieri <johnp@redhat.com>
5700 * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5701 - BUS_ACTIVATION -> BUS_STARTER
5702 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5703 - class MessageIter (__init__): Added recursion checking
5704 so we throw a nice error instead of just disconnecting from the
5706 (get): Added arg_type parameter for recursion.
5707 Removed the nil type
5708 Added signiture type placeholder (not implemented)
5709 Added struct type placeholder (not implemented)
5710 Added varient type placeholder (not implemented)
5711 Commented out dict type for now
5712 (get_element_type): renamed from get_array_type
5713 (get_*): changed to use the dbus_message_iter_get_basic API
5714 (get_*_array): removed in favor of recursive get_array method
5715 (get_array): new recursive method which calls get to marshal
5716 the elements of the array
5717 (value_to_dbus_sig): New method returns the corrasponding
5718 dbus signiture to a python value
5719 (append): Comment out dict handling for now
5720 Handle lists with the new recursive API
5721 Comment out None handling for now
5722 (append_nil): removed
5723 (append_*): changed to use dbus_message_iter_append_basic API
5724 (append_*_array): removed in favor of recursive append_array
5726 (__str__): Make it easier to print out recursive iterators
5728 - class Message (__str__): moved type inspection to the
5729 MessageIter class' __str__ method
5730 (get_iter): Added an append parameter wich defaults to False
5731 If True use the new API's to create an append iterator
5733 * python/dbus.py: Update to use new bindings API
5734 - TYPE_ACTIVATION -> TYPE_STARTER
5735 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5736 - class ActivationBus -> class StarterBus
5737 - class RemoteObject (__call__): get an append iterator
5738 - (_dispatch_dbus_method_call): get an append iterator
5739 - class Object (emit_signal): get an append iterator
5741 * python/examples/: Fixed up the examples to work with the new API
5743 2005-01-28 Joe Shaw <joeshaw@novell.com>
5745 * configure.in: Bump version up to 0.30.
5747 * HACKING: Add a release item to bump the version number up after
5750 2005-01-28 Havoc Pennington <hp@redhat.com>
5752 * doc/dbus-specification.xml: update to describe 16-bit types and
5755 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5758 * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5761 * dbus/dbus-marshal-recursive.c: implement
5763 2005-01-27 Havoc Pennington <hp@redhat.com>
5765 * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5767 * configure.in: find the right type for 16 and 32 bit ints as well
5770 * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5771 the 16-bit types so people don't have to stuff them in 32-bit or
5774 2005-01-27 Havoc Pennington <hp@redhat.com>
5776 * dbus/dbus-message.c: byteswap the message if you init an
5777 iterator to read/write from it
5779 * dbus/dbus-marshal-byteswap.c: new file implementing
5780 _dbus_marshal_byteswap()
5782 * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5784 2005-01-26 Havoc Pennington <hp@redhat.com>
5786 * dbus/dbus-marshal-validate-util.c: break this out (and fix
5787 build, apparently - nobody noticed?)
5789 2005-01-26 Havoc Pennington <hp@redhat.com>
5791 * dbus/dbus-marshal-recursive.h: remove todo comment
5793 2005-01-25 Joe Shaw <joeshaw@novell.com>
5795 * Land the mono binding changes to conform to the new APIs.
5797 * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5798 DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5800 * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus
5801 type code as a string.
5802 (InitAppending): Rename dbus_message_append_iter_init() to
5803 dbus_message_iter_init_append().
5805 * mono/BusDriver.cs: Rename ServiceEventHandler to
5806 NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner.
5807 Rename ServiceOwnerChanged to NameOwnerChanged.
5809 * mono/Connection.cs: Rename BaseService to UniqueName, and the
5812 * mono/Custom.cs: Removed. The CUSTOM type has been removed.
5814 * mono/Service.cs: Rename Exists to HasOwner, internally rename
5815 dbus_bus_acquire_service() to dbus_bus_request_name().
5817 * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5818 of Type.UnderlyingSystemType to get the correct element type for
5820 (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5821 dbus_message_get_{element|arg}_type() instead of
5822 dbus_message_iter_init_array_iterator().
5823 (Append): Replace dbus_message_iter_append_array() with
5824 dbus_message_iter_open_container() and
5825 dbus_message_iter_close_container().
5827 * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These
5828 types have been removed.
5830 * mono/DBusType/*.cs: Replace calls of
5831 dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5832 but specify the type in the DllImport extern declaration. Ditto
5833 for dbus_message_iter_append_[type]() ->
5834 dbus_message_iter_append_basic().
5836 * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5837 NameOwnerChangedHandler.
5839 2005-01-25 John (J5) Palmieri <johnp@redhat.com>
5841 * python/dbus_bindings.pyx.in: Rename of methods and bindings
5842 - get_base_service -> get_unique_name
5843 - bus_get_base_service -> bus_get_unique_name
5844 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5845 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS
5846 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5847 - bus_activate_service -> bus_start_service_by_name
5848 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5849 - bus_acquire_service -> bus_request_name
5850 - dbus_bus_acquire_service -> dbus_bus_request_name
5851 - bus_service_exists -> bus_name_has_owner
5852 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5854 * python/dbus.py: Rename of methods
5855 - activate_service -> start_service_by_name
5856 - bus_acquire_service -> bus_request_name
5857 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS
5858 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5861 2005-01-24 Joe Shaw <joeshaw@novell.com>
5863 * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5864 signature for the method that can't be found.
5866 * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5867 the message has any arguments, we need to call
5868 _dbus_type_reader_get_current_type(), not
5869 _dbus_type_reader_has_next().
5871 2005-01-24 Havoc Pennington <hp@redhat.com>
5873 * dbus/dbus-message-factory.c: more testing of message validation
5875 * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5878 2005-01-23 Havoc Pennington <hp@redhat.com>
5880 * dbus/dbus-message-factory.c, dbus/dbus-message-util.c:
5881 get this all working, not many tests in the framework yet though
5883 2005-01-22 Havoc Pennington <hp@redhat.com>
5885 * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5886 tutorial, based on work from David Wheeler.
5888 2005-01-21 Havoc Pennington <hp@redhat.com>
5890 * dbus/dbus-bus.c: add more return_if_fail checks
5892 * dbus/dbus-message.c (load_message): have the "no validation"
5893 mode (have to edit the code to toggle the mode for now though)
5895 * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5896 skips all validation; I want to use this at least for benchmark
5897 baseline, I'm not sure if it should be a publicly-available switch.
5899 2005-01-21 Havoc Pennington <hp@redhat.com>
5901 * glib/dbus-gmain.c: don't put the GLib bindings in the same
5902 toplevel doxygen group as the low-level API stuff
5904 * dbus/dbus.h: note that libdbus is the low-level API
5906 2005-01-20 Havoc Pennington <hp@redhat.com>
5908 * update-dbus-docs.sh: script to update docs on the web site, only
5909 works for me though. neener.
5911 2005-01-20 Havoc Pennington <hp@redhat.com>
5913 * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5914 code can reveal bugs in it
5916 2005-01-20 Havoc Pennington <hp@redhat.com>
5918 * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5919 select() version, patches from Tor Lillqvist
5921 2005-01-20 Havoc Pennington <hp@redhat.com>
5923 * doc/dbus-tutorial.xml: replace > with >
5925 * bus/services.c (bus_registry_acquire_service): validate the name
5926 and return a better error if it's no good.
5928 * doc/dbus-specification.xml: note NO_AUTO_START change
5930 * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5931 from AUTO_START, we're toggling the default
5933 * bus/dispatch.c: adapt the tests to change of auto-start default
5935 2005-01-18 Havoc Pennington <hp@redhat.com>
5937 * rename dbus-daemon-1 to dbus-daemon throughout
5939 2005-01-18 Havoc Pennington <hp@redhat.com>
5941 * Throughout, grand renaming to strip out the use of "service",
5942 just say "name" instead (or "bus name" when ambiguous). Did not
5943 change the internal code of the message bus itself, only the
5944 programmer-facing API and messages.
5946 * doc/dbus-specification.xml: further update the message bus section
5948 * bus/config-parser.c (all_are_equiv): fix bug using freed string
5951 2005-01-17 Havoc Pennington <hp@redhat.com>
5953 * dbus/dbus-types.h: remove 16-bit types since we don't use them
5956 * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5957 "invalid name character" not only non-ASCII
5959 * doc/dbus-specification.xml: further update spec, message bus
5960 parts are still out-of-date but the marshaling etc. stuff is now
5963 2005-01-17 Havoc Pennington <hp@redhat.com>
5965 * doc/dbus-specification.xml: partially update spec
5967 2005-01-17 Havoc Pennington <hp@redhat.com>
5969 * Throughout, align variant bodies according to the contained
5970 type, rather than always to 8. Should save a fair bit of space in
5973 * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5974 fix handling of case where p == end
5976 * doc/TODO: remove the dbus_bool_t item and variant alignment items
5978 2005-01-17 Havoc Pennington <hp@redhat.com>
5980 * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5982 * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5983 of an 8-bit type. Now dbus_bool_t is the type to use whenever you
5984 are marshaling/unmarshaling a boolean.
5986 2005-01-16 Havoc Pennington <hp@redhat.com>
5988 This is about it on what can be disabled/deleted from libdbus
5989 easily, back below 150K anyhow. Deeper cuts are more work than
5990 just turning the code off as I've done here.
5992 * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5993 signed int convenience funcs
5995 * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5998 * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5999 things out of libdbus
6001 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
6003 * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
6004 tests-enabled-only, though it should probably be deleted)
6006 * dbus/dbus-message-util.c: same stuff
6008 * dbus/dbus-auth-util.c: same stuff
6010 2005-01-16 Havoc Pennington <hp@redhat.com>
6012 * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
6014 * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
6015 way for stripping down dbus-userdb.c stuff included in libdbus.
6016 Rename _dbus_parse_uid for consistency.
6018 2005-01-16 Havoc Pennington <hp@redhat.com>
6020 * dbus/dbus-internals.c (_dbus_real_assert): print the function
6021 name the assertion failed in
6023 * dbus/dbus-internals.h (_dbus_return_if_fail)
6024 (_dbus_return_val_if_fail): assert that the name of the function
6025 containing the check doesn't start with '_', since we only want to
6026 use checks on public functions
6028 * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
6029 checks to assertions
6031 * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
6032 change checks to asserts for private function
6034 * dbus/dbus-message.c (_dbus_message_set_serial): checks
6035 to asserts for private function
6037 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
6038 broken assertion that was breaking make check
6039 (_dbus_type_reader_array_is_empty): remove this rather than fix
6040 it, was only used in assertions
6042 2005-01-16 Havoc Pennington <hp@redhat.com>
6044 * test/unused-code-gc.py: hacky script to find code that's used
6045 only by the bus (not libdbus) or used only by tests or not used at
6046 all. It has some false alarms, but looks like we can clean up a
6047 lot of size from libdbus.
6049 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
6050 dbus/Makefile.am: initially move 10K of binary size out of libdbus
6052 2005-01-16 Havoc Pennington <hp@redhat.com>
6054 * Add and fix docs according to Doxygen warnings throughout
6057 * dbus/dbus-marshal-recursive.c
6058 (_dbus_type_reader_array_is_empty): change this to just call
6059 array_reader_get_array_len() and make it static
6061 * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
6063 (dbus_message_iter_init_append): rename from append_iter_init
6065 * dbus/dbus-marshal-recursive.c
6066 (_dbus_type_reader_get_element_type): rename from
6067 _dbus_type_reader_get_array_type
6069 2005-01-15 Havoc Pennington <hp@redhat.com>
6071 * test/glib/test-profile.c (with_bus_server_filter): fix crash
6073 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6074 when DBUS_DISABLE_ASSERT
6075 (_dbus_marshal_set_basic): be sure we align for the string length
6077 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6080 * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6081 inline macro version
6082 (_dbus_string_set_byte): provide inline macro version
6084 2005-01-15 Havoc Pennington <hp@redhat.com>
6086 * Land the new message args API and type system.
6088 This patch is huge, but the public API change is not
6089 really large. The set of D-BUS types has changed somewhat,
6090 and the arg "getters" are more geared toward language bindings;
6091 they don't make a copy, etc.
6093 There are also some known issues. See these emails for details
6095 http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6096 http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6098 * dbus/dbus-marshal-*: all the new stuff
6100 * dbus/dbus-message.c: basically rewritten
6102 * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6103 freed blocks to be all non-nul bytes so using freed memory is less
6104 likely to work right
6106 * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6107 DBUS_FAIL_MALLOC=N environment variable, so you can do
6108 DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6109 DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6112 * qt/message.cpp: port to the new message args API
6113 (operator<<): use str.utf8() rather than str.unicode()
6114 (pretty sure this is right from the Qt docs?)
6116 * glib/dbus-gvalue.c: port to the new message args API
6118 * bus/dispatch.c, bus/driver.c: port to the new message args API
6120 * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6121 "locked" flag to TRUE and align_offset to 0; I guess we never
6122 looked at these anyhow, but seems cleaner.
6124 * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6125 move allocation padding macro to this header; use it to implement
6126 (_DBUS_STRING_STATIC): ability to declare a static string.
6128 * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6129 change to return TRUE if the interface is not set.
6131 * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6132 to dbus-marshal-validate.[hc]
6134 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
6137 * dbus/Makefile.am: cut over from dbus-marshal.[hc]
6138 to dbus-marshal-*.[hc]
6140 * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6141 function here from dbus-marshal.c
6143 2005-01-12 Joe Shaw <joeshaw@novell.com>
6145 * NEWS: Update for 0.23.
6147 * configure.in: Release 0.23.
6149 2005-01-12 Joe Shaw <joeshaw@novell.com>
6151 * mono/Makefile.am, mono/example/Makefile.am: Always build the
6152 dbus DLL with --debug. Clean up after the .mdb files this leaves
6155 * mono/doc/Makefile.am: Need to uninstall the docs on "make
6158 * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6159 is an enum, get the enum's underlying type. Another mono
6162 2005-01-11 Joe Shaw <joeshaw@novell.com>
6164 Patch from Sjoerd Simons <sjoerd@luon.net>
6166 * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6167 DESTDIR. It breaks stuff.
6169 2005-01-11 Joe Shaw <joeshaw@novell.com>
6171 Patch from Tambet Ingo <tambet@ximian.com>
6173 * mono/DBusType/Array.cs (Get): Get the underlying element type by
6174 calling type.GetElementType(). The code previously depended on
6175 broken Mono behavior, which was fixed in Mono 1.1.3.
6177 * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6178 Activator.CreateInstance() so that the class's constructor is
6179 called with the right parameters.
6181 2005-01-11 Joe Shaw <joeshaw@novell.com>
6183 Patch from Timo Teräs <ext-timo.teras@nokia.com>
6185 * dbus/dbus-connection.c
6186 (_dbus_connection_queue_received_message_link): Call
6187 _dbus_connection_remove_timeout() instead of the _locked()
6188 variant, since it's always called from
6189 _dbus_connection_handle_watch(), which handles the locking.
6190 Removed the _locked() variant since it's no longer used.
6192 2005-01-03 Havoc Pennington <hp@redhat.com>
6194 * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6197 2004-12-26 Havoc Pennington <hp@redhat.com>
6199 * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6201 2005-01-03 Havoc Pennington <hp@redhat.com>
6203 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6206 * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6208 2005-01-02 Havoc Pennington <hp@redhat.com>
6210 * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6212 2005-01-01 Havoc Pennington <hp@redhat.com>
6214 * configure.in: add -Wfloat-equal
6216 2005-01-01 Havoc Pennington <hp@redhat.com>
6218 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro,
6219 for a variety of reasons '==' doesn't do this.
6221 2004-12-31 Havoc Pennington <hp@redhat.com>
6223 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6224 I keep wishing I had
6226 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
6228 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6230 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
6232 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6233 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6234 dbus-protocol.h. Because they are defines and not enums they are not
6237 2004-12-26 John (J5) Palmieri <johnp@redhat.com>
6239 * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6240 dbus_bus_activate_service
6242 * python/dbus.py (Bus.activate_service): activate a service on the
6245 2004-12-24 Havoc Pennington <hp@redhat.com>
6247 * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6248 file format has also changed and I haven't adapted to that yet
6250 * Makefile.am: load .gcno files from latest gcc
6252 2004-12-23 John (J5) Palmieri <johnp@redhat.com>
6253 * Patch from Rob Taylor <robtaylor@fastmail.fm>
6255 * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6258 * python/dbus.py (get_unix_user): Added binding to
6259 call dbus_bindings.bus_get_unix_user
6261 * python/extract.py: Modified the proto_pat regex to
6262 handle unsigned long
6264 2004-12-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
6266 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6267 better POSIX compliance.
6269 2004-12-19 Havoc Pennington <hp@redhat.com>
6271 * dbus/dbus-string.c (_dbus_string_insert_4_aligned)
6272 (_dbus_string_insert_8_aligned): new functions
6274 * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6276 2004-12-18 Havoc Pennington <hp@redhat.com>
6278 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6281 * dbus/dbus-message.c: fix a comment, and add a still-unused
6282 not-implemented function
6284 * dbus/dbus-marshal.h: fix comment
6286 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
6288 2004-12-17 Joe Shaw <joeshaw@novell.com>
6290 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
6291 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
6292 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
6293 Type.UnderlyingSystemType to get the actual system type
6294 underneath. This code previously depended on the broken Mono
6295 behavior, which was fixed in 1.1.3.
6297 2004-11-27 Havoc Pennington <hp@redhat.com>
6299 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
6301 (_dbus_string_get_const_data): inline when asserts are disabled
6303 * dbus/dbus-message.c: record the _dbus_current_generation of
6304 creation so we can complain if dbus_shutdown() is used improperly.
6305 Do this only if checks are enabled.
6307 * dbus/dbus-connection.c: ditto
6309 2004-11-26 Havoc Pennington <hp@redhat.com>
6311 * test/glib/test-profile.c: add with_bus mode to profile echoes
6312 that go through the bus.
6314 * test/glib/run-test.sh: add ability to run test-profile
6316 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6319 2004-11-26 Havoc Pennington <hp@redhat.com>
6321 * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6322 thing was implemented
6324 2004-11-26 Havoc Pennington <hp@redhat.com>
6326 * test/glib/test-profile.c: tweak a bit, add support for some
6327 made-up minimal malloc overhead with plain sockets, since in
6328 real life some sort of buffers are unavoidable thus we could
6329 count them in the theoretical best case
6331 2004-11-26 Havoc Pennington <hp@redhat.com>
6333 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6334 where I was trying to cache one too many messages
6336 2004-11-26 Havoc Pennington <hp@redhat.com>
6338 * dbus/dbus-message.c: reimplement message cache as an array which
6339 makes the cache about twice as fast and saves maybe 1.5% overall
6341 2004-11-26 Havoc Pennington <hp@redhat.com>
6343 * dbus/dbus-threads.c (init_global_locks): forgot to put the
6344 message cache lock here
6346 2004-11-26 Havoc Pennington <hp@redhat.com>
6348 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6349 the "char byte_order" next to each other to save 4 bytes
6350 (dbus_message_new_empty_header): reduce preallocation, since the
6351 message cache should achieve a similar effect
6352 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6353 message cache that keeps a few DBusMessage around in a pool,
6354 another 8% speedup or so.
6356 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6358 2004-11-25 Havoc Pennington <hp@redhat.com>
6360 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6361 to write, without reading or blocking, try it before the poll()
6362 and skip the poll() if nothing remains to write. This is about a
6363 3% speedup in the echo client/server
6365 2004-11-25 Havoc Pennington <hp@redhat.com>
6367 The primary change here is to always write() once before adding
6368 the write watch, which gives us about a 10% performance increase.
6370 * dbus/dbus-transport-unix.c: a number of modifications to cope
6371 with removing messages_pending
6372 (check_write_watch): properly handle
6373 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6374 messages_pending stuff
6375 (check_read_watch): properly handle WAITING_FOR_MEMORY and
6377 (unix_handle_watch): after writing, see if the write watch can be
6379 (unix_do_iteration): assert that write_watch/read_watch are
6380 non-NULL rather than testing that they aren't, since they
6381 aren't allowed to be NULL. check_write_watch() at the end so
6382 we add the watch if we did not finish writing (e.g. got EAGAIN)
6384 * dbus/dbus-transport-protected.h: remove messages_pending call,
6385 since it resulted in too much inefficient watch adding/removing;
6386 instead we now require that the transport user does an iteration
6387 after queueing outgoing messages, and after trying the first
6388 write() we add a write watch if we got EAGAIN or exceeded our
6389 max bytes to write per iteration setting
6391 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6394 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6395 freed and then accessed, valgrind flagged this bug, fix it
6397 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6398 as the last valid field plus 1, where really it is equal to the
6399 last valid field. Corrects some message corruption issues.
6401 * dbus/dbus-mainloop.c: verbosity changes
6403 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6404 instead of aborting in one of the test codepaths
6406 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6407 caused not printing the pid ever again if a verbose was missing
6408 the newline at the end
6409 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6411 * dbus/dbus-connection.c: verbosity changes;
6412 (dbus_connection_has_messages_to_send): new function
6413 (_dbus_connection_message_sent): no longer call transport->messages_pending
6414 (_dbus_connection_send_preallocated_unlocked): do one iteration to
6415 try to write() immediately, so we can avoid the write watch. This
6416 is the core purpose of this patchset
6417 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6418 dump the outgoing message queue, so nobody will get confused
6419 trying to send them or thinking stuff is pending to be sent
6421 * bus/test.c: verbosity changes
6423 * bus/driver.c: verbosity/assertion changes
6425 * bus/dispatch.c: a bunch of little tweaks to get it working again
6426 because this patchset changes when/where you need to block.
6428 2004-11-23 Havoc Pennington <hp@redhat.com>
6430 * test/glib/test-profile.c: modify to accept a plain_sockets
6431 argument in which case it will bench plain sockets instead of
6432 libdbus, for comparison purposes.
6434 2004-11-22 Havoc Pennington <hp@redhat.com>
6436 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6437 threads for more time, so sysprof can get a grip on it.
6439 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6442 2004-11-13 Havoc Pennington <hp@redhat.com>
6444 * test/glib/test-profile.c: fix this thing up a bit
6446 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6447 preallocation sizes by a fair bit; not sure if this will be an
6448 overall performance win or not, but it does reduce reallocs.
6450 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6451 the test hack that forced constant realloc if asserts are
6452 disabled, so we can profile sanely. Sprinkle in some
6453 _DBUS_UNLIKELY() which are probably pointless, but before I
6454 noticed the real performance problem I put them in.
6455 (_dbus_string_validate_utf8): micro-optimize this thing a little
6456 bit, though callgrind says it didn't help; then special-case
6457 ascii, which did help a lot; then be sure we detect nul bytes as
6458 invalid, which is a bugfix.
6459 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6460 superstition; use memset to nul the padding instead of a manual
6462 (_dbus_string_get_length): inline this as a
6463 macro; it showed up in the profile because it's used for loop
6466 2004-11-10 Colin Walters <walters@verbum.org>
6468 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6471 2004-11-09 Colin Walters <walters@verbum.org>
6473 * dbus/dbus-string.c (_dbus_string_get_length): New
6474 function, writes DBusString to C buffer.
6476 * dbus/dbus-string.h: Prototype it.
6478 * dbus/dbus-message.c (dbus_message_type_to_string): New
6479 function, converts message type into C string.
6481 * dbus/dbus-message.h: Prototype it.
6483 * bus/selinux.c (bus_selinux_check): Take source pid,
6484 target pid, and audit data. Pass audit data to
6486 (log_audit_callback): New function, appends extra
6488 (bus_selinux_allows_acquire_service): Also take
6489 service name, add it to audit data.
6490 (bus_selinux_allows_send): Also take message
6491 type, interface, method member, error name,
6492 and destination, and add them to audit data.
6493 (log_cb): Initialize func_audit.
6495 * bus/selinux.h (bus_selinux_allows_acquire_service)
6496 (bus_selinux_allows_send): Update prototypes
6498 * bus/services.c (bus_registry_acquire_service): Pass
6499 service name to bus_selinux_allows_acquire_service.
6501 * bus/bus.c (bus_context_check_security_policy): Pass
6502 additional audit data. Move assignment of dest
6505 2004-11-07 Colin Walters <walters@verbum.org>
6507 * dbus/dbus-transport-unix.c (do_authentication): Always
6508 initialize auth_completed.
6510 2004-11-07 Colin Walters <walters@verbum.org>
6512 * bus/bus.c (load_config): Break into three
6513 separate functions: process_config_first_time_only,
6514 process_config_every_time, and process_config_postinit.
6515 (process_config_every_time): Move call of
6516 bus_registry_set_service_context_table into
6517 process_config_postinit.
6518 (process_config_postinit): New function, does
6519 any processing that needs to happen late
6520 in initialization (and also on reload).
6521 (bus_context_new): Instead of calling load_config,
6522 open config parser here and call process_config_first_time_only
6523 and process_config_every_time directly. Later, after
6524 we have forked but before changing UID,
6525 invoke bus_selinux_full_init, and then call
6526 process_config_postinit.
6527 (bus_context_reload_config): As in bus_context_new,
6528 load parse file inside here, and call process_config_every_time
6529 and process_config_postinit.
6531 * bus/services.h, bus/services.c
6532 (bus_registry_set_service_context_table): Rename
6533 from bus_registry_set_sid_table. Take string hash from config
6534 parser, and convert them here into SIDs.
6536 * bus/config-parser.c (struct BusConfigParser): Have
6537 config parser only store a mapping of service->context
6539 (merge_service_context_hash): New function.
6540 (merge_included): Merge context string hashes instead
6541 of using bus_selinux_id_table_union.
6542 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6543 simply create a new string hash.
6544 (bus_config_parser_unref): Unref it.
6545 (start_selinux_child): Simply insert strings into hash,
6546 don't call bus_selinux_id_table_copy_over.
6548 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6549 (bus_selinux_id_table_copy_over): Delete.
6551 2004-11-03 Colin Walters <walters@verbum.org>
6553 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6556 2004-11-03 Colin Walters <walters@verbum.org>
6558 * bus/test-main.c (test_pre_hook): Fix test logic,
6559 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6561 2004-11-02 Colin Walters <walters@redhat.com>
6563 * bus/selinux.c (bus_selinux_init): Split into two functions,
6564 bus_selinux_pre_init and bus_selinux_post_init.
6565 (bus_selinux_pre_init): Just determine whether SELinux is
6567 (bus_selinux_post_init): Do everything else.
6569 * bus/main.c (main): Call bus_selinux_pre_init before parsing
6570 config file, and bus_selinux_post_init after. This ensures that
6571 we don't lose the policyreload notification thread that
6572 bus_selinux_init created before forking previously.
6574 * bus/test-main.c (test_pre_hook): Update for split.
6576 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
6578 Patch from Johan Fischer <linux@fischaz.com>
6580 * mono/doc/Makefile.am (install-data-local): Added directory
6583 2004-10-29 Colin Walters <walters@redhat.com>
6585 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6586 parameter for fd to write pid to.
6588 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6590 * bus/bus.c (bus_context_new): Pass print_pid_fd
6591 to _dbus_become_daemon (bug #1720)
6593 2004-10-29 Colin Walters <walters@redhat.com>
6595 Patch from Ed Catmur <ed@catmur.co.uk>
6597 * mono/doc/Makefile.am (install-data-local): Handle
6600 2004-10-29 Colin Walters <walters@redhat.com>
6602 * bus/.cvsignore, qt/.cvsignore: Update.
6604 2004-10-29 Colin Walters <walters@redhat.com>
6606 Patch from Kristof Vansant <de_lupus@pandora.be>
6608 * configure.in: Detect Slackware.
6609 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6610 * bus/rc.messagebus.in: New file.
6612 2004-10-29 Colin Walters <walters@redhat.com>
6614 * tools/dbus-monitor.c (filter_func): Return
6615 DBUS_HANDLER_RESULT_HANDLED in filter function
6617 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6619 2004-10-29 Colin Walters <walters@redhat.com>
6621 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6623 * bus/services.c (bus_registry_acquire_service):
6624 Correctly retrieve service name from DBusString
6627 2004-10-29 Colin Walters <walters@redhat.com>
6629 * dbus/dbus-glib.h: Update documentation to not
6630 refer to internal APIs.
6632 2004-10-27 Joe Shaw <joeshaw@novell.com>
6634 * mono/Arguments.cs (GetDBusTypeConstructor):
6635 type.UnderlyingSystemType will return "System.Byte" if you do it
6636 on "byte[]", which is not what we want. So check the type.IsArray
6637 property and use System.Array instead.
6639 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
6641 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6642 the DBusUserInfo structure since this is passed into the function.
6643 This would cause a double free when the function that allocated
6644 the structure would try to free it when an error occured.
6646 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6647 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6648 for service activation to avoid 32bit/64bit parallel install issues
6650 2004-10-21 Colin Walters <walters@verbum.org>
6652 * AUTHORS: Fix my email address, the @gnu.org one
6653 has been bouncing for some time. Also add J5.
6655 2004-10-21 Colin Walters <walters@verbum.org>
6657 * dbus/dbus-transport-unix.c (do_authentication): Return
6658 authentication status to callers.
6659 (unix_handle_watch): If we completed authentication this round,
6660 don't do another read. Instead wait until the next iteration,
6661 after we've read any pending data in the auth buffer.
6662 (unix_do_iteration): Ditto.
6663 (unix_handle_watch): Updated for new do_authentication prototype.
6665 2004-10-18 Colin Walters <walters@verbum.org>
6667 * bus/selinux.c (bus_selinux_enabled): Handle
6668 --disable-selinux case.
6670 2004-10-18 Colin Walters <walters@verbum.org>
6672 * bus/selinux.h: Add bus_selinux_enabled.
6674 * bus/selinux.c (bus_selinux_enabled): Implement it.
6676 * bus/config-parser.c (struct include): Add
6677 if_selinux_enabled member.
6678 (start_busconfig_child): Parse if_selinux_enabled
6679 attribute for include.
6680 (bus_config_parser_content): Handle it.
6682 * bus/session.conf.in, bus/system.conf.in: Add
6683 inclusion of context mapping to default config files;
6684 conditional on SELinux being enabled.
6686 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6688 * test/data/invalid-config-files/badselinux-1.conf,
6689 test/data/invalid-config-files/badselinux-2.conf:
6690 Test files for bad syntax.
6692 2004-10-17 Colin Walters <walters@verbum.org>
6694 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6695 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6696 format specifier mismatches.
6698 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
6700 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6703 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6704 pointer (bug #1540, Leonardo Boiko).
6706 2004-09-28 Jon Trowbridge <trow@ximian.com>
6708 * mono/BusDriver.cs: Changed BusDriver struct to remove
6709 the ServiceCreated and ServiceDeleted events and replace them
6710 with the new ServiceOwnerChanged event.
6712 * mono/example/BusListener.cs: Added a new example program,
6713 which listens for and reports any ServiceOwnerChanged events
6716 * mono/example/Makefile.am (DESTDIR): Build changes for the
6717 new BusListener.cs example.
6719 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
6721 * bus/signals.c (bus_match_rule_parse): validate the components of
6722 match rules (bug #1439).
6724 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6726 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
6728 * doc/dbus-specification.xml: document ServiceOwnerChanged
6731 * bus/driver.c, bus/driver.h, bus/services.c: Use
6732 ServiceOwnerChanged signal instead of ServiceCreated and
6735 * bus/dispatch.c: update testcase for the new signal.
6737 2004-09-20 Jon Trowbridge <trow@ximian.com>
6739 Patch from Nat Friedman <nat@novell.com>
6741 * mono/Makefile.am: A number of small build fixes to allow "make
6742 distcheck" to succeed.
6744 * mono/example/Makefile.am: "make distcheck" fixes.
6746 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6749 * test/Makefile.am: "make distcheck" fixes.
6751 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
6753 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6755 * doc/busconfig.dtd: update the DTD for the at_console attribute.
6757 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6758 messages after the first one (bug #1389).
6760 * bus/dispatch.c (check_double_hello_message): add a test case for
6761 the double hello message bug.
6762 (check_existent_service_activation): fix check of spawning error.
6764 2004-09-16 David Zeuthen <david@fubar.dk>
6766 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6768 2004-09-12 David Zeuthen <david@fubar.dk>
6770 Patch from Kay Sievers <kay.sievers@vrfy.org>
6772 * bus/bus.c (bus_context_new):
6774 * bus/main.c (usage)
6776 Add commandline option --nofork to override configuration file
6779 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
6781 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6782 compilers don't like it (bug #974).
6784 2004-09-04 Harald Fernengel <harry@kdevelop.org>
6786 * qt/connection.*: Applied patch by Jérôme Lodewyck
6787 <lodewyck@clipper.ens.fr> to integrate an existing
6788 connection into the Qt eventloop
6790 2004-08-30 Jon Trowbridge <trow@ximian.com>
6792 * mono/BusDriver.cs: Added. This is a class for interacting with
6793 the org.freedesktop.DBus service.
6795 * mono/Message.cs: Added a mechanism to expose the message that is
6796 currently being dispatched via the static Message.Current
6797 property. Added Message.Sender and Message.Destination
6800 * mono/Handler.cs: Expose the dispatched message via
6801 Message.Current when handling method calls.
6803 * mono/Service.cs: Expose the dispatched message via
6804 Message.Current when handling signal emissions.
6806 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6807 Connection.BaseService property.
6809 2004-08-28 Havoc Pennington <hp@redhat.com>
6811 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6813 More fixes from Steve Grubb
6815 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6816 (_dbus_listen_tcp_socket): fix fd leak
6818 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6819 EINTR to a bit lower in the code
6821 2004-08-26 Jon Trowbridge <trow@ximian.com>
6823 * bus/driver.c (bus_driver_handle_service_exists): Respond with
6824 TRUE if we are inquiring about the existence of the built-in
6825 org.freedesktop.DBus service.
6827 2004-08-25 John Palmieri <johnp@redhat.com>
6828 * bus/config-parser.c:
6829 (struct PolicyType): Add POLICY_CONSOLE
6830 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6831 (start_busconfig_child): Sets up console element when
6832 <policy at_console=""> is encountered in a policy file
6833 (append_rule_from_element): Convert console elements to console
6837 (bus_policy_create_client_policy): Add console rules to the client
6838 policy based on if the client is at the console
6839 (bus_policy_append_console_rule): New function for adding a
6840 console rule to a policy
6841 (bus_policy_merge): Handle console rule merging
6843 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6844 where we check for console user files
6846 * dbus/dbus-sysdeps.c:
6847 (_dbus_file_exists): New function which checks if the given
6849 (_dbus_user_at_console): New function which does the system
6850 specific process of checking if the user is at the console
6852 * dbus/dbus-userdb.c:
6853 (_dbus_is_console_user): New function converts a UID to user name
6854 and then calls the system specific _dbus_user_at_console to
6855 see if the user is at the console and therefor a console user
6857 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
6859 * bus/config-parser.c (set_limit):
6860 * bus/dbus-daemon-1.1.in:
6861 * test/data/valid-config-files/many-rules.conf: set the
6862 max_match_rules_per_connection limt from the config file.
6864 * doc/busconfig.dtd: update the DTD.
6866 * bus/driver.c: remove some unused variables.
6868 2004-08-24 Mikael Hallendal <micke@imendio.com>
6870 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
6871 it's been replaced by dbus_g_bus_get
6873 2004-08-23 Colin Walters <walters@redhat.com>
6875 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6877 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6879 * bus/selinux.c: Create a thread for policy reload notification.
6880 (bus_selinux_get_policy_root): Implement.
6882 * bus/config-parser.c (start_busconfig_child)
6883 (bus_config_parser_content): Support SELinux-root relative
6886 * configure.in <HAVE_SELINUX>: Add -lpthread.
6888 * bus/test-main.c (test_pre_hook, test_post_hook): New.
6889 (test_post_hook): Move memory checking into here.
6890 (test_pre_hook, test_post_hook): Move SELinux checks in
6891 here, but conditional on a DBUS_TEST_SELINUX environment
6892 variable. Unfortunately we can't run the SELinux checks
6893 as a normal user, since they won't have any permissions
6894 for /selinux. So this will have to be tested manually
6895 for now, until we have virtualization for most of
6898 2004-08-23 Havoc Pennington <hp@redhat.com>
6900 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6901 drop supplementary groups, suggested by Steve Grubb
6903 2004-08-20 Colin Walters <walters@redhat.com>
6905 * bus/config-parser.c (start_busconfig_child): Remove some unused
6908 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6911 2004-08-17 Joe Shaw <joeshaw@novell.com>
6913 * configure.in: If --enable-mono is passed in, if we can't find
6916 * mono/Makefile.am: Use /gacutil to install assemblies into the
6919 2004-08-12 Havoc Pennington <hp@redhat.com>
6921 * NEWS: update for 0.22
6923 * configure.in: release 0.22
6925 2004-08-11 Colin Walters <walters@redhat.com>
6927 * tools/dbus-send.c (main, usage): Add --reply-timeout
6930 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
6932 * bus/bus.c (process_config_first_time_only): get rid of an unused
6933 DBusError that was causing a memoy leak (bug #989).
6935 * dbus/dbus-keyring.c, dbus/dbus-message.c:
6936 fix compilation on Solaris/Forte C (bug #974)
6938 * bus/main.c (main): plug two minuscule memleaks.
6940 2004-08-10 Havoc Pennington <hp@redhat.com>
6942 * doc/dbus-tutorial.xml: add some more info on GLib bindings
6944 2004-08-09 Havoc Pennington <hp@redhat.com>
6946 * COPYING: switch to Academic Free License version 2.1 instead of
6947 2.0, to resolve complaints about patent termination clause.
6949 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
6951 * README: added documentation for the --enable-python
6954 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
6956 * bus/config-parser.c (bus_config_parser_new): fix an invalid
6957 _unref in the SELinux support.
6959 * doc/busconfig.dtd: update DTD for SELinux support.
6961 * bus/config-loader-libxml.c: fix error handler and parser
6962 initialisation/cleanup. OOM test now works with libxml2 HEAD.
6964 * configure.in: remove the warning about libxml2.
6966 * dbus/dbus-bus.c: silence doxygen warning.
6968 2004-07-31 Colin Walters <walters@redhat.com>
6970 * configure.in: Move #error in SELinux check to its own line.
6972 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
6974 * dbus/dbus-internals.h (_DBUS_SET_OOM):
6975 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6978 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6979 broken by the change in the _SET_OOM macros.
6981 2004-07-31 Colin Walters <walters@redhat.com>
6983 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6986 2004-07-31 Colin Walters <walters@redhat.com>
6988 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6989 to correctly detect DBUS__ACQUIRE_SVC. Also add an
6992 2004-07-24 Havoc Pennington <hp@redhat.com>
6994 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6996 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6999 * configure.in: add --enable-selinux
7001 * bus/policy.c (bus_policy_merge): add FIXME to a comment
7003 * bus/main.c (main): initialize and shut down selinux
7005 * bus/connection.c: store SELinux ID on each connection, to avoid
7006 repeated getting of the string context and converting it into
7009 * bus/bus.c (bus_context_get_policy): new accessor, though it
7011 (bus_context_check_security_policy): check whether the security
7012 context of sender connection can send to the security context of
7013 recipient connection
7015 * bus/config-parser.c: add parsing for <selinux> and <associate>
7017 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
7018 implement dbus_connection_get_unix_fd()
7020 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
7021 function, used by the selinux stuff
7023 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
7025 * bus/config-loader-libxml.c: complete the implementation of
7026 libxml backend for config file loader. Doesn't work with full OOM
7029 * configure.in: change error when selecting libxml into a warning.
7031 * test/data/invalid-config-files: add two non-well-formed XML
7034 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
7036 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
7037 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
7038 be necessary to read all the buffer. (bug #894)
7040 * bus/activation.c (bus_activation_activate_service): fix a
7041 potential assertion failure (bug #896). Small optimization in the
7042 case of auto-activation messages.
7044 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
7045 add test case for byte-through-vararg bug (#901). patch by Kimmo
7048 2004-07-28 Anders Carlsson <andersca@gnome.org>
7051 * python/dbus_bindings.pyx.in:
7052 Add dbus.init_gthreads (), allow emit_signal to pass
7053 arguments to the signal.
7055 2004-07-24 Havoc Pennington <hp@redhat.com>
7057 * AUTHORS: add some people, not really comprehensively, let me
7058 know if I missed you
7060 2004-07-24 Havoc Pennington <hp@redhat.com>
7062 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
7065 * test/Makefile.am (DIST_SUBDIRS): here also
7067 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
7069 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
7070 breaking build on Solaris, reported by Farhad Saberi on the ML.
7072 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7073 va_arg invocation to account for integer promotion in the case of
7074 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
7076 * bus/services.c (bus_service_remove_owner): fix bug #902, use
7077 _dbus_list_get_first_link, not _dbus_list_get_first.
7079 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7081 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7082 handler functions so that the asserts in _dbus_object_subtree_unref
7085 * dbus/dbus-transport-unix.c (do_reading):
7086 _dbus_transport_queue_messages return value is of type
7087 dbus_bool_t, not DBusDispatchStatus.
7089 2004-07-19 David Zeuthen <david@fubar.dk>
7091 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7094 (check_get_connection_unix_user): Debug says GetProperty; but the
7095 method is called GetConnectionUnixUser
7096 (check_get_connection_unix_process_id): New function
7097 (bus_dispatch_test): Actually call check_get_connection_unix_user();
7098 also call check_get_connection_unix_process_id()
7101 (bus_driver_handle_get_connection_unix_process_id): New function,
7102 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7106 (handle_server_data_external_mech): Set pid from the credentials
7107 obtained from the socket
7109 * dbus/dbus-connection.c:
7110 (dbus_connection_get_unix_process_id): New function
7112 * dbus/dbus-connection.h:
7113 Add prototype for dbus_connection_get_unix_process_id
7115 * dbus/dbus-transport.c:
7116 (_dbus_transport_get_unix_process_id): New function
7118 * dbus/dbus-transport.h:
7119 Add prototype for _dbus_transport_get_unix_process_id
7121 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
7123 * dbus/dbus-message.c: Message counter fix, patch by Christian
7124 Hammond <chipx86@gnupdate.org>
7126 2004-07-18 Seth Nickell <seth@gnome.org>
7129 * python/dbus_bindings.pyx.in:
7130 * python/tests/test-client.py:
7132 Add dbus.ByteArray and dbus_bindings.ByteArray
7133 types so that byte streams can be passed back.
7135 Give jdahlin the heaps of credit that are so
7138 2004-07-12 Seth Nickell <seth@gnome.org>
7142 Add message argument to the default object_method_handler
7145 * python/dbus_bindings.pyx.in:
7147 Automatically return NIL when passed an empty list
7148 (we can't pass back a list since lists are typed
7149 and we don't have any idea what type the the client
7150 intended the list to be... :-( )
7152 2004-07-10 Seth Nickell <seth@gnome.org>
7154 * python/examples/Makefile.am:
7156 Fix distcheck breakage caused by new examples.
7158 2004-07-10 Seth Nickell <seth@gnome.org>
7162 Add "message" argument to service-side dbus.Object
7163 methods. This will break existing services written
7164 using the python bindings, but will allow extraction
7165 of all the message information (e.g. who its from).
7167 Add improved "object oriented" signal handling/emission.
7169 * python/examples/example-service.py:
7173 * python/examples/example-signal-emitter.py:
7174 * python/examples/example-signal-recipient.py:
7176 Two new examples that show how to emit and receive
7177 signals using the new APIs.
7179 * python/examples/example-signals.py:
7180 * python/examples/gconf-proxy-service.py:
7181 * python/examples/gconf-proxy-service2.py:
7183 Add "message" argument to service methods.
7185 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
7187 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7188 * dbus/bus.c (dbus_bus_get_unix_user)
7189 * doc/dbus-specification.xml: implement GetConnectionUnixUser
7190 method of org.freedesktop.DBus interface.
7192 * bus/dispatch.c: test case
7194 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
7196 * python/Makefile.am: switched include directory from glib/ to dbus/
7197 since dbus-glib.h moved
7199 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
7201 * configure.in: prevent building the gcj stuff and libxml loader
7202 since they are broken.
7204 2004-06-20 Havoc Pennington <hp@redhat.com>
7206 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
7207 codes from the dbus error names
7209 * glib/dbus-glib.h: move to subdir dbus/ since it's included
7210 as dbus/dbus-glib.h and that breakage is now visible due to
7211 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7213 * glib/dbus-glib.h: s/gproxy/g_proxy/
7215 * dbus/dbus-shared.h: new header to hold stuff shared with
7218 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7221 * glib/dbus-glib.h (dbus_set_g_error): move to
7222 dbus-glib-lowlevel.h
7224 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7225 of stuff to enable this
7227 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7229 * a bunch of other changes with the same basic "separate glib
7230 bindings from dbus.h" theme
7232 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
7234 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7236 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7238 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
7240 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7241 the reply value of the ServiceExists message.
7243 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
7245 * python/dbus_bindings.pyx.in: No longer need to parse path
7246 elements and pass them as arrays of strings. The C API now
7247 accepts plain path strings.
7248 (_build_parsed_path): removed
7250 2004-06-07 Havoc Pennington <hp@redhat.com>
7252 * doc/TODO: remove auto-activation item since it's done; sort
7253 items by importance/milestone
7255 2004-06-07 Havoc Pennington <hp@redhat.com>
7257 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7258 random signature when using REQUIRED_FIELDS (this hack won't work
7261 * dbus/dbus-message.c: change the signature to be a header field,
7262 instead of message->signature special-case string. Incremental
7263 step forward. Then we can fix up code to send the signature in the
7264 message, then fix up code to validate said signature, then fix up
7265 code to not put the typecodes inline, etc.
7266 (load_one_message): don't make up the signature after the fact
7267 (decode_header_data): require signature field for the known
7270 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7272 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7274 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
7276 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7278 * mono/Handler.cs: Updated to follow new path argument for
7279 (un-)registering objects.
7281 * mono/example/Makefile.am:
7283 * configure.in: Bumped required version for mono and use new -pkg
7286 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
7288 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
7289 registration functions take the path argument as char* instead of
7292 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
7293 split off the path decompostion part of
7294 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
7297 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
7299 2004-06-02 Kristian Høgsberg <krh@redhat.com>
7301 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
7302 machine approach. A state is implemented as a function that
7303 handles incoming events as specified for that state.
7305 * doc/dbus-specification.xml: Update auth protocol state machine
7306 specification to match implementation. Remove some leftover
7309 2004-06-02 Kristian Høgsberg <krh@redhat.com>
7311 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7312 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7315 * Doxyfile.in: remove deprecated options.
7317 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7318 glib/test-thread.h, glib/test-thread-client.c,
7319 glib/test-thread-server.c, glib/test-profile.c,
7320 glib/test-dbus-glib.c: remove these unused files.
7322 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
7324 * dbus/dbus-object-tree.c
7325 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7326 non-fallback handlers (bug #684).
7327 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7328 (find_subtree_recurse): report wether the returned subtree is an
7329 exact match or a "fallback" match higher up in the tree.
7330 (object_tree_test_iteration): update test case.
7332 2004-06-01 Seth Nickell <seth@gnome.org>
7334 * python/dbus_bindings.pyx.in:
7335 * python/tests/test-client.py:
7337 Round off basic type support. Add dicts (yay!), and
7338 remaining array types.
7340 Make MessageIter more general so it works for dicts too.
7342 Mark all loop variables as C integers.
7344 2004-05-31 Havoc Pennington <hp@redhat.com>
7346 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7349 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7351 * glib/dbus-glib-tool.c (main): set up to have a --self-test
7352 option that runs the tests, and start filling in some code
7353 including for starters just dumping the interfaces to stdout
7355 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7357 * test/data/valid-introspection-files/lots-of-types.xml: test of
7358 an example introspection file
7360 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7363 2004-05-31 Seth Nickell <seth@gnome.org>
7365 * python/dbus_bindings.pyx.in:
7366 * python/tests/test-client.py:
7371 Fix string array memory trashing bug... oops...
7373 2004-05-30 Seth Nickell <seth@gnome.org>
7377 Add a nicer-but-less-flexible alternate API for handling
7378 calls to virtual objects in dbus.ObjectTree.
7380 Screw up the argument order to the dbus.Object constructor
7381 for consistency with dbus.ObjectTree (and to make dbus_methods
7382 optional for future extension)
7384 * python/examples/Makefile.am:
7385 * python/examples/gconf-proxy-service.py:
7386 * python/examples/gconf-proxy-service2.py:
7388 Alternate implementation of gconf-proxy-service using the
7389 nicer dbus.ObjectTree API.
7391 * python/examples/example-service.py:
7392 * python/tests/test-server.py
7394 Reverse the argument order to deal with dbus.Object constructor
7397 2004-05-30 Seth Nickell <seth@gnome.org>
7399 * python/examples/example-client.py:
7400 * python/examples/example-service.py:
7402 Take it back. Lists seem to work but they're broken
7403 in the test suite. Make the base examples use
7406 2004-05-30 Seth Nickell <seth@gnome.org>
7408 * python/dbus_bindings.pyx.in:
7409 * python/tests/test-client.py:
7411 Add some more tests and fix errors that crop up.
7412 Unfortunately, currently it seems like marshalling
7413 and unmarshalling of lists is completely broken :-(
7415 2004-05-30 Seth Nickell <seth@gnome.org>
7417 * python/dbus_bindings.pyx.in:
7419 Add support for ObjectPath type.
7423 Refactor message handling code to a common function.
7425 * python/tests/test-client.py:
7426 * python/tests/test-server.py:
7428 Add tests that check to make sure values of all types
7429 can be echoed from a service w/o mangling.
7431 2004-05-29 Seth Nickell <seth@gnome.org>
7435 Add ObjectTree class which allows implementation
7436 of trees of "virtual" objects. Basically the python
7437 wrapper for "register_fallback".
7439 * python/examples/Makefile.am
7440 * python/examples/gconf-proxy-client.py:
7441 * python/examples/gconf-proxy-service.py:
7443 Implement a simple GConf proxy service that supports
7444 get/set on string and int GConf keys using the ObjectTree.
7446 2004-05-29 Seth Nickell <seth@gnome.org>
7449 * python/examples/example-client.py:
7450 * python/examples/example-service.py:
7451 * python/examples/list-system-services.py:
7453 Add SessionBus, SystemBus and ActivationBus classes
7454 so you don't need to know the special little BUS_TYPE
7457 2004-05-29 Havoc Pennington <hp@redhat.com>
7459 * bus/config-parser.c (process_test_valid_subdir): temporarily
7460 stop testing config parser OOM handling, since expat has issues
7461 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7463 * bus/dbus-daemon-1.1.in: change requested_reply to
7464 send_requested_reply/receive_requested_reply so we can send the
7465 replies, not just receive them.
7467 * bus/config-parser.c: parse the new
7468 send_requested_reply/receive_requested_reply
7470 * bus/policy.c (bus_client_policy_check_can_send): add
7471 requested_reply argument and use it
7473 * bus/bus.c (bus_context_check_security_policy): pass through
7474 requested_reply status to message send check
7476 * bus/system.conf.in: adapt to requested_reply change
7478 2004-05-28 Havoc Pennington <hp@redhat.com>
7480 * test/glib/test-service-glib.c (main): remove unused variable
7482 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7484 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7485 from the enum, no longer in use.
7487 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7490 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7491 whether error_name passed in is a valid error name.
7493 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
7495 * dbus/dbus-message.c (dbus_message_get_args): Added support for
7496 OBJECT_PATH and OBJECT_PATH_ARRAY
7498 2004-05-28 Seth Nickell <seth@gnome.org>
7500 * python/examples/Makefile.am:
7502 Forget to add Makefile.am. Do not pass go.
7504 2004-05-28 Michael Meeks <michael@ximian.com>
7506 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
7509 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7511 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7512 (_dbus_message_iter_get_basic_type_array): impl.
7513 drastically simplify ~all relevant _get methods to use these.
7514 (_dbus_message_iter_append_basic_array),
7515 (dbus_message_iter_append_basic): impl
7516 drastically simplify ~all relevant _append methods to use these.
7518 * dbus/dbus-message-builder.c (parse_basic_type)
7519 (parse_basic_array, lookup_basic_type): impl.
7520 (_dbus_message_data_load): prune scads of duplicate /
7523 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
7524 (_dbus_demarshal_basic_type): implement,
7525 (demarshal_and_validate_len/arg): beef up debug.
7526 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7528 2004-05-27 Seth Nickell <seth@gnome.org>
7531 * python/Makefile.am:
7533 Include the example python apps in the tarball.
7535 * python/examples/list-system-services.py
7537 Add a python new example that fetches the list of services
7538 from the system bus.
7540 2004-05-27 Seth Nickell <seth@gnome.org>
7543 * python/dbus_bindings.pyx.in:
7545 Fix failure to notify that a signal was not handled,
7546 resulted in hung functions.
7548 2004-05-25 Colin Walters <walters@redhat.com>
7550 * tools/dbus-monitor.c (main): Monitor all types of messages.
7552 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
7554 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7555 which unregisters the object path and disposes the handler.
7557 2004-05-23 Kristian Høgsberg <krh@redhat.com>
7559 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7561 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7562 operands to && so we call dbus_message_iter_next () for the last
7565 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
7567 * dbus/dbus-object-tree.c
7568 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7569 children even if the requested path isn't registered.
7570 (object_tree_test_iteration): test object_tree_list_registered.
7572 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7575 2004-05-20 Kristian Høgsberg <krh@redhat.com>
7577 * doc/TODO: Remove resolved items.
7579 * bus/expirelist.h (struct BusExpireList): remove unused n_items
7582 * bus/connection.c (bus_connections_expect_reply): Enforce the
7583 per-connection limit on pending replies.
7585 Patch from Jon Trowbridge <trow@ximian.com>:
7587 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
7588 up a watch that triggers a config reload when one end of the pipe
7590 (signal_handler): Instead of doing the config reload in our SIGHUP
7591 handler, just write to the reload pipe and let the associated
7592 watch handle the reload when control returns to the main loop.
7594 * bus/driver.c (bus_driver_handle_reload_config): Added.
7595 Implements a ReloadConfig method for requesting a configuration
7596 file reload via the bus driver.
7598 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
7600 * HACKING: Updated release instructions concerning the wiki page.
7602 2004-05-18 Kristian Høgsberg <krh@redhat.com>
7604 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7605 filter against auth->allowed_mechs; we only add allowed mechs in
7606 record_mechanisms().
7608 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7609 ALLOWED_MECHS to auth-script format so we can set the list of
7612 * data/auth/client-out-of-mechanisms.auth-script: New test to
7613 check client disconnects when it is out of mechanisms to try.
7615 * dbus/dbus-auth.c (process_command): Remove check for lines
7616 longer that 1 MB; we only buffer up maximum 16 kB.
7618 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7619 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7620 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7621 assume there might be unused bytes.
7623 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7624 client-out-of-mechs, it is handled in process_reject(). Move check
7625 for max failures to send_rejected(), as it's a server-only thing.
7627 * dbus/dbus-auth.c: Factor out protocol reply code into functions
7628 send_auth(), send_data(), send_rejected(), send_error(),
7629 send_ok(), send_begin() and send_cancel().
7631 2004-05-17 Kristian Høgsberg <krh@redhat.com>
7633 Remove base64 encoding, replace with hex encoding. Original patch
7634 from trow@ximian.com, added error handling.
7636 * dbus/dbus-string.c (_dbus_string_base64_encode)
7637 (_dbus_string_base64_decode): Remove.
7638 (_dbus_string_hex_decode): Add end_return argument so we can
7639 distinguish between OOM and invalid hex encoding.
7640 (_dbus_string_test): Remove base64 tests and add test case for
7643 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7644 Replace base64 with hex.
7646 * test/data/auth/invalid-hex-encoding.auth-script: New test case
7647 for invalid hex encoded data in auth protocol.
7649 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
7651 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7654 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
7656 * mono/dbus-sharp.dll.config.in: Added for GAC
7657 * mono/dbus-sharp.snk: Added for GAC
7658 * mono/Assembly.cs.in: Added for GAC
7659 * mono/Makefile.am: Changes for GAC installation
7660 * configure.in: Added refs for dbus-sharp.dll.config.in and
7661 Assembly.cs.in. More fixes for mono testing
7662 * mono/example/Makefile.am: Changed var to CSC
7663 * Makefile.am: Changed flag name to DBUS_USE_CSC
7665 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
7667 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7668 * mono/doc/*: Added documentation framework
7669 * configure.in: Added monodoc check
7670 * README: Added description of mono configure flags
7672 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
7674 * doc/dbus-specification.xml: Added a "Required" column to the
7675 header fields table and changed the "zero or more" verbage in
7676 the above paragraph to read "The header must contain the required
7677 named header fields and zero or more of the optional named header
7679 * test/data/invalid-messages/*.message: Added the required PATH
7680 named header field to the tests so that they don't fail on
7681 'Missing path field'
7683 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
7685 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7686 the stack by implicitly defining variable and parameter types and
7687 removing the hack of defining C pointers as python objects and later
7690 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
7692 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7694 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
7696 * mono/DBusType/Dict.cs: Handle empty dicts
7697 * mono/DBusType/Array.cs: Handle empty arrays
7698 * mono/Arguments.cs: Handle empty arguments
7700 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
7702 * dbus-sharp.pc.in: Modified to include include Libs and Requires
7705 2004-04-25 Kristian Høgsberg <krh@redhat.com>
7707 * test/data/valid-messages/standard-*.message: Update message
7708 test scripts to new header field names.
7710 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
7712 * test/break-loader.c (randomly_do_n_things): tracked down buffer
7713 overflow to times_we_did_each_thing array which would chop off the
7714 first character of the failure_dir string. Increased the size of
7715 the array to 7 to reflect the number of random mutation functions
7718 2004-04-21 Kristian Høgsberg <krh@redhat.com>
7720 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7721 unix_server->watch here, it is unreffed in disconnect.
7722 (_dbus_server_new_for_tcp_socket): convert NULL host to
7723 "localhost" here so we don't append NULL to address.
7725 * dbus/dbus-server.c (_dbus_server_test): Add test case for
7726 various addresses, including tcp with no explicit host.
7728 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
7730 * dbus/dbus-message.c (decode_header_data, decode_string_field):
7731 fix incorrect setting of .name_offset in the HeaderField (it was
7732 off by two bytes, positioned right after the name and typecode)
7734 * bus/bus.c (bus_context_new, bus_context_unref): test before
7735 calling dbus_server_free_data_slot and _dbus_user_database_unref
7736 in case of an error.
7738 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7741 2004-04-19 Kristian Høgsberg <krh@redhat.com>
7743 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7744 _dbus_poll() instead of select().
7746 2004-04-15 Jon Trowbridge <trow@ximian.com>
7748 * bus/main.c (signal_handler): Reload the configuration files
7750 (main): Set up our SIGHUP handler.
7752 * bus/bus.c (struct BusContext): Store the config file, user and
7753 fork flag in the BusContext.
7754 (process_config_first_time_only): Added. Contains the code
7755 (previously in bus_context_new) for setting up the BusContext from
7756 the BusConfigParser that should only be run the first time the
7757 config files are read.
7758 (process_config_every_time): Added. Contains the code (previously
7759 in bus_context_new) for setting up the BusContext from the
7760 BusConfigParser that should be run every time the config files are
7762 (load_config): Added. Builds a BusConfigParser from the config
7763 files and passes the resulting structure off to
7764 process_config_first_time_only (assuming this is the first time)
7765 and process_config_every_time.
7766 (bus_context_new): All of the config-related code has been moved
7767 to process_config_first_time_only and process_config_every_time.
7768 Now this function just does the non-config-related initializations
7769 and calls load_config.
7770 (bus_context_reload_config): Added.
7772 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
7774 * bus/driver.c (bus_driver_handle_get_service_owner):
7775 implement a GetServiceOwner method.
7776 * doc/dbus-specification.xml: document it.
7777 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7779 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7780 implement, using the bus GetServiceOwner method.
7782 * test/glib/test-dbus-glib.c:
7783 use dbus_gproxy_new_for_service_owner so that we can receive the
7786 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
7788 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7789 dbus/dbus-message.c, dbus/dbus-protocol.h
7790 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7792 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7793 dbus/dbus-message.c, dbus/dbus-protocol.h
7794 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7796 * dbus/dbus-internals.c (_dbus_header_field_to_string):
7797 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7798 DBUS_HEADER_FIELD_SENDER resolves to "sender"
7800 * doc/dbus-specification.xml (Header Fields Table):
7801 s/SERVICE/DESTINATION
7802 s/SENDER_SERVICE/SENDER
7805 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
7807 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7810 2004-04-13 Michael Meeks <michael@ximian.com>
7812 * glib/dbus-gobject.c (handle_introspect): split out
7813 (introspect_properties): this.
7814 (handle_introspect): implement this.
7816 * test/glib/Makefile.am: use the absolute path so the bus
7817 daemon's chdir ("/") doesn't kill us dead.
7819 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7821 2004-04-12 Jon Trowbridge <trow@ximian.com>
7823 * bus/config-parser.c (struct BusConfigParser): Added
7824 included_files field.
7825 (seen_include): Added. Checks whether or not a file has already
7826 been included by any parent BusConfigParser.
7827 (bus_config_parser_new): Copy the parent's included_files.
7828 (include_file): Track which files have been included, and fail on
7829 circular inclusions.
7830 (process_test_valid_subdir): Changed printf to report if we are
7831 testing valid or invalid conf files.
7832 (all_are_equiv): Changed printf to be a bit clearer about
7833 what we are actually doing.
7834 (bus_config_parser_test): Test invalid configuration files.
7836 2004-04-09 Jon Trowbridge <trow@ximian.com>
7838 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7839 argument. If non-null, the newly-constructed BusConfigParser will
7840 be initialized with the parent's BusLimits instead of the default
7842 (include_file): When including a config file, pass in
7843 the current parser as the parent and then copy the BusLimits
7844 from the included BusConfigParser pack to the current parser.
7845 (process_test_valid_subdir): Renamed from process_test_subdir.
7846 (process_test_equiv_subdir): Added. Walks through a directory,
7847 descending into each subdirectory and loading the config files
7848 it finds there. If any subdirectory contains two config files
7849 that don't produce identical BusConfigParser structs, fail.
7850 For now, the BusConfigParser's BusPolicies are not compared.
7851 (bus_config_parser_test): Call both process_test_valid_subdir and
7852 process_test_equiv_subdir.
7854 * bus/config-loader-libxml.c (bus_config_load): Take a parent
7855 argument and pass it along to the call to bus_config_parser_new.
7856 Also made a few small changes to allow this code to compile.
7858 * bus/config-loader-expat.c (bus_config_load): Take a parent
7859 argument and pass it along to the call to bus_config_parser_new.
7861 * bus/bus.c (bus_context_new): Load the config file
7862 with a NULL parent argument.
7864 2004-03-29 Michael Meeks <michael@ximian.com>
7866 * glib/dbus-gobject.c (introspect_properties): split
7867 out, fix mangled 'while' flow control.
7868 (introspect_signals): implement.
7869 (handle_introspect): update.
7871 2004-03-29 Michael Meeks <michael@ximian.com>
7873 * glib/dbus-gobject.c (set_object_property): split out /
7874 re-work, use the property type, and not the message type(!)
7875 (get_object_property): ditto.
7877 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7878 (dbus_gvalue_marshal): make this code re-usable, needed
7879 for signals too, also on both proxy and server side.
7880 Re-write for more efficiency / readability.
7882 2004-03-29 Michael Meeks <michael@ximian.com>
7884 * dbus/dbus-message.c
7885 (dbus_message_new_error_printf): impl.
7887 * dbus/dbus-connection.c
7888 (dbus_connection_unregister_object_path): fix warning.
7890 * configure.in: fix no-mono-installed situation.
7892 2004-03-27 Havoc Pennington <hp@redhat.com>
7894 Patch from Timo Teräs:
7896 * tools/dbus-send.c (main): if --print-reply, assume type is
7897 method call; support boolean type args
7899 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7900 bunch of memleak and logic bugs
7902 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
7904 * mono/Arguments.cs:
7905 * mono/Introspector.cs:
7907 * mono/InterfaceProxy.cs:
7909 * mono/ProxyBuilder.cs:
7911 Added InterfaceProxy class to avoid building proxies for every
7915 * dbus-message.c (dbus_message_append_args_valist)
7916 (dbus_message_iter_get_object_path)
7917 (dbus_message_iter_get_object_path_array)
7918 (dbus_message_iter_append_object_path)
7919 (dbus_message_iter_append_object_path_array):
7920 Added object_path iter functions to handle OBJECT_PATH arguments
7922 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
7924 First checkin of mono bindings.
7927 Build stuff for the bindings
7928 * dbus-sharp.pc.in: Added for pkgconfig
7930 2004-03-21 Havoc Pennington <hp@redhat.com>
7932 * test/test-service.c (main): remove debug spew
7934 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
7936 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7939 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7940 (dbus_message_iter_init_array_iterator)
7941 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7942 indicate whether the iterator is empty
7944 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7947 2004-03-19 Havoc Pennington <hp@redhat.com>
7949 * NEWS: 0.21 updates
7951 * configure.in: 0.21
7953 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7955 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7956 you don't need pyrex to make dist
7958 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7961 2004-03-18 Richard Hult <richard@imendio.com>
7963 * dbus/dbus-message.c (dbus_message_get_auto_activation)
7964 (dbus_message_set_auto_activation): Add doxygen docs.
7966 2004-03-16 Richard Hult <richard@imendio.com>
7968 * bus/activation.c: (bus_activation_service_created),
7969 (bus_activation_send_pending_auto_activation_messages),
7970 (bus_activation_activate_service):
7972 * bus/dispatch.c: (bus_dispatch),
7973 (check_nonexistent_service_auto_activation),
7974 (check_service_auto_activated),
7975 (check_segfault_service_auto_activation),
7976 (check_existent_service_auto_activation), (bus_dispatch_test):
7977 * bus/driver.c: (bus_driver_handle_activate_service):
7978 * bus/services.c: (bus_registry_acquire_service):
7979 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7980 (dbus_message_get_auto_activation):
7981 * dbus/dbus-message.h:
7982 * dbus/dbus-protocol.h: Implement auto-activation.
7984 * doc/dbus-specification.xml: Add auto-activation to the spec.
7986 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
7988 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7989 fix a bug with CUSTOM types.
7991 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7992 a unit test for this bug (used to fail).
7994 2004-03-12 Mikael Hallendal <micke@imendio.com>
7997 (babysitter_watch_callback): notify all pending activations waiting for
7998 the same exec that the activation failed.
7999 (bus_activation_activate_service): shortcut the activation if we
8000 already waiting for the same executable to start up.
8002 2004-03-12 Mikael Hallendal <micke@imendio.com>
8005 - Added service file reloading.
8006 Each service files directory is kept in an hash table in
8007 BusActivation and each BusActivationEntry knows what .service-file it
8008 was read from. So when you try to activate a service the bus will
8009 check if it's been updated, removed or if new .service-files has
8011 - Test code at the bottom for the service file reloading.
8012 * bus/test-main.c: (main):
8014 - added service reloading test.
8015 * dbus/dbus-sysdeps.c:
8016 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
8018 2004-03-08 Michael Meeks <michael@ximian.com>
8020 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
8021 bail immediately if disconnected, to avoid busy loop.
8023 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
8024 cleanup cut/paste/inefficiency.
8026 2004-03-01 David Zeuthen <david@fubar.dk>
8028 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
8029 bug where args were used twice. This bug resulted in a segfault
8030 on a Debian/PPC system when starting the messagebus daemon. Include
8031 dbus-sysdeps.h for DBUS_VA_COPY
8033 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
8035 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
8036 appropriate va_copy implementation. From GLib
8038 2004-02-24 Joe Shaw <joe@ximian.com>
8040 * bus/services.c (bus_registry_acquire_service): We need to pass
8041 in the service name to dbus_set_error() to prevent a crash.
8043 2003-12-26 Anders Carlsson <andersca@gnome.org>
8045 * AUTHORS: Reveal my True identity.
8047 2003-12-17 Mikael Hallendal <micke@imendio.com>
8049 * dbus/dbus-message.c: (dbus_message_append_args_valist):
8050 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
8052 2003-12-13 Mikael Hallendal <micke@imendio.com>
8054 * doc/TODO: Added not about better error check of configuration files.
8056 2003-12-02 Richard Hult <richard@imendio.com>
8058 * Update AFL version to 2.0 throughout the source files to reflect
8059 the update that was done a while ago.
8061 2003-12-02 Richard Hult <richard@imendio.com>
8063 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
8064 wrote_dict_key to FALSE on the iter that the dict is appended to,
8065 just like when appending other types. Fixes a bug where a dict
8066 couldn't be put inside a dict.
8067 (dbus_message_iter_append_dict_key): Fix typo in warning message.
8068 (message_iter_test, _dbus_message_test): Add test case for dict
8071 2003-12-01 David Zeuthen <david@fubar.dk>
8073 * python/dbus.py: Add the actual message when calling the reciever
8074 of a signal such that parameters can be inspected. Add the method
8075 remove_signal_receiver
8077 2003-11-26 Mikael Hallendal <micke@imendio.com>
8081 * glib/*.[ch]: Made ref functions return the pointer
8083 2003-11-25 Zack Rusin <zack@kde.org>
8085 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8087 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
8090 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
8091 the Integrator and to better fit with the server,
8093 2003-11-24 Zack Rusin <zack@kde.org>
8095 * qt/connection.h, qt/connection.cpp: removing initDbus method since
8096 the integrator handles it now
8098 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8099 since QTimer wasn't really meant to be used the way DBusTimeout is
8101 2003-11-24 Zack Rusin <zack@kde.org>
8103 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
8104 Integrator class which integrates D-BUS with the Qt event loop,
8106 * qt/connection.h, qt/connection.cpp: Move all the code which
8107 was dealing with D-BUS integration to the Integrator class,
8108 and start using Integrator,
8110 2003-11-23 Zack Rusin <zack@kde.org>
8112 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
8115 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8116 switching namespaces to DBusQt, reworking the class,
8118 * Makefile.cvs: switching dependencies so that it matches KDE
8121 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
8124 2003-11-19 Havoc Pennington <hp@redhat.com>
8128 * configure.in: bump version to 0.20
8130 * configure.in (have_qt): add yet another place to look for qt
8131 (someone hand trolltech a .pc file...)
8133 2003-11-01 Havoc Pennington <hp@redhat.com>
8135 * doc/dbus-specification.xml: add state machine docs on the auth
8136 protocol; just a first draft, I'm sure it's wrong.
8138 2003-10-28 David Zeuthen <david@fubar.dk>
8140 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8141 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8143 2003-10-28 Havoc Pennington <hp@redhat.com>
8145 * dbus/dbus-message.c (get_next_field): delete unused function
8147 2003-10-28 Havoc Pennington <hp@redhat.com>
8149 * bus/expirelist.c (do_expiration_with_current_time): detect
8150 failure of the expire_func due to OOM
8152 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8154 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8155 NoReply error that's now created by the bus when the service exits
8157 2003-10-28 Havoc Pennington <hp@redhat.com>
8159 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8160 tests for set_path, set_interface, set_member, etc.
8162 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8164 * dbus/dbus-message.c (set_string_field): always just delete and
8165 re-append the field; accept NULL for deletion
8166 (re_align_fields_recurse): reimplement
8168 2003-10-26 Havoc Pennington <hp@redhat.com>
8170 * dbus/dbus-connection.c: fix docs to properly describe the
8171 disconnected message
8172 (_dbus_connection_notify_disconnected): remove this function;
8173 we can't synchronously add the disconnected message, we have to
8174 do it after we've queued any remaining real messages
8175 (_dbus_connection_get_dispatch_status_unlocked): queue the
8176 disconnect message only if the transport has finished queueing all
8177 its real messages and is disconnected.
8178 (dbus_connection_disconnect): update the dispatch status here
8180 2003-10-22 Havoc Pennington <hp@redhat.com>
8182 * bus/bus.c (bus_context_check_security_policy): fix up assertion
8184 * bus/connection.c (bus_transaction_send_from_driver): set the
8185 destination to the connection's base service
8187 2003-10-20 Havoc Pennington <hp@redhat.com>
8189 hmm, make check is currently not passing.
8191 * doc/dbus-specification.xml: add requirement that custom type
8192 names follow the same rules as interface names.
8194 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8195 duplication and allow 'c' to be 'custom'; dict is now 'm' for
8198 * doc/dbus-specification.xml: update type codes to match
8199 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8200 CUSTOM. Add type OBJECT_PATH to the spec.
8202 2003-10-17 Havoc Pennington <hp@redhat.com>
8204 * bus/driver.c (create_unique_client_name): use "." as separator
8205 in base service names instead of '-'
8207 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8208 byte at the end of the string
8210 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8211 optimization macros since string validation seems to be a slow
8214 * doc/dbus-specification.xml: restrict valid
8215 service/interface/member/error names. Add test suite code for the
8218 * dbus/dbus-string.c: limit service/interface/member/error names
8221 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8222 format arg to verbose spew
8224 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8225 memory, return instead of g_error
8227 * test/test-service.c (path_message_func): support emitting a
8230 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8231 activation bus type if DBUS_BUS_ACTIVATION was set; default to
8232 assuming the activation bus was the session bus so that services
8233 started manually will still register.
8234 (init_connections_unlocked): fix so that in OOM situation we get
8235 the same semantics when retrying the function
8237 * test/test-service.c (main): change to use path registration, to
8238 test those codepaths; register with DBUS_BUS_ACTIVATION rather
8239 than DBUS_BUS_SESSION
8241 2003-10-16 Havoc Pennington <hp@redhat.com>
8243 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8245 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8246 coverage of the tests
8247 (coverage-report.txt): don't move the .da and .bbg files around
8249 2003-10-16 Havoc Pennington <hp@redhat.com>
8251 * bus/bus.c (struct BusContext): remove struct field I didn't mean
8254 2003-10-16 Havoc Pennington <hp@redhat.com>
8256 * bus/connection.c (bus_pending_reply_expired): either cancel or
8258 (bus_connections_check_reply): use unlink, not remove_link, as we
8259 don't want to free the link; fixes double free mess
8261 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8262 where no reply was received
8264 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8267 * bus/signals.c (match_rule_matches): add special cases for the
8268 bus driver, so you can match on sender/destination for it.
8270 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8271 DBUS_PRINT_BACKTRACE is set
8273 * dbus/dbus-internals.c: add pid to assertion failure messages
8275 * dbus/dbus-connection.c: add message type code to the debug spew
8277 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8278 sender=foo not service=foo
8280 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8281 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
8282 DBUS_ACTIVATION_ADDRESS instead
8284 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
8285 DBUS_SYSTEM_BUS_ADDRESS if appropriate
8287 * bus/bus.c (bus_context_new): handle OOM copying bus type into
8290 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
8291 (dbus_message_iter_get_object_path_array): new function (half
8292 finished, disabled for the moment)
8294 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
8295 DBUS_MESSAGE_TYPE_ERROR
8297 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
8298 avoid redirecting stderr to /dev/null
8299 (babysit): close stdin if not doing the "exit_with_session" thing
8301 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
8302 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
8303 stdout/stdin, so things don't get confused
8305 * bus/system.conf.in: fix to allow replies, I modified .conf
8306 instead of .conf.in again.
8308 2003-10-14 David Zeuthen <david@fubar.dk>
8310 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
8311 argtype to arg_type when raising unknown arg type exception.
8312 Changed type list to reflect the changes in dbus-protocol.h so
8313 the bindings actually work.
8315 2003-10-14 Havoc Pennington <hp@redhat.com>
8317 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8318 to have a bug keeping it from outputting the .da files sometimes
8319 (string_get_string): don't append garbage nul bytes to the string.
8321 2003-10-15 Seth Nickell <seth@gnome.org>
8323 * python/Makefile.am:
8325 Include dbus_h_wrapper.h in the dist tarball.
8327 2003-10-14 Havoc Pennington <hp@redhat.com>
8329 * bus/bus.c (bus_context_check_security_policy): revamp this to
8330 work more sanely with new policy-based requested reply setup
8332 * bus/connection.c (bus_transaction_send_from_driver): set bus
8333 driver messages as no reply
8335 * bus/policy.c (bus_client_policy_check_can_receive): handle a
8336 requested_reply attribute on allow/deny rules
8338 * bus/system.conf: add <allow requested_reply="true"/>
8340 * bus/driver.c (bus_driver_handle_message): fix check for replies
8341 sent to the bus driver, which was backward. How did this ever work
8342 at all though? I think I'm missing something.
8344 * dbus/dbus-message.c (decode_header_data): require error and
8345 method return messages to have a reply serial field to be valid
8346 (_dbus_message_loader_queue_messages): break up this function;
8347 validate that reply serial and plain serial are nonzero;
8348 clean up the OOM/error handling.
8349 (get_uint_field): don't return -1 from this
8350 (dbus_message_create_header): fix signed/unsigned bug
8352 * bus/connection.c (bus_connections_expect_reply): save serial of
8353 the incoming message, not reply serial
8355 2003-10-14 Havoc Pennington <hp@redhat.com>
8357 * bus/connection.c: implement pending reply tracking using
8360 * bus/bus.c (bus_context_check_security_policy): verify that a
8361 reply is pending in order to allow a reply to be sent. Deny
8362 messages of unknown type.
8364 * bus/dbus-daemon-1.1.in: update to mention new resource limits
8366 * bus/bus.c (bus_context_get_max_replies_per_connection): new
8367 (bus_context_get_reply_timeout): new
8369 2003-10-13 Seth Nickell <seth@gnome.org>
8371 * python/Makefile.am:
8373 Pass "make distcheck": remove a couple files from DIST_FILES
8374 that weren't included in the final version.
8376 2003-10-12 Havoc Pennington <hp@pobox.com>
8378 Added test code that 1) starts an actual bus daemon and 2) uses
8379 DBusGProxy; fixed bugs that were revealed by the test. Lots
8380 more testing possible, but this is the basic framework.
8382 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8383 empty proxy lists from the proxy list hash
8385 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8386 couple of return_if_fail checks
8388 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8389 to allocate, so everything is cleared to NULL as it should be.
8391 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8392 source as data to dbus_connection_set_timeout_functions() as the
8393 timeout functions expected
8395 * test/glib/run-test.sh: add a little script to start up a message
8396 bus and run tests using it
8398 * tools/dbus-launch.1: updates
8400 * tools/dbus-launch.c (main): add --config-file option
8402 * tools/dbus-launch.c (main): remove confusing else if (runprog)
8403 that could never be reached.
8405 * dbus/dbus-message.c (dbus_message_new_method_return)
8406 (dbus_message_new_error, dbus_message_new_signal): set the
8407 no-reply-expected flag on all these. Redundant, but may
8408 as well be consistent.
8410 2003-10-11 Havoc Pennington <hp@pobox.com>
8412 * test/decode-gcov.c (function_solve_graph): make broken block
8413 graph a nonfatal error since it seems to be broken. Need to debug
8416 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8417 can't just check type > INVALID < LAST anymore
8419 * dbus/dbus-message.c (dbus_message_get_signature): new function
8420 (dbus_message_has_signature): new function
8421 (struct DBusMessage): add signature field (right now it isn't sent
8422 over the wire, just generated on the fly)
8423 (dbus_message_copy): copy the signature, and init strings to
8424 proper length to avoid some reallocs
8425 (dbus_message_iter_init_array_iterator): return void, since it
8427 (dbus_message_iter_init_dict_iterator): return void since it can't fail
8428 (_dbus_message_loader_queue_messages): add silly temporary hack to
8429 fill in message->signature on load
8431 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8432 characters, so they are relatively human-readable.
8434 2003-10-11 Havoc Pennington <hp@pobox.com>
8436 * dbus/dbus-message.c (_dbus_message_test): add more test
8437 coverage, but #if 0 for now since they uncover a bug
8438 not fixed yet; I think in re_align_field_recurse()
8439 (re_align_field_recurse): add FIXME about broken assertion
8441 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8443 * bus/connection.c: share a couple code bits with expirelist.c
8445 * bus/expirelist.h, bus/expirelist.c: implement a generic
8446 expire-items-after-N-seconds facility, was going to share between
8447 expiring connections and replies, decided not to use for expiring
8448 connections for now.
8450 * COPYING: include AFL 2.0 (still need to change all the file headers)
8452 2003-10-09 Havoc Pennington <hp@redhat.com>
8454 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8455 gcc 3.3. Not that we do anything about it yet.
8457 * bus/signals.c (bus_match_rule_parse): impose max length on the
8460 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8462 2003-10-09 Havoc Pennington <hp@redhat.com>
8464 Make matching rules theoretically work (add parser).
8466 * bus/bus.c (bus_context_check_security_policy): fix up to handle
8467 the case where destination is explicitly specified as bus driver
8468 and someone else is eavesdropping.
8470 * bus/policy.c (bus_client_policy_check_can_receive): fix up
8471 definition of eavesdropping and assertion
8473 * tools/dbus-send.c (main): use dbus_message_type_from_string
8475 * bus/signals.c (bus_match_rule_parse): implement
8477 * dbus/dbus-message.c (dbus_message_type_from_string): new
8479 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8481 2003-10-02 Havoc Pennington <hp@pobox.com>
8483 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8484 dbus_gproxy_oneway_call
8486 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
8487 (dbus_server_setup_with_g_main): fix to allow calling them more
8488 than once on the same args
8489 (dbus_bus_get_with_g_main): new function
8491 2003-10-02 Havoc Pennington <hp@redhat.com>
8493 * doc/dbus-tutorial.xml: write some stuff
8495 2003-09-29 Havoc Pennington <hp@pobox.com>
8497 * configure.in: split checks for Doxygen from XML docs, check for
8500 * doc/Makefile.am: XML-ify all the docs, and add a blank
8503 2003-09-29 Havoc Pennington <hp@pobox.com>
8505 * Merge dbus-object-names branch. To see the entire patch
8506 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8507 it's huuuuge though.
8508 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8510 2003-09-28 Havoc Pennington <hp@pobox.com>
8512 * HACKING: update to reflect new server
8514 2003-09-26 Seth Nickell <seth@gnome.org>
8517 * python/examples/example-signals.py:
8519 Start implementing some notions of signals. The API
8520 is really terrible, but they sort of work (with the
8521 exception of being able to filter by service, and to
8522 transmit signals *as* a particular service). Need to
8523 figure out how to make messages come from the service
8526 * python/dbus_bindings.pyx.in:
8528 Removed duplicate message_handler callbacks.
8530 2003-09-25 Havoc Pennington <hp@redhat.com>
8532 * bus/session.conf.in: fix my mess
8534 2003-09-25 Havoc Pennington <hp@pobox.com>
8536 * bus/session.conf.in: fix security policy, reported by Seth Nickell
8538 2003-09-25 Seth Nickell <seth@gnome.org>
8540 * python/examples/example-service.py:
8542 Johan notices complete wrong code in example-service, but
8543 completely wrong in a way that works exactly the same (!).
8544 Johan is confused, how could this possibly work? Example
8545 code fails to serve purpose of making things clear.
8548 2003-09-25 Mark McLoughlin <mark@skynet.ie>
8550 * doc/dbus-specification.sgml: don't require header fields
8551 to be 4-byte aligned and specify that fields should be
8552 distinguished from padding by the fact that zero is not
8555 * doc/TODO: remove re-alignment item and add item to doc
8556 the OBJECT_PATH type.
8558 * dbus/dbus-message.c:
8559 (HeaderField): rename the original member to value_offset
8560 and introduce a name_offset member to keep track of where
8561 the field actually begins.
8562 (adjust_field_offsets): remove.
8563 (append_int_field), (append_uint_field),
8564 (append_string_field): don't align the start of the header
8565 field to a 4-byte boundary.
8566 (get_next_field): impl finding the next marhsalled field
8567 after a given field.
8568 (re_align_field_recurse): impl re-aligning a number of
8569 already marshalled fields.
8570 (delete_field): impl deleting a field of any type and
8571 re-aligning any following fields.
8572 (delete_int_or_uint_field), (delete_string_field): remove.
8573 (set_int_field), (set_uint_field): no need to re-check
8574 that we have the correct type for the field.
8575 (set_string_field): ditto and impl re-aligning any
8577 (decode_header_data): update to take into account that
8578 the fields aren't 4-byte aligned any more and the new
8579 way to distinguish padding from header fields. Also,
8580 don't exit when there is too much header padding.
8581 (process_test_subdir): print the directory.
8582 (_dbus_message_test): add test to make sure a following
8583 field is re-aligned correctly after field deletion.
8585 * dbus/dbus-string.[ch]:
8586 (_dbus_string_insert_bytes): rename from insert_byte and
8587 allow the insert of multiple bytes.
8588 (_dbus_string_test): test inserting multiple bytes.
8590 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8591 warning note to docs about having to re-align any
8592 marshalled values following the string.
8594 * dbus/dbus-message-builder.c:
8595 (append_string_field), (_dbus_message_data_load):
8596 don't align the header field.
8598 * dbus/dbus-auth.c: (process_test_subdir): print the
8601 * test/break-loader.c: (randomly_add_one_byte): upd. for
8604 * test/data/invalid-messages/bad-header-field-alignment.message:
8607 * test/data/valid-messages/unknown-header-field.message: shove
8608 a dict in the unknown field.
8610 2003-09-25 Seth Nickell <seth@gnome.org>
8613 * python/dbus_bindings.pyx.in:
8615 Handle return values.
8617 * python/examples/example-client.py:
8618 * python/examples/example-service.py:
8620 Pass back return values from the service to the client.
8622 2003-09-24 Seth Nickell <seth@gnome.org>
8626 Connect Object methods (when you are sharing an object) up... pass
8627 in a list of methods to be shared. Sharing all the methods just
8628 worked out too weird. You can now create nice Services over the
8631 * python/dbus_bindings.pyx.in:
8633 Keep references to user_data tuples passed into C functions so
8634 Python doesn't garbage collect on us.
8636 Implement MethodReturn and Error subclasses of Message for creating
8637 DBusMessage's of those types.
8639 * python/examples/example-client.py:
8640 * python/examples/example-service.py:
8642 Simple example code showing both how create DBus services and objects,
8643 and how to use them.
8645 2003-09-23 Havoc Pennington <hp@pobox.com>
8647 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8649 2003-09-23 Havoc Pennington <hp@redhat.com>
8651 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8652 (dbus_gproxy_disconnect_signal): implement
8653 (dbus_gproxy_manager_remove_signal_match): implement
8654 (dbus_gproxy_manager_add_signal_match): implement
8655 (dbus_gproxy_oneway_call): implement
8657 2003-09-23 Havoc Pennington <hp@pobox.com>
8659 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8660 subclass. This means dropping the transparent thread safety of the
8661 proxy; you now need a separate proxy per-thread, or your own
8662 locking on the proxy. Probably right anyway.
8663 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8665 2003-09-22 Havoc Pennington <hp@redhat.com>
8667 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8669 2003-09-21 Seth Nickell <seth@gnome.org>
8671 First checkin of the Python bindings.
8673 * python/.cvsignore:
8674 * python/Makefile.am:
8675 * python/dbus_bindings.pyx.in:
8676 * python/dbus_h_wrapper.h:
8678 Pieces for Pyrex to operate on, building a dbus_bindings.so
8679 python module for low-level access to the DBus APIs.
8683 High-level Python module for accessing DBus objects.
8688 Build stuff for the python bindings.
8692 Extra macro needed for finding the Python C header files.
8694 2003-09-21 Havoc Pennington <hp@pobox.com>
8696 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8697 implementing the proxy manager, didn't get very far.
8699 * dbus/dbus-bus.c (dbus_bus_add_match): new
8700 (dbus_bus_remove_match): new
8702 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8703 path_name argument; adjust the other not-yet-implemented
8704 gproxy constructors to be what I think they should be.
8706 2003-09-21 Havoc Pennington <hp@pobox.com>
8708 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8709 by default for message bus connections.
8711 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8712 exit_on_disconnect flag is set and we process the disconnected
8714 (dbus_connection_set_exit_on_disconnect): new function
8716 2003-09-21 Havoc Pennington <hp@pobox.com>
8718 Get matching rules mostly working in the bus; only actually
8719 parsing the rule text remains. However, the client side of
8720 "signal connections" hasn't been started, this patch is only the
8723 * dbus/dispatch.c: fix for the matching rules changes
8725 * bus/driver.c (bus_driver_handle_remove_match)
8726 (bus_driver_handle_add_match): send an ack reply from these
8729 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8730 arguments, reported by Seth Nickell
8732 * bus/config-parser.c (append_rule_from_element): support
8733 eavesdrop=true|false attribute on policies so match rules
8734 can be prevented from snooping on the system bus.
8736 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8737 and "destination" in attribute names; fix some docs bugs;
8738 add eavesdrop=true|false attribute
8740 * bus/driver.c (bus_driver_handle_add_match)
8741 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8744 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8745 rid of broadcast service concept, signals are just always broadcast
8747 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8748 mostly implement matching rules stuff (currently only exposed as signal
8751 2003-09-21 Mark McLoughlin <mark@skynet.ie>
8753 * doc/dbus-specification.sgml: Change the header field name
8754 to be an enum and update the rest of the spec to reference
8755 the fields using the conventinal name.
8757 * dbus/dbus-protocol.h: update to reflect the spec.
8759 * doc/TODO: add item to remove the 4 byte alignment requirement.
8761 * dbus/dbus-message.c: Remove the code to generalise the
8762 header/body length and serial number header fields as named
8763 header fields so we can reference field names using the
8765 (append_int_field), (append_uint_field), (append_string_field):
8766 Append the field name as a byte rather than four chars.
8767 (delete_int_or_uint_field), (delete_string_field): reflect the
8768 fact that the field name and typecode now occupy 4 bytes instead
8770 (decode_string_field), (decode_header_data): update to reflect
8771 protocol changes and move the field specific encoding from
8772 decode_string_field() back into decode_header_data().
8774 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8775 Add utility to aid debugging.
8777 * dbus/dbus-message-builder.c:
8778 (append_string_field), (_dbus_message_data_load): Update to
8779 reflect protocol changes; Change the FIELD_NAME directive
8780 to HEADER_FIELD and allow it to take the field's conventional
8781 name rather than the actual value.
8783 * test/data/*/*.message: Update to use HEADER_FIELD instead
8784 of FIELD_NAME; Always align the header on an 8 byte boundary
8785 *before* updating the header length.
8787 2003-09-15 Havoc Pennington <hp@pobox.com>
8789 * dbus/dbus-pending-call.c: add the get/set object data
8790 boilerplate as for DBusConnection, etc. Use generic object data
8791 for the notify callback.
8793 * glib/dbus-gparser.c (parse_node): parse child nodes
8795 * tools/dbus-viewer.c: more hacking on the dbus-viewer
8797 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8798 contain functions shared between the convenience lib and the
8801 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8802 -export-symbols-regex to the GLib library
8804 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8805 fix the locking in here, and add a default handler for
8806 Introspect() that just returns sub-nodes.
8808 2003-09-14 Havoc Pennington <hp@pobox.com>
8810 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8811 rather than gfoo consistent
8813 * glib/dbus-gproxy.h: delete for now, move contents to
8814 dbus-glib.h, because the include files don't work right since we
8815 aren't in the dbus/ subdir.
8817 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8818 (dbus_gproxy_end_call): finish
8819 (dbus_gproxy_begin_call): finish
8821 * glib/dbus-gmain.c (dbus_set_g_error): new
8823 * glib/dbus-gobject.c (handle_introspect): include information
8824 about child nodes in the introspection
8826 * dbus/dbus-connection.c (dbus_connection_list_registered): new
8827 function to help in implementation of introspection
8829 * dbus/dbus-object-tree.c
8830 (_dbus_object_tree_list_registered_and_unlock): new function
8832 2003-09-12 Havoc Pennington <hp@pobox.com>
8834 * glib/dbus-gidl.h: add common base class for all the foo_info
8837 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8840 * test/Makefile.am: try test srcdir -ef . in addition to test
8841 srcdir = ., one of them should work (yeah lame)
8843 * glib/Makefile.am: build the "idl" parser stuff as a convenience
8846 * glib/dbus-gparser.h: make description_load routines return
8847 NodeInfo* not Parser*
8849 * Makefile.am (SUBDIRS): build test dir after all library dirs
8851 * configure.in: add GTK+ detection
8853 2003-09-07 Havoc Pennington <hp@pobox.com>
8855 * Make Doxygen contented.
8857 2003-09-07 Havoc Pennington <hp@pobox.com>
8859 * doc/dbus-specification.sgml: more updates
8861 2003-09-06 Havoc Pennington <hp@pobox.com>
8863 * doc/dbus-specification.sgml: partial updates
8865 * bus/dbus-daemon-1.1.in: fix the config file docs for the
8866 zillionth time; hopefully I edited the right file this time.
8868 * bus/config-parser.c (append_rule_from_element): support
8869 send_type, send_path, receive_type, receive_path
8871 * bus/policy.c: add message type and path to the list of things
8872 that can be "firewalled"
8874 2003-09-06 Havoc Pennington <hp@pobox.com>
8876 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8877 (dbus_connection_register_object_path): make this not handle
8878 messages to paths below the given path
8880 2003-09-03 Havoc Pennington <hp@pobox.com>
8882 * test/glib/Makefile.am: add this with random glib-linked test
8885 * glib/Makefile.am: remove the random test programs from here,
8886 leave only the unit tests
8888 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
8889 uscore/javacaps conversion, and fix
8890 (get_object_property, set_object_property): change to .NET
8891 convention for mapping props to methods, set_FooBar/get_FooBar,
8892 since one language has such a convention we may as well copy it.
8893 Plus real methods in either getFooBar or get_foo_bar style won't
8894 collide with this convention.
8896 2003-09-01 Havoc Pennington <hp@pobox.com>
8898 * glib/dbus-gparser.c: implement
8900 * glib/dbus-gobject.c: start implementing skeletons support
8902 * configure.in: when disabling checks/assert, also define
8903 G_DISABLE_ASSERT and G_DISABLE_CHECKS
8905 2003-09-01 Havoc Pennington <hp@pobox.com>
8907 * glib/Makefile.am: rearrange a bunch of files and get "make
8908 check" framework set up
8910 2003-08-31 Havoc Pennington <hp@pobox.com>
8912 * fix build with --disable-tests
8914 2003-08-30 Havoc Pennington <hp@pobox.com>
8916 * dbus/dbus-connection.c: purge DBusMessageHandler
8918 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
8919 use callbacks everywhere
8921 2003-08-30 Havoc Pennington <hp@pobox.com>
8923 * test/data/valid-config-files/system.d/test.conf: change to
8924 root for the user so warnings don't get printed
8926 * dbus/dbus-message.c: add dbus_message_get_path,
8927 dbus_message_set_path
8929 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8930 dispatching to a path
8932 * dbus/dbus-string.c (_dbus_string_validate_path): add
8934 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8935 (_dbus_marshal_object_path): implement
8937 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
8938 to contain the path to the target object
8939 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8940 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8942 2003-08-30 Havoc Pennington <hp@pobox.com>
8944 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8946 2003-08-29 Havoc Pennington <hp@pobox.com>
8948 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8950 (struct DBusObjectSubtree): shrink this
8951 a lot, since we may have a lot of them
8952 (_dbus_object_tree_free_all_unlocked): implement
8953 (_dbus_object_tree_dispatch_and_unlock): implement
8955 2003-08-29 Havoc Pennington <hp@pobox.com>
8957 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8959 2003-08-28 Havoc Pennington <hp@pobox.com>
8963 * dbus/dbus-connection.c: port to no ObjectID, create a
8964 DBusObjectTree, rename ObjectTree to ObjectPath in public API
8966 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
8967 everything except UnregisterFunction and MessageFunction
8969 * dbus/dbus-marshal.c: port away from DBusObjectID,
8970 add DBUS_TYPE_OBJECT_PATH
8972 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
8973 dbus/dbus-objectid.[hc]: remove these, we are moving to
8974 path-based object IDs
8976 2003-08-25 Havoc Pennington <hp@pobox.com>
8978 Just noticed that dbus_message_test is hosed, I wonder when I
8979 broke that. I thought make check was passing earlier...
8981 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
8982 container tree, will replace most of dbus-object-registry
8984 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8987 2003-08-19 Havoc Pennington <hp@pobox.com>
8989 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8990 (dbus_message_is_error): fix this function
8992 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8995 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8996 reflect clarified man page
8997 (bus_client_policy_check_can_send): ditto
8999 * bus/session.conf.in: fixup
9001 * bus/system.conf.in: fixup
9003 2003-08-18 Havoc Pennington <hp@redhat.com>
9005 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
9007 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9008 dumb bug created earlier (wrong order of args to
9009 decode_header_data())
9011 * tools/dbus-send.c: port
9013 * tools/dbus-print-message.c (print_message): port
9015 * test/data/*messages: port all messages over
9017 * dbus/dbus-message-builder.c: support including
9020 * bus/driver.c: port over
9022 * bus/dispatch.c: port over to new stuff
9024 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9025 rename disconnect signal to "Disconnected"
9027 2003-08-17 Havoc Pennington <hp@pobox.com>
9029 This doesn't compile yet, but syncing up so I can hack on it from
9030 work. What are branches for if not broken code? ;-)
9032 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
9033 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
9034 DBUS_HEADER_FIELD_ERROR_NAME
9036 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
9037 for the interface+member pairs
9038 (string_hash): change to use g_str_hash algorithm
9039 (find_direct_function, find_string_function): refactor these to
9042 * dbus/dbus-message.c: port all of this over to support
9043 interface/member fields instead of name field
9045 * dbus/dbus-object-registry.c: port over
9047 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
9048 from _dbus_string_validate_name
9050 * bus/dbus-daemon-1.1: change file format for the
9051 <deny>/<allow> stuff to match new message naming scheme
9053 * bus/policy.c: port over
9055 * bus/config-parser.c: parse new format
9057 2003-08-16 Havoc Pennington <hp@pobox.com>
9059 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
9062 * glib/dbus-gproxy.c: some hacking
9064 2003-08-15 Havoc Pennington <hp@redhat.com>
9066 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
9068 * dbus/dbus-connection.c
9069 (dbus_connection_send_with_reply_and_block): factor out internals;
9070 change to convert any error replies to DBusError instead of
9071 returning them as a message
9073 2003-08-15 Havoc Pennington <hp@pobox.com>
9075 * dbus/dbus-connection.c,
9076 dbus/dbus-pending-call.c: Finish the pending call stuff
9078 2003-08-14 Havoc Pennington <hp@redhat.com>
9080 * dbus/dbus-pending-call.c: start on new object that will replace
9081 DBusMessageHandler and ReplyHandlerData for tracking outstanding
9084 * dbus/dbus-gproxy.c: start on proxy object used to communicate
9085 with remote interfaces
9087 * dbus/dbus-gidl.c: do the boring boilerplate in here
9089 2003-08-12 Havoc Pennington <hp@pobox.com>
9091 * bus/dispatch.c (bus_dispatch): make this return proper
9092 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9094 * dbus/dbus-errors.c (dbus_set_error): use
9095 _dbus_string_append_printf_valist
9097 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9098 (_dbus_string_append_printf): new
9100 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9103 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9104 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9105 message is unhandled.
9107 2003-08-11 Havoc Pennington <hp@pobox.com>
9109 * bus/test.c (client_disconnect_handler): change to return
9110 HANDLED (would have been REMOVE_MESSAGE)
9112 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9113 HANDLED/NOT_YET_HANDLED instead of
9114 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
9117 2003-08-10 Havoc Pennington <hp@pobox.com>
9119 * tools/dbus-send.c (main): add --type argument, for now
9120 supporting only method_call and signal types.
9122 * tools/dbus-print-message.c: print message type
9124 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9125 init connection->objects
9127 * doc/dbus-specification.sgml: fix sgml
9129 * bus/*.c: port over to object-instance API changes
9131 * test/test-service.c: ditto
9133 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
9134 name, we will have to fix up the rest of the code to also handle
9136 (dbus_message_new): generic message-creation call
9137 (set_string_field): allow appending name field
9139 2003-08-06 Havoc Pennington <hp@pobox.com>
9141 * dbus/dbus-object-registry.c: implement signal connection
9144 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9146 * dbus/dbus-internals.c (_dbus_memdup): new function
9148 2003-08-02 Havoc Pennington <hp@pobox.com>
9150 * dbus/dbus-message.c (dbus_message_get_no_reply)
9151 (dbus_message_set_no_reply): add these and remove
9152 set_is_error/get_is_error
9154 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
9155 remove the ERROR flag, since there's now an ERROR type
9157 2003-08-01 Havoc Pennington <hp@pobox.com>
9159 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9162 * dbus/dbus-message.c (dbus_message_get_type): new function
9164 * doc/dbus-specification.sgml: add "type" byte to messages
9166 2003-08-01 Havoc Pennington <hp@pobox.com>
9168 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9169 a message type enum to distinguish kinds of message
9170 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
9171 that need not be replied to
9173 2003-08-01 Havoc Pennington <hp@pobox.com>
9175 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9176 (unpack_8_octets): fix no-64-bit-int bug
9178 * dbus/dbus-object-registry.c (validate_id): validate the
9179 connection ID bits, not just the instance ID.
9181 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9182 the connection-global 33 bits of the object ID
9184 * dbus/dbus-object-registry.c (info_from_entry): fill in
9185 object ID in the new way
9187 * dbus/dbus-objectid.h: rather than high/low bits, specifically
9188 define server/client/instance bits.
9190 2003-07-30 Havoc Pennington <hp@pobox.com>
9192 * dbus/dbus-connection.c (dbus_connection_register_object): fix
9195 2003-07-13 Havoc Pennington <hp@pobox.com>
9197 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9198 fields to DBusObjectVTable and DBusObjectInfo
9200 2003-07-12 Havoc Pennington <hp@pobox.com>
9202 * dbus/dbus-object-registry.c: implement unit test,
9203 fix bugs discovered in process
9205 * dbus/dbus-connection.c: remove handler_table and
9206 register_handler(), add DBusObjectRegistry usage
9208 * dbus/dbus-objectid.c (dbus_object_id_is_null)
9209 (dbus_object_id_set_null): new functions
9211 2003-07-08 Havoc Pennington <hp@pobox.com>
9213 * dbus/dbus-object.c: implement some of this
9215 * dbus/dbus-object-registry.c
9216 (_dbus_object_registry_add_and_unlock): fill in the object_id out
9218 (_dbus_object_registry_new): handle OOM
9220 2003-07-08 Havoc Pennington <hp@pobox.com>
9222 * dbus/dbus-object.h: sketch out an API for registering objects
9223 with a connection, that allows us to use as little as 24 bytes
9224 per object and lets application code represent an object in
9225 any conceivable way.
9227 * dbus/dbus-object-registry.c: implement the hard bits of the
9228 DBusConnection aspect of object API. Not yet wired up.
9230 2003-07-06 Havoc Pennington <hp@pobox.com>
9232 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9233 (_dbus_marshal_object_id): new
9234 (_dbus_demarshal_object_id): new
9235 (_dbus_marshal_get_arg_end_pos): support object ID type, and
9236 consolidate identical switch cases. Don't conditionalize handling
9237 of DBUS_TYPE_UINT64, need to handle the type always.
9238 (_dbus_marshal_validate_arg): consolidate identical cases, and
9239 handle DBUS_TYPE_OBJECT_ID
9241 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9243 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9245 2003-09-28 Havoc Pennington <hp@pobox.com>
9249 2003-09-28 Havoc Pennington <hp@pobox.com>
9251 * doc/Makefile.am (dbus-specification.html): testing a funky hack
9252 to work with Debian db2html
9254 2003-09-28 Havoc Pennington <hp@pobox.com>
9256 * configure.in: 0.13
9258 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9259 stylesheet-images for benefit of Debian
9261 Change back to using filesystem-linked sockets for the system
9262 bus, so only root can create the default system bus address.
9264 * bus/system.conf.in: change to use
9265 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9267 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9270 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9271 here, and AC_DEFINE DBUS_SYSTEM_PATH
9273 2003-08-09 Anders Carlsson <andersca@codefactory.se>
9276 * doc/busconfig.dtd:
9279 2003-08-09 Anders Carlsson <andersca@codefactory.se>
9281 * doc/dbus-specification.sgml:
9282 Add activation reply values.
9284 2003-08-05 Havoc Pennington <hp@redhat.com>
9286 * configure.in: 0.12
9288 2003-08-05 Anders Carlsson <andersca@codefactory.se>
9290 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
9291 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
9292 (add_watch), (remove_watch), (create_source):
9293 Refcount fds, fixes some reentrancy issues.
9295 2003-07-30 Havoc Pennington <hp@redhat.com>
9297 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
9298 bus address to be abstract if we have abstract sockets
9302 2003-07-28 Havoc Pennington <hp@redhat.com>
9304 * bus/messagebus.in: fix to avoid processname/servicename
9305 confusion, from Michael Kearey
9306 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
9308 2003-07-23 Havoc Pennington <hp@pobox.com>
9310 * dbus/dbus-message.c (dbus_message_iter_get_named):
9311 fix from Andy Hanton to remove broken "+1"
9313 2003-07-16 Havoc Pennington <hp@pobox.com>
9315 * tools/dbus-launch.c (babysit): close stdout/stderr in the
9316 babysitter process, as suggested by Thomas Leonard, so
9317 an "eval `dbus-launch --exit-with-session`" will actually
9320 2003-07-16 Havoc Pennington <hp@pobox.com>
9322 * configure.in: print out EXPANDED_* variables in the summary at
9323 the end; clean up the code that computes EXPANDED_ variables and
9324 get the ones using exec_prefix right. Should make things work
9325 when you build without --prefix
9327 2003-06-29 Havoc Pennington <hp@pobox.com>
9329 * mono/Test.cs (class Test): fire up a main loop and run it
9331 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9332 done once, the app has to do it
9334 2003-06-26 Havoc Pennington <hp@pobox.com>
9336 * mono/Connection.cs: set up connection with the glib main loop
9338 2003-07-01 Havoc Pennington <hp@redhat.com>
9340 * doc/dbus-specification.sgml: clarify the format of a type code,
9341 change suggested by Jim Blandy
9343 2003-06-29 Miloslav Trmac <mitr@volny.cz>
9346 * tools/Makefile.am: Don't assume srcdir == builddir.
9348 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9349 the allocated block.
9350 (_dbus_memory_test): New function.
9351 * dbus/dbus-test.h: Add _dbus_memory_test ().
9352 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9354 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9356 (dbus_message_new): Remove obsolete @todo.
9358 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9359 (_dbus_marshal_set_uint64): Fix comment.
9361 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9362 hardcode FIELD_REPLY_SERIAL.
9364 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9365 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9367 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9368 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9370 2003-06-24 Havoc Pennington <hp@pobox.com>
9372 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9374 2003-06-23 Anders Carlsson <andersca@codefactory.se>
9380 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9381 * gcj/org/.cvsignore:
9382 * gcj/org/Makefile.am:
9383 * gcj/org/freedesktop/.cvsignore:
9384 * gcj/org/freedesktop/Makefile.am:
9385 * gcj/org/freedesktop/dbus/.cvsignore:
9386 * gcj/org/freedesktop/dbus/Makefile.am:
9387 * gcj/org/freedesktop/dbus/Message.java: (Message),
9389 * gcj/org/freedesktop/dbus/natMessage.cc:
9390 Fix the build system.
9392 2003-06-22 Havoc Pennington <hp@pobox.com>
9394 * mono/Connection.cs: add more bindings
9396 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9399 2003-06-22 Havoc Pennington <hp@pobox.com>
9401 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9402 Start wrapping more stuff.
9404 2003-06-22 Havoc Pennington <hp@pobox.com>
9406 * mono/Message.cs: implement Message.Wrap() that ensures we only
9407 have a single C# wrapper per DBusMessage, assuming it works which
9408 it probably doesn't.
9410 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9411 (dbus_message_free_data_slot): new
9412 (dbus_message_set_data): new
9413 (dbus_message_get_data): new
9415 2003-06-22 Havoc Pennington <hp@pobox.com>
9417 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9418 (_dbus_data_slot_allocator_alloc): rework these to keep a
9419 reference count on each slot and automatically manage a global
9420 slot ID variable passed in by address
9422 * bus/bus.c: convert to new dataslot API
9424 * dbus/dbus-bus.c: convert to new dataslot API
9426 * dbus/dbus-connection.c: convert to new dataslot API
9428 * dbus/dbus-server.c: convert to new dataslot API
9430 * glib/dbus-gmain.c: ditto
9434 * bus/connection.c: ditto
9436 2003-06-22 Anders Carlsson <andersca@codefactory.se>
9438 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9439 after the gcj checks so that the correct configuration tags
9440 will be added to libtool.
9442 * dbus-glib-1.pc.in: No need to specify any includes since
9443 dbus-1.pc.in has those.
9445 2003-06-22 Havoc Pennington <hp@pobox.com>
9447 * mono/*, gcj/*, configure.in, Makefile.am:
9448 Check in makefiles and subdirs for mono and gcj bindings.
9449 Neither binding actually exists, just trying to get through
9450 all the build and other boring bits.
9452 2003-06-21 Philip Blundell <philb@gnu.org>
9454 * tools/dbus-monitor.1: Updated.
9456 * tools/dbus-send.1: Likewise.
9458 2003-06-20 Anders Carlsson <andersca@codefactory.se>
9460 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9461 for hangup and error after checking read so we won't discard
9462 pending data if both hangup and read are set.
9464 2003-06-19 Philip Blundell <philb@gnu.org>
9466 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9468 * tools/dbus-send.c: Accept both --system and --session.
9470 * tools/dbus-monitor.c: Same here.
9472 2003-06-19 Anders Carlsson <andersca@codefactory.se>
9474 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9475 from C++ (Patch by Miloslav Trmac).
9477 2003-06-15 Joe Shaw <joe@assbarn.com>
9479 * configure.in: Check for socklen_t.
9481 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9483 * test/test-segfault.c: Add #include <sys/time.h>
9485 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9486 dbus-launch needs it.
9488 2003-06-09 Havoc Pennington <hp@redhat.com>
9490 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9491 SUN_LEN, it breaks abstract socket usage
9493 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9496 2003-06-04 Havoc Pennington <hp@pobox.com>
9498 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9499 using unix:abstract=/foo, and when listening in a tmpdir
9500 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9502 * dbus/dbus-transport.c (_dbus_transport_open): support
9505 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9506 support abstract sockets
9508 * dbus/dbus-transport-unix.c
9509 (_dbus_transport_new_for_domain_socket): support abstract sockets
9511 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9512 toggle as an argument, implement abstract namespace support
9513 (_dbus_listen_unix_socket): ditto
9515 * configure.in: add --enable-abstract-sockets and implement
9516 a configure check for autodetection of the right value.
9518 2003-06-01 Havoc Pennington <hp@pobox.com>
9520 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9521 in /tmp (though on Linux this will end up being useless,
9522 when we add abstract namespace support)
9524 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9527 2003-05-28 Colin Walters <walters@verbum.org>
9529 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9531 2003-05-18 Anders Carlsson <andersca@codefactory.se>
9533 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9535 2003-05-17 Colin Walters <walters@gnu.org>
9537 * tools/dbus-send.c: Don't exit with an error code if --help was
9538 passed. Default to using the session bus instead of the system
9541 * tools/dbus-launch.c: Ditto.
9543 * tools/dbus-monitor.c: Ditto.
9545 * tools/dbus-send.1: Update with new arguments.
9547 * tools/dbus-launch.c: Emit code to export variables. New
9548 arguments -s and -c to specify shell syntax, and a bit of code to
9549 autodetect syntax. Also, allow specifying a program to run.
9551 * tools/dbus-launch.1: Update with new arguments.
9553 * tools/dbus-send.1: Ditto.
9555 * tools/dbus-monitor.1: Ditto.
9557 2003-05-17 Havoc Pennington <hp@pobox.com>
9559 * bus/config-parser.c (merge_included): merge in policies from
9560 child configuration file.
9562 * bus/policy.c (bus_policy_merge): function to merge two policies
9565 2003-05-16 Havoc Pennington <hp@redhat.com>
9567 * dbus/dbus-connection.c: disable verbose lock spew
9569 * tools/dbus-send.c: add --print-reply command line option
9571 * tools/dbus-print-message.h (print_message): new util function
9572 shared by dbus-send and dbus-monitor
9574 * tools/dbus-monitor.c (handler_func): exit on disconnect
9576 * dbus/dbus-transport-unix.c (do_reading): if the transport is
9577 disconnected, don't try to use the read_watch
9579 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9580 so we can find this bug more easily
9582 2003-05-16 Havoc Pennington <hp@redhat.com>
9584 * bus/policy.c (free_rule_list_func): avoid a crash when passed
9585 NULL as DBusHashTable is annoyingly likely to do.
9587 2003-05-16 Colin Walters <walters@verbum.org>
9589 * tools/dbus-monitor.c: Add --session argument and usage()
9592 * tools/dbus-monitor.1: Update with new --session arg.
9594 * bus/Makefile.am (install-data-hook): Create
9595 $(libdir)/dbus-1.0/services so that the session bus is happy.
9597 2003-05-15 Havoc Pennington <hp@redhat.com>
9599 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9600 on non-x86. ifdef's are evil.
9602 2003-05-15 Havoc Pennington <hp@redhat.com>
9604 * configure.in: 0.11
9608 * bus/Makefile.am (initddir): apparently we are supposed to put
9609 init scripts in /etc/rc.d/init.d not /etc/init.d
9611 * bus/Makefile.am: remove the "you must --enable-tests to make
9612 check" as it broke distcheck
9614 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9616 2003-05-13 James Willcox <jwillcox@gnome.org>
9619 * bus/activation.c: (bus_activation_service_created),
9620 (bus_activation_activate_service):
9621 * bus/driver.c: (bus_driver_send_service_deleted),
9622 (bus_driver_send_service_created), (bus_driver_send_service_lost),
9623 (bus_driver_send_service_acquired),
9624 (bus_driver_send_welcome_message),
9625 (bus_driver_handle_list_services):
9626 * bus/session.conf.in:
9627 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9628 (dbus_bus_service_exists), (dbus_bus_activate_service):
9631 Add some convenience API which lets you activate a service, and did a
9632 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9633 and dbus_message_get_args()
9635 2003-05-11 Havoc Pennington <hp@pobox.com>
9637 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9638 calling _dbus_marshal_validate_arg() for every byte in a byte
9641 * dbus/dbus-message-handler.c: use atomic reference counting to
9642 reduce number of locks slightly; the global lock in here sucks
9644 * dbus/dbus-connection.c
9645 (_dbus_connection_update_dispatch_status_and_unlock): variant of
9646 update_dispatch_status that can be called with lock held; then use
9647 in a couple places to reduce locking/unlocking
9648 (dbus_connection_send): hold the lock over the whole function
9649 instead of acquiring it twice.
9651 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9653 * bus/connection.c (bus_connections_setup_connection): fix access
9654 to already-freed memory.
9656 * dbus/dbus-connection.c: keep a little cache of linked list
9657 nodes, to avoid using the global linked list alloc lock in the
9658 normal send-message case. Instead we just use the connection lock
9659 that we already have to take.
9661 * dbus/dbus-list.c (_dbus_list_find_last): new function
9663 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9664 change to use a struct for the atomic type; fix docs,
9665 they return value before increment, not after increment.
9667 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9668 (_dbus_string_append_8_aligned): new functions to try to
9669 microoptimize this operation.
9670 (reallocate_for_length): break this out of set_length(), to
9671 improve profile info, and also so we can consider inlining the
9674 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9675 strings with some preallocation, cuts down on our calls to realloc
9676 a fair bit. Though if we can get the "move entire string to empty
9677 string" optimization below to kick in here, it would be better.
9679 * dbus/dbus-string.c (_dbus_string_move): just call
9680 _dbus_string_move_len
9681 (_dbus_string_move_len): add a special case for moving
9682 an entire string into an empty string; we can just
9683 swap the string data instead of doing any reallocs.
9684 (_dbus_string_init_preallocated): new function
9686 2003-05-11 Havoc Pennington <hp@pobox.com>
9688 Write a "test-profile" that does echo client-server with threads;
9689 profile reveals lock contention, memcpy/realloc of buffers, and
9690 UTF-8 validation as hot spots. 20% of lock contention eliminated
9691 with dbus_atomic_inc/dec implementation on x86. Much remaining
9692 contention is global mempool locks for GList and DBusList.
9694 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9697 * dbus/dbus-connection.c (struct DBusConnection): use
9698 dbus_atomic_t for the reference count
9700 * dbus/dbus-message.c (struct DBusMessage): declare
9701 dbus_atomic_t values as volatile
9703 * configure.in: code to detect ability to use atomic integer
9704 operations in assembly, from GLib patch
9706 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9707 time, tired of it being wrong in threads and forked processes
9709 * glib/test-profile.c: a little program to bounce messages back
9710 and forth between threads and eat CPU
9712 * dbus/dbus-connection.c: add debug spew macros for debugging
9713 thread locks; include config.h at top; fix deadlock in
9714 dbus_connection_flush()
9716 2003-05-08 Havoc Pennington <hp@pobox.com>
9718 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9719 data from getting written, and there wasn't a good reason to
9722 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9723 dbus_verbose lines in test coverage
9724 (main): add list of functions sorted by # of untested blocks
9725 to the coverage report
9727 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9729 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9731 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9732 extend test coverage
9734 * test/data/auth/cancel.auth-script: test canceling an
9737 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9738 aren't used. in CVS history if we end up needing them.
9740 2003-05-04 Havoc Pennington <hp@pobox.com>
9742 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9745 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9746 function, which assumed length was in # of strings, not bytes
9748 * dbus/dbus-message.c (_dbus_message_test): add tests for some
9751 * dbus/dbus-connection.c
9752 (_dbus_connection_queue_received_message): disable function for
9753 now, we are only using it in test mode
9755 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9756 remove a mistaken FIXME
9758 2003-05-04 Havoc Pennington <hp@pobox.com>
9760 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9761 unlock mutex on successful return, patch from Anders Gustafsson
9763 2003-05-04 Havoc Pennington <hp@pobox.com>
9765 * dbus-glib-1.pc.in (Requires): fix dependencies, from
9768 2003-05-04 Havoc Pennington <hp@pobox.com>
9770 * tools/dbus-launch.c: implement
9772 * bus/main.c (main), bus/bus.c (bus_context_new):
9773 implement --print-pid and --fork
9775 2003-05-03 Havoc Pennington <hp@redhat.com>
9777 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9778 the address had no value, and add to test suite. Fix and
9779 regression test from Miloslav Trmac
9781 2003-05-03 Havoc Pennington <hp@pobox.com>
9783 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9784 watch is invalid when handled
9786 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9787 dbus-launch utility to launch the bus from a shell script. Didn't
9788 actually implement dbus-launch yet, it's just a placeholder still.
9790 2003-05-03 Havoc Pennington <hp@pobox.com>
9792 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9793 daemon; also documents daemon config file, so replaces
9794 doc/config-file.txt. Corrected some stuff from config-file.txt in
9795 the process of moving it.
9797 2003-05-03 Havoc Pennington <hp@pobox.com>
9799 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9802 2003-05-03 Colin Walters <walters@verbum.org>
9804 * dbus/dbus-sysdeps.c (fill_user_info): Test against
9805 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9807 * Makefile.am: Update to use new .pc versioning scheme.
9809 2003-05-02 Havoc Pennington <hp@redhat.com>
9811 * bus/system.conf.in: allow send/receive to/from message bus
9814 2003-04-30 Havoc Pennington <hp@redhat.com>
9816 * configure.in: print a note when building with unit tests and
9819 2003-04-30 Havoc Pennington <hp@redhat.com>
9821 * Makefile.am: add a check-local that complains if you didn't
9822 configure with --enable-tests
9824 2003-04-29 Havoc Pennington <hp@redhat.com>
9826 * glib/dbus-gmain.c: docs cleanups
9828 * dbus/dbus-types.h: add docs on int64 types
9830 * dbus/dbus-memory.c: fix docs to avoid putting private API in
9831 public API docs section
9833 2003-04-29 Havoc Pennington <hp@redhat.com>
9835 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9836 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9837 parallel install API version, not with the D-BUS package version.
9839 * HACKING: move some of README over here
9841 * README: updates, and document API/ABI policy
9843 * configure.in: reindentation
9845 2003-04-29 Havoc Pennington <hp@redhat.com>
9847 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9848 to use this library" to be sure people have the right
9851 2003-04-28 Havoc Pennington <hp@redhat.com>
9853 * configure.in: add --enable-docs which by default is auto yes if
9854 doxygen and db2html found, no otherwise; but can be forced on/off
9856 * doc/Makefile.am: conditionalize whether to build docs on
9859 2003-04-28 Havoc Pennington <hp@redhat.com>
9861 * configure.in: 0.10
9865 * bus/system.conf.in: add <includedir>system.d</includedir>
9867 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9868 username was provided but not uid
9870 * bus/config-parser.c (struct BusConfigParser): keep track of
9871 whether the parser is toplevel or was included; change some
9872 of the error handling if it's included.
9874 2003-04-27 Havoc Pennington <hp@pobox.com>
9878 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9879 report correct status if we finish processing authentication
9880 inside this function.
9882 * bus/activation.c (try_send_activation_failure): use
9883 bus_transaction_send_error_reply
9885 * bus/connection.c (bus_connection_get_groups): return an error
9886 explaining the problem
9888 * bus/bus.c (bus_context_check_security_policy): implement
9889 restriction here that inactive connections can only send the
9890 hello message. Also, allow bus driver to send anything to
9893 * bus/connection.c (bus_connection_complete): create the
9894 BusClientPolicy here instead of on-demand.
9895 (bus_connection_get_policy): don't return an error
9897 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9898 sender field in message being replied to
9900 * bus/bus.c (bus_context_check_security_policy): fix silly typo
9901 causing it to return FALSE always
9903 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9904 we checked sender rather than destination
9906 2003-04-25 Havoc Pennington <hp@redhat.com>
9908 test suite is slightly hosed at the moment, will fix soon
9910 * bus/connection.c (bus_connections_expire_incomplete): fix to
9911 properly disable the timeout when required
9912 (bus_connection_set_name): check whether we can remove incomplete
9913 connections timeout after we complete each connection.
9915 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9916 probably still broken.
9918 * bus/services.c (bus_registry_acquire_service): implement max
9919 number of services owned, and honor allow/deny rules on which
9920 services a connection can own.
9922 * bus/connection.c (bus_connection_get_policy): report errors here
9924 * bus/activation.c: implement limit on number of pending
9927 2003-04-25 Havoc Pennington <hp@redhat.com>
9929 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9930 where we used >= 0 instead of != DBUS_UID_UNSET.
9932 2003-04-25 Havoc Pennington <hp@redhat.com>
9934 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9935 were toggled without add/remove, fix from Anders Gustafsson
9937 2003-04-24 Havoc Pennington <hp@redhat.com>
9939 * test/data/valid-config-files/basic.conf: add <limit> tags to
9942 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9943 <limit> tag in configuration file.
9945 2003-04-24 Havoc Pennington <hp@redhat.com>
9947 * bus/dispatch.c: somehow missed some name_is
9949 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9950 (_dbus_timeout_set_interval): new
9952 * bus/connection.c (bus_connections_setup_connection): record time
9953 when each connection is first set up, and expire them after the
9954 auth timeout passes.
9956 2003-04-24 Havoc Pennington <hp@redhat.com>
9958 * dbus/dbus-message.c (dbus_message_name_is): rename
9959 (dbus_message_service_is): rename
9960 (dbus_message_sender_is): rename
9961 (dbus_message_get_service): rename
9963 2003-04-24 Havoc Pennington <hp@redhat.com>
9965 * configure.in: add --enable-checks
9967 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9969 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9970 to use thread locks.
9971 (_dbus_connection_handler_destroyed_locked): move some private
9972 functions into proper docs group
9974 * dbus/dbus-internals.h: add _dbus_return_if_fail,
9975 _dbus_return_val_if_fail
9977 Throughout: use dbus_return_if_fail
9979 2003-04-23 James Willcox <jwillcox@gnome.org>
9982 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9983 (dbus_connection_setup_with_g_main),
9984 (dbus_server_setup_with_g_main):
9985 * glib/test-dbus-glib.c: (main):
9986 * glib/test-thread-client.c: (main):
9987 * glib/test-thread-server.c: (new_connection_callback), (main):
9988 * tools/dbus-monitor.c: (main):
9990 Added a GMainContext argument to dbus_connection_setup_with_g_main()
9991 and dbus_server_setup_with_g_main().
9993 2003-04-20 Havoc Pennington <hp@pobox.com>
9995 * doc/dbus-specification.sgml: document the restrictions on
9996 message and service names
9998 2003-04-22 Havoc Pennington <hp@redhat.com>
10000 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
10001 support, and do some code cleanups to share more code and
10002 speed up array marshal/demarshal.
10004 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
10006 * configure.in: generate dbus-arch-deps.h
10008 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
10011 2003-04-22 Havoc Pennington <hp@redhat.com>
10013 * test/data/valid-messages/opposite-endian.message: fix test
10014 to use proper type for rply field
10016 * test/data/invalid-messages: add tests for below validation
10018 * dbus/dbus-message.c (decode_header_data): validate field types,
10019 and validate that named fields are valid names
10020 (decode_name_field): consider messages in the
10021 org.freedesktop.Local. namespace to be invalid.
10023 * dbus/dbus-string.c (_dbus_string_validate_name): new
10025 2003-04-19 Havoc Pennington <hp@pobox.com>
10027 * bus/driver.c (bus_driver_handle_hello): check limits and
10028 return an error if they are exceeded.
10030 * bus/connection.c: maintain separate lists of active and inactive
10031 connections, and a count of each. Maintain count of completed
10032 connections per user. Implement code to check connection limits.
10034 * dbus/dbus-list.c (_dbus_list_unlink): export
10036 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
10037 number of bytes in the message queue for a connection
10039 2003-04-18 Havoc Pennington <hp@pobox.com>
10041 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
10043 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
10046 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
10047 on realloc be sure to update the pointer in the keyring
10049 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
10050 offset to avoid writing to unallocated memory
10052 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
10053 try the next mechanism, so we properly handle OOM
10055 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
10057 (_dbus_keyring_new): fix OOM bug
10058 (_dbus_keyring_new_homedir): always set error; impose a maximum
10059 number of keys we'll load from the file, mostly to speed up the
10060 test suite and make its OOM checks more useful, but also for
10063 * dbus/dbus-auth.c (process_error_server): reject authentication
10064 if we get an error from the client
10065 (process_cancel): on cancel, send REJECTED, per the spec
10066 (process_error_client): send CANCEL if we get an error from the
10069 2003-04-18 Havoc Pennington <hp@pobox.com>
10071 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10074 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
10077 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10078 about DBUS_TEST_HOMEDIR once
10080 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10083 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10084 config file so we test the right thing
10086 Throughout: assorted docs improvements
10088 2003-04-18 Havoc Pennington <hp@pobox.com>
10090 * glib/dbus-gmain.c: adapt to watch changes
10092 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10094 * dbus/dbus-server.h: remove dbus_server_handle_watch
10096 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10098 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10099 like DBusTimeout, so we don't need dbus_connection_handle_watch
10102 2003-04-17 Havoc Pennington <hp@redhat.com>
10104 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10105 database usage so it all goes via the DBusUserDatabase cache.
10107 2003-04-17 Havoc Pennington <hp@redhat.com>
10109 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10110 there was an OOM watch we skipped, we always return TRUE so we
10111 iterate again to have a look at it again. Fixes test suite hang.
10112 Code rearrangement also lets us lose some memset and only iterate
10113 over callbacks once.
10115 * bus/driver.c (bus_driver_handle_message): sense of test for
10118 2003-04-16 Havoc Pennington <hp@pobox.com>
10120 * doc/dbus-specification.sgml: make spec say serials are unsigned
10122 * dbus/dbus-message.h: change message serials to unsigned
10124 * dbus/dbus-connection.c: adapt to message serials being unsigned
10126 2003-04-15 Havoc Pennington <hp@pobox.com>
10128 * bus/bus.c: create and keep around a shared DBusUserDatabase
10131 * bus/connection.c (bus_connection_get_groups): don't cache
10132 groups for user in the connection object, since user database
10133 object now does that.
10135 2003-04-16 Havoc Pennington <hp@redhat.com>
10137 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
10138 list of size counters
10139 (_dbus_message_loader_putback_message_link): put back a popped link
10141 * dbus/dbus-connection.c
10142 (dbus_connection_set_max_live_messages_size): rename
10144 (dbus_connection_get_outgoing_size): get size of outgoing
10146 (_dbus_connection_set_connection_counter): remove this cruft
10148 2003-04-14 Havoc Pennington <hp@redhat.com>
10150 * dbus/dbus-userdb.c: user database abstraction, mostly to get
10151 caching, but at some point we might want to be able to use a
10152 different database.
10154 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10155 SHA1 conf file to test the sha1 auth mechanism, since the regular
10156 test always uses EXTERNAL when available.
10159 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10160 add conf file that requires use of sha1 auth
10162 2003-04-13 Havoc Pennington <hp@pobox.com>
10164 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10165 from Philip Blundell to send messages and monitor them.
10167 2003-04-13 Havoc Pennington <hp@pobox.com>
10169 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10172 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10175 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10176 fix to only recover unused bytes if we're already authenticated
10177 (_dbus_transport_get_is_authenticated): fix to still mark us
10178 authenticated if there are unused bytes.
10180 * bus/dispatch.c: implement security policy checking
10182 * bus/connection.c (bus_transaction_send_from_driver): new
10184 * bus/bus.c (bus_context_check_security_policy): new
10186 * bus/dispatch.c (send_service_nonexistent_error): delete this,
10187 now we just set the DBusError and it gets converted to an error
10190 * bus/connection.c (allow_user_function): enable code using actual
10191 data from the config file
10193 * bus/policy.c (list_allows_user): handle wildcard rules for
10194 user/group connection perms
10196 2003-04-13 Havoc Pennington <hp@pobox.com>
10198 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10200 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10202 * bus/policy.c (bus_policy_append_mandatory_rule)
10203 (bus_policy_append_default_rule, bus_policy_append_user_rule)
10204 (bus_policy_append_group_rule): new functions
10206 2003-04-12 Havoc Pennington <hp@pobox.com>
10208 * bus/config-parser.c (bus_config_parser_new): fix a memleak
10210 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10211 the pid/gid/uid, just for paranoia.
10213 * test/break-loader.c (randomly_do_n_things): find a byte
10214 containing a type code, and randomly change it to a different
10217 2003-04-12 Havoc Pennington <hp@pobox.com>
10219 * bus/policy.h: change BusPolicy to be the thing from the config
10220 file, and rename old BusPolicy to BusClientPolicy
10222 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10223 match change in how policy works
10225 * dbus/dbus-internals.h: mark assert_not_reached as
10226 __attribute((noreturn))__
10228 2003-04-11 Havoc Pennington <hp@redhat.com>
10230 * doc/dbus-specification.sgml: fix a spot with the wrong name for
10231 the broadcast service. Use boolean return for ServiceExists.
10233 2003-04-11 Havoc Pennington <hp@redhat.com>
10235 * configure.in: add another directory to look for qt in.
10237 2003-04-11 Havoc Pennington <hp@redhat.com>
10239 * AUTHORS: add Colin Walters
10241 2003-04-11 Havoc Pennington <hp@redhat.com>
10245 * configure.in: 0.9
10247 2003-04-11 Havoc Pennington <hp@redhat.com>
10249 * bus/messagebus.in: remove pid file when stopping the
10250 message bus, since the bus won't have privileges to remove it
10253 2003-04-11 Havoc Pennington <hp@redhat.com>
10255 * bus/bus.c (bus_context_new): move credentials change after
10258 2003-04-11 Havoc Pennington <hp@pobox.com>
10260 * test/decode-gcov.c: add "below average functions" to the
10261 coverage report, and change how some of the code works.
10263 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10264 not in the coverage stats.
10266 * test/test-service.c (main): use _dbus_verbose not fprintf in a
10267 couple places so running the test suite doesn't result in megaspam.
10269 2003-04-11 Havoc Pennington <hp@pobox.com>
10271 * bus/dispatch.c (check_existent_service_activation): accept a no
10272 memory error in a place we didn't before
10274 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10275 in case the first one failed," since the test suite is less
10278 2003-04-10 Havoc Pennington <hp@pobox.com>
10280 * bus/dispatch.c (check_segfault_service_activation): add test
10281 for launching an executable that just crashes.
10283 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10284 don't leave a million cores. We'll see how portable this is.
10286 2003-04-10 Havoc Pennington <hp@pobox.com>
10288 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
10289 the possible parent failures before we fork, so that we don't
10290 fail to create a babysitter after creating the child.
10292 * bus/activation.c (bus_activation_activate_service): kill child
10293 if we don't successfully complete the activation.
10295 2003-04-10 Havoc Pennington <hp@redhat.com>
10297 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
10298 the connection if it's disconnected
10300 * bus/activation.c (bus_activation_service_created): use new
10301 transaction features to roll back removal of pending activation if
10302 we don't successfully create the service after all. Don't remove
10303 pending activation if the function fails.
10305 * dbus/dbus-list.c (_dbus_list_insert_before_link)
10306 (_dbus_list_insert_after_link): new code to facilitate
10309 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
10310 new functionality, so we can preallocate the ability to insert
10313 * bus/connection.c (bus_transaction_add_cancel_hook): new function
10314 allowing us to put custom hooks in a transaction to be used for
10315 cancelling said transaction
10317 * doc/dbus-specification.sgml: add some discussion of secondary
10318 service owners, and disallow zero-length service names
10320 * bus/services.c (bus_registry_acquire_service): new function,
10321 splits out part of bus_driver_handle_acquire_service() and fixes
10322 a bug where we didn't remove the service doing the acquiring
10323 from the secondary queue if we failed to remove the current owner
10324 from the front of the queue.
10326 2003-04-10 Alexander Larsson <alexl@redhat.com>
10328 * doc/dbus-specification.sgml:
10329 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10331 2003-04-10 Alexander Larsson <alexl@redhat.com>
10336 Added files to cvsignore
10338 * dbus/dbus-message.h:
10339 * dbus/dbus-message.c: (dbus_message_iter_get_named):
10340 Make get_named() take two out argument and return a boolean.
10341 (dbus_message_iter_get_args_valist):
10342 Update usage of get_named().
10343 (dbus_message_iter_append_byte):
10345 (dbus_message_iter_append_named)
10347 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10350 2003-04-10 Alexander Larsson <alexl@redhat.com>
10352 * dbus/dbus-marshal.[ch]:
10353 Add array_type_pos argument to _dbus_marshal_validate_arg.
10354 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10356 * dbus/dbus-message.[ch]:
10357 Multi-dimensional arrays have full type specification in the
10358 outermost array. Iter code re-arranged to handle this.
10359 Added some more iter tests.
10361 * doc/dbus-specification.sgml:
10364 Update new array encoding description.
10365 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10367 * test/data/invalid-messages/array-with-mixed-types.message:
10368 * test/data/valid-messages/array-of-array-of-uint32.message:
10369 Change to the new array format.
10371 * test/data/invalid-messages/too-short-dict.message:
10374 * test/data/valid-messages/recursive-types.message:
10375 Fix up and extend test.
10377 2003-04-10 Havoc Pennington <hp@pobox.com>
10379 * bus/dispatch.c: lots of fixes
10381 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10382 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10383 that was crack, broke the test service.
10385 * dbus/dbus-transport.c (_dbus_transport_open): fix error
10386 handling to avoid piling up errors if we get a failure on the
10389 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10390 pid in assertion failures.
10392 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10393 to some fixed size of file descriptor array. Don't return TRUE
10394 anytime a timeout exists, that led to lots of busy loop silliness
10397 2003-04-09 Havoc Pennington <hp@redhat.com>
10399 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10400 I'd checked this in earlier but hadn't.
10402 2003-04-09 Havoc Pennington <hp@redhat.com>
10404 * bus/dispatch.c (bus_dispatch_test): get a bit further through
10405 the activation test (man this is getting old!)
10407 2003-04-09 Havoc Pennington <hp@redhat.com>
10409 * test/test-utils.c: use dispatch status function to fix this up
10411 * bus/connection.c (connection_watch_callback): don't dispatch
10413 (connection_timeout_callback): don't dispatch from here
10414 (bus_connections_setup_connection): set the dispatch status function
10415 (bus_connection_disconnected): unset it
10417 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10418 used to add a connection to be dispatched
10419 (_dbus_loop_iterate): do the dispatching at the end of each
10422 * dbus/dbus-connection.c
10423 (dbus_connection_set_dispatch_status_function): new function
10424 allowing us to fix up main loop usage
10425 (_dbus_connection_last_unref): free all the various function
10427 (dbus_connection_dispatch): call the DispatchStatusFunction
10428 whenever this function returns
10429 (dbus_connection_handle_watch): call DispatchStatusFunction
10430 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10431 (reply_handler_timeout): call DispatchStatusFunction
10432 (dbus_connection_flush): call DispatchStatusFunction
10434 2003-04-09 Havoc Pennington <hp@redhat.com>
10436 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10439 * bus/dispatch.c (check_service_activated): fix bug in test
10441 * dbus/dbus-mainloop.c (check_timeout): fix this up
10443 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10444 verbose output so we can sort out output from different processes,
10445 e.g. in the activation case.
10447 2003-04-08 Colin Walters <walters@gnu.org>
10449 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10451 (bus_context_new): Set it.
10452 (bus_context_unref): Use it to delete the pid file.
10454 2003-04-08 Havoc Pennington <hp@redhat.com>
10456 * test/data/invalid-messages/array-with-mixed-types.message:
10457 regression test that fails for the moment
10459 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10460 tests for convenience
10462 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10463 array of nil, it broke things.
10465 * test/data/invalid-messages/array-of-nil.message: regression test
10467 * test/data/valid-messages/array-of-array-of-uint32.message:
10468 happened to write this so added it to suite
10470 2003-04-08 Havoc Pennington <hp@redhat.com>
10472 * bus/driver.c (bus_driver_handle_acquire_service): init
10473 retval/reply before checking name
10475 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10476 recursion depth argument
10478 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10479 in the public struct for future extension
10481 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10484 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10487 * doc/dbus-specification.sgml: fix typo
10489 2003-04-08 Alexander Larsson <alexl@redhat.com>
10491 Implemented recursive types, named types and new-style iters
10494 * glib/test-thread-client.c: (thread_func):
10495 * glib/test-thread-server.c: (handle_test_message):
10496 * test/test-service.c: (handle_echo):
10499 * dbus/Makefile.am:
10500 * dbus/dbus-dict.c:
10501 * dbus/dbus-dict.h:
10505 * dbus/dbus-internals.c: (_dbus_type_to_string):
10506 Update for new types.
10508 * dbus/dbus-marshal.[ch]:
10509 Implement recursive types and the new marshalling format.
10510 Remove hardcoded dict marshalling.
10511 Marshal named types.
10513 * dbus/dbus-message-builder.c:
10515 Remove references to old types
10517 * dbus/dbus-message.[ch]:
10518 New non-refcounted iter API that supports recursive iters.
10519 Use iters for appending, including support for recursive
10521 Add byte and named type support.
10522 Update everything to new marshalling formats.
10523 Add tests for new API.
10525 * dbus/dbus-protocol.h:
10526 Remove old array types.
10527 Add types: BYTE, ARRAY, DICT, NAMED
10529 * dbus/dbus-string.c:
10530 * dbus/dbus-sysdeps.c:
10531 Make parse_double locale safe.
10533 * dbus/dbus-test-main.c:
10536 * dbus/dbus-test.c:
10539 * doc/dbus-specification.sgml:
10542 * test/data/incomplete-messages/missing-body.message:
10543 * test/data/invalid-messages/bad-boolean.message:
10544 * test/data/invalid-messages/bad-boolean-array.message:
10545 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10546 * test/data/invalid-messages/boolean-has-no-value.message-raw:
10547 * test/data/invalid-messages/too-short-dict.message:
10548 * test/data/valid-messages/dict-simple.message:
10549 * test/data/valid-messages/dict.message:
10550 * test/data/valid-messages/emptiness.message:
10551 * test/data/valid-messages/lots-of-arguments.message:
10552 * test/data/valid-messages/no-padding.message:
10553 * test/data/valid-messages/recursive-types.message:
10554 Add missing NAME fields
10555 Fix up dicts & arrays
10557 * test/data/invalid-messages/dict-with-nil-value.message:
10558 Removed, this is not invalid anymore.
10560 * test/data/valid-messages/recursive-types.message:
10561 Add new test for deeply recursive types.
10563 2003-04-07 Havoc Pennington <hp@pobox.com>
10565 * bus/driver.c (bus_driver_handle_acquire_service): return an
10566 error if you try to acquire a service that starts with ':'
10568 2003-04-07 Havoc Pennington <hp@redhat.com>
10570 * doc/dbus-specification.sgml: require that base service names
10571 start with ':' and that the base service is created/deleted
10572 as first and last things a connection does on the bus
10574 * bus/dispatch.c (check_existent_service_activation): lots more
10575 work on the activation test; it doesn't fully pass yet...
10577 * test/test-service.c (main): fix so we don't memleak the
10578 connection to the message bus
10579 (filter_func): accept a message asking us to exit
10581 2003-04-06 Havoc Pennington <hp@pobox.com>
10583 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10586 * configure.in: fixes to Qt detection from Colin Walters
10588 * doc/Makefile.am: Only remove generated docbook dirs if they
10589 exist, from Colin Walters
10591 * dbus/dbus-bus.c: change how we set well-known connections to
10592 NULL, so that it works if a single connection is stored in
10593 two well-known array slots.
10595 * test/Makefile.am: remove a lot of stuff that isn't immediately
10596 useful, it's in CVS history if we want it.
10598 * test/test-service.c: use dbus-mainloop instead of that
10601 2003-04-06 Havoc Pennington <hp@pobox.com>
10603 * dbus/Makefile.am: split lists of sources into stuff that goes in
10604 the library, util functions that go in the lib and are also used
10605 elsewhere, and util functions that are used in tests/daemon but
10606 don't go in the lib.
10608 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10609 here so it can be used in test binaries also
10611 2003-04-06 Havoc Pennington <hp@pobox.com>
10613 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10614 here in the parent process, so we can return an error if it
10615 fails. Also, move some of the code into the child so the parent
10616 is less hosed if we fail midway through.
10618 * bus/bus.c (bus_context_new): move pidfile detection further up
10619 in the function, before we start overwriting sockets and such.
10621 * bus/messagebus.in: adjust this a bit, not sure if it will work.
10623 * configure.in: add --with-system-pid-file and --with-system-socket
10625 2003-04-06 Colin Walters <walters@verbum.org>
10627 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10629 * bus/system.conf.in: Declare a pidfile.
10631 * bus/bus.c (bus_context_new): Test for an existing pid file, and
10632 create one (if appropriate).
10634 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10635 (struct BusConfigParser) [pidfile]: New.
10636 (element_type_to_name, merge_included, start_busconfig_child)
10637 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10638 (bus_config_parser_unref): Free it.
10639 (bus_config_parser_get_pidfile): New function.
10641 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10643 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10645 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10647 * dbus/dbus-sysdeps.h: Prototype it.
10649 2003-04-06 Havoc Pennington <hp@pobox.com>
10651 * bus/bus.c (bus_context_new): print the address in here, rather
10652 than in main(), because we need to do it before forking the daemon
10654 * bus/dispatch.c (send_service_nonexistent_error): set the sender
10655 on the service nonexistent error
10657 * bus/driver.c (bus_driver_handle_acquire_service): set the
10658 sender on the AcquireService reply
10660 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10661 server also listen on a UNIX socket so services can connect to it.
10663 2003-04-06 Havoc Pennington <hp@pobox.com>
10665 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10666 so it detects deadlocks and also we actually init threads when
10669 2003-04-06 Havoc Pennington <hp@pobox.com>
10671 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10672 save the domain socket name, and unlink it when we disconnect the
10673 server. Means that at least when we exit normally, we won't leave
10674 a bunch of junk in /tmp
10676 * dbus/dbus-transport-unix.c
10677 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10678 memory management). (I was making a real change here but then
10681 2003-04-06 Havoc Pennington <hp@pobox.com>
10683 * bus/bus.c (bus_context_new): fix wrong handling of
10684 server_data_slot_unref() in the error case.
10686 * dbus/dbus-internals.h (_dbus_assert): change so it passes
10687 "(condition) != 0" to _dbus_real_assert so that
10688 "_dbus_assert (pointer)" doesn't cause a warning
10690 * bus/main.c (main): accept --print-address option to print out
10691 the message bus address
10693 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10695 * dbus/dbus-transport.c (_dbus_transport_open): special error for
10696 "tmpdir" option to unix: address on client side
10698 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10701 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10702 we can use to create sockets in the test suite.
10704 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10705 cleanly. To be used for testing.
10707 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10709 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10711 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10712 handle trying to call this when there's no servers active
10714 2003-04-05 Havoc Pennington <hp@pobox.com>
10718 * configure.in: 0.8
10720 2003-04-05 Havoc Pennington <hp@pobox.com>
10722 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10723 crash on startup. Need to get "try starting the daemon"
10724 in the test suite I guess. ;-)
10726 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10727 tracked the number of open connections; it's better done in
10728 application-specific code as you want it to span all servers etc.
10730 2003-04-05 Havoc Pennington <hp@pobox.com>
10732 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10733 patch from Colin Walters
10735 2003-04-05 Havoc Pennington <hp@pobox.com>
10737 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10738 reality; in fact multiple mechanisms are allowed.
10740 * dbus/dbus-internals.c (_dbus_real_assert)
10741 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10742 _dbus_assert_not_reached() into functions, so that they don't show
10743 up in basic block counts for test coverage, and don't use up as
10744 much disk space. Does mean slower execution speed though, so
10745 assumes --disable-asserts is the normal production case.
10747 2003-04-05 Havoc Pennington <hp@pobox.com>
10749 * test/Makefile.am (dist-hook): also dist *.in files
10753 * configure.in: 0.7
10755 2003-04-05 Havoc Pennington <hp@pobox.com>
10757 * dbus/dbus-string.c: docs warning
10759 * dbus/dbus-spawn.c: missing docs
10761 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10763 2003-04-05 Havoc Pennington <hp@pobox.com>
10765 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10768 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10769 to -1 once we've reaped the babysitter
10770 (_dbus_babysitter_handle_watch): do as much work as we can, not
10773 * bus/activation.c: add code using DBusBabysitter so that we
10774 handle it when a service fails to start up properly.
10775 (bus_activation_service_created): don't remove the activation
10776 entries as we go, just let them get removed when we free the pending
10777 activation. Unref reply messages after sending them.
10779 2003-04-05 Havoc Pennington <hp@pobox.com>
10781 * test/decode-gcov.c (main): print per-directory stats in the report
10783 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10785 2003-04-05 Havoc Pennington <hp@pobox.com>
10787 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10789 * test/decode-gcov.c: hack up a little program to suck data
10790 out of gcov files. Yes this is sort of silly.
10792 * configure.in: define something in config.h and do an
10793 AM_CONDITIONAL when gcov is enabled
10795 2003-04-04 Havoc Pennington <hp@redhat.com>
10797 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10798 return a "babysitter" object that is used to monitor the status of
10799 the spawned process and reap it when required.
10801 * test/test-segfault.c, test/test-exit.c,
10802 test/test-sleep-forever.c: binaries that do various lame things,
10803 used in the test suite.
10805 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10807 2003-04-03 Havoc Pennington <hp@pobox.com>
10809 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10810 in preparation for modifying it, dbus-sysdeps is getting
10811 a bit unmanageable.
10813 2003-04-03 Havoc Pennington <hp@redhat.com>
10815 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10818 * bus/*.[hc]: adapt to mainloop change
10820 2003-04-03 Havoc Pennington <hp@redhat.com>
10822 * bus/activation.c (load_directory): fix up memleaks
10823 (bus_activation_entry_free): free the entry
10825 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10826 we get one from the message bus; fix memleaks.
10828 * dbus/dbus-message.c (dbus_set_error_from_message): new function
10830 2003-04-03 Havoc Pennington <hp@pobox.com>
10832 * bus/config-parser.c (bus_config_parser_unref): free
10833 list of mechanisms, bug discovered by test suite enhancements
10834 (putting system.conf and session.conf into suite)
10836 * test/Makefile.am, test/test-service.c: add placeholder for a
10837 test service that we'll activate as part of test suite. Doesn't
10840 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10841 setting NULL value, and use system malloc not dbus_malloc()
10842 when we have unavoidable memleakage.
10844 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10845 didn't work, and support DBUS_BUS_ACTIVATION.
10847 * bus/activation.c (child_setup): pass our well-known bus type to
10850 * bus/config-parser.c: support <type> to specify well-known type
10852 * doc/dbus-specification.sgml: document the env variables to
10853 locate well-known buses and find service activator
10855 2003-04-02 Havoc Pennington <hp@redhat.com>
10857 * test/Makefile.am (all-local): add a rule to copy tests to
10858 builddir, so we can have generated tests. Use this to remove the
10859 silly hack for testing system.conf and session.conf. Will use this
10860 shortly to generate .service files pointing to test binaries.
10862 2003-04-02 Havoc Pennington <hp@redhat.com>
10864 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10865 current alloc and needed new length, not max of the doubled
10866 allocation and needed new length. Also, when building tests,
10867 don't do the double-allocation stuff, just realloc every time.
10869 2003-04-02 Havoc Pennington <hp@redhat.com>
10871 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10873 (_dbus_string_get_dirname): new
10874 (_dbus_sysdeps_test): new
10875 (_dbus_directory_open): include dirnames in error messages
10877 * bus/config-parser.c: interpret <include> and <includedir> and
10878 <servicedir> relative to config file location if the given
10879 filename is not absolute.
10881 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10883 2003-04-02 Havoc Pennington <hp@redhat.com>
10885 * bus/connection.c (bus_transaction_send_error_reply): set sender
10886 service for the error, and unref the reply on success
10888 * bus/activation.c: convert to use BusTransaction so OOM can be
10890 (bus_activation_service_created): set sender of the message
10892 2003-04-01 Havoc Pennington <hp@redhat.com>
10894 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10895 <includedir> (at least mostly)
10897 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10898 first, then the user ID
10900 2003-04-01 Havoc Pennington <hp@pobox.com>
10902 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10905 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10907 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10909 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10910 socket 0777, and unlink any existing socket.
10912 * bus/bus.c (bus_context_new): change our UID/GID and fork if
10913 the configuration file so specifies; set up auth mechanism
10916 * bus/config-parser.c (bus_config_parser_content): add support
10917 for <fork> option and fill in code for <auth>
10919 * bus/system.conf.in: add <fork/> to default configuration,
10920 and limit auth mechanisms to EXTERNAL
10922 * doc/config-file.txt (Elements): add <fork>
10924 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10925 (_dbus_change_identity): new function
10927 2003-03-31 Havoc Pennington <hp@redhat.com>
10929 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10930 (_dbus_listen_unix_socket): fix off-by-one error in null
10931 termination spotted by Nalin
10933 2003-03-31 Havoc Pennington <hp@redhat.com>
10935 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10936 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10937 having a real home directory available.
10939 2003-03-31 Havoc Pennington <hp@redhat.com>
10941 * bus/Makefile.am (install-data-hook): create /var/run/dbus
10943 * bus/messagebus.in: add init script for Red Hat /etc/init.d
10945 * configure.in: add support for specifying a style of init script
10948 2003-03-31 Havoc Pennington <hp@redhat.com>
10950 Fix some annoying DBusString API and fix all affected code.
10952 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10953 max_length argument
10954 (_dbus_string_get_data): change to return string instead of using
10956 (_dbus_string_get_const_data): ditto
10957 (_dbus_string_get_data_len): ditto
10958 (_dbus_string_get_const_data_len): ditto
10960 2003-03-31 Havoc Pennington <hp@redhat.com>
10962 * bus/main.c (main): fix up the command line arguments to be nicer
10964 2003-03-31 Havoc Pennington <hp@redhat.com>
10966 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10967 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10968 final location that lands in the config file
10970 * bus/config-loader-expat.c (bus_config_load): fix type of
10971 XML_Parser variable
10973 * doc/TODO: remove TODO item for dbus_bus_get()
10975 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10977 2003-03-31 Havoc Pennington <hp@pobox.com>
10979 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10980 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10981 argument since they are always client side
10983 * dbus/dbus-server.c (dbus_server_get_address): new function
10985 * bus/main.c (main): take the configuration file as an argument.
10987 * test/data/valid-config-files/debug-allow-all.conf: new file to
10988 use with dispatch.c tests for example
10990 * bus/test-main.c (main): require test data dir
10992 * bus/bus.c (bus_context_new): change this to take a
10993 configuration file name as argument
10995 * doc/config-file.txt (Elements): add <servicedir>
10997 * bus/system.conf, bus/session.conf: new files
10999 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
11000 well-known socket if none set
11002 * configure.in: create system.conf and session.conf
11004 2003-03-30 Havoc Pennington <hp@pobox.com>
11006 * bus/config-parser.c: hacking
11008 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
11009 to shut down, since it could cause weirdness with the DBusList
11012 * dbus/dbus-list.c (_dbus_list_test): add tests for the
11013 link-oriented stack routines
11014 (alloc_link): free the mempool if the first alloc from it fails
11016 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
11018 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
11020 (_dbus_string_skip_white): new
11022 * doc/config-file.txt (Elements): add <includedir>
11024 2003-03-28 Havoc Pennington <hp@pobox.com>
11026 * dbus/dbus-string.c (_dbus_string_copy_data_len)
11027 (_dbus_string_copy_data): new functions
11029 2003-03-28 Anders Carlsson <andersca@codefactory.se>
11031 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
11035 * dbus/dbus-memory.c:
11038 2003-03-28 Havoc Pennington <hp@pobox.com>
11040 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
11041 I think it may have just been superstition. Not sure.
11043 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
11044 failures that were not being handled.
11046 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
11048 * dbus/dbus-memory.c: add ability to set number of mallocs in a
11049 row that will fail on out-of-memory.
11051 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
11052 function for testing out-of-memory handling.
11054 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
11055 allocation functions, they do map exactly to the expat ones.
11057 2003-03-27 Havoc Pennington <hp@redhat.com>
11059 * bus/config-loader-libxml.c (bus_config_load): add another error
11062 2003-03-26 Anders Carlsson <andersca@codefactory.se>
11065 Add note about automatic service activation.
11067 * doc/dbus-specification.sgml:
11068 Rename the specification and clarify a few things.
11070 2003-03-26 Anders Carlsson <andersca@codefactory.se>
11073 * dbus/dbus-address.c:
11074 * dbus/dbus-dict.c:
11075 * dbus/dbus-marshal.c:
11076 * dbus/dbus-server-debug-pipe.c:
11077 * dbus/dbus-transport-unix.c:
11078 Fix documentation warnings.
11080 2003-03-26 Havoc Pennington <hp@pobox.com>
11082 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11083 after every test so it's quick and easy to see which leaked, and
11084 so we test multiple dbus_shutdown() calls
11086 * configure.in: change configure.in XML stuff to also support
11089 * config-loader-libxml.c: some hacking
11091 * config-loader-expat.c: some hacking
11093 * config-parser.c: some hacking, plus tests
11095 2003-03-25 Havoc Pennington <hp@redhat.com>
11097 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11099 * configure.in: add --with-xml option to specify XML library,
11100 right now only libxml is supported.
11102 * bus/config-loader-libxml.c, config-parser.c: sync some minor
11103 nonworking code between home and work, still just stubs
11105 2003-03-24 Havoc Pennington <hp@redhat.com>
11107 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11110 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11111 NULL argument for "message" if the error is a well-known one,
11112 fill in a generic message in this case.
11114 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11117 * bus/test.c (bus_test_flush_bus): add
11119 * bus/policy.c (bus_policy_test): test code stub
11121 2003-03-24 Havoc Pennington <hp@pobox.com>
11123 * bus/connection.c (bus_connections_setup_connection): set up
11124 the "can this user connect" function, but it always returns
11125 TRUE until we have a config file parser so we can have a config
11126 file that allows connections.
11128 2003-03-23 Havoc Pennington <hp@pobox.com>
11130 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11131 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11132 the mutex, so we can check for proper memory management
11135 * dbus/dbus-dataslot.c: remove the mutex from
11136 DBusDataSlotAllocator and lock it manually when using it,
11137 to simplify fitting it into the global slots framework.
11139 * dbus/dbus-threads.c (init_static_locks): rework how we're
11140 handling global locks so they are easily shut down.
11142 * bus/policy.c (bus_policy_append_rule): fix
11144 * bus/test-main.c (main): check for memleaks
11146 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11147 test suite check for memleaks
11149 * dbus/dbus-memory.c: add support in test mode for tracking
11150 number of outstanding blocks
11152 2003-03-23 Havoc Pennington <hp@pobox.com>
11154 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11157 * dbus/dbus-hash.h: add ULONG hash keys
11159 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11160 (_dbus_get_group_id): new function
11162 2003-03-20 Havoc Pennington <hp@redhat.com>
11164 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11166 (dbus_connection_get_unix_user): new function
11168 2003-03-20 Havoc Pennington <hp@pobox.com>
11170 * bus/connection.c (bus_connection_send_oom_error): assert that
11171 message has a sender
11172 (connection_execute_transaction): ditto
11173 (bus_connection_preallocate_oom_error): fix to set the sender, and
11174 set recipient to the destination service, not the bus driver
11176 * bus/policy.c: hacking
11178 * dbus/dbus-message.c (dbus_message_service_is): new function
11179 (dbus_message_sender_is): new
11181 2003-03-19 Havoc Pennington <hp@redhat.com>
11183 * bus/policy.c: start sketching code for policy restrictions on
11184 what connections can do.
11186 2003-03-18 Havoc Pennington <hp@redhat.com>
11188 * doc/TODO: some notes on high-level todo items. Little nitpick
11189 stuff is all in @todo, so no need to add it here.
11191 * doc/config-file.txt: some notes on how config file might look
11193 2003-03-18 Anders Carlsson <andersca@codefactory.se>
11195 * configure.in: 0.6
11199 2003-03-17 Havoc Pennington <hp@redhat.com>
11201 * dbus/dbus-internals.h: add gcc attributes so that
11202 our printf-style functions warn on bad arguments to
11205 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11208 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11211 2003-03-17 Havoc Pennington <hp@redhat.com>
11213 * bus/test-main.c (main): make it print something as it runs
11214 so make check doesn't look stuck
11216 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11217 from CVS, now obsolete
11219 2003-03-17 Anders Carlsson <andersca@codefactory.se>
11221 * bus/dispatch.c: (bus_dispatch):
11222 Refetch the service name since it may have been reallocated
11223 when dbus_message_set_sender was called.
11225 * dbus/dbus-sysdeps.c: (_dbus_accept):
11226 Add address and address length variables and use them to stop
11227 valgrind from complaining.
11229 2003-03-17 Havoc Pennington <hp@pobox.com>
11231 All tests pass, no memleaks, no valgrind complaints.
11233 * bus/test.c: refcount handler_slot
11235 * bus/connection.c (bus_connections_new): refcount
11236 connection_data_slot
11238 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11239 bytes so that auth scripts pass.
11241 * bus/dispatch.c: init message_handler_slot so it gets allocated
11244 * bus/dispatch.c (message_handler_slot_ref): fix memleak
11246 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11247 dealloc server_pipe_hash when no longer used for benefit of
11250 * dbus/dbus-auth.c (process_command): memleak fix
11252 * bus/dispatch.c (check_hello_message): memleak fix
11254 2003-03-16 Havoc Pennington <hp@pobox.com>
11256 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11258 2003-03-17 Anders Carlsson <andersca@codefactory.se>
11260 * bus/activation.c (bus_activation_activate_service): Append
11261 the pending activation entry to the list of pending activations.
11263 2003-03-16 Havoc Pennington <hp@pobox.com>
11265 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11268 * dbus/dbus-address.c (create_entry): fix OOM handling when
11269 failing to alloc entry->method
11271 2003-03-16 Havoc Pennington <hp@pobox.com>
11273 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11276 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11277 add some missing dbus_set_result
11279 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11280 alloc the DBusMessageHandler
11282 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11283 the transport here, since we call this from the finalizer; it
11284 resulted in a double-finalize.
11286 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
11287 where we tried to use transport->connection that was NULL,
11288 happened when transport was disconnected early on due to OOM
11290 * bus/*.c: adapt to handle OOM for watches/timeouts
11292 * dbus/dbus-transport-unix.c: port to handle OOM during
11295 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
11296 reference to unused bytes instead of a copy
11298 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
11301 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
11304 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
11307 2003-03-16 Anders Carlsson <andersca@codefactory.se>
11309 * doc/dbus-specification.sgml:
11310 Document reply message for ActivateService.
11312 2003-03-16 Anders Carlsson <andersca@codefactory.se>
11314 * bus/activation.c: (bus_pending_activation_entry_free),
11315 (bus_pending_activation_free), (bus_activation_new),
11316 (bus_activation_unref), (bus_activation_service_created),
11317 (bus_activation_activate_service):
11318 * bus/activation.h:
11319 * bus/bus.c: (bus_context_new):
11320 * bus/desktop-file.c: (new_section):
11321 * bus/driver.c: (bus_driver_send_service_deleted),
11322 (bus_driver_handle_activate_service):
11323 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11325 * dbus/dbus-connection.c:
11326 (dbus_connection_send_with_reply_and_block):
11327 * dbus/dbus-message.c: (dbus_message_append_args_valist):
11328 * dbus/dbus-protocol.h:
11329 Make activation work better. Now pending activations will be queued
11330 and the daemon won't try to activate services that are already registered.
11332 2003-03-16 Havoc Pennington <hp@pobox.com>
11334 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11337 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11338 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11340 2003-03-16 Havoc Pennington <hp@pobox.com>
11342 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11343 this. always run the test suite before commit...
11345 * bus/*: adapt to DBusConnection API changes
11347 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11348 requires renaming stuff to avoid dbus_connection_dispatch name
11351 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11354 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11355 separate from _dbus_message_loader_return_buffer()
11357 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11358 this, because it's now always broken to use; the number of
11359 messages in queue vs. the number still buffered by the message
11360 loader is undefined/meaningless. Should use
11361 dbus_connection_get_dispatch_state().
11362 (dbus_connection_dispatch): rename from
11363 dbus_connection_dispatch_message
11365 2003-03-16 Havoc Pennington <hp@pobox.com>
11367 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11370 2003-03-16 Anders Carlsson <andersca@codefactory.se>
11372 * dbus/dbus-connection.c:
11373 (dbus_connection_send_with_reply_and_block):
11374 Decrease connection->n_incoming when removing an entry
11376 * dbus/dbus-dict.c: (dbus_dict_entry_free),
11377 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11378 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11379 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11380 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11381 (dbus_dict_get_byte_array):
11382 Handle NULL arrays and strings. Also add support for byte arrays.
11384 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11385 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11386 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11387 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11388 (_dbus_demarshal_dict), (demarshal_and_validate_len),
11389 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11390 * dbus/dbus-marshal.h:
11391 Add support for marshalling and demarshalling empty arrays and strings.
11393 * dbus/dbus-message.c: (dbus_message_append_args_valist),
11394 (dbus_message_append_string_array),
11395 (dbus_message_iter_get_boolean),
11396 (dbus_message_iter_get_boolean_array),
11397 (dbus_message_iter_get_int32_array),
11398 (dbus_message_iter_get_uint32_array),
11399 (dbus_message_iter_get_double_array),
11400 (dbus_message_iter_get_byte_array),
11401 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11402 (check_message_handling):
11403 Add support for getting empty arrays and dicts.
11405 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11406 Don't do any validation at all for now, that's better than just checking
11409 * test/data/valid-messages/emptiness.message:
11410 New test message with lots of empty arrays.
11412 2003-03-16 Havoc Pennington <hp@pobox.com>
11414 * dbus/dbus-connection.c
11415 (_dbus_connection_queue_received_message_link): new function that
11416 can't fail due to OOM
11418 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11419 new function pops a message together with a list link
11422 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11423 message queuing functions to avoid needing to alloc memory
11425 2003-03-16 Havoc Pennington <hp@pobox.com>
11427 Oops - test code was only testing failure of around 30 of the
11428 mallocs in the test path, but it turns out there are 500+
11429 mallocs. I believe this was due to misguided linking setup such
11430 that there was one copy of dbus_malloc etc. in the daemon and one
11431 in the shared lib, and only daemon mallocs were tested. In any
11432 case, the test case now tests all 500+ mallocs, and doesn't pass
11433 yet, though there are lots of fixes in this patch.
11435 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11436 this so that it doesn't need to allocate memory, since it
11437 has no way of indicating failure due to OOM (and would be
11438 annoying if it did).
11440 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11442 * bus/Makefile.am: rearrange to create two self-contained
11443 libraries, to avoid having libraries with overlapping symbols.
11444 that was resulting in weirdness, e.g. I'm pretty sure there
11445 were two copies of global static variables.
11447 * dbus/dbus-internals.c: move the malloc debug stuff to
11450 * dbus/dbus-list.c (free_link): free list mempool if it becomes
11453 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11455 * dbus/dbus-address.c (dbus_parse_address): free list nodes
11458 * bus/dispatch.c (bus_dispatch_add_connection): free
11459 message_handler_slot when no longer using it, so
11460 memory leak checkers are happy for the test suite.
11462 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11464 * bus/bus.c (new_connection_callback): disconnect in here if
11465 bus_connections_setup_connection fails.
11467 * bus/connection.c (bus_connections_unref): fix to free the
11469 (bus_connections_setup_connection): if this fails, don't
11470 disconnect the connection, just be sure there are no side
11473 * dbus/dbus-string.c (undo_alignment): unbreak this
11475 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11477 (_dbus_auth_new): fix the order in which we free strings
11480 * bus/connection.c (bus_connection_disconnected): fix to
11481 not send ServiceDeleted multiple times in case of memory
11484 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11485 get the base service name
11486 (dbus_bus_register_client): don't return base service name,
11487 instead store it on the DBusConnection and have an accessor
11489 (dbus_bus_register_client): rename dbus_bus_register()
11491 * bus/dispatch.c (check_hello_message): verify that other
11492 connections on the bus also got the correct results, not
11493 just the one sending hello
11495 2003-03-15 Havoc Pennington <hp@pobox.com>
11497 Make it pass the Hello handling test including all OOM codepaths.
11498 Now to do other messages...
11500 * bus/services.c (bus_service_remove_owner): fix crash when
11501 removing owner from an empty list of owners
11502 (bus_registry_ensure): don't leave service in the list of
11503 a connection's owned services if we fail to put the service
11506 * bus/connection.c (bus_connection_preallocate_oom_error): set
11507 error flag on the OOM error.
11509 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11510 handle _dbus_transport_set_connection failure
11512 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11513 to create watches up front and simply enable/disable them as
11515 (unix_connection_set): this can now fail on OOM
11517 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11518 of enabling/disabling a watch or timeout.
11520 * bus/loop.c (bus_loop_iterate): don't touch disabled
11523 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11525 2003-03-15 Havoc Pennington <hp@pobox.com>
11527 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11528 write useful test code, after all that futzing around ;-)
11530 Test does not yet pass because we can't handle OOM in
11531 _dbus_transport_messages_pending (basically,
11532 dbus_connection_preallocate_send() does not prealloc the write
11533 watch). To fix this, I think we need to add new stuff to
11534 set_watch_functions, namely a SetEnabled function so we can alloc
11535 the watch earlier, then enable it later.
11537 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11538 dbus-memory.c to the convenience lib
11540 * bus/test.c: rename some static functions to keep them clearly
11541 distinct from stuff in connection.c. Handle client disconnection.
11543 2003-03-14 Havoc Pennington <hp@pobox.com>
11545 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11546 transport, tests more of the real codepath. Set up clients
11547 with bus_setup_debug_client.
11549 * bus/test.c (bus_setup_debug_client): function to set up debug
11550 "clients" on the main loop
11552 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11555 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11558 * dbus/dbus-server-debug.c: support a debug server based on pipes
11560 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11561 (_dbus_close): new function
11563 * configure.in: check for socketpair
11565 2003-03-14 Havoc Pennington <hp@redhat.com>
11567 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11570 * dbus/dbus-transport-debug.c: rework this a good bit to be
11571 less complicated. hopefully still works.
11573 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11576 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11579 * dbus/dbus-message.c (dbus_message_copy): rename from
11580 dbus_message_new_from_message, fix it up to copy
11581 all the message fields, add test case
11583 * bus/dispatch.c (bus_dispatch_test): add some more test code,
11584 not quite passing yet
11586 2003-03-14 Havoc Pennington <hp@pobox.com>
11588 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11589 until no work remains" in test code. (the large diff here
11590 is just code movement, no actual changes)
11592 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11593 1, no point waiting around for test code.
11594 (_dbus_server_debug_accept_transport): unref the timeout
11595 after adding it (right?)
11597 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11599 2003-03-13 Havoc Pennington <hp@redhat.com>
11601 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11604 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11607 * dbus/dbus-connection.h: Make AddWatchFunction and
11608 AddTimeoutFunction return a bool so they can fail on out-of-memory
11610 * bus/bus.c (bus_context_new): set up timeout handlers
11612 * bus/connection.c (bus_connections_setup_connection): set up
11615 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11618 * bus/bus.c (bus_context_new): adapt to changes
11620 * bus/connection.c: adapt to changes
11622 * test/watch.c: adapt to DBusWatch changes
11624 * bus/dispatch.c (bus_dispatch_test): started adding this but
11627 2003-03-14 Anders Carlsson <andersca@codefactory.se>
11629 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11631 2003-03-13 Havoc Pennington <hp@pobox.com>
11633 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11634 set up a test framework as for the library
11636 2003-03-12 Havoc Pennington <hp@pobox.com>
11638 Throughout: purge global variables, introduce BusActivation,
11639 BusConnections, BusRegistry, etc. objects instead.
11641 * bus/bus.h, bus/bus.c: introduce BusContext as a global
11644 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11645 going to redo this a bit differently I think
11647 2003-03-12 Havoc Pennington <hp@redhat.com>
11649 Mega-patch that gets the message bus daemon initially handling
11650 out-of-memory. Work still needed. Also lots of random
11651 moving stuff to DBusError instead of ResultCode.
11653 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11655 * dbus/dbus-connection.c
11656 (dbus_connection_send_with_reply_and_block): use DBusError
11658 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11661 * dbus/dbus-connection.c (dbus_connection_send): drop the result
11662 code here, as the only failure possible is OOM.
11664 * bus/connection.c (bus_connection_disconnect):
11665 rename bus_connection_disconnected as it's a notification only
11667 * bus/driver.c (bus_driver_handle_acquire_service): don't free
11668 "name" on get_args failure, should be done by get_args;
11669 don't disconnect client for bad args, just return an error.
11670 (bus_driver_handle_service_exists): ditto
11672 * bus/services.c (bus_services_list): NULL-terminate returned array
11674 * bus/driver.c (bus_driver_send_service_lost)
11675 (bus_driver_send_service_acquired): send messages from driver to a
11676 specific client to the client's unique name, not to the broadcast
11679 * dbus/dbus-message.c (decode_header_data): reject messages that
11680 contain no name field
11681 (_dbus_message_get_client_serial): rename to
11682 dbus_message_get_serial and make public
11683 (_dbus_message_set_serial): rename from set_client_serial
11684 (_dbus_message_set_reply_serial): make public
11685 (_dbus_message_get_reply_serial): make public
11687 * bus/connection.c (bus_connection_foreach): allow stopping
11688 iteration by returning FALSE from foreach function.
11690 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11691 (dbus_connection_free_preallocated_send)
11692 (dbus_connection_preallocate_send): new API for sending a message
11693 without possibility of malloc failure.
11694 (dbus_connection_send_message): rename to just
11695 dbus_connection_send (and same for whole function family)
11697 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11699 * dbus/dbus-sysdeps.c (_dbus_exit): new function
11701 * bus/activation.c: handle/return errors
11703 * dbus/dbus-errors.h: add more DBUS_ERROR #define
11705 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11706 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11707 (_dbus_result_from_errno): move to this file
11709 2003-03-10 Anders Carlsson <andersca@codefactory.se>
11711 * dbus/dbus-marshal.c:
11712 (_dbus_marshal_set_string):
11713 Take a length argument so we can marshal the correct string
11716 (_dbus_marshal_dict), (_dbus_demarshal_dict),
11717 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11718 (_dbus_marshal_test):
11719 * dbus/dbus-marshal.h:
11720 Add support for marshalling and demarshalling dicts.
11722 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11723 Add support for TYPE DICT.
11725 * dbus/dbus-message.c: (set_string_field):
11726 Adjust header padding.
11728 (dbus_message_append_args_valist), (dbus_message_append_dict),
11729 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11730 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11731 (check_message_handling), (check_have_valid_message):
11732 * dbus/dbus-message.h:
11733 Add functions for setting and getting dicts.
11735 * dbus/dbus-protocol.h:
11736 Add DBUS_TYPE_DICT.
11741 * doc/dbus-specification.sgml:
11742 Add information about how dicts are marshalled.
11744 * test/data/invalid-messages/dict-with-nil-value.message:
11745 * test/data/invalid-messages/too-short-dict.message:
11746 * test/data/valid-messages/dict-simple.message:
11747 * test/data/valid-messages/dict.message:
11748 Add sample messages containing dicts.
11750 2003-03-08 Anders Carlsson <andersca@codefactory.se>
11752 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11754 2003-03-07 Anders Carlsson <andersca@codefactory.se>
11756 * dbus/Makefile.am:
11757 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11758 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11759 (dbus_dict_set_int32), (dbus_dict_set_uint32),
11760 (dbus_dict_set_double), (dbus_dict_set_string),
11761 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11762 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11763 (dbus_dict_set_string_array), (_dbus_dict_test):
11764 * dbus/dbus-dict.h:
11765 Fix according to comments from Havoc.
11767 2003-03-06 Michael Meeks <michael@server.home>
11769 * configure.in: if we don't have kde-config, disable have_qt.
11771 2003-03-07 Anders Carlsson <andersca@codefactory.se>
11773 * dbus/Makefile.am:
11776 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11777 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11778 (dbus_dict_remove), (dbus_dict_get_value_type),
11779 (dbus_dict_get_keys), (dbus_dict_put_boolean),
11780 (dbus_dict_put_int32), (dbus_dict_put_uint32),
11781 (dbus_dict_put_double), (dbus_dict_put_string),
11782 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11783 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11784 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11785 (dbus_dict_get_int32), (dbus_dict_get_uint32),
11786 (dbus_dict_get_double), (dbus_dict_get_string),
11787 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11788 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11789 (dbus_dict_get_string_array), (_dbus_dict_test):
11790 * dbus/dbus-dict.h:
11791 Add DBusDict implementation
11793 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11794 * dbus/dbus-test.h:
11795 Add _dbus_dict_test
11797 2003-03-04 Havoc Pennington <hp@pobox.com>
11799 * test/data/auth/*: adapt to changes
11801 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11802 USERID_BASE64 and change USERNAME_BASE64 to put in username not
11805 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11806 more stuff from being in a context name, to make the protocol
11807 simpler to deal with
11809 * dbus/dbus-errors.c (dbus_error_has_name): new function
11810 (dbus_error_is_set): new function
11812 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11813 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11815 * dbus/dbus-connection.c (dbus_connection_flush): also read
11816 messages during a flush operation
11818 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11820 2003-03-05 Anders Carlsson <andersca@codefactory.se>
11822 * configure.in: Check for gethostbyname on Solaris.
11824 * dbus/dbus-transport.c: (_dbus_transport_open):
11825 Remove duplicate "tcp" entry.
11827 * doc/dbus-specification.sgml:
11828 Clarify some things.
11830 2003-03-05 Anders Carlsson <andersca@codefactory.se>
11832 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11833 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11834 (_dbus_keyring_test):
11835 * dbus/dbus-md5.c: (_dbus_md5_compute):
11836 * dbus/dbus-sha.c: (_dbus_sha_compute):
11839 2003-03-05 Anders Carlsson <andersca@codefactory.se>
11841 * README: Add some things.
11843 2003-03-04 Anders Carlsson <andersca@codefactory.se>
11845 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11846 after case DBUS_TYPE_BOOELAN.
11848 2003-03-02 Havoc Pennington <hp@pobox.com>
11850 * test/break-loader.c (randomly_set_extreme_ints): add test that
11851 sets really huge and small integers
11853 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11854 that length of boolean array fits in the string, and that
11855 string has room for boolean value in single-bool case.
11857 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11858 optional value to "ALIGN" command which is what to fill the
11861 * test/data/valid-messages/no-padding.message: add regression
11862 test for the message padding problem
11864 2003-03-02 Havoc Pennington <hp@pobox.com>
11866 * dbus/dbus-message.c (decode_header_data): fix to always init
11867 message_padding, from Benjamin Dauvergne
11869 2003-03-02 Havoc Pennington <hp@pobox.com>
11871 * configure.in: 0.5
11875 2003-03-01 Joe Shaw <joe@assbarn.com>
11877 * configure.in: Check for "struct cmsgcred" and try to access its
11878 members for BSD-like unices.
11880 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11881 _dbus_read_credentials_unix_socket().
11882 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11883 read() for reading the credential byte off the unix socket. Use
11884 struct cmsgcred on systems that support it.
11886 2003-02-27 Alexander Larsson <alexl@redhat.com>
11888 * glib/Makefile.am:
11890 Make gthreads-2.0 dependency optional. Don't build thread test if
11893 2003-02-27 Havoc Pennington <hp@pobox.com>
11895 * dbus/dbus-connection.c
11896 (dbus_connection_send_message_with_reply_and_block): fix doh!
11897 doh! doh! bug that resulted in never removing a reply from the
11898 queue, no wonder we called get_reply_serial so much ;-)
11900 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11901 and client serial instead of demarshaling them every time
11903 2003-02-27 Havoc Pennington <hp@pobox.com>
11905 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11906 more inlined, using dbus-string-private.h, speeds things up
11909 * dbus/dbus-string.c (_dbus_string_free): apply align offset
11910 when freeing the string
11911 (_dbus_string_steal_data): fix for align offset
11912 (undo_alignment): new function
11914 2003-02-26 Havoc Pennington <hp@redhat.com>
11916 All kinds of audit fixes from Owen, plus initial attempt to
11917 handle unaligned memory returned from malloc.
11919 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11920 leave room for align_offset and nul byte
11921 (fixup_alignment): function to track an align_offset and
11922 ensure real->str is aligned
11923 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11924 to allow a nul byte plus align offset
11925 (_dbus_string_lock): fix overflow issue
11926 (_dbus_string_init_const_len): add assertions on sanity of len,
11927 assign allocated to be ALLOCATION_PADDING larger than len
11928 (set_length): fixup the overflow handling
11929 (_dbus_string_get_data_len): fix overflow in assertion
11930 (open_gap): detect overflow in size of gap to be opened
11931 (_dbus_string_lengthen): add overflow check
11932 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11933 (_dbus_string_append): add overflow check
11934 (_dbus_string_append_unichar): overflow
11935 (_dbus_string_delete): fix overflow in assertion
11936 (_dbus_string_copy_len): overflow in assertion
11937 (_dbus_string_replace_len): overflows in assertions
11938 (_dbus_string_find): change to implement in terms of
11939 _dbus_string_find_to
11940 (_dbus_string_find_to): assorted fixage
11941 (_dbus_string_equal_c_str): assert c_str != NULL,
11942 fix logic so the function works
11943 (_dbus_string_ends_with_c_str): fix overflow thingy
11944 (_dbus_string_base64_encode): overflow fix
11945 (_dbus_string_validate_ascii): overflow
11946 (_dbus_string_validate_nul): overflow
11948 2003-02-26 Havoc Pennington <hp@redhat.com>
11950 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11952 2003-02-26 Alexander Larsson <alexl@redhat.com>
11955 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11957 * dbus/dbus-connection.c:
11958 * dbus/dbus-connection.h:
11959 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11960 Add dbus_connection_set_wakeup_main_function and use it when queueing
11961 incoming and outgoing messages.
11964 * dbus/dbus-dataslot.c:
11965 Threadsafe usage of DBusDataSlotAllocator
11967 * dbus/dbus-message.c: (dbus_message_get_args_iter):
11970 * dbus/dbus-server-unix.c:
11973 * glib/dbus-gmain.c:
11974 Implement the new wakeup functions for glib.
11976 * glib/Makefile.am:
11977 * glib/test-thread-client.c:
11978 * glib/test-thread-server.c:
11979 * glib/test-thread.h:
11980 Initial cut at some thread test code. Not really done yet.
11982 2003-02-26 Havoc Pennington <hp@pobox.com>
11984 * dbus/dbus-connection.c
11985 (dbus_connection_send_message_with_reply_and_block): fix crash
11986 where we ref'd the outgoing message instead of the returned reply
11988 * dbus/dbus-transport-unix.c (do_authentication): check read watch
11989 at the end of this function, so if we didn't need to read for
11990 authentication, we reinstall it for receiving messages
11992 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11993 a NULL sender for peer-to-peer case
11995 * dbus/dbus-transport-unix.c (check_read_watch): handle
11996 !authenticated case correctly
11998 * glib/dbus-gmain.c: add support for DBusServer
12000 * dbus/dbus-server.c: add data slot support
12002 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
12003 return values and handle errors
12005 * dbus/dbus-dataslot.c: factor out the data slot stuff from
12008 * Doxyfile.in (INPUT): add glib subdir
12010 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
12011 setup_with_g_main instead of hookup_with_g_main; write docs
12013 2003-02-24 Anders Carlsson <andersca@codefactory.se>
12015 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
12016 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12017 * dbus/dbus-message.c: (dbus_message_append_boolean),
12018 (dbus_message_append_boolean_array),
12019 (dbus_message_get_args_valist), (_dbus_message_test):
12020 * dbus/dbus-message.h:
12021 * doc/dbus-specification.sgml:
12022 Various fixes as pointed out by Havoc.
12024 * test/data/invalid-messages/bad-boolean-array.message:
12025 * test/data/invalid-messages/bad-boolean.message:
12026 Add invalid boolean value test cases.
12028 2003-02-24 Anders Carlsson <andersca@codefactory.se>
12030 * dbus/dbus-internals.c: (_dbus_type_to_string):
12031 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12032 (_dbus_marshal_validate_arg):
12033 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12034 * dbus/dbus-message.c: (dbus_message_append_args_valist),
12035 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
12036 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
12037 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
12038 (dbus_message_iter_get_double),
12039 (dbus_message_iter_get_boolean_array), (message_iter_test):
12040 * dbus/dbus-message.h:
12041 * dbus/dbus-protocol.h:
12042 * doc/dbus-specification.sgml:
12043 * test/data/valid-messages/lots-of-arguments.message:
12044 Add support for boolean and boolean array types.
12046 2003-02-23 Havoc Pennington <hp@pobox.com>
12048 * dbus/dbus-keyring.c: finish most of this implementation and
12051 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
12052 these barf if the error isn't cleared to NULL
12054 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
12055 (_dbus_create_directory): new function
12057 * dbus/dbus-errors.c (dbus_set_error): fix warning
12059 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
12060 (_dbus_string_hex_decode): new function
12061 (test_hex_roundtrip): test code
12063 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
12065 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
12067 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
12068 the save-to-temp/rename trick to atomically write the new file
12069 (_dbus_string_parse_uint): new function
12071 2003-02-22 Havoc Pennington <hp@pobox.com>
12073 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12075 2003-02-22 Havoc Pennington <hp@pobox.com>
12077 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12078 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12080 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12082 * dbus/test/data/sha-1: add US government test suite for SHA-1
12084 2003-02-21 Anders Carlsson <andersca@codefactory.se>
12086 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12087 Make string arrays NULL-terminated.
12089 * dbus/dbus-memory.c: (dbus_free_string_array):
12090 * dbus/dbus-memory.h:
12091 New function for freeing NULL-terminated string arrays.
12093 * dbus/dbus-message-builder.c: (append_quoted_string),
12094 (_dbus_message_data_load):
12095 Add support for array types.
12097 * dbus/dbus-message.c: (check_message_handling):
12098 Add more types as test cases.
12100 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12101 (_dbus_string_parse_double):
12102 Add the start offset to the end offset.
12104 * test/data/valid-messages/lots-of-arguments.message:
12105 New test message with lots of arguments.
12107 2003-02-21 Anders Carlsson <andersca@codefactory.se>
12109 * dbus/dbus-message.c: (dbus_message_append_nil),
12110 (dbus_message_append_int32), (dbus_message_append_uint32),
12111 (dbus_message_append_double), (dbus_message_append_string),
12112 (dbus_message_append_int32_array),
12113 (dbus_message_append_uint32_array),
12114 (dbus_message_append_double_array),
12115 (dbus_message_append_byte_array),
12116 (dbus_message_append_string_array):
12117 Fix all out-of-memory handling in these functions.
12119 2003-02-21 Anders Carlsson <andersca@codefactory.se>
12121 * dbus/dbus-message.c: (dbus_message_append_nil):
12124 2003-02-21 Anders Carlsson <andersca@codefactory.se>
12126 * dbus/dbus-message.c: (dbus_message_append_args_valist),
12127 (dbus_message_append_nil), (dbus_message_append_int32_array),
12128 (dbus_message_append_uint32_array),
12129 (dbus_message_append_double_array),
12130 (dbus_message_append_byte_array),
12131 (dbus_message_append_string_array), (dbus_message_get_args_valist),
12132 (dbus_message_iter_get_int32_array),
12133 (dbus_message_iter_get_uint32_array),
12134 (dbus_message_iter_get_double_array),
12135 (dbus_message_iter_get_byte_array),
12136 (dbus_message_iter_get_string_array):
12138 * dbus/dbus-message.h:
12139 Add functions for appending and getting arrays.
12141 2003-02-21 Anders Carlsson <andersca@codefactory.se>
12143 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12144 element size at least 8 bytes, fixes mempool tests on
12147 2003-02-20 Alexander Larsson <alexl@redhat.com>
12149 * dbus/dbus-transport-unix.c (unix_do_iteration):
12150 Unlock the connection mutex during a blocking select call.
12151 Add todo about how we need a way to wake up the select.
12153 * dbus/dbus-connection-internal.h:
12154 * dbus/dbus-connection.c:
12155 Add _dbus_connection_lock and _dbus_connection_unlock.
12157 2003-02-19 Havoc Pennington <hp@pobox.com>
12159 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12160 Doxyfile.in, not Doxyfile
12162 * dbus/dbus-keyring.c: do some hacking on this
12164 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12166 * dbus/dbus-errors.c (dbus_set_error_const): do not call
12168 (dbus_set_error): remove dbus_error_init, check for message ==
12169 NULL *before* we sprintf into it, and add @todo about including
12170 system headers in this file
12172 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12174 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12176 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12177 get various bits of user information based on either username
12179 (_dbus_homedir_from_username): new function
12181 2003-02-19 Anders Carlsson <andersca@codefactory.se>
12184 Add check for nonposix getpwnam_r
12186 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12187 Align the pool element size to a sizeof (void *) boundary.
12189 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12190 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12191 General Solaris fixes.
12193 * test/data/valid-messages/simplest-manual.message:
12194 Explicitly state that we want little-endian packing.
12196 2003-02-19 Mikael Hallendal <micke@codefactory.se>
12198 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12200 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12201 Added to create a transport connecting using a tcp/ip socket.
12203 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12204 to a tcp socket at given host and port.
12205 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12208 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12210 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12211 Added to create a server listening on a TCP/IP socket.
12213 2003-02-19 Havoc Pennington <hp@pobox.com>
12215 Throughout: mop up all the Doxygen warnings and undocumented
12218 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12219 to search any paths.
12221 * dbus/dbus-threads.c: move global mutex initializers to
12222 dbus-internals.h, multiple prototypes was confusing doxygen
12223 besides being kind of ugly
12225 * Doxyfile (PREDEFINED): have Doxygen define
12226 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12227 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12228 (do not abuse the feature! it's for stuff like the autogenerated
12229 macros in dbus-md5.c, not just for things you don't feel like
12232 2003-02-18 Havoc Pennington <hp@pobox.com>
12234 * dbus/dbus-string.c (_dbus_string_zero): new function
12236 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12237 wrap it in some dbus-friendly API
12239 * dbus/dbus-types.h: add 16-bit types
12241 2003-02-18 Joe Shaw <joe@assbarn.com>
12243 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12244 credentials from our currently running process.
12245 (get_word): Fix a buglet where we were copying the entire length
12246 instead of relative to our position.
12248 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12249 keys on the stack... it's 640k of data.
12251 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12252 read the credentials byte off the socket, even if we don't have
12254 (_dbus_poll): Implement poll() using select() for systems which
12257 * glib/test-dbus-glib.c (main): Print out an error if no
12258 parameters are given.
12260 * test/data/auth/fallback.auth-script: Added. Tests that a client
12261 can fallback to a secondary auth mechanism if the first fails.
12263 2003-02-18 Havoc Pennington <hp@pobox.com>
12265 * AUTHORS: add Alex
12267 2003-02-17 Havoc Pennington <hp@pobox.com>
12269 * doc/dbus-specification.sgml: lots of cosmetic
12270 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12271 env variable to DBUS_BUS_ADDRESS, s/client/application/,
12272 s/server/bus/ (except in authentication section). Add a section
12273 "Message Bus Message Routing"
12275 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
12281 2003-02-17 Anders Carlsson <andersca@codefactory.se>
12283 * doc/dbus-specification.sgml:
12284 Specification updates.
12286 2003-02-17 Anders Carlsson <andersca@codefactory.se>
12288 * bus/activation.c: (bus_activation_init), (child_setup),
12289 (bus_activation_activate_service):
12290 * bus/activation.h:
12291 * bus/main.c: (main):
12292 Set DBUS_ADDRESS environment variable.
12294 * dbus/dbus-errors.c: (dbus_set_error):
12295 Don't use va_copy since that's a C99 feature.
12297 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
12298 (_dbus_spawn_async):
12299 * dbus/dbus-sysdeps.h:
12300 Add child_setup_func to _dbus_spawn_async.
12302 * doc/dbus-specification.sgml:
12303 Update specification.
12305 * test/spawn-test.c: (setup_func), (main):
12308 2003-02-17 Alexander Larsson <alexl@redhat.com>
12310 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
12313 2003-02-17 Anders Carlsson <andersca@codefactory.se>
12317 * doc/dbus-test-plan.sgml:
12318 Add test plan document.
12320 * test/Makefile.am:
12323 2003-02-17 Anders Carlsson <andersca@codefactory.se>
12325 * dbus/dbus-message.c: (decode_header_data),
12326 (_dbus_message_loader_return_buffer):
12327 Set the header padding amount when loading a message.
12329 2003-02-16 Anders Carlsson <andersca@codefactory.se>
12331 * bus/dispatch.c: (send_one_message):
12332 Only send broadcast messages to registered connections.
12334 * dbus/dbus-message.c: (dbus_message_name_is):
12335 * dbus/dbus-message.h:
12336 New convenience function.
12338 * dbus/dbus-transport-debug.c: (do_reading):
12339 Only dispatch one message per run.
12341 * test/Makefile.am:
12342 * test/bus-test.c: (new_connection_callback), (die),
12343 (test_hello_client1_handler), (test_hello_client2_handler),
12344 (test_hello_replies), (main):
12346 * test/bus-test-loop.[ch]:
12349 2003-02-16 Havoc Pennington <hp@pobox.com>
12351 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12352 backward conditional
12354 2003-02-16 Alexander Larsson <alexl@redhat.com>
12356 * dbus/dbus-connection.c:
12357 Implement sent_message_with_reply. (with_reply_and block is still
12359 Made dispatch_message not lose message if OOM.
12361 * dbus/dbus-errors.h:
12362 Add NoReply error (for reply timeouts).
12364 2003-02-16 Alexander Larsson <alexl@redhat.com>
12366 * dbus/dbus-hash.c (_dbus_hash_table_unref):
12367 Actually free keys and values when destroying hashtable.
12369 2003-02-16 Anders Carlsson <andersca@codefactory.se>
12371 * dbus/dbus-auth.c: (client_try_next_mechanism):
12374 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12375 Return TRUE if there's no thread implementation around.
12377 * glib/dbus-gmain.c: (free_source),
12378 (dbus_connection_hookup_with_g_main):
12379 Make sure to remove the GSource when the connection is finalized.
12381 2003-02-16 Anders Carlsson <andersca@codefactory.se>
12383 * bus/dispatch.c: (bus_dispatch_message_handler):
12384 * dbus/dbus-errors.h:
12385 Return an error if someone tries to send a message to a service
12386 that doesn't exist.
12388 2003-02-16 Anders Carlsson <andersca@codefactory.se>
12390 * bus/activation.c: (load_directory), (bus_activation_init),
12391 (bus_activation_activate_service):
12392 * bus/activation.h:
12394 (bus_driver_handle_activate_service), (bus_driver_handle_message):
12395 More work on the activation handling.
12397 * dbus/dbus-errors.h:
12398 Add some error messages
12400 * dbus/dbus-message.c: (dbus_message_new_error_reply):
12401 * dbus/dbus-message.h:
12402 New function that creates an error message.
12404 * dbus/dbus-protocol.h:
12405 Add ACTIVATE_SERVER message.
12407 * dbus/dbus-server-unix.c: (unix_handle_watch),
12408 (_dbus_server_new_for_domain_socket):
12409 Call _dbus_fd_set_close_on_exec.
12411 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12412 (_dbus_spawn_async), (_dbus_disable_sigpipe),
12413 (_dbus_fd_set_close_on_exec):
12414 * dbus/dbus-sysdeps.h:
12415 Add _dbus_fd_set_close_on exec function. Also add function that checks
12416 that all open fds are set to close-on-exec and warns otherwise.
12418 * dbus/dbus-transport-unix.c:
12419 (_dbus_transport_new_for_domain_socket):
12420 Call _dbus_fd_set_close_on_exec.
12422 2003-02-16 Havoc Pennington <hp@pobox.com>
12424 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12425 allow people to avoid setting SIGPIPE to SIG_IGN
12426 (_dbus_connection_new_for_transport): disable SIGPIPE unless
12427 we've been asked not to
12429 2003-02-15 Anders Carlsson <andersca@codefactory.se>
12431 * dbus/dbus-list.c: (_dbus_list_append_link),
12432 (_dbus_list_prepend_link):
12433 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12437 2003-02-15 Anders Carlsson <andersca@codefactory.se>
12440 * bus/activation.c: (bus_activation_entry_free),
12441 (add_desktop_file_entry), (load_directory), (bus_activation_init):
12442 * bus/activation.h:
12443 * bus/main.c: (main):
12444 Add simple activation support, doesn't work yet though.
12446 2003-02-15 Zack Rusin <zack@kde.org>
12448 * qt/dbus-qthread.cpp: small casting fix
12450 2003-02-15 Anders Carlsson <andersca@codefactory.se>
12452 * dbus/dbus-errors.c: (dbus_set_error):
12453 * dbus/dbus-errors.h:
12454 Add a few errors and make dbus_set_error void.
12456 * dbus/dbus-sysdeps.c:
12457 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12458 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12459 * dbus/dbus-sysdeps.h:
12460 Add _dbus_spawn_async.
12462 * test/spawn-test.c: (main):
12463 Test for _dbus_spawn_async.
12465 2003-02-15 Anders Carlsson <andersca@codefactory.se>
12467 * dbus/dbus-internals.h:
12468 Fix build without tests.
12470 * dbus/dbus-list.c: (alloc_link):
12471 Fix a segfault when a malloc fails.
12473 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12474 (dbus_malloc0), (dbus_realloc):
12475 Add support for malloc debugging.
12477 2003-02-15 Alexander Larsson <alexl@redhat.com>
12479 * dbus/dbus-threads.c:
12480 * dbus/dbus-threads.h:
12481 Add condvars. Remove static mutext from API.
12482 Implement static mutexes by initializing them from threads_init.
12484 * glib/dbus-gthread.c:
12485 * qt/dbus-qthread.cpp:
12486 Update with the thread api changes.
12489 * dbus/dbus-list.c:
12490 * dbus/dbus-list.h:
12491 Turn StaticMutex into normal mutex + init function.
12492 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12493 _dbus_list_append_link, _dbus_list_prepend_link
12496 * dbus/dbus-sysdeps.c:
12497 * dbus/dbus-sysdeps.h:
12498 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12499 _dbus_atomic_dec. Only slow fallback implementation at the moment.
12501 * dbus/dbus-protocol.h:
12502 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12504 * dbus/dbus-message.c:
12505 Make ref/unref atomic.
12508 * dbus/dbus-connection-internal.h:
12509 * dbus/dbus-connection.c:
12510 * dbus/dbus-connection.h:
12512 Change _peek to _borrow,_return & _steal_borrowed.
12513 Change disconnect callback to event.
12514 Make dbus_connection_dispatch_messages reentrant.
12516 * dbus/dbus-transport.c:
12517 Don't ref the connection on calls to the transport
12520 * dbus/dbus-message-handler.c:
12523 * glib/dbus-gmain.c:
12524 Don't use peek_message anymore
12526 * test/Makefile.am:
12527 * test/debug-thread.c:
12528 * test/debug-thread.h:
12529 Simple thread implementation that asserts() on deadlocks in
12530 single-threaded code.
12533 (main) Call debug_threads_init.
12536 Use disconnect message instead of disconnect callback.
12538 * bus/connection.c:
12539 * bus/connection.h:
12540 Don't call dbus_connection_set_disconnect_function. Instead export
12541 bus_connection_disconnect.
12544 Call bus_connection_disconnect when we get a disconnected message.
12546 2003-02-15 Havoc Pennington <hp@pobox.com>
12548 * dbus/dbus-message.c (dbus_message_new): fool around with the
12551 2003-02-14 Havoc Pennington <hp@pobox.com>
12553 * dbus/dbus-mempool.c: fail if the debug functions so indicate
12555 * dbus/dbus-memory.c: fail if the debug functions indicate we
12558 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12559 (_dbus_decrement_fail_alloc_counter): debug functions to
12560 simulate memory allocation failures
12562 2003-02-14 Havoc Pennington <hp@pobox.com>
12564 * dbus/dbus-errors.h (struct DBusError): add a word of padding
12567 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12569 * bus/driver.c: (bus_driver_handle_hello):
12571 * bus/services.c: (bus_service_lookup):
12572 Reorder message sending so we get a more sane order.
12574 * test/bus-test.c: (message_handler):
12577 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12579 * bus/driver.c: (bus_driver_send_service_deleted),
12580 (bus_driver_send_service_created), (bus_driver_send_service_lost),
12581 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12582 (bus_driver_send_welcome_message),
12583 (bus_driver_handle_list_services),
12584 (bus_driver_handle_acquire_service),
12585 (bus_driver_handle_service_exists):
12586 * dbus/dbus-bus.c: (dbus_bus_register_client),
12587 (dbus_bus_acquire_service), (dbus_bus_service_exists):
12588 * dbus/dbus-errors.c: (dbus_result_to_string):
12589 * dbus/dbus-errors.h:
12590 * dbus/dbus-message.c: (dbus_message_append_args),
12591 (dbus_message_append_args_valist), (dbus_message_get_args),
12592 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12593 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12594 (dbus_message_iter_get_byte_array),
12595 (dbus_message_iter_get_string_array), (message_iter_test),
12596 (check_message_handling), (_dbus_message_test):
12597 * dbus/dbus-message.h:
12598 * test/bus-test.c: (main):
12599 Change fields to arguments in messages, so that they won't be
12600 confused with header fields.
12602 * glib/test-dbus-glib.c: (main):
12603 Remove append_fields from hello message.
12605 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12607 * dbus/dbus-errors.c:
12608 * dbus/dbus-message.c:
12609 * dbus/dbus-string.c:
12610 Documentation fixes.
12612 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12614 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12616 Implement support for timeouts in dbus-glib.
12618 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12620 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12621 * dbus/dbus-message.c: (process_test_subdir):
12622 * test/break-loader.c: (find_breaks_based_on):
12623 Plug some memory leaks.
12625 2003-02-13 Richard Hult <rhult@codefactory.se>
12627 * bus/main.c: Fix build.
12629 * dbus/dbus-errors.h:
12630 * dbus/dbus-errors.c: Fix copyright for Anders.
12632 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12637 * bus/connection.c: (bus_connection_foreach):
12640 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12641 (unescape_string), (new_section), (parse_section_start),
12642 (parse_key_value), (report_error), (bus_desktop_file_load),
12643 (bus_desktop_file_get_string):
12644 * bus/desktop-file.h:
12645 Use DBusError for error reporting.
12647 * bus/dispatch.c: (send_one_message),
12648 (bus_dispatch_message_handler):
12649 * bus/driver.c: (bus_driver_send_service_deleted),
12650 (bus_driver_send_service_created), (bus_driver_send_service_lost),
12651 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12652 (bus_driver_send_welcome_message),
12653 (bus_driver_handle_list_services),
12654 (bus_driver_handle_acquire_service),
12655 (bus_driver_handle_service_exists):
12656 * bus/loop.c: (bus_loop_run):
12658 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12660 * bus/utils.c: (bus_wait_for_memory):
12662 New files with general utility functions.
12664 * dbus/dbus-internals.h:
12665 Remove _DBUS_HANDLE_OOM.
12667 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12669 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12670 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12671 * dbus/dbus-errors.h:
12672 Add DBusError structure.
12674 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12676 * test/data/valid-messages/standard-acquire-service.message:
12677 * test/data/valid-messages/standard-hello.message:
12678 * test/data/valid-messages/standard-list-services.message:
12679 * test/data/valid-messages/standard-service-exists.message:
12680 Add some standard messages.
12682 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12684 * bus/driver.c: (bus_driver_send_welcome_message),
12685 (bus_driver_handle_list_services),
12686 (bus_driver_handle_acquire_service),
12687 (bus_driver_handle_service_exists), (bus_driver_handle_message):
12688 Update for API changes in libdbus.
12690 * dbus/dbus-message.c: (dbus_message_new_reply):
12691 * dbus/dbus-message.h:
12692 Remove the name argument. The spec states that replies shouldn't
12695 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12697 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12698 (report_error), (bus_desktop_file_load), (lookup_section),
12699 (lookup_line), (bus_desktop_file_get_raw),
12700 (bus_desktop_file_get_string):
12701 * bus/desktop-file.h:
12702 Some fixes, and new functions for getting a key value from a section.
12704 2003-02-13 Havoc Pennington <hp@pobox.com>
12706 * test/data/auth/fail-after-n-attempts.auth-script: new test
12708 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12711 2003-02-13 Havoc Pennington <hp@pobox.com>
12713 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12714 dbus_credentials_match were backward
12716 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12717 NO_CREDENTIALS and ROOT_CREDENTIALS
12719 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12720 into here. Never process more commands after we've reached an
12721 end state; store further data as unused bytes.
12723 * test/data/auth/*: add more auth tests
12725 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12726 command to match exact string and EXPECT_UNUSED to match unused
12729 * test/Makefile.am (dist-hook): fix to dist all the test stuff
12731 2003-02-12 Havoc Pennington <hp@pobox.com>
12733 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12734 \r off of popped lines
12736 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12739 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12742 2003-02-12 Havoc Pennington <hp@pobox.com>
12744 * dbus/Makefile.am: remove break-loader from the build, since it
12747 * configure.in: add --enable-gcov to turn on coverage profiling
12748 flags and disable optimization
12750 2003-02-10 Havoc Pennington <hp@pobox.com>
12752 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12753 initial cut at test framework for DBusAuth from laptop.
12754 Doesn't quite work yet but it compiles and I need to get
12755 it off the 266mhz laptop. ;-)
12757 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12758 fix a memleak in error case
12760 2003-02-12 Anders Carlsson <andersca@codefactory.se>
12763 * bus/desktop-file.c:
12764 * bus/desktop-file.h:
12765 Add a desktop file parser.
12767 2003-02-11 Zack Rusin <zack@kde.org>
12769 * qt/message.[h|cpp]: sample implementation
12770 of the KDE wrapper for DBusMessage
12772 2003-02-09 Zack Rusin <zack@kde.org>
12774 * test/bus-test.c: make_it_compile
12775 * doc/dbus-specification.sgml: minimal semantic fix
12777 2003-02-06 Anders Carlsson <andersca@codefactory.se>
12783 2003-02-06 Anders Carlsson <andersca@codefactory.se>
12785 * dbus/Makefile.am:
12786 * dbus/dbus-break-loader.c:
12787 * test/Makefile.am:
12788 * test/break-loader.c:
12789 Move dbus-break-loader to test/ and rename it to break-loader.
12791 2003-02-02 Havoc Pennington <hp@pobox.com>
12793 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12794 for code to manage cookies in your home directory
12796 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12798 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12799 to authenticate, then disconnect the client.
12801 2003-02-03 Alexander Larsson <alexl@redhat.com>
12803 * dbus/dbus-message.c (dbus_message_append_fields):
12806 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12808 * doc/dbus-specification.sgml:
12809 Update address format section.
12811 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12813 * test/Makefile.am:
12814 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12815 (message_handler), (new_connection_callback), (loop_quit),
12816 (loop_run), (main):
12819 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12821 * bus/driver.c: (bus_driver_handle_service_exists):
12822 Simplify the code a bit.
12824 * dbus/dbus-bus.c: (dbus_bus_service_exists):
12827 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12830 Add libdbus-daemon.la and link to it.
12832 2003-02-01 James Willcox <jwillcox@gnome.org>
12834 * bus/driver.c: (bus_driver_handle_own_service):
12835 Actually include the service reply code in the message.
12837 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12839 * bus/driver.c: (bus_driver_handle_service_exists):
12840 Don't unref the incoming message.
12842 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12844 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12846 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12848 * dbus/dbus-server.c: (dbus_server_listen):
12849 * dbus/dbus-transport.c: (_dbus_transport_open):
12850 ifdef out the calls to the debug transport and server.
12852 2003-02-02 Alexander Larsson <alexl@redhat.com>
12854 * dbus/dbus-watch.c (dbus_watch_get_flags):
12855 Add note in the docs that ERROR or HANGUP won't be returned
12856 and are assumed always on.
12858 * glib/dbus-gmain.c (add_watch):
12859 Always add IO_ERR | IO_HUP
12861 * dbus/dbus-message.h:
12862 Add semicolon after dbus_message_iter_get_string_array().
12863 Makes qt code build again
12865 2003-02-01 Anders Carlsson <andersca@codefactory.se>
12867 * bus/driver.c: (create_unique_client_name),
12868 (bus_driver_handle_hello):
12869 Don't take a name, just use a numeric id to identify
12872 * dbus/Makefile.am:
12873 * dbus/dbus-bus.c: (dbus_bus_register_client),
12874 (dbus_bus_acquire_service), (dbus_bus_service_exists):
12876 Add new convenience functions for communicating with the bus.
12878 * dbus/dbus-message.h:
12880 * dbus/dbus-protocol.h:
12883 2003-02-01 Alexander Larsson <alexl@redhat.com>
12885 * dbus/dbus-message.c (dbus_message_append_fields):
12886 Add some more doc comments.
12888 2003-02-01 Havoc Pennington <hp@pobox.com>
12890 * dbus/dbus-break-loader.c (randomly_modify_length): change
12891 a 4-byte value in the message as if it were a length
12893 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12894 execute bit on saved files
12896 2003-02-01 Havoc Pennington <hp@pobox.com>
12898 * dbus/dbus-break-loader.c (main): new program to find messages
12899 that break the loader.
12901 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12902 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12904 * dbus/dbus-string.c (_dbus_string_set_byte): new
12906 2003-01-31 Havoc Pennington <hp@pobox.com>
12908 * dbus/dbus-message.c: refactor the test code to be more general,
12909 in preparation for writing a "randomly permute test cases to
12910 try to break the loader" program.
12912 2003-01-31 Havoc Pennington <hp@pobox.com>
12914 * doc/dbus-specification.sgml: work on the specification
12916 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12917 the protocol version of the message.
12919 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12920 no longer specifies that.
12921 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12924 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12925 "break" for DBUS_TYPE_NIL, remove @todo
12927 2003-01-31 Havoc Pennington <hp@pobox.com>
12929 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12930 just set_is_error/get_is_error as this is a commonly-used
12931 function, and write docs.
12933 2003-01-31 Anders Carlsson <andersca@codefactory.se>
12935 * dbus/dbus-address.c: (dbus_address_entry_free):
12936 Free key and value lists.
12938 * dbus/dbus-internals.c: (_dbus_type_to_string):
12939 Add the types we didn't have.
12941 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12942 (_dbus_marshal_validate_arg):
12945 * dbus/dbus-message.c: (dbus_message_set_sender):
12946 Remove todo about being able to set sender to NULL.
12948 (dbus_message_set_is_error_reply),
12949 (dbus_message_get_is_error_reply):
12950 * dbus/dbus-message.h:
12953 * dbus/dbus-protocol.h:
12954 Add error reply flag.
12956 * test/data/valid-messages/opposite-endian.message:
12957 Add NIL type to test.
12959 2003-01-31 Havoc Pennington <hp@pobox.com>
12961 * doc/dbus-specification.sgml: fully specify the header. Add
12962 flags and major protocol version, and change header/body len to
12965 * dbus/dbus-message-builder.c (append_saved_length): append length
12968 * dbus/dbus-message.c (dbus_message_create_header): change header
12969 length and body length to unsigned. Add the new fields from the
12971 (_dbus_message_loader_return_buffer): unsigned header/body len
12973 2003-01-30 Havoc Pennington <hp@pobox.com>
12975 * dbus/dbus-auth.c: rework to use only REJECTED, no
12978 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12979 use REJECTED, suggested by Mark McLoughlin
12981 2003-01-30 Havoc Pennington <hp@pobox.com>
12983 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12984 a better way to report errors here. e.g. "unix address lacks
12985 path" or something. also "no such file" when the path doesn't
12988 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12990 (dbus_parse_address): add @todo about documenting address format,
12991 and allowing , and ; to be escaped
12993 2003-01-30 Anders Carlsson <andersca@codefactory.se>
12995 * dbus/Makefile.am:
12996 Add dbus-address.[ch]
12998 * dbus/dbus-address.c: (dbus_address_entry_free),
12999 (dbus_address_entries_free), (create_entry),
13000 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
13001 (dbus_parse_address), (_dbus_address_test):
13002 * dbus/dbus-address.h:
13003 New files for dealing with address parsing.
13005 * dbus/dbus-connection.c:
13006 Document timeout functions.
13008 * dbus/dbus-message.c:
13009 Document dbus_message_new_from_message.
13011 * dbus/dbus-server-debug.c:
13014 * dbus/dbus-server.c: (dbus_server_listen):
13015 Parse address and use correct server implementation.
13017 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
13018 * dbus/dbus-string.h:
13019 New function with test.
13021 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
13022 * dbus/dbus-test.h:
13025 * dbus/dbus-transport-debug.c:
13028 * dbus/dbus-transport.c: (_dbus_transport_open):
13029 Parse address and use correct transport implementation.
13031 2003-01-30 Havoc Pennington <hp@pobox.com>
13033 * dbus/dbus-message.c: use message->byte_order instead of
13034 DBUS_COMPILER_BYTE_ORDER throughout.
13035 (dbus_message_create_header): pad header to align the
13036 start of the body of the message to 8-byte boundary
13038 * dbus/dbus-marshal.h: make all the demarshalers take const
13039 DBusString arguments.
13041 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
13042 validate message args here, so we don't have to do slow validation
13043 later, and so we catch bad messages as they are incoming. Also add
13044 better checks on header_len and body_len. Also fill in
13045 message->byte_order
13047 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
13048 implemented properly)
13049 (_dbus_string_validate_nul): new function to check all-nul
13051 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
13052 get_arg_end_pos and remove all validation
13053 (_dbus_marshal_validate_arg): actually do validation here.
13055 2003-01-29 Havoc Pennington <hp@pobox.com>
13057 * dbus/dbus-message.c (check_message_handling): fix assertion
13058 failure on set_client_serial
13060 2003-01-28 Havoc Pennington <hp@pobox.com>
13062 * dbus/dbus-server-debug.c: Add doc section comments
13064 * dbus/dbus-transport-debug.c: add doc section comments
13066 2003-01-28 Havoc Pennington <hp@redhat.com>
13068 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
13069 the reverse order from how I had it
13070 (_dbus_string_base64_encode): reverse encoding order. I was
13071 basically byteswapping everything during encoding.
13073 2003-01-28 Anders Carlsson <andersca@codefactory.se>
13075 * dbus/dbus-connection-internal.h:
13076 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13077 (_dbus_connection_remove_timeout):
13078 Add functions for adding and removing timeouts.
13080 * dbus/dbus-message.c: (dbus_message_new_from_message):
13081 Add new function that takes a message and creates an exact
13082 copy of it, but with the refcount set to 1.
13083 (check_message_handling):
13086 * dbus/dbus-server-protected.h:
13087 * dbus/dbus-server.c: (_dbus_server_init_base),
13088 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13089 (dbus_server_set_timeout_functions):
13090 (_dbus_server_remove_timeout):
13091 New functions so that a server can add and remove timeouts.
13093 (dbus_server_listen):
13094 Add commented out call to dbus_server_debug_new.
13096 * dbus/dbus-timeout.c: (_dbus_timeout_new):
13097 Actually set the handler, doh.
13099 * dbus/dbus-transport.c: (_dbus_transport_open):
13100 Add commented out call to dbus_transport_debug_client_new.
13102 * dbus/Makefile.am:
13103 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13105 2003-01-28 Havoc Pennington <hp@pobox.com>
13107 * dbus/dbus-message.c (check_message_handling): function to check
13108 on the loaded message, iterates over it etc.
13110 2003-01-28 Havoc Pennington <hp@pobox.com>
13112 * test/Makefile.am (dist-hook): fix make distdir
13114 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13116 2003-01-27 Havoc Pennington <hp@pobox.com>
13118 * dbus/dbus-mempool.c (time_for_size): replace printf with
13121 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13122 empty lines; fix the SAVE_LENGTH stuff to be
13123 START_LENGTH/END_LENGTH so it actually works; couple other
13126 * test/Makefile.am (dist-hook): add dist-hook for .message files
13128 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13129 can be constant or locked.
13130 (_dbus_string_free): allow freeing a const string as
13131 documented/intended
13133 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
13135 * dbus/dbus-test-main.c (main): take an argument which is the
13136 directory containing test data
13138 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13139 argument to this and load all the messages in test/data/
13140 checking that they can be loaded or not loaded as appropriate.
13142 2003-01-27 Anders Carlsson <andersca@codefactory.se>
13144 * bus/dispatch.c: (bus_dispatch_message_handler):
13145 Dispatch messages sent to services.
13147 * bus/driver.c: (bus_driver_send_service_deleted),
13148 (bus_driver_send_service_created), (bus_driver_send_service_lost),
13149 (bus_driver_send_service_acquired):
13150 Add helper functions for sending service related messages.
13152 (bus_driver_send_welcome_message):
13153 Send HELLO_REPLY instead of WELCOME.
13155 (bus_driver_handle_list_services):
13156 Send LIST_SERVICES_REPLY instead of SERVICES.
13158 (bus_driver_handle_own_service),
13159 (bus_driver_handle_service_exists):
13160 New message handlers.
13162 (bus_driver_handle_message):
13163 Invoke new message handlers.
13165 (bus_driver_remove_connection):
13166 Don't remove any services here since that's done automatically
13167 by bus_service_remove_owner now.
13170 New function signatures.
13172 * bus/services.c: (bus_service_add_owner):
13173 Send ServiceAcquired message if we're the only primary owner.
13175 (bus_service_remove_owner):
13176 Send ServiceAcquired/ServiceLost messages.
13178 (bus_service_set_prohibit_replacement),
13179 (bus_service_get_prohibit_replacement):
13180 Functions for setting prohibit replacement.
13182 (bus_service_has_owner):
13183 New function that checks if a connection is in the owner queue of
13187 Add new function signatures.
13189 * dbus/dbus-list.c: (_dbus_list_test):
13190 Add tests for _dbus_list_remove_last and traversing the list backwards.
13192 * dbus/dbus-list.h:
13193 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13194 go any further, so return NULL then.
13196 * dbus/dbus-protocol.h:
13197 Add new messages, service flags and service replies.
13199 2003-01-26 Havoc Pennington <hp@pobox.com>
13201 * dbus/dbus-message-builder.c: implement, completely untested.
13203 * test/data/*: add data to be used in testing.
13204 ".message" files are our simple loadable text format.
13205 ".message-raw" will be binary dumps of messages.
13207 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13209 2003-01-26 Havoc Pennington <hp@pobox.com>
13211 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13213 * dbus/dbus-errors.c (dbus_result_to_string): add
13216 * dbus/dbus-message-builder.c: new file, will contain code to load
13217 up messages from files. Not implemented yet.
13219 2003-01-26 Havoc Pennington <hp@pobox.com>
13221 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13222 the sender by setting to NULL
13224 2003-01-26 Havoc Pennington <hp@pobox.com>
13226 The unit tests pass, but otherwise untested. If it breaks, the
13227 tests should have been better. ;-)
13229 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13232 * dbus/dbus-message.c: redo everything so we maintain
13233 message->header as the only copy of the various fields.
13234 This avoids the possibility of out-of-memory in some cases,
13235 for example dbus_message_lock() can't run out of memory anymore,
13236 and avoids extra copying. Figured I may as well go ahead and do
13237 this since it was busted for dbus_message_lock to not return
13238 failure on OOM, and dbus_message_write_header was totally
13239 unchecked for OOM. Also fixed some random other bugs.
13241 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13242 that strings are nul-terminated. Also, end_pos can be equal
13243 to string length just not greater than, I think.
13244 (_dbus_marshal_set_int32): new function
13245 (_dbus_marshal_set_uint32): new function
13246 (_dbus_marshal_set_string): new function
13248 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13249 a warning, init timeout_list to NULL
13250 (dbus_connection_send_message): don't use uninitialized variable
13253 * dbus/dbus-string.c (_dbus_string_replace_len): new function
13255 2003-01-26 Anders Carlsson <andersca@codefactory.se>
13257 * bus/driver.c: (bus_driver_handle_hello),
13258 (bus_driver_send_welcome_message):
13261 2003-01-26 Anders Carlsson <andersca@codefactory.se>
13263 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13264 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13265 (dbus_connection_unref):
13266 * dbus/dbus-marshal.c: (_dbus_marshal_test):
13267 * dbus/dbus-message.c: (dbus_message_unref),
13270 (dbus_message_get_fields):
13271 Remove debugging printout.
13273 (_dbus_message_loader_return_buffer):
13274 Don't store the header string.
13276 (_dbus_message_test):
13279 2003-01-26 Richard Hult <rhult@codefactory.se>
13281 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13282 the file descriptor list, since it can change under us.
13284 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13286 * glib/dbus-gmain.c: (dbus_connection_prepare),
13287 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
13288 (remove_watch), (dbus_connection_hookup_with_g_main):
13289 Rewrite the glib handling to use its own GSource instead of a
13290 GIOChannel so we can catch messages put in the queue while waiting
13293 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13296 * bus/connection.c: (connection_disconnect_handler),
13297 (connection_watch_callback), (bus_connection_setup):
13298 * bus/dispatch.c: (send_one_message),
13299 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
13300 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
13302 * bus/driver.c: (bus_driver_send_service_deleted),
13303 (bus_driver_send_service_created), (bus_driver_handle_hello),
13304 (bus_driver_send_welcome_message),
13305 (bus_driver_handle_list_services), (bus_driver_remove_connection),
13306 (bus_driver_handle_message):
13308 Refactor code, put the message dispatching in its own file. Use
13309 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
13312 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13314 * dbus/dbus-internals.h:
13315 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13317 * dbus/dbus-message.c: (dbus_message_get_sender):
13318 * dbus/dbus-message.h:
13319 Implement dbus_message_get_sender.
13321 * dbus/dbus-protocol.h:
13322 Add message and service defines.
13324 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13326 * dbus/dbus-connection.c: (dbus_connection_send_message):
13327 * dbus/dbus-message-internal.h:
13328 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13329 (dbus_message_write_header):
13330 Remove _dbus_messag_unlock and don't set the client serial on a
13331 message if one already exists.
13333 2003-01-24 Havoc Pennington <hp@pobox.com>
13335 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13338 * bus/driver.c (bus_driver_handle_list_services): fix a leak
13341 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13343 * dbus/dbus-list.c: (alloc_link), (free_link):
13344 Use a memory pool for the links.
13346 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13348 * bus/connection.c: (bus_connection_foreach):
13349 * bus/connection.h:
13350 Add new bus_connection_foreach function.
13352 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13353 Add function that broadcasts a message to all clients.
13355 (bus_driver_send_service_created), (bus_driver_handle_hello),
13356 (bus_driver_send_welcome_message),
13357 (bus_driver_handle_list_services), (bus_driver_message_handler):
13358 Implement functions that take care of listing services, and notifying
13359 clients when new services are created.
13361 * bus/services.c: (bus_services_list):
13363 Add new function that returns an array of strings with the currently
13364 registered services.
13366 * glib/dbus-glib.h:
13367 * glib/dbus-gmain.c:
13368 Update copyright year.
13370 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13372 * dbus/dbus-connection.c: (dbus_connection_send_message):
13373 Unlock the message in case it was sent earlier.
13375 (dbus_connection_send_message_with_reply_and_block):
13376 Remove the reply message from the list.
13378 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13379 Set array_len and new_pos correctly.
13381 (_dbus_marshal_test):
13382 Remove debug output.
13384 * dbus/dbus-message-internal.h:
13385 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13386 New function that returns the reply serial.
13388 (_dbus_message_unlock):
13389 New function that unlocks a message and resets its header.
13391 (dbus_message_append_string_array),
13392 (dbus_message_get_fields_valist),
13393 (dbus_message_iter_get_field_type),
13394 (dbus_message_iter_get_string_array),
13395 (dbus_message_get_fields),
13396 (dbus_message_append_fields_valist):
13397 Handle string arrays.
13399 (dbus_message_set_sender):
13400 Make this function public since the bus daemon needs it.
13402 (decode_header_data):
13403 Set the reply serial to -1 initially.
13405 * dbus/dbus-message.h:
13406 Add dbus_message_set_sender.
13408 2003-01-24 Havoc Pennington <hp@pobox.com>
13410 * doc/dbus-specification.sgml: add some stuff
13412 2003-01-22 Havoc Pennington <hp@pobox.com>
13414 * doc/dbus-specification.sgml: Start to document the protocol.
13416 2003-01-22 Havoc Pennington <hp@pobox.com>
13418 * dbus/dbus-connection.c
13419 (dbus_connection_send_message_with_reply_and_block): add some @todo
13421 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13423 2003-01-21 Havoc Pennington <hp@pobox.com>
13425 (patch untested because can't compile)
13427 * bus/driver.c (create_unique_client_name): make this function
13428 never recycle client names. Also, caller should initialize
13431 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13433 2003-01-21 Anders Carlsson <andersca@codefactory.se>
13435 * dbus/dbus-marshal.c: (_dbus_marshal_double),
13436 (_dbus_marshal_int32), (_dbus_marshal_uint32),
13437 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13438 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13439 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13440 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13441 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13442 * dbus/dbus-marshal.h:
13443 * dbus/dbus-protocol.h:
13444 Add support for marshalling and demarshalling integer, double
13447 2003-01-21 Anders Carlsson <andersca@codefactory.se>
13452 * bus/connection.c: (connection_disconnect_handler):
13453 Remove the connection from the bus driver's list.
13455 (connection_watch_callback): Dispatch messages.
13457 (free_connection_data): Free connection name.
13459 (bus_connection_setup): Add connection to the bus driver's list.
13460 (bus_connection_remove_owned_service):
13461 (bus_connection_set_name), (bus_connection_get_name):
13462 Add functions for setting and getting the connection's name.
13464 * bus/connection.h:
13465 Add function headers.
13467 * bus/driver.c: (create_unique_client_name),
13468 (bus_driver_handle_hello_message),
13469 (bus_driver_send_welcome_message), (bus_driver_message_handler),
13470 (bus_driver_add_connection), (bus_driver_remove_connection):
13473 * bus/services.c: (bus_service_free):
13475 New file that handles communication and registreation with the bus
13478 2003-01-21 Anders Carlsson <andersca@codefactory.se>
13480 * dbus/dbus-connection.c: (dbus_connection_send_message):
13481 Add a new client_serial parameter.
13483 (dbus_connection_send_message_with_reply):
13484 Remove a @todo since we've implemented the blocking function.
13486 (dbus_connection_send_message_with_reply_and_block):
13487 New function that sends a message and waits for a reply and
13488 then returns the reply.
13490 * dbus/dbus-connection.h:
13493 * dbus/dbus-errors.c: (dbus_result_to_string):
13494 * dbus/dbus-errors.h:
13495 Add new DBUS_RESULT.
13497 * dbus/dbus-message-internal.h:
13498 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13499 (_dbus_message_set_sender), (dbus_message_write_header),
13500 (dbus_message_new_reply), (decode_header_data),
13501 (_dbus_message_loader_return_buffer), (_dbus_message_test):
13502 * dbus/dbus-message.h:
13503 Add new functions that set the reply serial and sender.
13504 Also marshal and demarshal them correctly and add test.
13506 * dbus/dbus-protocol.h:
13507 Add new DBUS_MESSAGE_TYPE_SENDER.
13509 * glib/dbus-glib.h:
13510 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13511 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13512 (dbus_connection_hookup_with_g_main):
13513 * glib/test-dbus-glib.c: (main):
13514 Rewrite to use GIOChannel and remove the GSource crack.
13516 * test/echo-client.c: (main):
13517 * test/watch.c: (check_messages):
13518 Update for changed APIs
13520 2003-01-19 Anders Carlsson <andersca@codefactory.se>
13522 * dbus/Makefile.am: Add dbus-timeout.[cħ]
13524 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13525 Create a DBusTimeoutList.
13526 (dbus_connection_set_timeout_functions): Add new function to
13527 set timeout callbacks
13529 * dbus/dbus-connection.h: Add public DBusTimeout API.
13531 * dbus/dbus-message.c: (dbus_message_get_service):
13532 * dbus/dbus-message.h: New function.
13534 * dbus/dbus-server.c: Fix small doc typo.
13536 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13538 2003-01-19 Anders Carlsson <andersca@codefactory.se>
13540 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13541 of the string, just as long as specified.
13543 2003-01-19 Havoc Pennington <hp@pobox.com>
13545 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13548 * dbus/dbus-server.c (dbus_server_set_max_connections)
13549 (dbus_server_get_max_connections, dbus_server_get_n_connections):
13550 keep track of current number of connections, and add API for
13551 setting a max (but haven't implemented enforcing the max yet)
13553 2003-01-18 Havoc Pennington <hp@pobox.com>
13555 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13556 reading/writing if read_watch != NULL or write_watch != NULL.
13558 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13559 the message loader code to actually load message->header and
13560 message->body into the newly-created message.
13562 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13565 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13566 (dbus_connection_get_max_message_size)
13567 (dbus_connection_set_max_live_messages_size)
13568 (dbus_connection_get_max_live_messages_size): implement some
13569 resource limitation functions
13571 * dbus/dbus-resources.c: new file implementing some of the
13572 resource limits stuff
13574 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13575 missing docs, add @todo to handle OOM etc.
13577 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13580 2003-01-18 Havoc Pennington <hp@pobox.com>
13582 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13583 connection if it hasn't been already.
13585 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13586 replace with DisconnectFunction.
13588 2003-01-18 Havoc Pennington <hp@pobox.com>
13590 Building --disable-verbose-mode --disable-asserts --disable-tests
13591 cuts the library from 112K to 45K or so
13593 * configure.in: check for varargs macro support,
13594 add --enable-verbose-mode, --enable-asserts.
13596 * dbus/dbus-internals.h (_dbus_assert): support
13597 DBUS_DISABLE_ASSERT
13598 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13600 2003-01-18 Havoc Pennington <hp@pobox.com>
13602 * dbus/dbus-test.c: include config.h so that tests actually run
13604 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13605 so the failure mode when that assumption fails will be plenty
13608 2003-01-18 Havoc Pennington <hp@pobox.com>
13610 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13612 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13615 * test/Makefile.am: don't use special variable "TESTS" for echo-*
13616 since we don't want to use those in make check
13618 2003-01-15 Havoc Pennington <hp@redhat.com>
13624 2003-01-15 Havoc Pennington <hp@redhat.com>
13626 * test/Makefile.am: fix so that test source code ends up in the
13627 distribution on make distcheck
13629 2003-01-15 Havoc Pennington <hp@redhat.com>
13635 2003-01-15 Havoc Pennington <hp@redhat.com>
13637 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13638 fix build when --disable-tests
13640 * Makefile.am (EXTRA_DIST): put HACKING in here
13642 * HACKING: document procedure for making a tarball release.
13644 2003-01-14 Anders Carlsson <andersca@codefactory.se>
13646 * bus/connection.c: (connection_error_handler),
13647 (bus_connection_setup):
13648 * bus/main.c: (main):
13649 Make sure that the DBusConnectionData struct is NULLed
13650 out to prevent a segfault.
13652 * dbus/dbus-errors.c: (dbus_result_to_string):
13653 * dbus/dbus-errors.h:
13654 * dbus/dbus-message.c: (dbus_message_get_fields),
13655 (dbus_message_get_fields_valist), (_dbus_message_test):
13656 * dbus/dbus-message.h:
13657 Make dbus_message_get_fields return a result code so we can
13658 track invalid fields as well as oom.
13660 2003-01-11 Havoc Pennington <hp@pobox.com>
13662 * configure.in: change --enable-test/--enable-ansi action-if-given
13663 to enable_foo=$enableval instead of enable_foo=yes
13665 2003-01-08 Havoc Pennington <hp@pobox.com>
13667 * dbus/dbus-string.c (_dbus_string_align_length): new function
13669 * dbus/dbus-test-main.c: move main() for test app here
13671 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13672 symbol to run tests, because dbus-test isn't in the main
13675 Code review nitpicks.
13677 * dbus/dbus-message.c (dbus_message_write_header): add newlines
13678 for people with narrow emacs ;-). Assert client_serial was filled
13679 in. Assert message->name != NULL.
13680 (dbus_message_append_fields): have "first_field_type" arg separate
13681 from va list, needed for C++ binding that also uses varargs IIRC
13682 and helps with type safety
13683 (dbus_message_new): add @todo about using DBusString to store
13684 service/name internally
13685 (dbus_message_new): don't leak ->service and ->name on OOM later
13687 (dbus_message_unref): free the service name
13688 (dbus_message_get_fields): same change to varargs
13689 i.e. first_field_type
13690 (_dbus_message_loader_return_buffer): assert that the message data
13691 is aligned (if not it's a bug in our code). Put in verbose griping
13692 about why we set corrupted = TRUE.
13693 (decode_header_data): add FIXME that char* is evil. Was going to
13694 add FIXME about evil locale-specific string.h strncmp, but just
13695 switched to wacky string-as-uint32 optimization. Move check for
13696 "no room for field name" above get_const_data_len() to avoid
13697 assertion failure in get_const_data_len if we have trailing 2
13698 bytes or the like. Check for service and name fields being
13699 provided twice. Don't leak service/name on error. Require field
13700 names to be aligned to 4 bytes.
13702 * dbus/dbus-marshal.c: move byte swap stuff to header
13703 (_dbus_pack_int32): uscore-prefix
13704 (_dbus_unpack_int32): uscore-prefix
13705 (_dbus_unpack_uint32): export
13706 (_dbus_demarshal_string): add @todo complaining about use of
13708 (_dbus_marshal_get_field_end_pos): add @todo about bad error
13709 handling allowing corrupt data to go unchecked
13711 2003-01-08 Havoc Pennington <hp@redhat.com>
13713 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13714 to the select() as needed for authentication. (should be using
13715 _dbus_poll() not select, but for another day)
13717 * dbus/dbus.h: include dbus/dbus-protocol.h
13719 2003-01-08 Anders Carlsson <andersca@codefactory.se>
13721 * dbus/Makefile.am (dbusinclude_HEADERS): Install
13724 2003-01-08 Anders Carlsson <andersca@codefactory.se>
13726 * dbus/dbus-internals.c: (_dbus_type_to_string):
13727 New function that returns a string describing a type.
13729 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13730 * dbus/dbus-marshal.h:
13731 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13732 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13733 (dbus_message_iter_get_byte_array):
13734 * dbus/dbus-message.h:
13735 Add new convenience functions for appending and getting message fields.
13736 Also add demarshalling routines for byte arrays.
13738 2003-01-07 Anders Carlsson <andersca@codefactory.se>
13740 * dbus/dbus-connection-internal.h:
13741 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13742 (_dbus_connection_get_next_client_serial),
13743 (dbus_connection_send_message):
13744 * dbus/dbus-internals.h:
13745 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13746 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13747 (_dbus_marshal_uint32), (_dbus_demarshal_double),
13748 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13749 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13750 (_dbus_verbose_bytes), (_dbus_marshal_test):
13751 * dbus/dbus-marshal.h:
13752 * dbus/dbus-message-internal.h:
13753 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13754 (dbus_message_write_header), (_dbus_message_lock),
13755 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13756 (dbus_message_get_name), (dbus_message_append_int32),
13757 (dbus_message_append_uint32), (dbus_message_append_double),
13758 (dbus_message_append_string), (dbus_message_append_byte_array),
13759 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13760 (dbus_message_iter_unref), (dbus_message_iter_has_next),
13761 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13762 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13763 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13764 (decode_header_data), (_dbus_message_loader_return_buffer),
13765 (message_iter_test), (_dbus_message_test):
13766 * dbus/dbus-message.h:
13767 * dbus/dbus-protocol.h:
13768 * dbus/dbus-test.c: (main):
13769 * dbus/dbus-test.h:
13770 * glib/test-dbus-glib.c: (message_handler), (main):
13771 * test/echo-client.c: (main):
13772 * test/watch.c: (check_messages):
13773 Make messages sendable and receivable for real.
13775 2003-01-07 Anders Carlsson <andersca@codefactory.se>
13777 * dbus/dbus-marshal.c: (_dbus_marshal_double),
13778 (_dbus_marshal_string), (_dbus_marshal_byte_array):
13779 * dbus/dbus-message.c: (dbus_message_append_int32),
13780 (dbus_message_append_uint32), (dbus_message_append_double),
13781 (dbus_message_append_string), (dbus_message_append_byte_array):
13782 Handle OOM restoration.
13784 2003-01-07 Anders Carlsson <andersca@codefactory.se>
13786 * dbus/dbus-marshal.c: (_dbus_marshal_string),
13787 (_dbus_demarshal_string), (_dbus_marshal_test):
13788 * dbus/dbus-marshal.h:
13789 * dbus/dbus-message.c: (dbus_message_get_name),
13790 Document these functions.
13792 (dbus_message_append_int32), (dbus_message_append_uint32),
13793 (dbus_message_append_double), (dbus_message_append_string),
13794 (dbus_message_append_byte_array):
13795 * dbus/dbus-message.h:
13796 Add functions for adding message fields of different types.
13798 * dbus/dbus-protocol.h:
13799 Add the different types.
13801 2003-01-05 Havoc Pennington <hp@pobox.com>
13803 * bus/connection.c: implement routines for handling connections,
13804 first thing is keeping a list of owned services on each connection
13805 and setting up watches etc.
13807 * bus/services.c: implement a mapping from service names to lists
13810 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13812 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13813 to use static mutexes for global data
13815 * dbus/dbus-connection.c (dbus_connection_set_data): add new
13816 collection of functions to set/get application-specific data
13817 on the DBusConnection.
13819 2003-01-04 Havoc Pennington <hp@pobox.com>
13821 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13822 (_dbus_poll): new function
13824 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13827 * bus/loop.c: initial code for the daemon main loop
13829 2003-01-04 Havoc Pennington <hp@pobox.com>
13831 * test/watch.c (error_handler): make it safe if the error handler
13832 is called multiple times (if we s/error handler/disconnect
13833 handler/ we should just guarantee it's called only once)
13835 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13836 error handler on disconnect (it's quite possible we should
13837 just change the error handler to a "disconnect handler," I'm
13838 not sure we have any other meaningful errors)
13840 * configure.in: check for getpwnam_r
13842 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13843 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13844 mechanism as in SASL spec, using socket credentials
13846 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13847 (_dbus_send_credentials_unix_socket): new function
13849 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13851 (_dbus_write): only check errno if <0 returned
13852 (_dbus_write_two): ditto
13854 2003-01-02 Anders Carlsson <andersca@codefactory.se>
13856 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13857 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13858 (_dbus_marshal_test):
13859 * dbus/dbus-marshal.h:
13860 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13861 to _dbus_marshal_utf8_string. Also fix some tests.
13863 2002-12-28 Harri Porten <porten@kde.org>
13865 * configure.in: added check for C++ compiler and a very cheesy
13866 check for the Qt integration
13868 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13870 * qt/Makefile.am: added
13872 * qt/.cvsignore: added
13874 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13875 latter, added #ifdef QT_THREAD_SUPPORT guard.
13877 * dbus/Makefile.am: added missing headers for make dist
13879 2002-12-28 Kristian Rietveld <kris@gtk.org>
13881 * dbus/Makefile.am: fixup export-symbols-regex.
13883 2002-12-27 Anders Carlsson <andersca@codefactory.se>
13885 * acinclude.m4: Add this file and put the
13886 PKG_CHECK_MODULE macro in it.
13888 2002-12-27 Anders Carlsson <andersca@codefactory.se>
13890 * dbus/dbus-marshal.c: (_dbus_marshal_string),
13891 (_dbus_demarshal_double), (_dbus_demarshal_int32),
13892 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13893 (_dbus_marshal_test):
13894 Make the demarshalling routines align the pos argument.
13895 Add string marshalling tests and fix the obvious bugs
13898 2002-12-26 Havoc Pennington <hp@pobox.com>
13900 * dbus/dbus-auth.c: fixes fixes fixes
13902 * dbus/dbus-transport-unix.c: wire up support for
13903 encoding/decoding data on the wire
13905 * dbus/dbus-auth.c (_dbus_auth_encode_data)
13906 (_dbus_auth_decode_data): append to target string
13907 instead of nuking it.
13909 2002-12-26 Havoc Pennington <hp@pobox.com>
13911 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13912 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13915 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13916 avoid swap_bytes() overhead (ignoring possible assembly stuff for
13917 now). Main point is because I wanted unpack_uint32 to implement
13918 _dbus_verbose_bytes
13919 (_dbus_verbose_bytes): new function
13921 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13923 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13924 mechanism to handle a corrupt message stream
13925 (_dbus_message_loader_new): fix preallocation to only prealloc,
13928 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13929 (_dbus_string_test): enhance tests for copy/move and fix the
13932 * dbus/dbus-transport-unix.c: Hold references in more places to
13933 avoid reentrancy problems
13935 * dbus/dbus-transport.c: ditto
13937 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13938 leak reference count in no-message case
13940 * test/watch.c (do_mainloop): handle adding/removing watches
13941 during iteration over the watches. Also, ref the connection/server
13942 stored on a watch, so we don't try to mangle a destroyed one.
13944 * dbus/dbus-transport-unix.c (do_authentication): perform
13947 * dbus/dbus-auth.c (get_state): add a state
13948 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13949 (_dbus_auth_get_unused_bytes): append the unused bytes
13950 to the passed in string, rather than prepend
13952 * dbus/dbus-transport.c (_dbus_transport_init_base): create
13953 the auth conversation DBusAuth
13955 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13956 (_dbus_transport_new_for_domain_socket): when creating a
13957 transport, pass in whether it's a client-side or server-side
13958 transport so we know which DBusAuth to create
13960 2002-12-03 Havoc Pennington <hp@pobox.com>
13962 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13963 _after_ finalizing the derived members
13964 (unix_connection_set): unref watch if we fail to add it
13966 * dbus/dbus-connection.c (dbus_connection_unref): delete the
13967 transport first, so that the connection owned by the
13968 transport will be valid as the transport finalizes.
13970 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13971 if necessary, and remove watches from the connection.
13973 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13975 2002-12-26 Anders Carlsson <andersca@codefactory.se>
13977 * dbus/dbus-marshal.c: (_dbus_marshal_string),
13978 (_dbus_demarshal_double), (_dbus_demarshal_int32),
13979 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13980 (_dbus_marshal_test):
13981 * dbus/dbus-marshal.h:
13982 Add string marshal functions and have the demarshal functions
13983 return the new position.
13985 2002-12-25 Havoc Pennington <hp@pobox.com>
13987 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13988 it is a simple protocol that just maps directly to SASL.
13990 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13991 initial implementation, not actually used yet.
13993 * dbus/dbus-string.c (_dbus_string_find): new function
13994 (_dbus_string_equal): new function
13995 (_dbus_string_base64_encode): new function
13996 (_dbus_string_base64_decode): new function
13998 2002-12-25 Anders Carlsson <andersca@codefactory.se>
14000 * dbus/Makefile.am:
14001 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
14002 (_dbus_marshal_int32), (_dbus_marshal_uint32),
14003 (_dbus_demarshal_double), (_dbus_demarshal_int32),
14004 (_dbus_demarshal_uint32), (_dbus_marshal_test):
14005 * dbus/dbus-marshal.h:
14006 * dbus/dbus-protocol.h:
14007 * dbus/dbus-test.c: (main):
14008 * dbus/dbus-test.h:
14009 Add un-optimized marshalling/demarshalling routines.
14011 2002-12-25 Harri Porten <porten@kde.org>
14013 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
14015 2002-12-24 Zack Rusin <zack@kde.org>
14017 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
14018 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
14021 2002-12-24 Havoc Pennington <hp@pobox.com>
14023 * glib/dbus-gthread.c: fix include
14025 * glib/dbus-glib.h: rename DBusMessageHandler for now.
14026 I think glib API needs to change, though, as you don't
14027 want to use DBusMessageFunction, you want to use the
14028 DBusMessageHandler object. Probably
14029 dbus_connection_open_with_g_main_loop()
14030 and dbus_connection_setup_g_main_loop() or something like that
14031 (but think of better names...) that just create a connection
14032 that has watch/timeout functions etc. already set up.
14034 * dbus/dbus-connection.c
14035 (dbus_connection_send_message_with_reply): new function just to
14036 show how the message handler helps us deal with replies.
14038 * dbus/dbus-list.c (_dbus_list_remove_last): new function
14040 * dbus/dbus-string.c (_dbus_string_test): free a string that
14043 * dbus/dbus-hash.c: use memory pools for the hash entries
14044 (rebuild_table): be more paranoid about overflow, and
14045 shrink table when we can
14046 (_dbus_hash_test): reduce number of sprintfs and write
14047 valid C89. Add tests for case where we grow and then
14048 shrink the hash table.
14050 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
14052 * dbus/dbus-connection.c (dbus_connection_register_handler)
14053 (dbus_connection_unregister_handler): new functions
14055 * dbus/dbus-message.c (dbus_message_get_name): new
14057 * dbus/dbus-list.c: fix docs typo
14059 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
14060 an object representing a handler for messages.
14062 2002-12-16 Anders Carlsson <andersca@codefactory.se>
14064 * glib/dbus-glib.h:
14065 * glib/dbus-gthread.c: (dbus_gthread_init):
14066 Don't use the gdbus prefix for public functions.
14068 2002-12-16 Anders Carlsson <andersca@codefactory.se>
14072 Add GLib checks and fixup .pc files
14074 * glib/Makefile.am:
14075 * glib/dbus-glib.h:
14076 * glib/dbus-gmain.c: (gdbus_connection_prepare),
14077 (gdbus_connection_check), (gdbus_connection_dispatch),
14078 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14079 (dbus_connection_gsource_new):
14080 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14081 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14082 * glib/test-dbus-glib.c: (message_handler), (main):
14085 2002-12-15 Harri Porten <porten@kde.org>
14087 * autogen.sh: check for libtoolize before attempting to use it
14089 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14092 * .cvsignore: ignore more stamp files
14094 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14096 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14097 without make install.
14099 2002-12-15 Havoc Pennington <hp@pobox.com>
14101 * dbus/dbus-threads.c: add thread stubs that a higher library
14102 layer can fill in. e.g. the GLib wrapper might fill them in with
14103 GThread stuff. We still need to use this thread API to
14104 thread-safe-ize the library.
14106 2002-12-12 Havoc Pennington <hp@pobox.com>
14108 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14109 below new interfaces and include fewer system headers.
14111 * dbus/dbus-sysdeps.c (_dbus_read): new function
14112 (_dbus_write): new function
14113 (_dbus_write_two): new function
14114 (_dbus_connect_unix_socket): new function
14115 (_dbus_listen_unix_socket): new function
14117 * dbus/dbus-message-internal.h: change interfaces to use
14120 2002-12-11 Havoc Pennington <hp@pobox.com>
14122 * dbus/dbus-types.h: add dbus_unichar
14124 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14126 * dbus/dbus-connection.c (dbus_connection_send_message): return
14129 * dbus/dbus-transport.c: include dbus-watch.h
14131 * dbus/dbus-connection.c: include dbus-message-internal.h
14133 * HACKING: add file with coding guidelines stuff.
14135 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
14136 handling here, for security purposes (as in vsftpd). Not actually
14137 using this class yet.
14139 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14140 system/libc usage here, as in vsftpd, for ease of auditing (and
14141 should also simplify portability). Haven't actually moved all the
14142 system/libc usage into here yet.
14144 2002-11-25 Havoc Pennington <hp@pobox.com>
14146 * dbus/dbus-internals.c (_dbus_verbose): fix to not
14147 always print the first verbose message.
14149 2002-11-24 Havoc Pennington <hp@pobox.com>
14151 * test/echo-client.c, test/echo-server.c: cheesy test
14154 * configure.in (AC_CHECK_FUNCS): check for writev
14156 * dbus/dbus-message.c (_dbus_message_get_network_data): new
14159 * dbus/dbus-list.c (_dbus_list_foreach): new function
14161 * dbus/dbus-internals.c (_dbus_verbose): new function
14163 * dbus/dbus-server.c, dbus/dbus-server.h: public object
14164 representing a server that listens for connections.
14166 * dbus/.cvsignore: create
14168 * dbus/dbus-errors.h, dbus/dbus-errors.c:
14169 public API for reporting errors
14171 * dbus/dbus-connection.h, dbus/dbus-connection.c:
14172 public object representing a connection that
14173 sends/receives messages. (Same object used for
14174 both client and server.)
14176 * dbus/dbus-transport.h, dbus/dbus-transport.c:
14177 Basic abstraction for different kinds of stream
14178 that we might read/write messages from.
14180 2002-11-23 Havoc Pennington <hp@pobox.com>
14182 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14185 * dbus/dbus-test.c (main): add list test, and include
14186 dbus-test.h as intended
14188 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14189 (_dbus_hash_table_remove_int): return value indicates
14190 whether the entry existed to remove
14192 * dbus/dbus-list.c: add linked list utility class,
14193 with docs and tests
14195 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14198 2002-11-23 Havoc Pennington <hp@pobox.com>
14200 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14201 DBUS_END_DECLS to nothing, that should fix this once and for all
14203 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14205 * dbus/dbus-message.c, dbus/dbus-hash.c:
14206 add some missing @brief
14208 2002-11-23 Havoc Pennington <hp@pobox.com>
14210 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14211 to avoid confusing Doxygen
14213 * dbus/dbus-hash.c: @} not }@
14215 * dbus/dbus-message.c (struct DBusMessage): split out
14218 2002-11-23 Havoc Pennington <hp@pobox.com>
14220 * configure.in: pile on more warning flags if using gcc
14222 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14223 to document static functions
14225 * configure.in: add summary to end of configure so it
14226 looks nice and attractive
14228 * dbus/dbus-hash.c: finish implementation and write unit
14231 * configure.in: add --enable-tests to enable unit tests
14233 * dbus/dbus-test.c: test program to run unit tests
14234 for all files in dbus/*, initially runs a test for
14237 * dbus/dbus-internals.h: file to hold some internal utility stuff
14239 2002-11-22 Havoc Pennington <hp@redhat.com>
14241 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14242 "ported" away from Tcl
14244 * dbus/dbus-types.h: header for types such as dbus_bool_t
14246 2002-11-22 Havoc Pennington <hp@redhat.com>
14248 * dbus/dbus.h: fixups for doc warnings
14250 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14252 (QUIET): make it quiet so we can see warnings
14254 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14256 2002-11-22 Havoc Pennington <hp@redhat.com>
14258 * Makefile.am: include "Doxyfile" target in all-local
14260 * configure.in: generate the Doxyfile
14262 * Doxyfile.in: move Doxyfile here, so we can use
14263 configure to generate a Doxyfile with the right
14264 version number etc.
14266 2002-11-22 Havoc Pennington <hp@redhat.com>
14268 * dbus/dbus-message.c: move inline docs into .c file
14270 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14271 so all docs are under doc/
14272 (MAN_EXTENSION): generate man pages. Use extension
14273 ".3dbus" which matches ".3qt" on my system,
14274 I guess this is OK, I don't know really.
14275 (FILE_PATTERNS): look for .c files not .h, makes sense
14276 for plain C I think
14278 2002-11-22 Havoc Pennington <hp@pobox.com>
14280 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14281 because any app can be a server, and any app can be a client,
14282 the bus is a special kind of server.
14284 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
14286 * Doxyfile : adding. Still needs Makefile rules to be generated
14287 automatically (just run "doxygen" in the toplevel dir for now to
14290 * dbus/dbus-message.h : Adding sample docs (javadoc since
14291 resembles gtk-doc a little more)
14293 * dbus/dbus.h : Adding sample docs
14295 2002-11-21 Havoc Pennington <hp@redhat.com>
14297 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
14298 so we can allow ourselves to include files directly,
14299 instead of having to use dbus.h
14301 * dbus/dbus.h: fill in
14303 * dbus/dbus-message.h: sketch out a sample header file.
14304 Include griping if you include it directly instead of
14307 * dbus/dbus-macros.h: new file with macros for extern "C",
14308 TRUE/FALSE, NULL, etc.
14310 * doc/file-boilerplate.c: put include guards in here
14312 2002-11-21 Havoc Pennington <hp@redhat.com>
14314 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14316 * COPYING: include the GPL as well, and license code
14317 under both AFL and GPL.
14319 2002-11-21 Havoc Pennington <hp@redhat.com>
14321 * acconfig.h: get rid of this
14323 * autogen.sh (run_configure): add --no-configure option
14325 * configure.in: remove AC_ARG_PROGRAM to make
14326 autoconf complain less. add AC_PREREQ.
14327 add AC_DEFINE third arg.
14329 2002-11-21 Anders Carlsson <andersca@codefactory.se>
14332 Fix references so we can distcheck.
14334 2002-11-21 Havoc Pennington <hp@redhat.com>
14336 * Initial module creation