1 2006-09-07 John (J5) Palmieri <johnp@redhat.com>
3 * dbus/dbus-connection-internal.h: Add prototype for
4 _dbus_connection_test_get_locks to remove warning
6 2006-09-07 John (J5) Palmieri <johnp@redhat.com>
8 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
9 close child_err_report_pipe[WRITE_END] on exec (Patch from
10 Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
12 2006-09-07 John (J5) Palmieri <johnp@redhat.com>
14 * Clean up close calls to use _dbus_close (Patch from
15 Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
17 2006-09-06 John (J5) Palmieri <johnp@redhat.com>
20 - Remove pending call locking todo item
21 - dbus_connection_open now holds hard ref. Remove todo item
22 - do proper locking on _dbus_bus_check_connection_and_unref
23 and handle DBUS_BUS_STARTER. Remove todo item
24 - Warn on closing of a shared connection. Remove todo item
26 * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
27 dbus/dbus-connection.c: Use the dbus_connection_close_internal
28 so we don't get the warning when closing shared connections
30 * test/test-service.c, test/test-shell-service.c: Applications
31 don't close shared connections themselves so we unref instead of
34 * test/test-utils.c (test_connection_shutdown): Close the connection
36 * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
37 _dbus_bus_check_connection_and_unref_unlocked since we only call this
38 method on a locked connection.
39 Make sure we call _dbus_connection_unref_unlocked instead of
40 dbus_connection_unref also.
41 Handle DBUS_BUS_STARTER correctly
43 * dbus/dbus-connection.c (connection_record_shared_unlocked):
44 Mark as shared and hard ref the connection
45 (connection_forget_shared_unlocked): Remove the hard ref from the
47 (_dbus_connection_close_internal_and_unlock): New internal function
48 which takes a locked connection and unlocks it after closing it
49 (_dbus_connection_close_internal): New internal function which acts
50 like the origonal dbus_connection_close method by grabbing a connection
51 lock and calling _dbus_connection_close_internal_and_unlock
52 (dbus_connection_close): Public close method, warns when the app
53 trys to close a shared connection
55 2006-09-06 John (J5) Palmieri <johnp@redhat.com>
58 (bus_driver_generate_introspect_string): New method for populating
59 a DBusString with the introspect data
60 (bus_driver_handle_introspect): Move introspect generation code to
61 bus_driver_generate_introspect_string
64 (introspect): New function which prints out the intropect data and
66 (main): Add a --introspect switch
68 2006-09-06 John (J5) Palmieri <johnp@redhat.com>
70 * doc/TODO: Removed dtd publishing item.
71 It seems the dtd has already been added at
72 http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
74 2006-09-05 John (J5) Palmieri <johnp@redhat.com>
76 * doc/TODO, various source files: Audited todo's and FIXME's and
77 prepended the ones we should be looking at with 1.0. Those
78 prepended with 1.0? need clerification or might not be needed
81 2006-09-05 John (J5) Palmieri <johnp@redhat.com>
83 * dbus/dbus-pending-call.c: Add some checks so we don't crash on
84 NULL in the public API (Patch from Kimmo Hämäläinen
85 <kimmo dot hamalainen at nokia dot com>)
87 2006-09-05 John (J5) Palmieri <johnp@redhat.com>
89 * configure.in: Fix for OS-X compile time endian issues (patch from
90 Benjamin Reed <ranger at befunk dot com>)
92 2006-09-05 John (J5) Palmieri <johnp@redhat.com>
94 * configure.in: Check for no-common compiler flag (OS-X fix from
95 Benjamin Reed <ranger at befunk dot com>)
97 2006-09-01 John (J5) Palmieri <johnp@redhat.com>
99 * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
100 <fcrozat at mandriva dot com>)
102 2006-08-29 Havoc Pennington <hp@redhat.com>
104 * test/test-service.c (path_message_func): fix lack of return value
106 * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
107 formatting, remove #ifdef, and fix docs. #ifdef doesn't make
108 any more sense than on anything else in this file.
109 (_dbus_get_tmpdir): add const to return value, and keep the
110 results of the various getenv around in a static variable.
112 2006-08-29 Havoc Pennington <hp@redhat.com>
114 * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
115 from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
117 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
119 * test/Makefile.am: change find to use syntax that works with non
122 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
124 * dbus/dbus-transport.c: fix invalid deref when checking if
125 a vtable method exists (Patch from Christian Ehrlicher
126 <ch dot ehrlicher at gmx dot de>)
128 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
130 * configure.in, dbus/Makefile.am, test/name-test/run-test.sh,
131 test/name-test/Makefile.am: Fixed some issues with getting get dbus
132 to build with builddir != srcdir (Taken from a patch by Bernard Leak
133 <bernard at brenda-arkle dot demon dot co dot uk>)
135 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
137 * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
140 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
142 * configure.ac, bus/Makefile.am: Generalize kqueue support so that
143 it works on any system providing this interface, not only FreeBSD.
144 For example, NetBSD. (Patch by Julio M. Merino Vidal <jmmv at NetBSD dot org>)
146 2006-08-20 Havoc Pennington <hp@redhat.com>
148 * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
151 2006-08-18 John (J5) Palmieri <johnp@redhat.com>
155 2006-08-18 John (J5) Palmieri <johnp@redhat.com>
157 * dbus/dbus-threads.c (dbus_threads_init): change the documentation
158 to reflect the init late change
160 * bus/bus.c (bus_context_new): Check user before we fork so we can
161 print out an error message a user will be able to see
163 2006-08-18 John (J5) Palmieri <johnp@redhat.com>
165 Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de)
167 * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
168 Add two more global locks for use on windows platforms. These are
169 unused on non-windows platforms but are not ifdefed out to avoid
170 potential bugs (i.e. the few bytes lost does not warrent the extra
171 maintanence and complexity that having seperate sets of locks would
174 2006-08-18 John (J5) Palmieri <johnp@redhat.com>
176 * bus/services.c (bus_registry_acquire_service): Return an error
177 when an application tries to register the org.freedesktop.DBus Bus Name
179 * bus/services.c (bus_registry_release_service): Return an error
180 when an application tries to release the org.freedesktop.DBus Bus Name
182 2006-08-17 Alp Toker <alp@atoker.com>
184 * doc/dbus-specification.xml: Fix some minor typos.
186 2006-08-17 John (J5) Palmieri <johnp@redhat.com>
188 * configure.in: use $with_init_scripts instead of $operating_system
189 to determine where to store the pid since the init scripts manipulate
190 the pid file (patch from Marcelo Ricardo Leitner
191 <marcelo dot leitner at terra dot com dot br>.
193 2006-08-16 John (J5) Palmieri <johnp@redhat.com>
195 * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
196 static DBusList *uninitialized_condvar_list to support new late
197 initialization threading model. In this model threads can be initialized
198 even after the D-Bus API has been used but still needs to be initialized
199 before the second thread has been started. Mutexes and condvar addresses
200 are stored in the two static lists and are replaced with actuall locks
201 when threads are initalized.
202 (_dbus_mutex_new_at_location): New method for creating a mutex and placing
203 the location into the static list
204 (_dbus_mutex_free_at_location): New method for removing a mutex location
205 from the static list and freeing the mutex
206 (_dbus_condvar_new_at_location): New method for creating a conditional
207 variable and placing the location into the static list
208 (_dbus_condvar_free_at_location): New method for removing a conditional
209 variable location from the static list and freeing the conditional variable
210 (init_uninitialized_locks): Atomic method which goes through the static
211 lists of mutex and condvar location and updates them with actuall locks
212 (init_global_locks): changed to init_locks
214 * dbus/dbus-connection.c:
215 (_dbus_connection_test_get_locks): New method for tests to check connections
216 (_dbus_connection_new_for_transport): Use the new at_location mutex and
218 (dbus_connection_allocate_data_slot): Pass in the global lock address
219 to _dbus_data_slot_allocator_alloc
221 * dbus/dbus-dataslot.c:
222 (_dbus_data_slot_allocator_alloc): Use the address of the mutex
223 instead of the mutex itself
225 * dbus/dbus-message.c:
226 (dbus_message_allocate_data_slot): Pass in the global lock address
227 to _dbus_data_slot_allocator_alloc
229 * dbus/dbus-pending-call.c:
230 (dbus_pending_call_allocate_data_slot): Pass in the global lock address
231 to _dbus_data_slot_allocator_alloc
233 * dbus/dbus-server.c:
234 (_dbus_server_init_base): Use the new at_location mutex API
235 (dbus_server_allocate_data_slot): Pass in the global lock address
236 to _dbus_data_slot_allocator_alloc
238 * test/name-test/test-threads-init.c: New test case for late thread
241 2006-08-14 John (J5) Palmieri <johnp@redhat.com>
243 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
244 Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
245 causes compile problems when asserts are turned off
246 Keeping _dbus_warn for printing out the message so even if
247 asserts are turned off the user gets the messages that something is
250 2006-08-14 John (J5) Palmieri <johnp@redhat.com>
252 Patches by Kjartan Maraas <kmaraas at gnome dot org>
254 * bus/services.c (bus_service_list_queued_owners):
255 Add a pointer cast to fix compiler warning
257 * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
258 return a NULL instead of FALSE since the return type
259 is not expecting a boolean
261 * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
262 Remove unused variable
264 * dbus/dbus-marshal-recursive-util.c (node_new):
265 return a NULL instead of FALSE since the return type
266 is not expecting a boolean
268 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
269 Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
270 because we are expecting a pointer not a boolean
272 * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir):
273 add void as the parameter so some compilers
276 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
277 _dbus_transport_new_for_tcp_socket):
278 Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
279 because we are expecting a pointer not a boolean
281 * test/shell-test.c (test_command_line):
282 cast the second argument to _dbus_list_append to avoid compiler
285 * test/test-names.c (main): remove unused variable
287 * test/test-service.c (check_hello_from_self_reply):
288 Initialize echo_message and echo_reply to NULL
290 * test/test-shell-service.c (handle_echo):
291 Remove unused variable and cast the third parameter passed to
292 dbus_connection_get_object_path_data to avoid compiler warrnings
294 * test/name-test/test-names.c (clear_message_queue):
295 Remove unused function
297 * test/name-test/test-pending-call-dispatch.c:
298 Fix format string in printf
301 2006-08-14 John (J5) Palmieri <johnp@redhat.com>
304 * test/name-test/test-names.c:
305 Remove test method dbus_bus_connection_get_unique_name because
306 we already have public method dbus_bus_get_unique_name that
307 does the exact same thing
309 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
311 * dbus/dbus-signature.c:
312 fix typos in Julio's previous patch which cause make check to fail
314 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
316 * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.
317 In any case it was wrong since this is a test checking to see if
318 address parsing is correct. There was no need to get the true
321 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
323 * dbus/dbus-macros.h: Revert the addition of stddef.h
324 as we should not be adding it to library headers
326 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
328 * dbus/dbus-signature.c:
329 Fix the unit tests so that they work if assertions are not enabled.
330 (patch from Julio M. Merino Vidal <jmmv at NetBSD dot org>)
332 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
334 * tools/run-with-tmp-session-bus.sh:
335 * test/name-test/run-test.sh:
336 Remove bashisms (patch from Julio M. Merino Vidal
337 <jmmv at NetBSD dot org>)
339 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
341 * configure.in: add a version (>= 2.6.0) check for libxml2
343 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
345 * configure.in: make sure the compiler supports -Wfloat-equal
347 * bus/dir-watch-dnotify.c: move functional code after
348 variable declerations (C99 fix) (patches from Jens Granseuer
349 <jensgr at gmx dot net>
351 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
353 * dbus/dbus-macros.h:
354 add #include <stddef.h> so that Sun compilers don't complain about
357 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
359 * dbus/dbus-sysdeps.c:
360 * dbus/dbus-address.c:
363 don't hardcode tmp directory (patch from Dave Meikle
364 <dmk at davemeikle dot co dot uk>)
366 2006-08-09 John (J5) Palmieri <johnp@redhat.com>
368 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
369 Change an assert to a detailed warning and abort.
370 When allocator->lock != mutex it indicates that the user has failed
371 to initalize threads before using the D-Bus library. This warning
372 helps the user identify the issue and fix their app.
374 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
376 These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
377 with cleanups of bugs found from Coverity reports:
379 * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
380 close the file on error to avoid a leak
382 * bus/expirelist.c (bus_expire_list_test):
383 Check for NULL on dbus_new0
385 * bus/activation.c (update_directory):
388 * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
391 * bus/bus.c (process_config_every_time):
394 * bus/desktop-file.c (parse_key_value):
397 * bus/selinux.c (bus_selinux_id_table_insert):
400 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
402 * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
405 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
407 * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
410 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
412 * Doxyfile.in: fix the INPUT line so we can generate docs
413 when sourcedir != builddir (patch from Cygwin Ports maintainer
414 <yselkowitz at users dot sourceforge dot net>
416 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
418 * dbus/dbus-sysdeps.h:
419 * dbus/dbus-sysdeps.c:
420 * dbus/dbus-string.c:
421 s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
422 GLib's function which does the same thing
426 * bus/dir-watch-default.c:
427 * bus/dir-watch-dnotify.c:
428 * bus/dir-watch-kqueue.c:
429 Add kqueue directory watching for freebsd and split the directory
430 watching code into seperate files per method/arch
431 (patches from Timothy Redaelli <drizzt at gufi dotorg>)
433 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
437 * tools/dbus-launch.c:
439 allow --with-dbus-daemondir switch to be used to make the
440 daemon install to a seperate bindir like /usr/libexec
441 (patch from Brian Cameron <brian dot cameron at sun dot com)
443 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
445 * bus/Makefile.am (install-data-hook): removed the slash after
446 $(DESTDIR) so we don't get the double slash which does not work
447 in windows (patch from Andras Porjesz
448 <andras dot porjesz at siemens dot com>)
450 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
452 * dbus/dbus-sysdeps.h:
453 * dbus/dbus-sysdeps.c:
454 add _dbus_printf_length (patch from Peter Kümmel
455 <syntheticpp at gmx dot net>)
457 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
459 * dbus/dbus-internals.c: unistd.h is not used
460 (_dbus_verbose_real): only enable verbose printing
461 if DBUS_VERBOSE environment var is set to '1'
462 (patch from Peter Kümmel <syntheticpp at gmx dot net>)
464 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
466 * configure.in: add a GCC flag check for -Wdeclaration-after-statement
467 so we still compile on older gcc (patch from Frederic Peters
468 <fpeters at 0d dot be>
470 2006-08-04 Havoc Pennington <hp@redhat.com>
472 * configure.in: add -Wdeclaration-after-statement
474 * dbus/dbus-connection.c: change all the pending call stuff to
475 reflect the fact that pending call operations use the connection
478 * dbus/dbus-pending-call.c: add locking here
480 * dbus/dbus-errors.c (struct DBusRealError): don't make the name
481 field const consistent with how message field is done
483 2006-08-03 John (J5) Palmieri <johnp@redhat.com>
487 2006-08-03 John (J5) Palmieri <johnp@redhat.com>
489 * dbus/dbus-object-tree.c: Patch by Benjamin Otte
490 <in7y118 at public.uni-hamburg dot de> - fix invalid
491 read/write reported by valgrind
493 2006-07-24 John (J5) Palmieri <johnp@redhat.com>
497 2006-07-22 John (J5) Palmieri <johnp@redhat.com>
499 * dbus/dbus-connection.c:
500 (_dbus_connection_attach_pending_call_unlocked):
501 (connection_timeout_and_complete_all_pending_calls_unlocked):
502 Make sure we set timeout_added on pending calls to FALSE when
503 we remove the timeout from the connection
505 2006-07-21 John (J5) Palmieri <johnp@redhat.com>
507 * Removed some extra bindings stuff lingering around (thanks timo)
508 * dbus-pendingcall.c (_dbus_pending_call_new):
509 s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
510 when we tried to take a lock on an already locked connection
512 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
516 2006-07-17 Havoc Pennington <hp@redhat.com>
518 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
519 ints, reported by Owen Taylor
521 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
526 * dbus/dbus-marshal-validate.c:
527 Removed TODO items which were fixed or are no longer relevent
529 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
531 * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
532 Remove stray files from the stripped bindings
534 2006-07-16 Havoc Pennington <hp@redhat.com>
536 * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
537 Improve the error message on reply timeout
539 2006-07-14 John (J5) Palmieri <johnp@redhat.com>
541 * Remove all bindings
543 2006-07-13 John (J5) Palmieri <johnp@redhat.com>
545 * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
546 and set pending_reply out arg to NULL is connection is disconnected
547 (connection_timeout_and_complete_all_pending_calls_unlocked): New
548 static method for cleaning up pending calls on disconnect
549 (_dbus_connection_get_dispatch_status_unlocked): If we have pending
550 calls queued timeouts on disconnect
552 * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
555 2006-07-13 Carlos Garcia Campos <carlosgc@gnome.org>
557 * bus/activation.[ch] (bus_activation_list_services): new function to
558 get the list of services that can be activated
560 * bus/dispatch.c: test coverage for the new bus method
563 * bus/driver.c: new bus method ListActivatableNames to get the list of
564 services that can be activated
566 * doc/dbus-specification.xml: ListActivatableNames method documentation
568 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
569 * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
572 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
573 * dbus/dbus-message-factory.c:
574 Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
576 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
577 * dbus/dbus-connection-internal.h:
578 * dbus/dbus-connection.c:
579 * file dbus/dbus-pending-call.c:
580 * dbus/dbus-pending-call.h:
581 Make DBusPendingCall an opaque type even to D-Bus internals
583 2006-07-07 John (J5) Palmieri <johnp@redhat.com>
585 * dbus/dbus-connection.h: remove connection_disconnect and replace with
588 * dbus/dbus-connection.c: include dbus-bus.h
589 (_dbus_connection_read_write_dispatch): make static
591 2006-07-07 John (J5) Palmieri <johnp@redhat.com>
593 * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
595 (dbus_connection_dispatch): On disconnect unref any shared connections
597 * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
598 for cleaning up shared connections on disconnect
599 (internal_bus_get): get a hard refrence to shared connections when
602 * doc/TODO: Remove items which are no longer relevent or have been fixed
603 Split 1.0 todo items with a 0.90 freeze todo list
605 2006-06-14 Ross Burton <ross@openedhand.com>
607 * glib/dbus-gobject.c:
608 Free a leaking GArray (surely not!) in dbus_g_method_return.
610 2006-06-14 Ross Burton <ross@openedhand.com>
613 * tools/dbus-monitor.c:
614 Don't use the GLib bindings in dbus-monitor (patch from Ralf
617 2006-06-14 Ross Burton <ross@openedhand.com>
619 * tools/dbus-print-message.c:
620 Also print the object path when outputting signals or method calls.
622 2006-06-13 Thiago Macieira <thiago.macieira@trolltech.com>
624 * qt/src/Makefile.am: install the qdbus.h header.
625 This allows people to actually use the installed code.
627 2006-06-12 Ross Burton <ross@openedhand.com>
629 * glib/dbus-gproxy.c:
630 Don't leak a GArray when firing signals (thank Rob Taylor for review).
632 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
636 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
638 * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
639 break pedantic builds. Closes bug 6043 (patch approved by
640 Havoc back in February).
642 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
644 * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
645 that took a QDBusMessage parameter.
646 * qt/src/qdbusbus.h: Add a default flag for RequestName.
647 * qt/tools/dbus.cpp: Don't use automatic call because we might
648 be calling an async method: request a reply.
650 2006-06-11 Thiago Macieira <thiago.macieira@trolltech.com>
652 * test/qt/*: Update the testcases, including testing the new
653 functionality of sending null QByteArray and QString over the
654 bus. Add new headertest test and restore the old
657 2006-06-11 Thiago Macieira <thiago.macieira@trolltech.com>
659 * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
660 * qt/tools/dbusidl2cpp.cpp: Add missing newline.
662 * qt/examples/Makefile.am:
663 * qt/examples/chat.h: Use UI-generated files with the ui_*.h
666 * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
667 QByteArray() (nulls) over the bus.
668 * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
669 the one that has the signature suffix stripped.
670 * qt/src/qdbusreply.h: Make some methods const.
672 2006-06-09 Thiago Macieira <thiago.macieira@trolltech.com>
674 Patch from Timo Hoenig <thoenig@suse.de>.
676 * qt/dbus/Makefile.am: New file. Fix "make dist", add all headers
677 required during build to EXTRA_DIST.
678 * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
679 * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
680 * configure.in: Fix "make dist", take care that the Makefile for
681 qt/dbus is being generated.
683 2006-06-07 John (J5) Palmieri <johnp@redhat.com>
685 * bus/bus.c: Fix eavesdropping on method calls
687 2006-06-07 John (J5) Palmieri <johnp@redhat.com>
690 * dbus/dbus-userdb-util.c:
691 Add Solaris console owner patch from Artem Kachitchkine
693 2006-06-07 Thiago Macieira <thiago.macieira@trolltech.com>
696 * qt/src/Makefile.am: Fix the EXTRA_DIST after the
697 reorganisation. Thanks to Timo Hoenig for pointing this out.
699 2006-06-06 Robert McQueen <robot101@debian.org>
701 * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
702 call to dbus_g_type_get_struct.
704 2006-06-06 Robert McQueen <robot101@debian.org>
706 * glib/dbus-gvalue-utils.c: Fix the failing test where static string
707 pointers were put into a GPtrArray-based specialised collection, and
708 then freed along with the array. GValues which you add into
709 collections or maps which have the NOCOPY flag set are assumed to not
710 belong to the caller, so rather than the existing pointer-stealing
711 semantics, they are copied instead. Given that the main consumers of
712 this abstraction are the bindings themselves, I don't think this is
713 too bad, but others should watch their choice of take vs set_static.
715 2006-06-06 Robert McQueen <robot101@debian.org>
717 * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
718 of g_slist_prepend not being used. Fixed copying of slist-based
719 specialised collections, then wrote a test case and found that it was
720 all broken. Went on to fix iterating and appending too. Good thing
721 nobody uses this code yet.
723 2006-06-06 Robert McQueen <robot101@debian.org>
725 * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
726 the iterators use gvalue_take_ptrarray_value (the GValues themselves
727 are discarded without unsetting, so it makes no difference whether
728 we take or set_static). Remove cases for G_TYPE_POINTER because
729 there really is nothing useful we can do with them in our
730 specialised types - we *need* boxed copy/free functions at the very
733 2006-06-05 Thiago Macieira <thiago.macieira@trolltech.com>
735 * qt/dbus: Add directory. I had forgotten to add this
736 yesterday after the move...
738 * qt/examples/Makefile.am:
739 * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
741 * qt/tools/Makefile.am:
742 * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
743 Added feature to get and set properties.
744 Added validation of service, object path and interface names.
746 * qt/tools/dbusidl2cpp.cpp: Two new features:
747 1) Allow specifying both the header and the source file names,
748 by separating them with a colon.
749 2) Don't write an interface output if the -p switch wasn't
750 given, but the -a was.
752 * qt/src/*: Fix usage of Iterators and ConstIterators.
753 Fix shadowing of variables by other variables (-Wshadow).
754 Fix keyword-cleanliness in headers.
755 Fix ASCII-cast (QLatin1String, QLatin1Char).
756 Fix validation of member names.
757 Add extra checking of introspection data during XML parsing.
760 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
763 * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
766 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
768 * configure.in: Make --disable-qt actually do
769 something. Patch inspired by Zack Rusin.
771 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
773 * qt/: Update to Subversion r548032.
774 This includes a big reorganisation of the files inside the
777 2006-05-30 Sjoerd Simons <sjoerd@luon.net>
779 * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
781 "Failed to connect to socket <host>:<port> <error>" instead of
782 "Failed to connect to socket <host>: <error>:<port>"
784 * dbus/dbus-transport-unix.c: Fix crash when no host option is given
787 2006-05-29 Thiago Macieira <thiago.macieira@trolltech.com>
789 * qt/*: Update the QtDBus bindings up to revision 546310 in
791 This adds the dbuscpp2xml tool, that parses a C++ header and
792 outputs a D-BUS Introspection XML.
794 2006-05-21 Havoc Pennington <hp@redhat.com>
796 * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
797 is not NULL when it shouldn't be. Also a couple of possible fixes
798 for #4637 though I don't understand why the bug happens, to be
799 honest... also the object constructor has an assert name != NULL
800 and the name is only currently NULL for peer-to-peer proxies that
801 I don't think anyone uses? So it should be asserting.
802 Anyway, for now at least see if we get an earlier assertion failure.
804 * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
805 apparently broken code to be sure the tests fail and someone
808 2006-05-07 Thiago Macieira <thiago.macieira@trolltech.com>
810 * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
811 and arrays when they had a single element: has_next returns
812 false, even before you read the element. So, instead, check
815 2006-05-06 Thiago Macieira <thiago.macieira@trolltech.com>
817 * qt/qdbusmessage.cpp:
818 * qt/qdbustypehelper_p.h:
819 * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
820 the list is a const-reference
822 2006-05-03 John (J5) Palmieri <johnp@redhat.com>
824 * Adding old doc patch that never got applied
826 * dbus/bus.c (dbus_bus_add_match): Add documentation
828 * doc/dbus-specification.xml: Add documentation for the match rules
829 and the AddMatch and RemoveMatch methods
831 2006-05-02 Thiago Macieira <thiago.macieira@trolltech.com>
833 * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
836 * qt/dbusidl2cpp.cpp:
837 * qt/qdbusabstractadaptor.cpp:
838 * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
839 sibling of the QDBusAbstractAdaptor objects instead of the
842 * qt/dbusidl2cpp.cpp:
843 * qt/qdbusabstractinterface.cpp:
844 * qt/qdbusabstractinterface.h:
845 * qt/qdbusabstractinterface_p.h:
846 * qt/qdbusinterface.cpp: Make properties in interfaces
847 actually work. The code that was generated would not compile,
848 due to moc calls to functions that did not exist. They now
851 2006-04-30 Thiago Macieira <thiago.macieira@trolltech.com>
855 * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
856 Thanks to Brad Hards for providing the patch
858 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
860 * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
863 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
865 * qt/examples/dbus.cpp: Enhance error messages and use
868 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
870 * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
871 and disable the copy operators. (r533772, r534746)
873 * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
875 * qt/qdbusabstractinterface.cpp:
876 * qt/qdbusabstractinterface.h: Change the default call mode to
877 not use the event loop. Add convenience call() methods that
878 take a CallMode parameter. (r534042)
880 * qt/qdbusconnection.h: Change the default call mode to not
881 use the event loop. (r534042)
883 * qt/qdbusinterface.cpp:
884 * qt/qdbusinterface.h: Add a method to tell us if the
885 interface is valid (since we don't return a null pointer
888 * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
891 * qt/qdbusinternalfilters.cpp: Decouple the introspection
892 function in two so taht we get the chance to introspect
893 without having a QDBusMessage (r534102)
896 * qt/qdbusconnection.cpp:
897 * qt/qdbusconnection_p.h:
898 * qt/qdbusintegrator.cpp: Keep a list of our own names to
899 avoid a round-trip to the server when attempting to introspect
900 one of our own objects. Also make sure the filter functions
901 match the empty interface as well. (r534108)
902 Don't keep the connection names. Instead, trust the unique
903 connection name (r534111)
904 Remove event loop usage (r534112)
906 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
908 * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
911 2006-04-28 Robert McQueen <robot101@debian.org>
913 * glib/dbus-gproxy.c: Fix properties so that they can be given in
914 any order, making it easier for people who inherit from this
917 2006-04-28 Robert McQueen <robot101@debian.org>
919 * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
920 of memory from within pointer arrays and lists. Fixes bug #6300.
922 2006-04-28 Robert McQueen <robot101@debian.org>
924 * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
925 generating struct signatures. Fixes bug #6083.
927 2006-04-28 Robert McQueen <robot101@debian.org>
929 * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
930 to qdbusconnection_p.moc.
932 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
934 * README, INSTALL: Doc fixes
935 Patch from Brad Hards <bradh at frogmouth.net>
937 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
939 * qt/examples/dbus.cpp: Use the new merged-interface mode for
940 the dynamic meta object. No need to guess which interface to
943 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
945 * qt/qdbusconnection_p.h:
946 * qt/qdbusmetaobject.cpp:
947 * qt/qdbusmetaobject_p.h:
948 * qt/qdbusintegrator.cpp: Use the new merged-interface mode
949 for the dynamic meta object. No need to guess which
951 * qt/qdbusabstractinterface_p.h:
952 * qt/qdbusconnection.cpp:
953 * qt/qdbusintegrator.cpp:
954 * qt/qdbusinterface.cpp:
955 * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
956 Add a QDBusRef that looks and behaves like DCOPRef.
958 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
960 * dbus/dbus-connection.c: Interfaces are optional in method
961 calls, so don't give up if the interface parameter is NULL.
962 Patch reviewed by Havoc Pennington.
964 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
966 * qt/qdbusreply.h: Add default constructor and operator=
968 * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
969 in public headers (r532952)
970 * qt/qdbusabstractinterface.cpp:
971 * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
972 make it the default (r532951)
974 2006-04-19 John (J5) Palmieri <johnp@redhat.com>
976 * dbus/dbus-connection.c: Fix asserts
977 Patch from Tim Moloney <t.moloney at verizon.net>
979 2006-04-19 John (J5) Palmieri <johnp@redhat.com>
981 * mono/Connection.cs, mono/Message.cs: Check Target type
982 Patch from Aaron Bockover (abockover at novell.com)
984 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
986 * INSTALL: fine-tune the requirements for the Qt4 binding.
988 2006-04-16 Daniel P. Berrange <dan@berrange.com>
990 * tools/dbus-print-message.c: Added support for printing of all
991 remaining data types. Fixed logic for indentation of compound
994 2006-04-15 Daniel P. Berrange <dan@berrange.com>
996 * INSTALL: fill out content of file providing DBus specific
997 build installations, followed by generic Auto* INSTALL file
1000 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
1002 * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
1003 Patch by Stefan Eilers. (r529537)
1005 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
1007 * qt/qdbusinternalfilters.cpp: Don't show the parent's
1010 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
1012 * qt/Makefile.am: fix the dependency for
1013 qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1014 not in qdbusconnection.cpp.
1015 Thanks to Jakub Stachowski <stachowski@hypair.net> for
1018 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
1020 * qt/examples/listnames.cpp:
1021 * qt/examples/Makefile.am: Three ways to list the names on the
1024 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
1026 * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1027 needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1029 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
1031 Merge from Subversion:
1032 * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1033 something that exists (r526315)
1034 * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1035 slots/signals (r526316)
1036 * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1037 also return an unknown-method error if the parameters don't
1038 match for org.freedesktop.DBus.Properties. (r526842)
1039 * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1040 * qt/qdbusintegrator.cpp: Restore the proper order of
1041 delivery: don't make method returns be delivered on priority
1044 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
1046 * configure.in qt/Makefile.am: add qt/examples
1047 * qt/examples: Add QtDBus example programs:
1048 - hello: Hello, World
1049 - ping: Simple method-calling program
1050 - pong: Simple object-exporting program (not using adaptors)
1051 - complexping: Interactive method-calling program
1052 (also gets and sets properties).
1053 - complexpong: Sample program exporting methods, signals and
1054 properties, using adaptors.
1055 - dbus: Simple implementation of a generic method-calling
1056 program, similar to 'dbus-send', but with semantics
1058 - chat: Simplistic chat program, implemented using signals
1059 and the system bus. Looks like IRC.
1061 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
1063 * configure.in: Detect QtGui (necessary for one of the
1064 example programs). Note: this increases the minimum required
1065 version of Qt to 4.1.3.
1067 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
1069 * test/qt/*: Sync with KDE Subversion revision 523647.
1070 Update the testcases to the new API. Remove testcases for
1071 classes that are no longer public or have been removed.
1073 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
1076 * dbus/qdbus.h: Sync with KDE Subversion revision
1077 523647. Hopefully, this will be the last of the
1078 source-incompatible changes. Documentation has been improved;
1079 support for QList<basic-types> has been added; QDBusObject is
1080 gone; QDBus(Abstract)Interface is now a QObject with
1081 auto-generated meta-object; QDBusIntrospection is marked
1082 private, since QMetaObject can be used now; lots of bugfixes.
1084 2006-03-16 John (J5) Palmieri <johnp@redhat.com>
1086 Patch from Milosz Derezynski <internalerror at gmail.com>
1089 Output the service directory in the configure summary
1092 Add session_bus_services_dir
1094 2006-03-10 Ross Burton <ross@openedhand.com>
1096 * tools/dbus-print-message.c:
1097 Add support for object paths and signatures.
1099 2006-03-06 Sjoerd Simons <sjoerd@luon.net>
1101 * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1103 * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1105 * dbus/dbus-hash.c: (_dbus_hash_table_remove_all):
1106 * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1107 * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1108 * dbus/dbus-userdb.h: Add function to flush all user/group information
1111 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
1113 * qt/dbusidl2cpp.cpp:
1114 * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1115 for dcopidl2cpp, found in the KDE installations (or the more
1116 modern kalyptus): generate Qt4 C++ code for the input XML
1117 introspection. Currently no IDL parsing.
1119 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
1121 * test/qt/*: Update the self-tests.
1123 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
1126 * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1127 represents the first feature-complete version of the Qt4
1128 bindings since I took ove maintainership.
1130 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
1132 * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1133 dir. This is C++, so we can't use the DBus ones.
1135 2006-03-02 John (J5) Palmieri <johnp@redhat.com>
1137 * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1138 (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1140 2006-03-02 John (J5) Palmieri <johnp@redhat.com>
1142 * dbus/dbus-connection.c:
1143 (_dbus_connection_block_pending_call):
1144 Check to see if our data has already been read off the connection
1145 by another blocking pending call before we block in poll.
1146 (check_for_reply_and_update_dispatch_unlocked):
1147 Code taken from _dbus_connection_block_pending_call - checks for
1148 an already read reply and updates the dispatch if there is one.
1150 * test/name-test/test-pending-call-dispatch.c:
1151 New test for making sure we don't get stuck polling a
1152 dbus connection which has no data on the socket when
1153 blocking out of order on two or more pending calls.
1155 2006-02-28 Thiago Macieira <thiago.macieira@trolltech.com>
1157 * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1158 make/automake don't detect that we're talking about the same
1159 .lo file if I specify the full path to the source files.
1161 2006-02-26 Havoc Pennington <hp@redhat.com>
1163 * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1165 * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1166 session bus variable is unset, suggest "man dbus-launch" and "man
1167 dbus-daemon" to figure out how to fix the problem
1169 2006-02-25 Havoc Pennington <hp@redhat.com>
1171 * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1172 should make this thing use the new glib options parser
1174 2006-02-25 Thiago Macieira <thiago.macieira@trolltech.com>
1176 * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1177 .lo files taking moc sources.
1179 2006-02-25 Havoc Pennington <hp@redhat.com>
1181 * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1182 and install it as a public header
1184 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
1188 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
1190 * proxies.py: Fix the callchain
1192 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
1194 * patch from Sjoerd Simons <sjoerd at debian.org>:
1196 * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to
1199 * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1200 call _dbus_group_info_free_allocated which causes infinite loop,
1201 correctly call _dbus_group_info_free
1203 2006-02-20 Thiago Macieira <thiago.macieira@trolltech.com>
1205 * qt/qdbusinterface_p.h:
1206 * qt/qdbusinterface.cpp: Use the standard
1207 org.freedesktop.DBus.Method.NoReply annotation for the "async"
1208 calls instead of creating one for us.
1210 * qt/qdbusconnection_p.h:
1211 * qt/qdbusintegrator.cpp: Remove debugging code.
1213 * qt/qdbusintegrator.cpp:
1214 * qt/qdbusmessage.cpp:
1215 * qt/qdbusmessage_p.h:
1216 * qt/qdbusmessage.h: Change the behaviour of automatic
1217 reply-sending: now a reply is always sent, unless the caller
1218 didn't request one or if the user slot has already sent one.
1220 2006-02-16 Robert McQueen <robot101@debian.org>
1222 * configure.in: Patch from Debian packages by Sjoerd Simons
1223 <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
1224 arguments so it's possible to build both bindings in the
1227 * qt/Makefile.am: Fix truncated value so that make dist works.
1229 2006-02-16 Robert McQueen <robot101@debian.org>
1231 * acinclude.m4, configure.in: Patch from Brad Hards
1232 <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
1233 improving quoting, re-ordering a few checks, and a few other
1236 2006-02-16 Robert McQueen <robot101@debian.org>
1238 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
1239 Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1240 assertion that the next element to read from the iter is fixed in
1241 size. This is not the case when you are at the end of the iter,
1242 because the next element type is INVALID.
1244 * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1245 a bogus assert which means that you may not initialise a 0-length
1246 string unless you provide a non-NULL pointer. This prevented
1247 you from marshalling messages containing zero-length arrays in
1250 * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1251 from Rob to correct bogus asserts when trying to demarshal an
1252 array and get_fixed_array got you 0 elements. Append nothing to
1253 the GArray in this case.
1255 * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1256 an empty array via the glib bindings. Without all of the above
1257 patches, this new test fails.
1259 2006-02-16 Robert McQueen <robot101@debian.org>
1261 * glib/dbus-gmain.c: Make the previous commit compile.
1263 * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1264 Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1265 specify sender_keyword="foo", path_keyword="bar" when adding
1266 a signal listener, so that you can bind to signals generically
1267 but still do something useful in your callback.
1269 * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1270 chars so that they're not cast to chars and made negative. Thanks
1271 to Jakub Stachowski for reporting this and testing the fix.
1273 2006-02-15 John (J5) Palmieri <johnp@redhat.com>
1276 * glib/dbus-gmain.h:
1277 (dbus_g_connection_open): new method for openning
1278 a connection to an arbitrary address in the glib bindings
1280 * ChangeLog: checkin last entry which doesn't seem to be commited
1282 2006-02-13 John (J5) Palmieri <johnp@redhat.com>
1284 * tools/dbus-launch.c: Fixed sh syntax output
1286 2006-02-13 Robert McQueen <robot101@debian.org>
1288 * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1289 glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1290 glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1291 glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1292 Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1293 missing piece of the glib bindings jigsaw puzzle. This modifies
1294 the existing specialised types to have N type parameters (rather
1295 than the current 1 or 2 for arrays and dictionaries respectively).
1296 You can then use this to get a glib type to represent any arbitrary
1297 D-Bus struct type using dbus_g_type_get_struct. The only
1298 implementation of these types is with GValueArrays as before,
1299 but it's now possible to store these in arrays, emit them in
1302 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
1304 * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1305 deal with nested arrays (Bug #5823) Patch by Thiago Macieira
1306 <thiago.macieira at trolltech.com>
1308 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
1310 * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1311 (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1313 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
1315 * bus/connection.c (bus_connections_expect_reply): Make
1316 pending reply limit not common to all connections (Bug #5416)
1317 Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1319 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
1321 * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1323 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
1325 * gcj/Makefile.am: point to correct jar command (Bug #4529)
1326 patch from Doug Goldstein <cardoe at gentoo.org>
1328 2006-02-09 Joe Shaw <joeshaw@novell.com>
1330 * mono/Arguments.cs: Fix a magic number in the mono bindings
1331 that doesn't work on 64 bit arches. Patch from Peter Johanson.
1333 2006-01-27 Robert McQueen <robot101@debian.org>
1335 * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1336 patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1337 when generating the client-side methods, instead of overloading
1338 CSymbol which broke everything horribly. My apologies.
1340 2006-01-27 Robert McQueen <robot101@debian.org>
1342 * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1343 by me and Rob Taylor to add a simple_free function to D-Bus map
1344 and collection types, which allows those types which can be freed
1345 with a GDestroyNotify (such as GHashTables and GArrays, but not
1346 GPtrArrays) to be stored as the values in hashtables.
1348 * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1349 Patch by Rob Taylor to add nested dicts to the glib tests to check
1350 the above code works, and appears not to leak when called repeatedly.
1352 2006-01-27 Robert McQueen <robot101@debian.org>
1354 * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1355 to free a D-Bus allocated string with dbus_free () instead of
1358 2006-01-27 Iain Holmes <iain@openedhand.com>
1360 * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1361 method from being called multiple times.
1363 2006-01-19 Robert McQueen <robot101@debian.org>
1365 * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1366 <rob.taylor@collabora.co.uk> to add support for generating bindings
1367 to arrays that are represented as GPtrArrays rather than GArrays (ie
1368 size-variable things, such as strings, objects, structs, etc).
1370 2006-01-05 Robert McQueen <robot101@debian.org>
1372 * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1373 <ricardo.kekki@movial.fi> to make it possible to inherit from
1374 DBusGProxy, by splitting the DBusGProxy struct into a public part and
1375 a private part, and moving the setting of the DBusGProxyManager into a
1376 connection property, allowing proper GObject construction.
1378 2006-01-05 Robert McQueen <robot101@debian.org>
1380 * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1381 <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1382 annotations when generating glib client bindings.
1384 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
1386 * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1388 * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1390 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
1392 * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1394 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
1396 * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1398 2005-12-19 Ross Burton <ross@openedhand.com>
1400 * doc/dbus-tutorial.xml:
1401 Document the Glib client-side bindings, and list all possible annotations.
1403 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
1405 * dbus/bus.c (dbus_bus_release_name): Add documentation
1407 2005-12-06 Robert McQueen <robot101@debian.org>
1409 * python/service.py: s/sucessful/successful/ so we're allocating to
1410 and reading from the same variable. Oops.
1412 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1416 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1418 * test/qt/Makefile.am: build from srcdir
1420 * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1421 Note - this code is wrong and needs to be fixed by the Qt binding
1422 developers. The flags should be treated as bitfields and not enums.
1424 * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1426 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1428 * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after,
1429 link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods
1432 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1434 * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1435 method for getting messages off the bus in the absence of a
1436 mainloop. This method is much like
1437 dbus_connection_read_write_dispatch except it does not dispatch
1438 the messages to a registered filter function. Instead it
1439 allows a developer to process messages by directly popping
1442 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1444 * bus/desktop-file.c (parse_key_value): Ignore locales allowing
1445 the parser to continue instead of returning error
1446 (bus_desktop_file_load): Do not free parser data when
1447 parse_section_start or parse_key_value fails because it was
1448 already freed by parser_free (patch from Carlos Garcia Campos
1449 <carlosgc at gnome.org>)
1451 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1453 * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1454 dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1455 glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1456 test/test-segfault.c, test/test-utils.c,
1457 test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1458 tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1459 Various cleanup of dead code and compiler warnings (patch from
1460 Kjartan Maraas <kmaraas at gnome.org>)
1462 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1464 * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1465 (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1467 2005-11-27 Robert McQueen <robot101@debian.org>
1469 * python/dbus_bindings.pyx: Repair my previous commit which reverted
1470 part of the preceding one. Oops. Merge patch by Johan Hedberg
1471 <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1472 on big-endian platforms.
1474 * test/python/test-client.py: Add some 16-bit integers to the test
1477 2005-11-27 Carlos Garcia Campos <carlosgc@gnome.org>
1479 * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1480 method return message for property getters
1482 2005-11-27 Robert McQueen <robot101@debian.org>
1484 * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1485 with type v of an instance of dbus.Variant(foo, type='x') caused
1486 it to be boxed twice before sending over the bus.
1488 * python/dbus_bindings.pyx, python/service.py,
1489 test/python/test-client.py: Update the constants for the new
1490 request_name flags, and update comments/test cases now that queueing
1491 is the default action.
1493 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
1496 - Change version to 0.60 for impending release
1497 - upped the sonames because of ABI and API breakage
1499 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
1501 * configure.in: Add test/name-test/Makefile to the generated
1504 * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1505 New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1506 (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1507 not to queue an ower if it can't be the primary owner
1509 * bus/bus.h: Add new internal BusOwner struct
1511 * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1512 to bus_registry_ensure and don't set the prohibit_replacement flag
1513 since they are now set per BusOwner and not per name.
1514 (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners)
1515 that returns the list of connections in a name's connection queue
1517 * bus/services.c (struct BusService): remove prohibit_replacement field
1518 (struct BusOwner): new struct for keeping track of queued connections
1519 and their associated flags for the queue
1520 (struct BusRegistry): add a BusOwner memory pool
1521 (bus_registry_new): initialize the BusOwner memory pool
1522 (bus_registry_unref): free the BusOwner memory pool
1523 (_bus_service_find_owner_link): new internal method for
1524 searching the queue for a specific connection
1525 (bus_owner_set_flags): new method for adding setting the flags on a
1527 (bus_owner_new): new method that creates a BusOwner object from the
1528 pool and sets its flags
1529 (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1530 (bus_registry_ensure): Add the flags parameter
1531 (bus_registry_acquire_service): Switch from using raw connections to
1532 using the BusOwner struct
1533 Add new state machine for dealing with the new set of flags
1534 (bus_registry_set_service_context_table, struct OwnershipCancelData,
1535 cancel_ownership, free_ownership_cancel_data,
1536 add_cancel_ownership_to_transaction, struct OwnershipRestoreData,
1537 restore_ownership, free_ownership_restore_data,
1538 add_restore_ownership_to_transaction): Switch to using BusOwner
1539 instead of raw connections
1540 (bus_service_add_owner): Add flags parameter
1541 Switch to using BusOwner instead of raw connections
1542 Add state machine for dealing with the new set of flags
1543 (bus_service_swap_owner): Swaps the first and second owners in the
1544 queue. Used to make sure proper signals are sent when a service looses
1545 or gains primary ownership. We never insert an owner at the top of the
1546 queue. Instead we insert it in the second position and then swap.
1547 (bus_service_remove_owner): Remove the owner from the queue sending
1548 out the NameLost and NameOwnerChanged signals if the we were the
1550 (bus_service_get_primary_owners_connection): New method that extracts
1551 the connection from the primary owner
1552 (bus_service_get_primary_owner): Returns the BusOwner instead of the
1554 (bus_service_get_allow_replacement): Changed from the old
1555 bus_service_get_prohibit_replacement method. Checks the flags of the
1556 primary owner and returns if it can be replaced or not
1557 (bus_service_set_prohibit_replacement): removed
1558 (bus_service_has_owner): returns TRUE if and owner with
1559 the specified connection exists in the queue
1561 * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1562 method that only compiles if tests are enabled. Allows us to get the
1563 unique name of a connection so we can check it against the queue when
1564 doing regression tests
1566 * bus/activation.c (bus_activation_send_pending_auto_activate),
1567 bus/dispatch.c (bus_dispatch),
1568 bus/driver.c (bus_driver_handle_get_service_owner,
1569 bus_driver_handle_get_connection_unix_user,
1570 bus_driver_handle_get_connection_unix_process_id,
1571 bus_driver_handle_get_connection_selinux_security_context),
1572 bus/signals.c (connection_is_primary_owner):
1573 use bus_service_get_primary_owners_connection instead of
1574 bus_service_get_primary_owner
1576 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket,
1577 _dbus_listen_unix_socket): Calculate the length of the socket
1578 path and use that instead of using a fixed length which was
1579 causing socket names to contain many trailing Nul bytes.
1581 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1582 (dbus_g_method_get_sender): New method for extracting the sender
1583 from a DBusGMethodInvocation
1584 (dbus_g_method_return_get_reply): changed name to
1585 dbus_g_method_get_reply
1586 (dbus_g_method_return_send_reply): changed name to
1587 dbus_g_method_send reply
1589 * doc/dbus-specification.xml: New docs that describe how the new
1590 queueing system works and talks about the changes to the how
1591 we specify socket names
1593 * glib/examples/example-service.c,
1594 glib/examples/example-signal-emitter.c,
1595 glib/examples/statemachine/statemachine-server.c:
1596 Changed the RequestName flags to the new system
1598 * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1599 regression test suite for testing various states of the new
1602 2005-11-15 Robert McQueen <robot101@debian.org>
1604 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1605 Taylor to add two methods, dbus_g_method_return_get_reply and
1606 dbus_g_method_return_send_reply, to allow you to get the reply
1607 message from a DBusGMethodInvocation, append arbitrary stuff to it,
1608 and send it. The GLib bindings can't marshal a return value of
1609 something like a(s) if the array is empty - ultimately they should be
1610 made to heed the signature of the out arguments as the Python bindings
1611 now can, but this is a workable interim solution which might have
1614 2005-11-15 Robert McQueen <robot101@debian.org>
1616 * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1617 method to org.freedesktop.DBus to release a bus name or give up
1618 waiting in the queue for it.
1620 * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1621 dbus_bus_release_name method to send the ReleaseName method calls.
1622 Add constants for the return values to dbus/dbus-shared.h.
1624 * doc/dbus-specification.xml: Document the new ReleaseName method
1625 in the specification.
1627 * python/dbus_bindings.pyx: Add a low-level python binding for the
1628 release name method.
1630 * python/exceptions.py, python/service.py: Make freeing BusName
1631 objects release the name. Add a NameExistsException, and fix a
1632 bug with creating UnknownMethodException.
1634 * test/python/test-client.py: Add tests for freeing BusName
1635 objects causing names to be released.
1637 2005-11-14 Robert McQueen <robot101@debian.org>
1639 * python/service.py: Include the traceback in the error reply when we
1640 send an exception over the bus. _BEST_ _PATCH_ _EVER_
1642 2005-11-14 David Zeuthen <davidz@redhat.com>
1644 Patch from Timo Hoenig <thoenig@suse.de>.
1646 * bus/bus.c: I've recently investigated why the automatic reload
1647 of configuration files does not work as expected.
1649 Currently, reloading configuration files does only work when
1650 running dbus-daemon with --nodaemon. If we are running as daemon
1651 we're hitting a dnotify bug once we fork the process.
1653 We're initializing the dnotify fds before calling fork(). Once
1654 the child process forked it does still have the fds (and they
1655 still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1656 getting SIGIO as changes are made to the configuration files.
1658 The attached patch moves the initialization of the dnotify fds to
1659 process_config_postinit(). This is safe for all current code
1660 paths and solves the dnotify disfunction. If we're running
1661 dbus-daemon as daemon the fds for dnotify are now being
1662 initialized after fork() for the child process.
1664 * configure.in: The current configure.in check for dnotify probes
1665 'x$target_os' for being 'xlinux-gnu'. I've changed the check to
1666 match for 'xlinux', too. Additionally I have adapted the configure
1667 option's style to match with the others.
1669 2005-11-14 Robert McQueen <robot101@debian.org>
1671 * python/decorators.py, python/service.py: Add a new argument to the
1672 dbus.service.method decorator called sender_keyword, which if set,
1673 specifies the name of an argument which will be provided the bus
1674 name of the method caller.
1676 * test/python/test-client.py, test/python/test-service.py: Add a
1677 method and test to check the sender_keyword functionality.
1679 2005-11-07 John (J5) Palmieri <johnp@redhat.com>
1681 * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an
1682 empty reply so blocking calls don't block forever (Patch from Sjoerd
1683 Simons <sjoerd at luon.net>)
1685 * AUTHORS: Add Robert McQueen for his work on the Python
1686 Bindings and other parts of D-Bus
1688 2005-11-07 Robert McQueen <robot101@debian.org>
1690 * python/decorators.py: Change emit_signal function to use the
1691 signature annotation of the signal when marhsalling the arguments from
1692 the service. Fix a bug where the code checking signature length
1693 against argument length referenced the wrong variable.
1695 * python/introspect_parser.py: Avoid adding the type signature of
1696 signal arguments to any methods which occur after them in the
1697 introspection data (!) by making the parser a little more careful
1698 about its current state.
1700 * python/service.py: Remove debug prints from last commit (again :D).
1702 * test/python/test-client.py, test/python/test-service.py: Add test
1703 signals with signature decorators to test the strict marshalling code
1704 gives errors at the right time. Could do with checking the signals
1705 actually get emitted too, given that the test does nothing with
1706 signals at the moment...
1708 2005-11-07 Robert McQueen <robot101@debian.org>
1710 * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1711 instances to stop madness of creating new instances representing
1712 the same bus connection all the time, rendering any tracking of
1713 match rules and bus names quite meaningless. Caught a bug where
1714 the private argument to SessionBus() and friends was being passed
1715 in as use_default_mainloop by mistake. Still some problems with
1716 multiple dbus_binding.Connection instances representing the same
1717 low-level connection (eg when you use both SessionBus() and
1718 StarterBus() in same process), but it's a lot better now than it
1721 * python/dbus_bindings.pyx: Add constants with the return values
1722 for bus_request_name().
1724 * python/service.py: Store bus name instances in a per-dbus.Bus cache
1725 and retrieve the same instances for the same name, so deletion can be
1726 done with refcounting. Also now throws some kind of error if you
1727 don't actually get the name you requested, unlike previously...
1729 * test/python/test-client.py: Add tests for instance caching of buses
1730 and bus name objects.
1732 2005-11-04 Robert McQueen <robot101@debian.org>
1734 * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1735 marshalling of boolean values. Add some booleans to the values in
1738 * python/decorators.py, python/service.py: Add an 'async_callbacks'
1739 argument to the dbus.service.method decorator, which allows you to
1740 name arguments to take two callback functions for replying with
1741 return values or an exception.
1743 * test/python/test-client.py, test/python/test-service.py: Add test
1744 case using asynchronous method reply functions, both return values and
1745 errors, and from within both the function itself and from a mainloop
1748 * python/decorators.py, python/service.py: Perform checking that the
1749 number of method/signal arguments matches the number of types in the
1750 signature at class loading time, not when you first introspect the
1753 * python/service.py: Remove debug print left by the last commit.
1755 2005-11-03 Robert McQueen <robot101@debian.org>
1757 * python/service.py: Heavy refactoring of method invocation, with
1758 hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1759 in favour of a new _message_cb that uses seperate functions for
1760 looking up the method to call, marshalling the return values, and
1761 sending exceptions as errors, and is easier to follow as a
1762 consequence. Fixes some corner cases about returning things that
1763 don't match your declared out_signature, allows exceptions to define
1764 _dbus_error_name and have it be sent over the bus as the error name,
1765 and paves the way for cool stuff like heeding the message no reply
1766 flag, asynchronous method implementations, informing the method of the
1767 sender, and including backtraces in the error messages.
1769 * test/python/test-client.py: Catch and print exceptions thrown in the
1770 async callback tests, rather than passing them to the low-level
1771 bindings to be ignored in a noisy and frustrating manner.
1773 2005-11-03 Robert McQueen <robot101@debian.org>
1775 * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1776 functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1777 tweak others to be consistent.
1779 * test/python/test-client.py: Tweak output of testInheritance.
1781 2005-10-29 Robert McQueen <robot101@debian.org>
1783 * python/service.py: Major changes to allow multiple inheritance
1784 from classes that define D-Bus interfaces:
1786 1. Create a new Interface class which is the parent class of
1787 Object, and make the ObjectType metaclass into InterfaceType.
1789 2. Patch written with Rob Taylor to replace use of method_vtable
1790 with code that walks the class's __MRO__ (method resolution order)
1791 to behave like Python does when invoking methods and allow
1792 overriding as you'd expect. Code is quite tricky because
1793 we have to find two methods, the one to invoke which has the
1794 right name and isn't decorated with the /wrong/ interface,
1795 and the one to pick up the signatures from which is decorated
1796 with the right interface.
1798 The same caveats apply as to normal multiple inheritance -
1799 this has undefined behaviour if you try and inherit from two
1800 classes that define a method with the same name but are
1801 decorated with different interfaces. You should decorate
1802 your overriding method with the interface you want.
1804 3. Replace grungy introspection XML generation code in the metaclass
1805 with dictionaries that cope correctly with multiple inheritance
1806 and the overriding of methods. This also uses the signature
1807 decorations to provide correct introspection data, including
1808 the debut appearance of the types of your return values. :D
1810 * test/python/test-client.py, test/python/test-service.py: Add a test
1811 case to try invoking an method that overrides one inherited from a
1812 D-Bus interface class.
1814 2005-10-29 Robert McQueen <robot101@debian.org>
1816 * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1817 Add checking for the end of struct character when marshalling a
1818 struct in MessageIter.append_strict.
1820 * python/examples/example-service.py,
1821 python/examples/gconf-proxy-service.py,
1822 python/examples/gconf-proxy-service2.py: Update to use gobject
1823 mainloop directly rather than appearing to depend on gtk.
1825 * python/test/test-client.py, python/test/test-server.py: Remove
1826 obsolete and broken test scripts for old bindings. We have up to date
1827 and working tests in test/python/.
1829 2005-10-29 Robert McQueen <robot101@debian.org>
1831 * python/decorators.py: Add optional arguments to the method and
1832 signal decorators to allow you to specify the signature of arguments
1833 and return values. Preserve the doc strings of signal functions in the
1834 decorated version, for pydoc and friends.
1836 * python/dbus_bindings.pyx, python/proxies.py: Replace the
1837 parse_signature_block function with an iterable dbus.Signature()
1838 type. Fix a bug in MessageIter.append_strict where you could append
1839 anything by claiming it was a string.
1841 * python/service.py: Use the out_signature decoration on methods to
1842 marshal return values, meaning you no longer require dbus.Array()
1843 or dbus.Dictionary() to indicate the type when returning empty
1844 arrays or dictionaries. Fix a bug where exceptions which are defined
1845 in __main__ are not turned into error replies.
1847 * test/python/test-client.py, test/python/test-service.py: Add test
1848 for correct marshalling of return values according to out_signature.
1849 Fix a bug in the async call test where the error_handler is missing a
1852 2005-10-29 Robert McQueen <robot101@debian.org>
1854 * glib/Makefile.am, glib/examples/Makefile.am,
1855 glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1856 Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1858 * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1860 * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1861 from Ubuntu by Daniel Silverstone to allow specifying match rules on
1864 2005-10-27 Ross Burton <ross@openedhand.com>
1866 * dbus/dbus-marshal-header.c:
1869 * glib/dbus-gobject.c:
1870 Stop compiler warning.
1872 2005-10-25 Ross Burton <ross@openedhand.com>
1875 * dbus/dbus-server-unix.c:
1876 * dbus/dbus-transport-unix.c:
1877 * glib/dbus-gmain.c:
1878 * glib/dbus-gobject.c:
1879 Add some const keywords.
1881 2005-10-25 Ross Burton <ross@openedhand.com>
1883 * doc/dbus-specification.xml:
1884 Document the NoReply annotation.
1886 * glib/dbus-binding-tool-glib.h:
1887 * glib/dbus-binding-tool-glib.c:
1888 Respect the NoReply annotation.
1890 2005-10-24 Robert McQueen <robot101@debian.org>
1892 * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1893 derive from unicode instead of str, and encode/decode UTF-8 when
1894 marshalling/unmarshalling bus messages
1896 * python/introspect_parser.py: encode introspection data as UTF-8
1897 before passing the buffer into libxml2
1899 * test/python/test-client.py: add unicode test strings
1901 * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1902 ignore generated python test files
1904 2005-10-17 John (J5) Palmieri <johnp@redhat.com>
1906 * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1907 and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1908 (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1910 * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1911 DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1912 when constructing struct signatures
1914 * python/_dbus.py (Bus): handle private connections using the
1915 private keyword in the constructor. defaults to private=False
1916 (Bus::close): new method to close a connection to the bus
1918 * python/dbus_bindings.pyx (Connection::close): renamed method
1919 was previously called disconnect
1920 (bus_get): now supports getting a private connection
1922 * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1923 keyword is set to True. if it is, execute the method without waiting
1925 (ProxyObject::_introspect_execute_queue): new method for executing
1926 all the pending methods that were waiting for the introspect to
1927 finish. this is called when introspect either succeeds or fails
1928 (ProxyObject::_introspect_error_handler): call queued methods
1930 2005-10-14 John (J5) Palmieri <johnp@redhat.com>
1932 * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1933 STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1935 * python/service.py (Object::_message_cb): handle exceptions correctly
1936 by sending them over the wire to the calling app. This makes sure
1937 the client returns immediately instead of waiting the 15 seconds to
1940 * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect):
1941 Add a test to benchmark how long it takes to introspect a service and
1942 call a method which returns a large element (pretty fast)
1944 * test/python/test-service.py (TestObject::GetComplexArray): new test
1945 method which pushes a lot of data
1947 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
1949 * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):
1950 reclaim memory outside of the loop and use del istead of just setting
1953 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
1955 * python/service.py (ObjectType::_reflect_on_signal): Always close
1956 signal tag even when there are no arguments
1958 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
1960 * configure.in: Set mono, mono-docs and Qt3 to default
1961 to no instead of auto when building. These bindings do not
1962 have full time maintainers and will not be supported for the
1965 2005-10-12 John (J5) Palmieri <johnp@redhat.com>
1967 patches from Michael Krivoruchko <misha at sun.com>:
1969 * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1970 _dbus_connection_message_sent,
1971 _dbus_connection_send_preallocated_unlocked_no_update,
1972 _dbus_connection_pop_message_link_unlocked): handle the case when path
1973 is NULL when calling _dbus_verbose
1975 * configure.in: check for functions getpeerucred and getpeereid
1977 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides
1978 support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+,
1979 OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid).
1980 Patch was only tested on Solaris 10 x86 so it might be issues
1981 with other platforms (i.e. BSDs and MacOSX)
1984 2005-10-05 John (J5) Palmieri <johnp@redhat.com>
1986 * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal
1987 instead of marshal basic so we can handle recursive types in a variant
1989 * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1992 * test/glib/test-service-glib.c, test-service-glib.xml
1993 (my_object_echo_variant [EchoVariant],
1994 my_object_process_variant_of_array_of_ints123
1995 [ProcessVariantOfArrayOfInts123]):
1996 Add two test methods
1998 * python/introspect_parser.py: New module for parsing introspect
2001 * python/dbus_bindings.pyx:
2002 (various places): when throwing errors fix to use errormsg instead
2003 of message local variable because Pyrex can get confused with other
2004 message variables (initial patch by Robert McQueen
2005 <robert.mcqueen at collabora.co.uk>)
2006 (MessageIter::parse_signature_block): new method for getting the next
2007 block in a signiture.
2008 (MessageIter::append_strict): new method for appending values strictly
2009 using the passed in signature instead of guessing at the type
2010 (MessageItter:: append_dict, append_struct, append_array): use
2011 signatures to marshal children if the signature is available
2013 * python/exceptions.py (IntrospectionParserException): new exception
2015 * python/proxies.py (ProxyMethod::__call__): Marshal args with
2016 introspected signatures if available, else we fall back to the
2017 old way of doing things.
2018 (ProxyObject::_introspect_reply_handler ): parse introspection data
2020 * python/service.py (ObjectType::_reflect_on_method): Properly
2021 terminate <method> if there are no args in the reflection data
2023 * test/python/test-client.py: add tests for talking with the GLib
2024 test server. This gives us better coverage for introspection since
2025 python to python will always generate arguments as variants. It also
2026 allows us to test the robustness of the GLib bindings and interlanguage
2030 2005-10-03 John (J5) Palmieri <johnp@redhat.com>
2032 * bus/driver.c (bus_driver_handle_introspect): Add signals
2033 to the introspect data. (patch from Daniel P. Berrange
2034 <dan at berrange.com>)
2036 * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2038 * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2039 _dbus_connection_run_builtin_filters): Changed these to
2040 be unlock_no_update functions and call
2041 _dbus_connection_send_unlocked_no_update instead of
2042 dbus_connection_send to avoid locking errors.
2044 * doc/TODO: Removed the make Ping test TODO
2046 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
2048 * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2049 We now copy the message from a DBusError and then free
2050 the error object befor throwing the error
2052 * glib/dbus-glib-tool.c: removed extra comma at the end of the
2053 DBusBindingOutputMode enum which was causing a warning.
2054 #include <time.h> so using time_t is explicitly defined
2056 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
2058 * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2060 (internal_bus_get): new method that take over the heavy lifting
2061 of dbus_bus_get and adds the ability to get a private connection
2063 (dbus_bus_get): wrapper to internal_bus_get that provides the same
2064 interface as in previous versions
2065 (dbus_bus_get_private): new method that is a wrapper to
2066 internal_bus_get to get a private connection to the bus
2069 (dbus_bus_get_private): add as a public libdbus interface
2071 - dbus-1.pc.in: output system_bus_default_address and
2072 sysconfdir variables so apps can use them when compiling
2074 2005-09-23 Harald Fernengel <harry@kdevelop.org>
2075 * dbus/qt: New Qt bindings
2077 2005-09-12 Waldo Bastian <bastian@kde.org>
2079 * dbus/dbus-marshal-validate.c,
2080 doc/dbus-specification.xml, test/Makefile.am,
2081 test/test-names.c: allow hyphens in bus names.
2083 2005-09-11 Mark McLoughlin <mark@skynet.ie>
2085 * test/data/auth/fallback.auth-script: we don't
2086 retry the EXTERNAL method when we know its going
2089 2005-09-11 Mark McLoughlin <mark@skynet.ie>
2091 * dbus/dbus-connection-internal.h: rename
2092 (add|remove|toggle)_(watch|timeout) to unlocked()
2094 * dbus/dbus-connection.c: ditto.
2096 * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2097 Update some callers for the renaming.
2099 2005-09-10 Mark McLoughlin <mark@skynet.ie>
2101 * dbus/dbus-auth.c: (record_mechanisms): don't
2102 retry the first auth mechanism because we know
2103 we're just going to get rejected again.
2105 * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2106 Fix thinko ... and what a nasty little bugger to
2107 track down you were ...
2109 * dbus/dbus-connection.c:
2110 (_dbus_connection_add_watch),
2111 (_dbus_connection_remove_watch): add note about
2112 these needing the connection to be locked.
2113 (_dbus_connection_get_dispatch_status_unlocked):
2114 set status to DATA_REMAINS when we queue the
2115 disconnected message.
2118 (bus_dispatch): fix warning.
2119 (check_existent_service_no_auto_start):
2120 Expect ChildSignaled error too.
2121 (check_existent_hello_from_self): fix another
2124 2005-09-08 Joe Shaw <joeshaw@novell.com>
2126 Patches from James Willcox <snorp@snorp.net>
2128 * mono/Makefile.am: Add Int16.cs and UInt16.cs
2130 * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2131 support array "out" parameters.
2133 * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2134 for 16-bit int support.
2136 2005-09-06 John (J5) Palmieri <johnp@redhat.com>
2140 * Patch from Steve Grubb:
2141 - bus/activation.c (bus_activation_service_reload_test): clean up
2143 - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional
2144 - dbus/dbus-message-factory.c (generate_special): fix a couple of
2145 buffer overflows in the test suite. This is non critical because
2146 it can not be exploited and this code is only run when doing a
2149 * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2150 - configure.in: Don't check and link against kdecore, only qt headers
2151 - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2152 - gcj/org/freedesktop/dbus/Makefile.am:
2153 add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2154 - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2155 and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2156 - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2157 - tools/Makefile.am: Add platform extentions to binaries
2158 (i.e. .exe on windows)
2161 - Make it so if no suitable version of python is found we only
2162 disable building python instead of exiting the configure script
2163 - Require version 2.4 of glib for glib bindings
2164 - Up version to 0.50
2166 * python/__init__.py: Sync version with libdbus to (0,50,0)
2168 2005-09-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
2170 * dbus/dbus-object-tree.c (find_subtree_recurse):
2171 a couple of optimizations (bug #710):
2172 - do a binary search in the tree
2173 - insert a new child at the right place directly, no need for
2175 - do the "double alloc" thing when allocating children
2177 2005-08-31 John (J5) Palmieri <johnp@redhat.com>
2179 * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2181 * python/dbus_bindings.pyx: Memory management foo
2182 (global): remove hacky _user_data_references global list
2183 (GIL_safe_cunregister_function_handler): userdata now stuffed into
2184 tuples. Unref user_data
2185 (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2186 (Connection::__del__): Remove and replace with __dealloc__ method
2187 (Connection::add_filter): Stuff user_data into a tuple. Use Py_INCREF
2188 to keep tuple from being deallocated instead of the global var hack
2189 (Connection::register_object_path): Stuff user_data into a tuple.
2190 Use Py_INCREF to keep tuple from being deallocated instead of the
2192 (Connection::register_fallback): Stuff user_data into a tuple.
2193 Use Py_INCREF to keep tuple from being deallocated instead of the
2195 (GIL_safe_pending_call_notification): Don't unref the message
2196 because it gets unreffed when going out of scope. Py_XDECREF
2198 (PendingCall::__del__): Remove and replace with __dealloc__ method
2199 (PendingCall::set_notify): ref the pending call because we will
2200 need it to stick around for when the notify callback gets called
2201 (Message::__del__): Remove and replace with __dealloc__ method
2203 * python/dbus_glib_bindings.pyx (init_gthreads): Changed to
2204 gthreads_init to match up with the dbus call
2206 * python/glib.py (init_threads): Changed to threads_init to match
2207 up with gobject.threads_init(). init_threads is kept for backwards
2208 compat but will most likely be deprecated in the future
2210 * test/python/test-client.py:
2211 - revamp to use Python's unittest functionality
2212 - add async call tests
2213 - setup threads in glib and dbus so we make sure locks are working
2215 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
2217 * python/dbus_bindings.pyx
2218 (_pending_call_notification, cunregister_function_handler,
2219 cmessage_function_handler): All callback functions have been rearranged
2220 to workaround a bug in Pyrex when working with the GIL which is Python's
2221 global lock when dealing with threads. They have been split into
2222 a wrapper function (which assumes the name of the old function) and
2223 a _GIL_safe_<function name> function which contains the functionality
2224 of the old function. This ensures that Pyrex does not write code
2225 the lock is released.
2228 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
2230 * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
2231 GIL global lock when calling back into Python
2233 2005-08-29 John (J5) Palmieri <johnp@redhat.com>
2237 * Add Havoc's patch that never got applied to HEAD (Bug #2436):
2239 * bus/policy.c (bus_policy_allow_user): change default "user is
2240 allowed" to be "user has same uid as the bus itself"; any
2241 allow/deny rules will override.
2243 * bus/session.conf.in: don't allow all users, since now by default
2244 the user that ran the bus can connect.
2246 2005-08-26 Colin Walters <walters@verbum.org>
2248 * tools/dbus-print-message.c (print_message): Flush stdout
2249 after printing a message, so that redirecting to a file, then
2250 hitting Ctrl-C works.
2252 2005-08-25 John (J5) Palmieri <johnp@redhat.com>
2254 * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2255 (EmptyMessage): new class that subclasses Message. This is a workaround
2256 to a Pyrex bug that fails to call __del__ when the Message object goes out
2257 of scope. For some reason subclassing Message fixes this bug
2258 (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2259 - s/Message(_create=0)/EmptyMessage everywhere else
2261 * test/python/test-{server|client}.py: add the python/.libs directory
2262 to the lookup path so dbus_bindings and dbus_glib_bindings don't
2263 get picked up from the system
2265 2005-08-25 Colin Walters <walters@verbum.org>
2267 * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2268 to Ryan Lortie for the suggestion.
2270 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
2272 * test/python: Add python regression test
2274 * configure.in: Add test/python/Makefile
2276 * test/Makefile.am: Add the python directory to SUBDIRS
2278 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
2283 (Interface::connect_to_signal): propigate keywords for match on args
2284 (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2286 * python/proxies.py (ProxyObject::connect_to_signal):
2287 propigate keywords for match on args
2289 * Makefile.am: point everything to pyexecdir since python borks
2292 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
2296 2005-08-23 Colin Walters <walters@verbum.org>
2298 * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2300 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
2302 * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2303 to fix some wranings. We now use dbus_bindings.DBusConnection instead
2304 of defining DBusConnection ourselves.
2306 2005-08-18 John (J5) Palmieri <johnp@redhat.com>
2308 * python/dbus.pth: New path file to fix up problems when installing
2309 c libraries to lib64 and python files to lib.
2311 * python/Makefile.am: install dbus.pth in the correct spot
2313 2005-08-17 John (J5) Palmieri <johnp@redhat.com>
2314 * ChangeLog: clean up my last entry a bit
2316 * doc/introspect.xsl: New stylesheet for converting introspection data
2317 into browser renderable xhtml. Contributed by Lennart Poettering.
2319 * doc/introspect.dtd: Fixups in the introspect format from Lennart
2322 * doc/dbus-tutorial.xml:
2323 - Add Colin Walter to the Authors section for authoring the GLib
2325 - Add descriptions of the new signature and type functionality
2326 in the Python complex type mapping section
2327 - Add a sidenote on the new args matching functionality in
2329 - Fixed up some of the examples to use the gobject.MainLoop
2333 (Bus::_create_args_dict): New. Converts a hash of arg matches
2334 to a more useable format
2335 (Bus::add_signal_receiver): add a **keywords parameter for catching
2336 arg match parameters
2337 (Bus::remove_signal_receiver): add a **keywords parameter for catching
2338 arg match parameters
2340 * python/matchrules.py:
2341 (MatchTree::exec_matches): Check for arg matches
2342 (SignalMatchRule::add_args_match): New method
2343 (SignalMatchRule::execute): Added args_list parameter as an optimization
2344 so we don't have to marshal the args more than once
2345 (SignalMatchRule::match_args_from_list): New method that checks to see
2346 if the rule's arg matches match an argument list. Only arguments
2347 set in the rule are checked.
2348 (SignalMatchRule::match_args_from_rule): New method that checks to see
2349 if the rule's arg matches match another rule's. All args have to match
2350 in order for this method to return true. If either rule has more args
2351 then it is not a match.
2352 (SignalMatchRule::is_match): Add args match
2353 (SignalMatchRule::repr): Add args to the final output if they exist
2355 2005-08-17 Ross Burton <ross@burtonini.com>
2357 * glib/dbus-gproxy.c:
2358 (dbus_g_proxy_call_no_reply): unref the message once sent.
2359 (dbus_g_proxy_call): protect against NULL proxy.
2361 2005-08-16 John (J5) Palmieri <johnp@redhat.com>
2363 * python/__init__.py: Version updated (0, 43, 0)
2365 * python/dbus_bindings.pyx:
2366 - Fixed type objects to have self passed into __init__
2367 - Added the Variant type
2368 - Add the ability to specify types or signatures for Array, Variant
2370 (Connection::send_with_reply_handlers): return a PendingCall object
2371 (_pending_call_notification): handle the case when an error is returned
2372 without an error message in the body
2373 (MessageIter::get_boolean): return True or False instead of an integer
2374 (MessageIter::python_value_to_dbus_sig): add direct checking of types
2375 and add checks for objects with embeded signatures or types (Array,
2376 Variant and Dictionary)
2377 (MessageIter::append_byte): handle case when the value is a dbus.Byte
2378 (MessageIter::append_dict): handle embeded types or signatures
2379 (MessageIter::append_array): handle embeded types or signatures
2380 (MessageIter::append_variant): new method
2382 * python/proxies.py:
2383 (DeferedMethod): New. Dummy executable object used when queuing calls
2384 blocking on introspection data
2385 (ProxyMethod::__call__): add the timeout keyword for specifying longer
2386 or shorter timeouts for method calls
2387 (ProxyObject): Add first pass at an introspection state machine
2388 (ProxyObject::__init__): Add introspect keyword for turing off an on
2390 (ProxyObject::_Introspect): Internal Introspect call that bypasses
2391 the usual mechanisms for sending messages. This is to avoid a deadlock
2392 where the Intospect call would be queued waiting for the Introspect
2394 (ProxyObject::_introspect_reply_handler): New. This method is called
2395 when introspection returns with no error
2396 (ProxyObject::_introspect_error_handler): New. This method is called
2397 when introspection encounters an error
2398 (ProxyObject::__getattr__): Code to handle different introspection
2399 states. Queue async calls or block blocking calls if we are
2400 introspecting. Pass through as normal if we are not or are done with
2403 * python/service.py: Import signal and method from decorators.py
2405 * python/types.py: Add Variant type
2407 2005-08-16 Colin Walters <walters@verbum.org>
2409 * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2410 DBusError message is NULL.
2412 2005-08-09 Havoc Pennington <hp@redhat.com>
2414 * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2415 malloc'd copy of the name parameter
2417 2005-08-09 Havoc Pennington <hp@redhat.com>
2419 * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2420 warning if the reply serial is set to 0
2422 2005-08-04 Colin Walters <walters@verbum.org>
2424 * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2425 (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2426 (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2427 (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2428 (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2429 (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2430 (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2431 * glib/dbus-gvalue.h (dbus_g_value_types_init)
2432 (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2433 (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2435 Prefix name with _ to ensure they're not exported. All callers
2438 * glib/dbus-gvalue.c (typecode_to_gtype)
2439 (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2440 (signature_iter_to_g_type_dict)
2441 (signature_iter_to_g_type_array)
2442 (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2443 (dbus_gtypes_from_arg_signature):
2444 Move to dbus-gsignature.c.
2446 * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2447 dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2448 (dbus_binding_tool_output_glib_client): Ditto.
2450 * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2451 and dbus-gsignature.h
2453 * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2456 2005-08-03 Colin Walters <walters@verbum.org>
2458 * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2459 catch any incompatible changes accidentally made.
2461 2005-08-03 Havoc Pennington <hp@redhat.com>
2463 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2464 typo, from Julien Puydt
2466 * bus/connection.c (bus_connection_disconnected): we were always
2467 doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2469 2005-08-01 Colin Walters <walters@verbum.org>
2471 Patch from Joe Markus Clarke:
2473 * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2476 2005-08-01 Colin Walters <walters@verbum.org>
2478 Patch from Joe Markus Clarke:
2480 * tools/dbus-send.c (main):
2482 Don't use C99 style initializers (bug #3933).
2484 2005-08-01 Colin Walters <walters@verbum.org>
2486 Patch from Joe Markus Clarke:
2488 * glib/dbus-gvalue.c (dbus_g_value_types_init):
2489 * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init)
2490 * glib/dbus-gobject.c (write_interface):
2492 Don't use C99 style initializers (bug #3933).
2494 2005-07-31 Havoc Pennington <hp@redhat.com>
2496 * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2497 dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2499 2005-07-30 Havoc Pennington <hp@redhat.com>
2501 * fix a bunch of Doxygen warnings and mistakes
2503 2005-07-30 Havoc Pennington <hp@redhat.com>
2505 * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2506 DBUS_BUILD_TESTS since it's now used in production code
2508 2005-07-29 Havoc Pennington <hp@redhat.com>
2510 * test/glib/test-profile.c (write_junk): initialize the junk
2511 buffer so valgrind doesn't have a breakdown
2513 2005-07-29 Havoc Pennington <hp@redhat.com>
2515 * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2516 (match_rule_matches): remove unused arg
2517 (test_matching): add tests for match_rule_matches()
2519 * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2520 do arg0='foo' arg5='bar' in the match rules
2521 (match_rule_matches): don't match if the arg0='foo' doesn't match.
2523 * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2525 2005-07-29 Ross Burton <ross@openedhand.com>
2527 * dbus/dbus-connection.c:
2528 Don't create a DBusCondVar which is never used.
2530 2005-07-27 Ross Burton <ross@openedhand.com>
2532 * dbus/dbus-message.c:
2533 Reduce the size of the maximum cached message to 10K.
2535 2005-07-25 Ross Burton <ross@openedhand.com>
2537 * glib/dbus-gproxy.c:
2538 Remove matches when all proxies are unregistered.
2540 2005-07-24 Colin Walters <walters@verbum.org>
2542 * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2543 typedata; recursive arrays won't have it.
2545 * test/glib/test-dbus-glib.c:
2546 * test/glib/test-service-glib.c:
2547 * test/glib/test-service-glib.xml: Add recursive arrays tests.
2549 2005-07-20 John (J5) Palmieir <johnp@redhat.com>
2551 * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2552 proxies.py, service.py: Cleanup of code after running it through the
2553 pyflakes code checker mostly dealing with undefined names.
2554 (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2556 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
2558 * NEWS: Update to 0.35.2
2560 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
2562 * python/_dbus.py: Remove import of the dbus.services
2563 module as it no longer exists (patch from Dimitur Kirov)
2565 * python/service.py (Object::__init__): Fixed typo
2566 s/name/bus_name (patch from Dimitur Kirov)
2568 * python/examples/example-signal-emitter.py: import dbus.glib
2569 to get the main loop and use glib mainloop instead of gtk so
2570 X doesn't have to be running.
2572 * python/examples/example-signal-recipient.py: import dbus.glib
2573 to get the main loop and use glib mainloop instead of gtk so
2574 X doesn't have to be running. Import the decorators module
2577 * test/glib/Makefile.am: Added DIST_EXTRA files that distcheck
2578 didn't pick up on but are needed to build
2580 * configure.in: upped version to 0.35.2
2582 * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2583 added Colin Walters' SELinux API rename patch from head
2584 s/unix sercurity context/selinux security context/
2586 2005-07-16 John (J5) Palmieri <johnp@redhat.com>
2588 * python/Makefile.am: dbus_binding.pxd.in should be included
2589 in EXTRA_DIST not dbus_binding.pxd
2590 fix up $(srcdir) hopefully for the last time
2592 * NEWS: Update to 0.35.1
2594 2005-07-16 Colin Walters <walters@verbum.org>
2596 * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2597 from bus_driver_handle_get_connection_unix_security_context. Update for
2599 (message_handlers): Update for renames.
2601 * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2602 _dbus_string_init failure correctly.
2603 (bus_selinux_append_context): Convert SID to context. Append it
2605 (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2608 * bus/selinux.h: Update prototype.
2610 * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2611 from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2613 2005-07-15 Colin Walters <walters@verbum.org>
2615 * doc/TODO: Add note about convenience wrappers.
2617 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2619 * NEWS: Update to 0.35
2621 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2623 * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2624 so distcheck doesn't fail
2626 * glib/examples/Makefile.am: Add example-service.xml and
2627 example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2629 * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2630 statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2632 * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2633 compiler looks in the right places during distcheck
2635 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2637 * glib/example/Makefile.am: Fix a typo which cause make distcheck
2640 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2642 * python/examples/example-service.py,
2643 python/examples/example-signal-emitter.py: Fixed up examples
2646 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2648 * python/__init__.py: Upped to version (0,42,0) because of
2651 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2653 * ChangeLog: fix date in last entry
2655 * configure.in, bus/system.conf.in: add the ability to configure
2656 the system bus user at compiletime with the --with-dbus-user flag
2657 (patch from Kristof Vansant)
2659 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2661 * bus/dispatch.c, test/test-service.c: Add testcase
2662 for sending messages to oneself (TODO item).
2664 * python/service.py (class Object): Swap ordering of bus_name
2665 and object_path parameters to better support inheritance.
2667 * doc/dbus-tutorial.xml: change Python docs to reflect change
2668 in parameter ordering and fix the inheritance section.
2670 * doc/TODO: remove sending message to oneself TODO item
2672 2005-07-15 Ross Burton <ross@openedhand.com>
2674 * glib/dbus-gproxy.c:
2675 Fix a leak when calling methods via the proxy.
2677 2005-07-15 Colin Walters <walters@verbum.org>
2679 * bus/selinux.c (bus_selinux_append_context): Wrap in
2682 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
2684 * python/_dbus.py (Bus::remove_signal_receiver):
2685 don't add a callback to the match if none has been passed in
2687 * python/matchrules.py (SignalMatchTree::remove): if the rule
2688 being matched does not have a callback treat it as a wildcard
2691 * doc/dbus-tutorial.xml: Add Python tutorial
2693 2005-07-14 Colin Walters <walters@verbum.org>
2696 (bus_driver_handle_get_connection_unix_security_context): New function.
2697 (message_handlers): Add.
2699 * bus/selinux.c (bus_selinux_append_context): New function; appends
2700 security context to message.
2702 * bus/selinux.h: Prototype.
2704 * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2706 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
2708 * bus/activation.c: clean up all tabs to be 8 spaces
2709 (bus_activation_activate_service): make sure we clean up
2712 * bus/dispatch.c: clean up all tabs to be 8 spaces
2713 (check_shell_fail_service_auto_start): New function
2714 tests to make sure we get fail properly when trying to auto start a service
2715 with a faulty command line
2716 (check_shell_service_success_auto_start): New function tests to make sure
2717 auto started services get the arguments on the command line
2719 * test/test-shell-service.c: Added service for testing auto-starting with
2720 command line arguments
2722 * test/data/valid-service-files/debug-shell-echo-fail.service.in,
2723 test/data/valid-service-files/debug-shell-echo-success.service.in:
2724 Added service files for testing auto-starting with command line arguments
2726 * */.cvsignore: added a bunch of generated files to various .cvsignore files
2728 2005-07-14 Rodrigo Moya <rodrigo@novell.com>
2730 * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2732 * dbus/Makefile.am: added new files to build.
2734 * bus/activation.c (bus_activation_activate_service): support
2735 activation commands with parameters.
2737 * test/shell-test.c: added test program for the shell parsing
2740 2005-07-13 David Zeuthen <davidz@redhat.com>
2742 * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2743 64 bit signed and unsigned parameters
2745 2005-07-13 John (J5) Palmieri <johnp@redhat.com>
2747 * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2749 * python/service.py (class Name): renamed BusName to make it clearer
2750 what the object is for (a name on the bus)
2752 * python/examples/example-service.py,
2753 python/examples/example-signal-emitter.py: change the Name object to
2756 2005-07-12 Colin Walters <walters@verbum.org>
2758 Patch from Jim Gettys <Jim.Gettys@hp.com>.
2760 * tools/dbus-launch.c: Include sys/select.h.
2762 2005-07-12 John (J5) Palmieri <johnp@redhat.com>
2763 * python/dbus_bindings.pyx.in: removed
2765 * python/dbus_bindings.pyx: Added.
2766 - Fixed some memleaks (patch from
2767 Sean Meiners <sean.meiners@linspireinc.com>)
2768 - Broke out the #include "dbus_h_wrapper.h" and put it in its
2769 own pxd file (Pyrex definition)
2770 - Broke out glib dependancies into its own pyx module
2772 * python/dbus_bindings.pdx: Added.
2773 - Defines C class Connection for exporting to other modules
2775 * python/dbus_glib_bindings.pyx: Added.
2776 - New module to handle lowlevel dbus-glib mainloop integration
2778 * python/glib.py: Added.
2779 - Registers the glib mainloop when you import this module
2781 * python/services.py: Removed (renamed to service.py)
2783 * python/service.py: Added.
2784 - (class Server): renamed Name
2786 * python/__init__.py: Bump ro version (0,41,0)
2787 -don't import the decorators or service module
2788 by default. These now reside in the dbus.service namespace
2790 * python/_dbus.py (Bus::__init__): Add code run the main loop
2791 setup function on creation
2793 * python/examples/example-service.py,
2794 python/examples/example-signal-emitter.py: update examples
2796 * python/examples/gconf-proxy-service.py,
2797 python/examples/gconf-proxy-service2.py: TODO fix these up
2799 * doc/TODO: Addition
2800 - Added a Python Bindings 1.0 section
2801 - added "Add match on args or match on details to match rules"
2804 2005-07-12 Colin Walters <walters@verbum.org>
2806 * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h)
2807 (statemachine-glue.h):
2808 * glib/examples/Makefile.am (example-service-glue.h)
2809 (example-signal-emitter-glue.h):
2810 * glib/Makefile.am (dbus-glib-error-switch.h):
2811 Add libtool --mode=execute so we use the built library instead
2812 of any installed one.
2814 2005-07-11 Colin Walters <walters@verbum.org>
2816 * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2817 (dbus_g_value_types_init): Remove assertion.
2818 (dbus_g_value_get_g_type, dbus_g_value_open)
2819 (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2820 (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2821 functions related to DBusGValue. Now we marshal/demarshal
2822 structures as GValueArray.
2823 (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2825 (signature_iter_to_g_type_array): Don't call
2826 signature_iter_to_g_type_struct.
2827 (signature_iter_to_g_type_struct): Delete.
2828 (dbus_gvalue_to_signature): Delete.
2829 (dbus_gvalue_to_signature): New function with same name as other
2830 one; we can convert structures to signatures.
2831 (demarshal_valuearray): New function.
2832 (get_type_demarshaller): Use it.
2833 (demarshal_recurse): Delete.
2834 (marshal_proxy): New function.
2835 (marshal_map): Warn if we can't determine signature from type.
2836 (marshal_collection_ptrarray): Ditto.
2837 (marshal_collection_array): Ditto.
2838 (get_type_marshaller): Use marshal_valuearray.
2839 (marshal_recurse): Delete.
2840 (_dbus_gvalue_test): Add some tests.
2842 * dbus/dbus-glib.h (struct _DBusGValueIterator):
2843 (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2844 (dbus_g_value_open, dbus_g_value_iterator_get_value)
2845 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2846 (dbus_g_value_free): Remove prototypes.
2848 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2851 * glib/examples/example-service.c:
2852 * glib/examples/example-client.c: Implement GetTuple.
2854 * test/glib/test-dbus-glib.c:
2855 * test/glib/test-service-glib.c:
2856 * test/glib/test-service-glib.xml: Add structure tests.
2858 2005-07-10 Colin Walters <walters@verbum.org>
2860 * doc/TODO: Knock off some GLib items with this patch.
2862 * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error)
2863 (_dbus_gvalue_signals_error): New functions.
2865 * glib/dbus-gvalue-utils.h: Prototype them.
2867 * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2868 and change to not output const/retval flags for input args. All
2870 (invoke_object_method): Refactor to handle return values. Add
2871 some more comments in various places. Remove debug g_print.
2873 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2875 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2877 (compute_gsignature): New function; refactored from code from
2878 compute_marshaller and compute_marshaller_name. Enhance to
2879 handle return values and async ops more cleanly. Update for
2880 async ops returning NONE instead of BOOLEAN.
2881 (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2882 and output appropriate string.
2883 (generate_glue): Handle return value annotation. Also don't dump
2884 constness flag for input arguments.
2886 * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2887 files shared between installed library and utilities.
2888 (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2889 (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2890 binding tool can access gtype utility functions.
2892 * test/glib/test-service-glib.c:
2893 * test/glib/test-service-glib.xml:
2894 * test/glib/test-dbus-glib.c: Add some tests for return values.
2896 2005-07-09 Colin Walters <walters@verbum.org>
2898 * glib/dbus-gparser.c (parse_annotation): Add annotations to
2899 argument if available, not method.
2901 * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2902 (invoke_object_method): First, remove some redundant
2903 GValues (object_value, error_value) in favor of working on
2904 array directly. Second, rework constness to be less buggy.
2905 Now we iterate directly over the argument metadata instead
2906 of parallel iterating over output signature and metadata.
2908 * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2910 * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2911 annotation on input args.
2913 2005-07-09 Colin Walters <walters@verbum.org>
2915 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2918 * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2921 * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2922 (method_dir_signature_from_object_info): Handle arg_iterate change.
2923 (write_interface): Ditto.
2924 (lookup_object_info): Don't barf if format_version is > 0.
2925 (invoke_object_method): Handle arg constness.
2927 * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2928 (arg_info_new): Create.
2929 (arg_info_unref): Destroy.
2930 (arg_info_get_annotations, arg_info_get_annotation)
2931 (arg_info_add_annotation): New functions.
2933 * glib/dbus-gidl.h: Prototype them.
2935 * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2936 args, disallow them in properties.
2937 (parse_annotation): Handle arg annotations.
2939 * test/glib/test-service-glib.xml:
2940 * test/glib/test-service-glib.c: Update to make some methods
2943 2005-07-08 Colin Walters <walters@verbum.org>
2945 * test/glib/test-service-glib.xml:
2946 * test/glib/test-service-glib.c:
2947 * test/glib/test-dbus-glib.c: Test a{sv}.
2949 * glib/examples/statemachine/statemachine.c:
2950 * glib/examples/statemachine/statemachine-server.c:
2951 * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2952 add progress bar, etc.
2954 * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2955 needed anymore due to generic array/map marshalling.
2956 (dbus_g_value_types_init): Don't register basic arrays or the
2958 (dbus_gtype_from_signature_iter): Don't try to recurse into
2960 (dbus_gtype_to_signature): Check collection/map before type
2962 (demarshal_garray_basic): Renamed to demarshal_collection_array.
2963 (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2964 generic map creation/append functions instead of hash table
2966 (get_type_demarshaller): Handle maps.
2967 (demarshal_collection): Dispatch on collection type to either
2968 demarshal_collection_ptrarray or demarshal_collection_array.
2969 (get_type_marshaller): Handle maps.
2970 (marshal_collection): Dispatch collection type to either
2971 marshal_collection_ptrarray or marshal_collection_array.
2972 (_dbus_gvalue_test): New test.
2974 * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2975 (hash_free_from_gtype): Use it to free GValues.
2976 (hashtable_append): New function.
2977 (ptrarray_append): Fix prototype.
2978 (slist_append): Ditto.
2979 (_dbus_gvalue_utils_test): Extend tests.
2981 * glib/dbus-gtype-specialized.c
2982 (dbus_g_type_specialized_init_append): Renamed from
2983 dbus_g_type_specialized_collection_init_append. Remove const from
2984 value, since we steal it.
2985 (dbus_g_type_specialized_map_append): New function.
2987 * glib/dbus-gtype-specialized.h: Update prototypes.
2988 Add DBusGTypeSpecializedMapAppendFunc.
2990 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2993 * glib/dbus-gtest.h: Prototype it.
2995 2005-07-08 Ross Burton <ross@openedhand.com>
2998 Add DBysGAsyncData for the async bindings.
3000 * glib/dbus-binding-tool-glib.c:
3001 Re-enable the async bindings.
3003 * test/glib/test-dbus-glib.c:
3004 Add a test for the generated async bindings.
3006 2005-07-08 Colin Walters <walters@verbum.org>
3008 * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3011 2005-07-08 Colin Walters <walters@verbum.org>
3013 * tools/Makefile.am: Kill of print-introspect in favor of using
3014 dbus-send --print-reply=literal.
3016 * test/glib/test-service-glib.xml:
3017 * test/glib/test-service-glib.c (my_object_get_objs): New test
3020 * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3021 (main): Test GetObjs.
3023 * glib/examples/statemachine/Makefile.am:
3024 * glib/examples/statemachine/sm-marshal.list:
3025 * glib/examples/statemachine/statemachine-client.c:
3026 * glib/examples/statemachine/statemachine-server.c:
3027 * glib/examples/statemachine/statemachine-server.xml:
3028 * glib/examples/statemachine/statemachine.c:
3029 * glib/examples/statemachine/statemachine.h:
3030 * glib/examples/statemachine/statemachine.xml:
3034 * glib/examples/example-service.c (main): Move invocation
3035 of dbus_g_object_type_install_info earlier, to emphasize it
3036 should only be done once.
3038 * glib/examples/example-signal-emitter.c (main): Ditto.
3040 * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3042 * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3043 (dbus_gvalue_marshal): Update prototypes.
3045 * glib/dbus-gvalue.c: Update all marshalling functions to take
3046 const GValue instead of GValue.
3047 (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3049 (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3051 (dbus_gtype_to_signature): Handle generic collecitons and maps.
3052 Return a newly-allocated string.
3053 (demarshal_proxy, demarshal_object_path, demarshal_object)
3054 (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3055 we get the wrong types from message.
3056 (get_type_demarshaller): New function, extracted from
3057 dbus_gvalue_demarshal.
3058 (demarshal_collection): New function, demarshals generic
3060 (dbus_gvalue_demarshal): Just invoke result of
3061 get_type_demarshaller. Throw error if we don't have one.
3062 (marshal_garray_basic): Abort on OOM.
3063 (get_type_marshaller): New function, extracted from
3064 dbus_gvalue_marshal.
3065 (collection_marshal_iterator, marshal_collection): New functions;
3066 implements generic marshalling for an iteratable specialized
3068 (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3070 * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3072 (ptrarray_value_from_gvalue): Ditto.
3073 (ptrarray_append, ptrarray_free): New functions.
3074 (slist_constructor, slist_iterator, slist_copy_elt, slist_copy)
3075 (slist_append, slist_end_append, slist_free): New functions.
3076 (dbus_g_type_specialized_builtins_init): Add append fuctions
3077 for GPtrArray and GSList. Register GSList.
3078 (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3080 * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3082 (dbus_g_type_specialized_collection_init_append)
3083 (dbus_g_type_specialized_collection_append)
3084 (dbus_g_type_specialized_collection_end_append): Prototype.
3085 (DBusGTypeSpecializedCollectionVtable): Add append_func and
3088 * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append)
3089 (dbus_g_type_specialized_collection_append)
3090 (dbus_g_type_specialized_collection_end_append): New functions.
3091 (dbus_g_type_map_value_iterate): Take const GValue.
3092 (dbus_g_type_collection_value_iterate): Ditto.
3094 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3095 _dbus_gvalue_utils_test.
3097 * glib/dbus-gtest.h: Prototype it.
3099 * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3100 using uninitialized owner_list.
3101 (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3103 (dbus_g_proxy_end_call_internal): Update to use error set
3104 from dbus_gvalue_demarshal instead of setting it here.
3105 (dbus_g_proxy_begin_call): Move return_if_fail here.
3107 * glib/dbus-gobject.c (write_interface): Update for
3108 dbus_gtype_to_signature returning new string.
3110 * configure.in: Add glib/examples/statemachine.
3112 2005-07-08 Joe Shaw <joeshaw@novell.com>
3114 * configure.in: Add a configure option, --with-console-auth-dir
3116 * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3117 new setting. Patch from Kay Sievers.
3119 2005-07-06 Colin Walters <walters@verbum.org>
3121 * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3122 (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3123 (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3124 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3125 Delete in favor of dbus_g_proxy_begin_call and
3126 dbus_g_proxy_cancel_call.
3127 (DBusGProxyCall, DBusGProxyCallNotify): New.
3128 (dbus_g_proxy_begin_call): Change prototype to take callback, user
3129 data, and destroy function. This replaces
3130 dbus_g_pending_call_set_notify.
3131 (dbus_g_proxy_cancel_call): Prototype.
3132 (DBusGAsyncData): Delete, shouldn't be needed anymore.
3134 * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3136 (struct _DBusGProxyManager): Add bus_proxy member, which is an
3137 internal proxy for calls to the bus. Remove
3138 pending_nameowner_calls, now the internal proxy keeps track.
3139 (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3140 pending_nameowner_calls.
3141 (got_name_owner_cb): Update prototype, and use
3142 dbus_g_proxy_end_call.
3143 (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3144 (dbus_g_proxy_manager_register): Delete directly libdbus code in
3145 favor of using internal proxy.
3146 (dbus_g_proxy_manager_unregister): Update to use
3147 dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3148 (dbus_g_proxy_init): Initialize pending calls map.
3149 (dbus_g_proxy_constructor): New.
3150 (dbus_g_proxy_class_init): Add get/set property functions,
3151 constructor, and add NAME, PATH, and INTERFACE properties.
3152 (cancel_pending_call): New function.
3153 (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3155 (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3156 (GPendingNotifyClosure): New structure.
3157 (d_pending_call_notify, d_pending_call_free): Moved here from
3159 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3161 (manager_begin_bus_call): New internal function for talking to
3163 (dbus_g_proxy_new): Construct object using GObjet properties.
3164 (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3165 Create closure of same, and insert call into map of pending calls.
3166 (dbus_g_proxy_end_call_internal): Take call id instead of pending
3167 call. Look up pending call in current set. Remove it when we've
3169 (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3170 (dbus_g_proxy_begin_call): Change API to take callback, user data,
3171 and destroy function directly.
3172 (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3173 (dbus_g_proxy_call): Invoke with NULL callback.
3174 (dbus_g_proxy_cancel_call): New function, replaces
3175 dbus_g_pending_call_cancel.
3177 * glib/dbus-gparser.c (validate_signature): Fix call to
3180 * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3181 New quark for attaching metadata to GType.
3182 (info_hash): Delete.
3183 (lookup_object_info): Look up using quark.
3184 (dbus_g_object_type_install_info): Check that a type is classed,
3185 not that it's an object. Also just install type data using quark
3186 instead of using global hash.
3188 * glib/dbus-glib.c (dbus_g_pending_call_ref)
3189 (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3190 (GPendingNotifyClosure): Delete.
3191 (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3192 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3194 * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3195 client method generation until we can fix it...
3197 * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3198 (load_from_service_thread_func): Ditto.
3200 * tools/dbus-names-model.c (struct NamesModel): Hold
3202 (have_names_notify): Update prototype, use
3203 dbus_g_proxy_cancel_call.
3204 (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3206 * tools/dbus-monitor.c (filter_func): Update for print_message
3209 * test/glib/test-dbus-glib.c: Add more tests for async
3210 invocations. Update many begin_call/end_call pairs to just use
3213 * tools/dbus-send.c (main): Add --print-reply=literal mode. This
3214 allows us to dump print-introspect.c.
3216 * tools/dbus-print-message.h (print_message): Add literal argument
3217 to print_message which is intended to allow printing arguments without
3218 metadata like "string=".
3220 * tools/dbus-print-message.c (print_iter): Add literal argument.
3221 (print_message): Allow printing string messages literally.
3223 2005-07-05 Colin Walters <walters@verbum.org>
3225 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3226 Remove value refcount leak, original patch from Jorn Baayen
3227 <jorn@openedhand.com>. Also remove useless extra value in favor
3228 of prepending to value array directly.
3230 2005-07-02 Colin Walters <walters@verbum.org>
3232 * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
3234 2005-07-01 Colin Walters <walters@verbum.org>
3236 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3238 * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
3239 (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3240 G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3241 and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3243 2005-06-30 Colin Walters <walters@verbum.org>
3245 * test/glib/test-dbus-glib.c:
3246 * test/glib/test-service-glib.c:
3247 * test/glib/test-service-glib.xml: Update tests for new error
3248 setting bits, also add async tests (patch from Ross Burton).
3250 * test/glib/Makefile.am (test_service_glib_LDADD): Add
3251 DBUS_GLIB_THREADS_LIBS.
3253 * glib/dbus-gproxy.c (get_name_owner)
3254 (dbus_g_pending_call_end_valist): Ditto.
3256 * glib/dbus-gobject.c (error_metadata): New mapping from GError
3257 domain (GQuark) to DBusGErrorInfo.
3258 (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3259 quark in error_metadata. Take message interface as default
3260 error message interface.
3261 (gerror_to_dbus_error_message): Pass message interface.
3262 (dbus_set_g_error): Resurrected.
3263 (dbus_g_error_info_free): New function.
3264 (dbus_g_object_type_install_info): Use g_type_class_ref instead
3265 of _peek to actually create the object class if it hasn't been
3267 (dbus_g_error_domain_register): New function.
3269 * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3271 * glib/dbus-gparser.c (validate_signature): Ditto.
3273 * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3274 (dbus_g_error_domain_register): Prototype.
3276 * glib/dbus-glib.c (dbus_g_error_set): Delete.
3279 2005-06-29 Colin Walters <walters@verbum.org>
3281 * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY. Add
3282 DBUS_TYPE_G_OBJECT_PATH.
3284 * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3285 for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3286 be handled more generically). Add DBUS_TYPE_G_OBJECT_PATH.
3287 (dbus_g_object_path_get_g_type): New function.
3288 (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3289 to DBUS_TYPE_G_OBJECT_PATH by default.
3290 (demarshal_proxy): Remove unused name variable.
3291 (demarshal_object_path, marshal_object_path): New functions.
3292 (demarshal_proxy_array, marshal_proxy_array): Delete.
3294 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3295 DBUS_TYPE_G_OBJECT_PATH to char *.
3296 (dbus_g_type_get_lookup_function): Map builtin
3297 DBUS_TYPE_G_OBJECT_PATH.
3299 * test/glib/test-dbus-glib.c
3300 * test/glib/test-service-glib.c (my_object_objpath):
3301 Adapt tests to new object path marshalling.
3303 2005-06-29 John (J5) Palmieri <johnp@redhat.com>
3305 * configure.in: force check for Python >= 2.4
3307 2005-06-29 Colin Walters <walters@verbum.org>
3309 Patch from Ross Burton <ross@openedhand.com>
3311 * glib/dbus-gobject.c (invoke_object_method): Unset object
3312 value in all cases, not only in async case.
3314 2005-06-29 Colin Walters <walters@verbum.org>
3316 * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3317 name_call for keeping track of any outgoing GetNameOwner call.
3318 Also add for_owner and associated.
3319 (struct _DBusGProxyManager): Add owner_names, which is hash table
3320 that maps a base name to a list of names it owns (that we're
3321 interested in). Add pending_nameowner_calls which is a list of
3322 all outstanding GetNameOwner; avoids us having to iterate over
3323 every proxy. Add unassociated_proxies which keeps track of name
3324 proxies with no associated name owner.
3325 (dbus_g_proxy_manager_unref): Destroy owner_names.
3326 (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3328 (find_name_in_info, name_owner_foreach)
3329 (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3330 (dbus_g_proxy_manager_monitor_name_owner)
3331 (dbus_g_proxy_manager_unmonitor_name_owner)
3332 (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3333 New functions; they manipulate the owner_names mapping.
3334 (got_name_owner_cb): New function.
3335 (get_name_owner): New function, extracted from
3336 dbus_g_proxy_new_for_name_owner.
3337 (dbus_g_proxy_manager_register): For now we need to keep track of
3338 all NameOwnerChanged. Also if the proxy is for a name, if we
3339 don't already know the name owner, queue a new GetNameOwner
3340 request and add it to our list of unassociated proxies. Otherwise
3342 (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3343 cancel any pending GetNameOwner call, etc.
3344 (dbus_g_proxy_manager_filter): Handle NameOwnerChanged. Also use
3345 the owner_names mapping to look up the current names for the
3346 signal source, and dispatch to any proxies for that name.
3347 (dbus_g_proxy_new): Initialize new members.
3348 (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3349 (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3350 (dbus_g_pending_call_end_valist): New function, extracted from
3351 dbus_g_proxy_end_call_internal. Useful when we don't have a proxy
3352 but want to use the GLib infrastructure. Also note how many
3353 arguments in reply were over.
3354 (dbus_g_pending_call_end): New function, just call
3355 dbus_g_pending_call_end_valist.
3356 (dbus_g_proxy_end_call_internal): Just call
3357 dbus_g_pending_call_end_valist.
3359 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3360 of builtin marshaller for STRING_STRING_STRING.
3362 * test/glib/test-dbus-glib.c:
3363 * test/glib/test-service-glib.c:
3364 * test/glib/test-service-glib.xml:
3365 Extend tests to cover name proxies, destruction of owner proxies,
3368 * glib/examples/example-signal-recipient.c
3369 (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3371 * tools/dbus-send.c (main): Print D-BUS error name in addition
3374 2005-06-28 John (J5) Palmieri <johnp@redhat.com>
3376 * python/dbus_bindings.pyx.in (cunregister_function_handler,
3377 cmessage_function_handler): Patch from
3378 Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3379 by using the Py_GILState_Ensure/Release to synchronize with the
3382 2005-06-28 Ray Strode <rstrode@redhat.com>
3384 * dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3385 babysitter helper process on last unref, bug #2813.
3387 2005-06-27 Colin Walters <walters@verbum.org>
3389 * test/glib/test-dbus-glib.c:
3390 * test/glib/test-service-glib.c:
3391 * test/glib/test-service-glib.xml:
3392 Test hash table signal emitting.
3394 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3395 types to their fundamental basis types, since this is what
3396 marshallers operate on. Also add an entry for VOID__BOXED.
3397 (dbus_g_object_register_marshaller_array): Convert to fundamental.
3399 2005-06-26 Havoc Pennington <hp@redhat.com>
3401 * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3404 2005-06-26 Colin Walters <walters@verbum.org>
3406 * glib/dbus-glib.c (dbus_set_g_error): Delete.
3407 (dbus_g_error_set): New public function from its ashes; used by
3408 both service-side method implementation and GLib bindings
3410 (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3411 (_dbus_glib_test): Add some tests.
3413 * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3415 * test/glib/test-service-glib.c (my_object_throw_error): Use
3418 * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3419 errors thrown by dbus_g_error_set.
3421 * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3423 * glib/dbus-gparser.c (validate_signature): Ditto.
3425 * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner)
3426 (dbus_g_proxy_end_call_internal): Ditto.
3428 * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3429 converts DBUS_ERROR_x to DBUS_GERROR_x.
3430 (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3432 * doc/TODO: Remove error TODO.
3434 * doc/dbus-tutorial.xml: Update with documentation about error
3437 * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3438 sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3439 GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION.
3441 2005-06-22 Colin Walters <walters@verbum.org>
3443 Patch from Ross Burton <ross@openedhand.com>
3445 * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3447 2005-06-20 Colin Walters <walters@verbum.org>
3449 * configure.in: Add glib/examples.
3451 * glib/Makefile.am: Add examples/
3453 * glib/examples/.cvsignore
3454 * glib/examples/Makefile.am
3455 * glib/examples/example-client.c
3456 * glib/examples/example-service.c
3457 * glib/examples/example-service.xml
3458 * glib/examples/example-signal-emitter.c
3459 * glib/examples/example-signal-emitter.xml
3460 * glib/examples/example-signal-recipient.c:
3461 New files; GLib binding examples, ported from
3464 2005-06-20 Colin Walters <walters@verbum.org>
3467 * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3470 * glib/dbus-binding-tool-glib.c:
3471 * doc/dbus-tutorial.xml:
3472 * test/glib/test-dbus-glib.c: Update for rename.
3474 2005-06-20 Colin Walters <walters@verbum.org>
3476 Patch suggested by Ross Burton <ross@openedhand.com>
3478 * glib/dbus-gobject.c (export_signals): Free signal name.
3479 (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3480 memory leak. Add a bit of documentation.
3481 (dbus_g_method_return_error): Free context, and note we do
3484 2005-06-18 Murray Cumming <murrayc@murrayc.com>
3487 * glib/dbus-gobject.c:
3488 * glib/dbus-gproxy.c:
3489 * glib/dbus-gvalue.c: Predeclare structs as
3490 typedef struct _Something Something instead of
3491 typedef struct Something Something, so we can
3492 redeclare the prototypes. Other GNOME libraries
3495 2005-06-17 Colin Walters <walters@verbum.org>
3497 * tools/dbus-names-model.c (have_names_notify): Fix call
3498 to dbus_g_proxy_end_call.
3500 2005-06-17 Colin Walters <walters@verbum.org>
3502 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3503 spew warnings if we get malformed remote signals.
3505 * glib/dbus-gobject.c (propsig_iterate): New function.
3506 (lookup_object_info): New function, extracted from
3507 lookup_object_and_method.
3508 (introspect_properties, introspect_signals): Delete; these
3509 are merged into write_interface.
3510 (write_interface): Write out signals and properties here;
3511 dump the org.gtk.object stuff and use the interface given
3512 in the introspection data blob. Also fix up property XML.
3513 (lookup_values): New function.
3514 (introspect_interfaces): Gather a mapping from interface to a
3515 list of its methods, signals, and properties, then write out
3517 (lookup_object_and_method): Use lookup_object_info.
3518 (struct DBusGSignalClosure): Add interface.
3519 (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3520 we can just use the constant data.
3521 (dbus_g_signal_closure_finalize): Don't free signal name.
3522 (signal_emitter_marshaller): Use interface from signal closure.
3523 (export_signals): Only export signals mentioned in introspection
3525 (dbus_g_connection_register_g_object): Warn if we have no
3526 introspection data for an object.
3527 (funcsig_equal): Remove unused variable.
3528 (dbus_g_object_register_marshaller): Take varargs instead of
3530 (dbus_g_object_register_marshaller_array): New function,
3531 extracted from old dbus_g_object_register_marshaller.
3533 * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3534 signals and property data.
3535 (write_quoted_string): New function, extracted from generate_glue.
3536 (generate_glue): Write signals and properties to introspection
3539 * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3540 exported_signals and exported_properties.
3541 (dbus_g_object_register_marshaller): Update prototype.
3542 (dbus_g_object_register_marshaller_array): Prototype.
3544 * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3546 * test/glib/test-service-glib.c: Add new test signals and method
3549 * test/glib/test-service-glib.xml: Add some test signals.
3551 * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3552 and my-object-marshal.h
3553 (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3554 my-object-marshal.c.
3555 (my-object-marshal.c, my-object-marshal.h): Implement.
3557 * test/glib/.cvsignore: Update.
3559 * doc/TODO: Remove two GLib TODO items fixed by this
3562 2005-06-16 Colin Walters <walters@verbum.org>
3564 * doc/TODO: Update for GLib bindings.
3566 2005-06-16 Colin Walters <walters@verbum.org>
3568 * glib/dbus-binding-tool-glib.c:
3569 * glib/dbus-gobject.c:
3570 * glib/dbus-gproxy.c: Add Nokia copyright; Patch
3571 from Ross Burton, for his GLib bindings work.
3573 2005-06-16 Colin Walters <walters@verbum.org>
3575 * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3576 to iterate instead of walking to G_TYPE_INVALID.
3578 Patch based on a patch from Ryan Gammon.
3580 2005-06-16 Colin Walters <walters@verbum.org>
3582 * bus/bus.c (bus_context_new): Set parser to NULL
3583 after we unref it (Patch from Chris Boscolo, #2174).
3585 2005-06-16 Colin Walters <walters@verbum.org>
3587 * python/dbus_bindings.pyx.in: Import size_t,
3588 __int64_t, __uint64_t, and __signed.
3590 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3591 Define cmsg struct, output it.
3592 (_dbus_read_credentials_unix_socket):
3595 Patch from Joe Markus Clarke for FreeBSD support.
3597 2005-06-16 Colin Walters <walters@verbum.org>
3599 * tools/dbus-send.c (append_array): Use strtok.
3600 (append_dict): New function.
3601 (type_from_name): New function, extracted from main.
3602 (main): Handle sending dicts.
3604 * tools/dbus-print-message.c (print_iter): Print dict
3607 2005-06-16 Colin Walters <walters@verbum.org>
3609 * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3610 values as the empty string (#2948).
3612 2005-06-16 Colin Walters <walters@verbum.org>
3615 * mono/doc/Makefile.am:
3616 * test/glib/Makefile.am:
3618 Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3620 2005-06-16 Colin Walters <walters@verbum.org>
3622 * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3623 header byte order from expected byte order (Patch from Chris Wilson, #3475).
3625 * dbus/dbus-marshal-byteswap.c (byteswap_body_helper):
3626 Increment pointer after swapping fixed array. Add assertion
3629 2005-06-15 Colin Walters <walters@verbum.org>
3631 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3632 Fix call to dbus_set_error. (Patch from Michael Banck, #3461)
3634 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3636 * NEWS: Update to 0.34
3638 2005-06-15 David Zeuthen <davidz@redhat.com>
3640 * configure.in (LT_CURRENT): Revert back to 1 as the library
3641 hasn't changed and we've certainly not committed to protocol
3642 stability yet. All this does is to break ABI. See commit note
3643 from hp@redhat.com 2005-05-05 for details.
3645 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3647 * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method
3648 (_dbus_connection_run_builtin_filters): New method
3649 (dbus_connection_dispatch): Run the builtin filters which in turn
3650 runs the peer filter which handles Ping messages.
3653 - Ping isn't handled: This patch fixes it
3655 - Add a test case for the Ping message: added TODO item
3657 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3659 * dbus/dbus-message.c:
3660 (dbus_message_has_path): New method
3661 (dbus_message_has_interface): New method
3662 (dbus_message_has_member): New method
3664 * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3667 * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that
3668 the keyring directory is private to the user
3671 - The convenience functions in dbus-bus.h should perhaps have
3672 the signatures that they would have if they were autogenerated
3673 stubs. e.g. the acquire service function. We should also evaluate
3674 which of these functions to include, in light of the fact that
3675 GLib/Qt native stubs will probably also exist.: Punted
3677 - add dbus_message_has_path(), maybe has_member/interface:
3680 - in dbus-keyring.c, enforce that the keyring dir is not
3681 world readable/writable: Fixed in this patch
3683 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3685 * dbus/dbus-marshal-validate.h: Added a new validation
3686 error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for
3687 out of memory errors when validating signitures
3689 * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3690 in places where we previously used DBUS_VALID and a FALSE return
3691 value to indicate OOM
3693 * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3694 Use a stack to track the number of elements inside containers. The
3695 stack values are then used to validate that dict entries have only two
3696 elements within them.
3697 (validate_body_helper): check the reason for failure when validating
3700 * dbus/dbus-message.c (load_message): use
3701 DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used
3702 DBUS_VALID and a FALSE return value to indicate OOM
3704 * doc/TODO: remove "- validate dict entry number of fields" as this
3707 2005-06-14 David Zeuthen <davidz@redhat.com>
3709 * bus/bus.c (process_config_every_time): Drop existing conf-dir
3710 watches (if applicable) and add new watches
3712 * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3713 (main): Setup SIGIO signal handler if using D_NOTIFY
3715 * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3717 * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3718 (merge_included): Also merge conf_dirs list
3719 (bus_config_parser_unref): Clear conf_dirs list
3720 (include_dir): Add directory to conf_dirs list
3721 (bus_config_parser_get_conf_dirs): New function
3723 * bus/dir-watch.[ch]: New files
3725 * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3727 * configure.in: Add checks for D_NOTIFY on Linux
3729 2005-06-14 Colin Walters <walters@verbum.org>
3731 * glib/dbus-binding-tool-glib.c:
3732 * glib/dbus-gobject.c:
3733 * glib/dbus-gvalue.c: Fix indentation and brace style.
3735 2005-06-14 Ross Burton <ross@openedhand.com>.
3737 * glib/dbus-glib.h: Make DBusGMethodInvocation
3738 a private structure. Rearrange prototypes a bit.
3740 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3741 documentation for first_arg_type.
3743 * glib/dbus-gobject.c: Move DBusGMethodInvocation
3744 here, add documentation. Move dbus_g_method_return
3745 and dbus_g_method_return_error into public API
3748 2005-06-14 Colin Walters <walters@verbum.org>
3750 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3751 Add missing return statements, noticed by Ross Burton.
3753 2005-06-13 Ross Burton <ross@openedhand.com>.
3755 * glib/dbus-gobject.c: Handle errors on message
3756 demarshalling by sending error message back.
3757 * glib/dbus-gvalue.c: Initialize return variables.
3759 2005-06-13 Colin Walters <walters@verbum.org>
3761 * glib/Makefile.am: Fix thinko in last patch.
3763 2005-06-13 Colin Walters <walters@verbum.org>
3765 * glib/Makefile.am: Move dbus-gtype-specialized.c
3766 and dbus-gtype-specialized.h into a _HEADERS variable,
3769 2005-06-12 Colin Walters <walters@verbum.org>
3771 Async signals and various bugfixes and testing by
3772 Ross Burton <ross@openedhand.com>.
3774 * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3775 (dbus_gvalue_genmarshal_name_from_type)
3776 (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3777 (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3778 (dbus_g_value_types_init, dbus_gtype_from_signature)
3779 (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3780 (dbus_gtypes_from_arg_signature): New function prototypes.
3781 (dbus_gvalue_demarshal): Take context and error arguments.
3782 (dbus_gvalue_demarshal_variant): New function.
3783 (dbus_gvalue_demarshal_message): New function.
3784 (dbus_gvalue_store): Delete.
3786 * glib/dbus-gvalue.c:
3788 File has been almost entirely rewritten; now we special-case
3789 more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3790 hash tables correctly, etc. Full support for recursive values
3791 is not yet complete.
3793 * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3794 argument of signal to G_TYPE_POINTER since we now pass a
3796 (lookup_g_marshaller): Delete in favor of
3797 _dbus_gobject_lookup_marshaller.
3798 (marshal_dbus_message_to_g_marshaller): Use
3799 _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3800 to handle remote signal callbacks.
3801 (dbus_g_proxy_new_from_proxy): New function; creates a new
3802 DBusGProxy by copying an existing one.
3803 (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3804 (dbus_g_proxy_get_path): New functions.
3805 (dbus_g_proxy_marshal_args_to_message): New function;
3806 factored out of existing code.
3807 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3808 from a varargs array.
3809 (dbus_g_proxy_begin_call_internal): New function.
3810 (dbus_g_proxy_end_call_internal): New function.
3811 (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3812 as arguments; simply invoke dbus_g_proxy_begin_call_internal
3813 after collecting args into value array.
3814 (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3815 invoke dbus_g_proxy_end_call_internal.
3816 (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3818 (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3820 (array_free_all): New function.
3821 (dbus_g_proxy_add_signal): Take GTypes.
3823 * glib/dbus-gobject.h:
3824 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3825 (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3828 * glib/dbus-gobject.c: Add a global marshal_table hash which
3829 stores mappings from type signatures to marshallers. Change lots
3830 of invocations of dbus_gtype_to_dbus_type to
3831 dbus_gtype_to_signature.
3832 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3833 (introspect_signals): Fix test for query.return_type.
3834 (set_object_property): Update invocation of dbus_gvalue_demarshal.
3835 (invoke_object_method): Many changes. Handle asynchronous
3836 invocations. Convert arguments with
3837 dbus_gvalue_demarshal_message. Handle errors. Use
3838 DBusSignatureIter instead of strlen on args. Handle all arguments
3839 generically. Special-case variants.
3840 (dbus_g_method_return, dbus_g_method_return_error): New function.
3841 (DBusGSignalClosure): New structure, closes over signal
3843 (dbus_g_signal_closure_new): New function.
3844 (dbus_g_signal_closure_finalize): New function.
3845 (signal_emitter_marshaller): New function; is special marshaller
3846 which emits signals on bus.
3847 (export_signals): New function; introspects object signals and
3849 (dbus_g_object_type_install_info): Take GType instead of
3851 (dbus_g_connection_register_g_object): Invoke export_signals.
3852 (dbus_g_connection_lookup_g_object): New function.
3853 (DBusGFuncSignature) New structure; used for mapping type
3854 signatures to marshallers.
3855 (funcsig_hash): New function; hashes DBusGFuncSignature.
3856 (funcsig_equal): New function; compares DBusGFuncSignature.
3857 (_dbus_gobject_lookup_marshaller): New function.
3858 (dbus_g_object_register_marshaller): New function; used to
3859 register a marshaller at runtime for a particular signature.
3861 * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3863 * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3864 which notes a server method implementation should be
3867 * glib/dbus-binding-tool-glib.c
3868 (dbus_binding_tool_output_glib_server): Call
3869 dbus_g_value_types_init.
3870 (write_formal_parameters): Use dbus_gtype_from_signature. Handle
3872 (dbus_g_type_get_lookup_function): Turn GType into an invocation
3873 of a lookup function.
3874 (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3875 (write_untyped_out_args): New method; write output arguments.
3876 (write_formal_declarations_for_direction): Function for
3878 (write_formal_parameters_for_direction): Function for
3879 writing implementations.
3880 (write_typed_args_for_direction): Function for writing
3881 arguments prefixed with GTypes.
3882 (write_async_method_client): Write out async version
3885 * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3886 (dbus_g_type_get_marshal_name): Move mapping from GType
3887 to marshal name into here.
3888 (dbus_g_type_get_c_name): Move into here.
3889 (compute_marshaller): Convert signature to type with
3890 dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3891 (compute_marshaller_name): Ditto.
3892 (compute_marshaller): Handle async signal annotations.
3893 (gather_marshallers): Return if we don't have a known
3895 (generate_glue): Collect introspection blob here, and
3896 write all of the blob at the end. This allows an object
3897 with multiple interfaces to work.
3898 Mark async methods in introspection blob.
3900 * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3901 dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3902 dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3904 * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3905 avoids people accidentally using DBUS_TYPE_* which should
3906 not be necessary anymore.
3907 Do include dbus-gtype-specialized.h, which are utilities
3908 for GLib container types.
3909 Add various #defines for types such as
3910 DBUS_TYPE_G_BOOLEAN_ARRAY.
3911 (DBusGValueIterator, DBusGValue): Define, not fully used
3913 (dbus_g_value_get_g_type): Type for recursive value.
3914 (dbus_g_value_open, dbus_g_value_iterator_get_value)
3915 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3916 (dbus_g_value_free): Prototypes.
3917 (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3918 (dbus_g_proxy_set_interface): Prototype.
3919 (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3920 (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3922 (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3924 (DBusGAsyncData, DBusGMethodInvocation): Structures for
3925 doing async invocations.
3926 (dbus_g_method_return, dbus_g_method_return_error):
3928 * doc/dbus-tutorial.xml: Update GLib section.
3930 * tools/dbus-viewer.c (load_child_nodes): Update
3931 for new invocation type of dbus_g_proxy_end_call.
3932 (load_from_service_thread_func): Ditto.
3934 * tools/print-introspect.c (main): Ditto.
3936 * tools/dbus-names-model.c (have_names_notify)
3937 (names_model_reload, names_model_set_connection)
3940 * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3941 needed since Python bindings use GLib bindings.
3943 * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3944 Add --prefix argument.
3946 * tools/Makefile.am: Define DBUS_COMPILATION. Remove
3947 unneeded --ignore-unsupported arg.
3949 * test/glib/test-service-glib.c:
3950 * test/glib/test-service-glib.xml:
3951 * test/glib/test-dbus-glib.c: Add many more tests.
3953 2005-06-06 David Zeuthen <davidz@redhat.com>
3955 * doc/TODO: Add item about need to remove deprecated functions.
3957 * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3959 * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3960 to repair the ABI which was broken with the last commit.
3962 2005-06-02 John (J5) Palmieri <johnp@redhat.com>
3964 * dbus/dbus-connection.c, dbus/dbus-connection.h
3965 (dbus_connection_disconnect): renamed to dbus_connection_close
3966 for API symmetry with dbus_connection_open
3967 (_dbus_connection_open_internal):
3968 s/dbus_connection_disconnect/dbus_connection_close
3970 * dbus/dbus-bus.c (dbus_bus_get):
3971 s/dbus_connection_disconnect/dbus_connection_close
3973 * bus/connection.c (bus_connections_unref,
3974 bus_connections_setup_connection, bus_connections_expire_incomplete):
3975 s/dbus_connection_disconnect/dbus_connection_close
3977 * bus/dispatch.c (bus_dispatch, kill_client_connection,
3978 kill_client_connection_unchecked, check_hello_connection):
3979 s/dbus_connection_disconnect/dbus_connection_close
3981 * bus/bus.c (new_connection_callback):
3982 s/dbus_connection_disconnect/dbus_connection_close
3984 * tools/dbus-send.c (main):
3985 s/dbus_connection_disconnect/dbus_connection_close
3987 * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3988 s/dbus_connection_disconnect/dbus_connection_close
3990 * test/test-service.c (path_message_func, filter_func):
3991 s/dbus_connection_disconnect/dbus_connection_close
3993 * doc/TODO: remove connection_open/connection_disconnect lacks symmetry item that was just fixed
3995 2005-05-25 Colin Walters <walters@verbum.org>
3997 * dbus/dbus-protocol.h: Move various bus service #defines such
3998 as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
4000 * dbus/dbus-shared.h: Various defines moved here.
4001 * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4003 2005-05-25 John (J5) Palmieri <johnp@redhat.com>
4005 * python/__init__.py: Python bindings deserve a minor version
4006 update. Upped to (0, 40, 2)
4008 2005-05-24 John (J5) Palmieri <johnp@redhat.com>
4010 * python/decorators.py: add explicitly_pass_message decorator
4011 for passing in the dbus message as keyword for edge case signal
4014 * python/matchrules.py (SignalMatchRule.__repr__): fix output
4015 to conform with what dbus expects for match rules
4016 (SignalMatchRule.execute): add the dbus message as a keyword
4017 if the signal handler has requested it
4019 * python/examples/example/signal-recipient.py: added some more
4020 examples on how to hook up to signals
4022 2005-05-23 John (J5) Palmieri <johnp@redhat.com>
4024 * python/decorators.py: import dbus_bindings
4026 * python/matchrules.py (SignalMatchRule, SignalMatchTree,
4027 SignalMatchNode): new classes that implement wildcard signal
4028 callback matching using a tree lookup. Heavily modified from a
4029 patch sent by Celso Pinto (fd.o bug #3241)
4031 * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4032 use new match classes to handle signals.
4034 2005-05-19 John (J5) Palmieri <johnp@redhat.com>
4036 * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4038 2005-05-18 Havoc Pennington <hp@redhat.com>
4040 * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4041 gettext. Not really worth requiring yet perhaps, but any
4042 production quality 1.0 would require it so we should go ahead and
4043 get things set up. We do have a couple token calls to
4044 bindtextdomain in the code already.
4046 2005-05-16 John (J5) Palmieri <johnp@redhat.com>
4048 * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4049 when using recursive g_main_loops
4051 * python/_dbus.py (class Bus): add the ProxyObjectClass
4052 alias for ProxyObject to make it easier for the Twisted
4053 networking framework to integrate dbus.
4055 * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4056 alias for ProxyMethod to make it easier for the Twisted
4057 networking framework to integrate dbus.
4059 2005-05-11 Ross Burton <ross@openedhand.com>
4061 * glib/dbus-glib-tool.c: Add --prefix argument.
4062 * glib/dbus-binding-tool-glib.h: Add prefix argument.
4063 * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
4064 Add prefix argument.
4065 (generate_glue): Pass prefix argument down.
4066 (dbus_binding_tool_output_glib_server): Pass prefix to
4069 2005-05-11 Colin Walters <walters@verbum.org>
4071 * tools/dbus-send.c (append_array): New function.
4072 (append_arg): Broken out from main.
4073 (main): Add cheesy hack to send arrays and variants.
4075 * tools/dbus-print-message.c (print_iter): Broken out
4078 2005-05-11 Colin Walters <walters@verbum.org>
4080 * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4081 New function, returns signature string for signature iter.
4082 * dbus/dbus-signature.h: Prototype it.
4083 * dbus/dbus-message.c (dbus_message_iter_get_signature):
4084 New function, returns signature string for message iter.
4085 (dbus_message_iter_get_array_len): New function, returns
4087 (dbus_message_iter_get_fixed_array): Fix assertion; this
4088 function should be used when the iter is pointing to the
4089 contents of an array
4090 * dbus/dbus-message.h: Prototypes.
4091 * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4092 New function; returns length of an array.
4093 * dbus/dbus-marshal-recursive.h: Prototype it.
4095 2005-05-11 Colin Walters <walters@verbum.org>
4097 * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4100 2005-05-08 Havoc Pennington <hp@redhat.com>
4102 * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4103 daemon's pid, not the parent's pid, to the file descriptor.
4104 Reported by Taj Morton.
4106 2005-05-05 Havoc Pennington <hp@redhat.com>
4108 * configure.in (LT_*): add notes on how the libtool versioning
4109 works to save thinking. Increment soname to indicate protocol
4110 breakage (though really the library interface hasn't changed I
4113 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4114 verify the GUID received from server matches what we were
4115 expecting, if we had an expectation
4117 * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4118 (_dbus_auth_get_guid_from_server): new function
4119 (send_begin): parse the OK args
4121 * doc/dbus-specification.xml: add GUID to the auth protocol
4123 2005-05-05 John (J5) Palmieri <johnp@redhat.com>
4125 * Fix my name in previous changelog ;)
4127 * python/proxies.py (ProxyObject.__getattr__): add further patch
4128 from Anthony Baxter to throw an AttributeError when python
4129 __special__ functions are called instead of marshling them over
4130 the bus (Bug#1685 comment 3).
4132 2005-05-04 John (J5) Palmieri <johnp@redhat.com>
4134 * python/Makefile.am: changed to use pyexecdir for the binding
4135 shared libraries (Bug#2494)
4137 * python/exceptions.py: bring exceptions over from the bindings
4138 so they can be used in applications (Bug#2036)
4139 Make all exceptions derive from DBusException
4141 * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4142 of classes so that print obj doesn't throw an exception (Bug #1685)
4144 2005-05-03 Ross Burton <ross@openedhand.com>
4146 * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4147 Return if we get an error during registration. Set up a
4148 weak reference on object to unregister if object is destroyed.
4149 (unregister_gobject): New function.
4151 2005-05-01 John (J5) Palmieri <johnp@redhat.com>
4153 * python/dbus_bindings.pyx.in:
4154 - added new type classes for hinting to the marashaler what type
4155 to send over the wire
4156 - added int16 and uint16 marshalers
4157 - Fixed a bug in the type constants that caused int32 to go out
4158 as uint16 over the wire
4159 * python/dbus.py: split up into different files and renamed _dbus.py
4160 * python/__init__.py, python/_util.py, python/decorators.py,
4161 python/exceptions.py, python/proxies.py, python/services.py,
4162 python/types.py: new files split off from dbus.py
4163 * python/Makefile.am: Add new files, remove dbus.py and
4164 install all python files to <python module dir>/dbus
4165 * python/examples/*: Added #!/usr/bin/env python to the top of
4166 every example. Patch provided by Tatavarty Kalyan
4168 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
4170 * NEWS: Update to 0.33
4172 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
4174 * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4175 method for doing async calls
4176 (_pending_call_notification): New C function for handling pendning call
4178 (set_notify): New method for setting pending call notification
4180 * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4181 Async capabilities added to remote method calls
4182 (Sender): class removed
4183 (RemoteService): class removed
4184 (ObjectTree): class removed for now
4185 (RemoteObject): Renamed to ProxyObject
4186 (RemoteMethod): Renamed to ProxyMethod
4187 (method): Decorator added for decorating python methods as dbus methods
4188 (signal): Decorator added for decorating python methods as signal emitters
4189 (ObjectType): Metaclass added for generating introspection data and the
4190 method callback vtable
4191 (Interface): Wrapper class added to wrap objects in a dbus interface
4192 (Object): Uses ObjectType as its metaclass and exports Introspect
4193 of the org.freedesktop.DBus.Introspectable interface
4194 (ValidationException, UnknownMethodException): new exceptions
4196 * python/examples/*: Modified to fit with the new bindings
4198 2005-04-23 Havoc Pennington <hp@redhat.com>
4200 * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4201 reported by Tony Houghton
4203 * test/test-service.c (main): test
4204 dbus_connection_get_object_path_data()
4206 * dbus/dbus-object-tree.c (find_handler): be sure we always init
4208 (_dbus_object_tree_get_user_data_unlocked): new function used by
4209 dbus_connection_get_object_path_data()
4210 (do_register): add assertion test for get_user_data_unlocked
4211 (object_tree_test_iteration): more tests
4213 * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
4214 new function from Dan Reed to let you get the user data from
4215 dbus_connection_register_object_path()
4217 2005-04-23 John (J5) Palmieri <johnp@redhat.com>
4219 * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
4220 in numerous places that did not account for the NULL terminator
4221 (signature_from_seed): changed the manual string copy loop to
4222 just use strcpy instead
4223 make check should now pass
4225 2005-04-19 John (J5) Palmieri <johnp@redhat.com>
4227 * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
4228 so that it allows messages that are not signals to pass in
4229 NULL as the interface.
4231 2005-04-18 David Zeuthen <davidz@redhat.com>
4233 * glib/dbus-gmain.c (io_handler_destroy_source):
4234 (timeout_handler_destroy_source, connection_setup_free):
4235 Also unref the source to avoid memory leaks.
4237 2005-04-13 David Zeuthen <davidz@redhat.com>
4239 * bus/config-parser.c (bus_config_parser_new): Bump this to a
4240 more reasonable, yet still totally arbitrary, value :-).
4242 2005-04-13 David Zeuthen <davidz@redhat.com>
4244 * doc/TODO: Added an "important for 1.0" item about selinux
4247 2005-04-13 David Zeuthen <davidz@redhat.com>
4249 * bus/selinux.c: Add c-file-style to top of file
4250 (log_audit_callback): Don't free the data here anymore
4251 (bus_selinux_check): Don't take spid and tpid since appending
4252 that to auxdata may OOM.
4253 (bus_selinux_allows_acquire_service): Handle OOM and signal back
4254 to the caller if we are OOM by taking an error object.
4255 (bus_selinux_allows_send): -do-
4257 * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4258 and bus_selinux_allows_send
4260 * bus/bus.c (bus_context_check_security_policy): Pass error and
4261 pass on OOM thrown by bus_selinux_allows_send()
4263 * bus/services.c (bus_registry_acquire_service): Pass error and
4264 pass on OOM thrown by bus_selinux_allows_acquire_service()
4266 2005-04-13 Havoc Pennington <hp@redhat.com>
4268 * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4269 message at a time to avoid monopolizing the main loop, bug
4270 #2953 from Benjamin Otte
4272 2005-04-09 Havoc Pennington <hp@redhat.com>
4274 * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4275 possible overlap, fix from Daniel Reed
4276 (fixup_alignment): fix signedness warnings
4277 (_dbus_string_append_unichar): ditto
4279 2005-04-09 Havoc Pennington <hp@redhat.com>
4281 * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4283 * glib/dbus-glib-tool.c (main): fix warning
4285 * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4287 * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4288 add a new function that can be used in simple applications that
4289 don't have a main loop and are willing to block
4291 2005-04-05 David Zeuthen <davidz@redhat.com>
4293 Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4295 * glib/dbus-gmain.c:
4296 (io_handler_destroy_source): Remove from list of IO handlers
4297 of the ConnectionSetup object
4298 (timeout_handler_destroy_source): -do- for timeout handlers
4299 (io_handler_source_finalized): Don't remove from list since
4300 we now do that in io_handler_destroy_source(). Renamed from
4301 io_handler_source_destroyed
4302 (timeout_handler_source_destroyed): -do- for timeout handlers
4303 (connection_setup_free): It is now safe to iterate over all
4304 IO and timeout handlers as the _destroy_source removes them
4305 from the list synchronously
4307 2005-03-30 Havoc Pennington <hp@redhat.com>
4309 * configure.in: change check to gtk 2.4
4311 * tools/dbus-viewer.c (name_combo_changed_callback): remove
4312 gtk_combo_box_get_active_text() usage to decrement GTK requirement
4315 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
4319 * HACKING: Fixed realease instructions. configure.in should be updated to
4320 the next release by the person who made the last release.
4322 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
4324 * python/lvalue_cast_post_process.py - removed. Patch has been
4325 submitted to Pyrex maintainers that fixes gcc4.0 errors
4327 * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4329 2005-03-24 Daniel Reed <n@ml.org>
4331 * tools/Makefile.am: Make print-introspect and
4332 dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4334 2005-03-22 John (J5) Palmieri <johnp@redhat.com>
4336 * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4338 * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have
4339 had in Red Hat packages for a while but for some reason never
4341 (_dbus_is_a_number): New checks if a string
4342 can be converted to a number and does the conversion if it can
4343 (_dbus_user_database_lookup): Add check to see if the given username
4344 is a udi. This allows udi's to be used instead of usernames in the
4346 (_dbus_user_database_lookup_group): Add check to see if the given groupname
4347 is a gdi. This allows gdi's to be used instead of groupnames in the
4350 2005-03-21 John (J5) Palmieri <johnp@redhat.com>
4352 * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4353 code so that it compiles with gcc4.0
4355 * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4356 run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4357 results back to dbus_binding.c
4359 2005-03-20 Colin Walters <walters@verbum.org>
4361 Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4363 * configure.in: Require GTK+ 2.6.
4365 2005-03-20 Colin Walters <walters@verbum.org>
4367 * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4369 2005-03-17 Tom Parker <palfrey@tevp.net>
4371 * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4372 print DBUS_UID_UNSET; instead print passed username. Also
4373 be sure to actually use gid looked up in cache.
4375 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4376 for DBUS_GID_UNSET and groupname.
4378 2005-03-17 Colin Walters <walters@verbum.org>
4380 * bus/print-introspect.c: Move to tools/.
4381 * bus/run-with-tmp-session-bus.sh: Ditto.
4383 * glib/Makefile.am (dbus-glib-bindings.h): Move
4384 generation to tools/Makefile.am.
4386 * test/glib/run-test.sh: Update to handle move
4387 of run-with-tmp-session-bus.sh.
4389 * test/glib/test-service-glib.c: Update to handle
4390 move of dbus-glib-bindings.h.
4392 * tools/print-introspect.c: Moved here
4393 from bus/, and ported to GLib bindings.
4395 * tools/run-with-tmp-session-bus.sh: Moved here
4398 * tools/Makefile.am: Generate dbus-glib-bindings.h
4399 and dbus-bus-introspect.xml here.
4401 * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4404 2005-03-17 Colin Walters <walters@verbum.org>
4406 * bus/driver.c (write_args_for_direction): Use
4407 _dbus_string_get_const_data to retrieve string;
4408 _dbus_string_get_const_data_len doesn't actually return
4409 a NULL-terminated substring.
4411 * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4412 (main): Change to use org_freedesktop_DBus_request_name
4413 instead of using g_proxy_begin_call/end_call.
4415 2005-03-15 Joe Shaw <joeshaw@novell.com>
4417 * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4418 generating the finalizer. Fixes from Ben Maurer.
4420 2005-03-12 Joe Shaw <joeshaw@novell.com>
4422 * mono/BusDriver.cs: Update method names: ListServices
4423 becomes ListNames; GetOwner becomes GetNameOwner.
4425 * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4426 onto the eval stack when removing the delegate.
4428 2005-03-12 Joe Shaw <joeshaw@novell.com>
4430 * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4431 LT_CURRENT. Set it to the autoconf variable.
4433 * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4434 classes that disconnects the signal handler delegate from the
4435 service object. Fixes a big leak of proxy objects on the
4436 client side of things. Patch from Ben Maurer
4437 <bmaurer@ximian.com>
4439 2005-03-12 Colin Walters <walters@verbum.org>
4441 * bus/driver.c (write_args_for_direction): New function,
4442 parses a type signature into arguments and outputs to
4444 (bus_driver_handle_introspect): Use it instead of
4445 hardcoding XML for certain signatures.
4447 * bus/Makefile.am (dbus-bus-introspect.xml): Add
4448 dependency on dbus-daemon.
4450 * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4451 argument, pass it to dbus_binding_tool_output_glib_client.
4453 * glib/dbus-binding-tool-glib.c
4454 (generate_client_glue): Protect against multiple inclusion.
4455 (dbus_binding_tool_output_glib_client): Add
4456 G_BEGIN_DECLS/G_END_DECLS.
4458 * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4459 Change to just take iface prefix directly.
4460 (write_formal_parameters): Clarify error message.
4461 (check_supported_parameters): New function; checks to see type
4462 signatures of method parameters are supported.
4463 (generate_client_glue): Handle ignore_unsupported flag.
4464 (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4467 * glib/Makefile.am (dbus-glib-bindings.h): Pass
4468 --ignore-unsupported by default until glib bindings
4471 2005-03-11 Colin Walters <walters@verbum.org>
4473 * glib/Makefile.am: Generate dbus-glib-bindings.h and
4476 * bus/print-introspect.c: New file; prints introspection
4477 data for a given name and object path.
4479 * bus/run-with-tmp-session-bus.sh: New file, refactored
4480 from test/glib/run-test.sh. Creates a temporary session
4481 bus and runs another program.
4483 * test/glib/run-test.sh: Refactor to invoke
4484 run-with-tmp-session-bus.sh.
4486 * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4487 introspection format. Also change to use DBUS_TYPE_x_AS_STRING
4488 macros instead of hardcoding.
4490 * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4492 2005-03-11 Joe Shaw <joeshaw@novell.com>
4494 * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4495 this unref; it doesn't match up evenly in some codepaths.
4496 (_dbus_connection_block_pending_call): Unref at every exitpoint;
4497 this evenly matches with the ref near the top of this function.
4499 2005-03-09 Joe Shaw <joeshaw@novell.com>
4501 * dbus/dbus-object-tree.c
4502 (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4503 and we try to unregister a path that's not registered, still go
4504 through the process of unlocking and don't just return.
4506 2005-03-09 Colin Walters <walters@verbum.org>
4508 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4509 to this are generated for client-side wrappers. Invokes a
4510 D-BUS method and returns reply values.
4512 * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4513 function; writes signature string for argument direction.
4514 (write_args_for_direction): Change to pass input values directly
4515 instead of via address, and fix indentation.
4516 (generate_client_glue): Change to invoke dbus_g_proxy_invoke. Also
4517 make generated wrappers inlineable.
4519 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4520 note about using dbus_type_is_fixed.
4522 * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4523 dbus/dbus-signature.c as dbus_type_is_fixed.
4525 All callers updated.
4527 * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4528 from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4530 * dbus/dbus-signature.h: Prototype.
4532 * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4535 * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4536 appropriate instead of just freeing it.
4537 (main): Free returned strings using g_free.
4539 * test/glib/Makefile.am (test-service-glib-glue.h)
4540 (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4542 * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4543 simply maps a simple D-BUS type to GType.
4544 (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4546 (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4547 initialize the value with it.
4548 (dbus_gvalue_binding_type_from_type): Unused, delete.
4549 (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4550 various types instead of unmarshalling to value data directly.
4551 Remove can_convert boolean.
4552 (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4553 returning directly instead of using can_convert boolean.
4554 (dbus_gvalue_store): New function; not related to D-BUS per-se.
4555 Stores a GValue in a pointer to a value of its corresponding C
4558 * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4559 add dbus_gvalue_store.
4561 2005-03-08 Joe Shaw <joeshaw@novell.com>
4563 Fix a bunch of lifecycle and memory management problems
4564 in the mono bindings.
4566 * mono/Arguments.cs (Arguments): Implement IDisposable
4568 * mono/Bus.cs (Bus): Don't allow public instantiation. This is
4569 strictly a static class.
4571 * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4572 delegates into this file.
4573 (Connection): Implement IDisposable.
4574 (Dispose): Disconnect the connection and set the raw connection
4575 pointer to IntPtr.Zero.
4576 (~Connection): Call Dispose().
4577 (RegisterObjectPath): Added. Manages the registration of object
4578 paths so we can cleanly disconnect them at dispose/finalize time.
4579 (UnregisterObjectPath): Ditto.
4580 (set_RawConnection): Unregister all of the object paths when
4581 changing the underlying DBusConnection. Add them back onto the
4582 new connection, if any.
4584 * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4585 more unmanaged resources anymore, so it's not necessary. Move all
4586 the DBusObjectPathVTable stuff out of here.
4587 (Handler): Save references to our delegates so that they don't get
4588 finalized. Call Connection.RegisterObjectPath() instead of
4589 dbus_connection_register_object_path() directly.
4590 (Message_Called): Dispose the message after we're finished with
4593 * mono/Message.cs (Message): Implement IDisposable.
4594 (Dispose): Dispose the Arguments, and set the RawMessage to
4596 (SendWithReplyAndBlock): We own the ref to the reply that comes
4597 back from dbus_connection_send_with_reply_and_block() so add a
4598 comment about that and unref it after we've constructed a managed
4599 MethodReturn class around it. Fixes a big, big leak.
4601 * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4603 (BuildSignalHandler): After we've sent the Signal message, dispose
4605 (BuildMethod): Dispose of the method call and reply messages after
4606 we've sent the message and extracted the data we want from the
4609 * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4611 (Service_FilterCalled): Dispose of the message after we're
4614 2005-03-08 Joe Shaw <joeshaw@novell.com>
4616 * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4617 After we attach our pending call to the connection, unref
4620 * mono/Connection.cs (set_RawConnection): Disconnect our
4621 filter and match callbacks from the old connection and
4622 reconnect them to the new connection, if any.
4624 * mono/DBusType/Array.cs: "Code" is a static member, so
4625 don't use "this" to refer to it. Fix for stricter checking
4628 * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4629 object path that we pass into unmanaged code.
4631 * mono/DBusType/String.cs (Append): Don't leak the string
4632 that we pass into unmanged code.
4634 2005-03-07 John (J5) Palmieri <johnp@redhat.com>
4635 * NEWS: Update for 0.31
4637 * configure.in: Release 0.31
4638 add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4640 * qt/Makefile.am: fixed build
4642 * dbus/Makefile.am: soname bump for libdbus
4644 * glib/Makefile.am: soname bump for libdbus-glib
4646 2005-03-05 Havoc Pennington <hp@redhat.com>
4648 * dbus/dbus-sysdeps.c:
4649 (pseudorandom_generate_random_bytes_buffer): fix to have no return
4651 (_dbus_generate_random_bytes_buffer): fix return value
4653 * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4654 checks actually work, from Tom Parker <fdo@tevp.net>
4656 2005-03-01 Colin Walters <walters@verbum.org>
4658 * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4659 functions copied from dbus-glib-tool.c.
4660 (main): Convert lots of error code to use them.
4661 Also add some testing for introspection bits.
4663 2005-03-01 Colin Walters <walters@verbum.org>
4665 * doc/TODO: Remove introspection signature TODO.
4667 2005-02-27 Colin Walters <walters@verbum.org>
4669 * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4670 Change return value to const char * instead of int so we can do
4672 (struct PropertyInfo, struct ArgInfo): Store char *.
4673 (property_info_new, arg_info_new): Update parameters, strdup.
4674 (property_info_unref, arg_info_unref): Free.
4676 * glib/dbus-gidl.h: Update prototypes.
4678 * glib/dbus-gparser.c (basic_type_from_string): Delete.
4679 (validate_signature): New function, just validates signature and
4681 (parse_property, parse_arg): Invoke validate_signature. Store
4682 signature instead of just type code.
4684 * glib/dbus-gvalue.c (base_type_from_signature): New utility
4685 function to return a primary type for a signature, dropping
4686 information about types in container types.
4687 (dbus_gvalue_genmarshal_name_from_type)
4688 (dbus_gvalue_binding_type_from_type)
4689 (dbus_gvalue_ctype_from_type): Update to take full signature
4690 instead of type code.
4691 (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4693 * glib/dbus-gvalue.h: Update prototypes for above.
4695 * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4696 glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4697 (introspect_properties, introspect_signals, write_interface):
4698 Update to handle signatures, and remove usage of
4699 _dbus_gutils_type_to_string.
4700 (handle_introspect): Print out type codes instead of e.g. "string"
4701 in hardcoded introspection XML; also use x_AS_STRING constants
4702 instead of hardcoding in string.
4704 * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4705 to string. Remove usage of _dbus_gutils_type_to_string.
4707 * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4709 * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4712 * glib/dbus-binding-tool-glib.c (compute_marshaller)
4713 (compute_marshaller_name, generate_glue): Handle signature change
4715 (write_formal_parameters, write_args_for_direction): Ditto, and
4718 * tools/dbus-tree-view.c (type_to_string): Delete.
4719 (info_set_func_text): Update to print full signatures.
4721 * test/glib/test-service-glib.xml: Change types to new
4722 introspection format.
4724 2005-02-26 Havoc Pennington <hp@redhat.com>
4726 * doc/TODO: remove the "guid" item
4728 * test/glib/test-profile.c (no_bus_thread_func): use open_private
4729 (with_bus_thread_func): use open_private
4731 * dbus/dbus-connection.c (dbus_connection_open_private): new
4732 function that works like the old dbus_connection_open()
4733 (dbus_connection_open): now returns an existing connection if
4736 * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4737 through the GUID to the transport
4739 * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4740 GUID in hex-encoded form.
4742 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4743 pass GUID argument in to the transport
4745 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4748 * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4750 * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4752 2005-02-25 Havoc Pennington <hp@redhat.com>
4754 * doc/dbus-specification.xml: document the GUID thing
4756 * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4757 globally unique ID for the server, and put a "guid=hexencoded"
4758 field in the address
4760 * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4762 * dbus/dbus-message.c: ditto
4764 * dbus/dbus-dataslot.c: ditto
4766 * dbus/dbus-list.c: ditto
4768 * dbus/dbus-internals.h: wait, just include
4769 dbus-threads-internal.h here
4771 * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4774 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4776 2005-02-24 Colin Walters <walters@verbum.org>
4778 * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4780 2005-02-24 John (J5) Palmieir <johnp@redhat.com>
4782 * glib/Makefile.am: added dbus-gobject.h to sources list
4783 so distcheck doesn't fail
4785 2005-02-24 Havoc Pennington <hp@redhat.com>
4787 * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4788 you must disconnect before unref, since locking and other things
4789 are screwed up otherwise. Fix assorted other locking stuff.
4791 * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4794 * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4795 into a private header and don't export from the library
4797 * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4799 2005-02-24 Colin Walters <walters@verbum.org>
4801 * dbus/dbus-signature.c: New file; implements various functions
4802 related to type signatures. Includes an interator for parsing,
4803 validation functions.
4804 (dbus_type_is_basic): Moved here from
4805 dbus-marshal-basic.c:_dbus_type_is_basic.
4806 (dbus_type_is_container): Moved here from
4807 dbus-marshal-basic.c:_dbus_type_is_container.
4809 All callers of _dbus_type_is_container and _dbus_type_is_basic
4810 updated, and include dbus-signature.h.
4812 * dbus/dbus-signature.h: New file; prototypes for the above.
4814 * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4817 * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4818 function factored out of _dbus_first_type_in_signature.
4819 (_dbus_first_type_in_signature_c_str): New function; returns first
4820 type code for a type signature character.
4822 * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4823 handle function moves.
4825 * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4827 * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4828 function; skips to next complete type in type signature.
4829 Implemented using previous skip_one_complete_type. Now
4830 skip_one_complete_type just delegates to
4831 _dbus_type_signature_next.
4833 * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4835 (_dbus_type_is_container): Ditto.
4837 * doc/dbus-specification.xml: Update introspection sample to
4838 use real type signatures.
4840 * dbus/dbus-test.h: Prototype signature test.
4842 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4845 * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4847 2005-02-23 John (J5) Palmieri <johnp@redhat.com>
4849 * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4850 s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4852 2005-02-21 Colin Walters <walters@verbum.org>
4854 * dbus/dbus-test-main.c (main): Take optional specific test
4857 * dbus/dbus-test.c (run_test): New function, runs a test function
4858 with no data directory.
4859 (run_data_test): Like above, but takes data directory.
4860 (dbus_internal_do_not_use_run_tests): Take
4861 specific test argument. Replace lots of cut n' paste code
4862 with run_test and run_data_test.
4864 * dbus/dbus-test.h: Update prototype for
4865 dbus_internal_do_not_use_run_tests.
4867 2005-02-20 Havoc Pennington <hp@redhat.com>
4869 Fix bugs reported by Daniel P. Berrange
4871 * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4872 (protected_change_watch): new function
4873 (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4874 (_dbus_server_add_watch): change to work like the
4875 dbus-connection.c equivalents; like those, probably kind of
4876 busted, but should at least mostly work for now
4877 (dbus_server_disconnect): drop the lock if we were already
4878 disconnected, patch from Daniel P. Berrange
4880 * dbus/dbus-server.c (_dbus_server_toggle_timeout)
4881 (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4884 * doc/TODO: todo about unscrewing this mess
4886 2005-02-19 Colin Walters <walters@verbum.org>
4888 * glib/dbus-binding-tool-glib.c
4889 (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4891 * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4892 as errno.h and sys/stat.h.
4893 (lose): New function, prints error with
4895 (lose_gerror): Similar, but takes GError for message.
4896 (main): Add --output argument to specify output file to write to,
4897 instead of always printing to stdout. In this mode, determine
4898 timestamps on source files to see whether any are newer than the
4899 target file. If not, exit. Also convert a number of error
4900 messages to use lose (since it's shorter), and switch to using
4901 g_io_channel_shutdown.
4903 2005-02-19 Havoc Pennington <hp@redhat.com>
4905 * glib/dbus-gobject.c
4906 (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4908 * glib/dbus-glib.c: fix doxygen warnings
4910 * glib/dbus-gparser.c (parse_annotation): error if an annotation
4911 is found on an <arg>
4913 2005-02-17 Colin Walters <walters@verbum.org>
4915 * glib/dbus-gobject.h: Don't export
4916 _dbus_glib_marshal_dbus_message_to_gvalue_array.
4918 * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4919 (invoke_object_method): Handle it.
4921 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4924 2005-02-17 Colin Walters <walters@verbum.org>
4926 * bus/.cvsignore, doc/.cvsignore
4927 * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4930 2005-02-17 Colin Walters <walters@verbum.org>
4932 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4933 Rename to DBUS_SERVICE_DBUS.
4934 (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4935 (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4936 Change the value from "org.freedesktop.Local"
4937 to "org.freedesktop.DBus.Local".
4938 (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4939 (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4940 DBUS_INTERFACE_INTROSPECTABLE.
4941 Change the value from "org.freedesktop.Introspectable"
4942 to "org.freedesktop.DBus.Introspectable".
4943 (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4944 DBUS_INTERFACE_PROPERTIES.
4945 Change the value from "org.freedesktop.Properties"
4946 to "org.freedesktop.DBus.Properties".
4947 (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4948 DBUS_INTERFACE_PEER.
4949 Change the value from "org.freedesktop.Peer"
4950 to "org.freedesktop.DBus.Peer".
4951 (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL):
4952 DBUS_INTERFACE_LOCAL.
4953 Change the value from "org.freedesktop.Local"
4954 to "org.freedesktop.DBus.Local".
4956 All other users of those constants have been changed.
4958 * bus/driver.c (bus_driver_handle_introspect): Use constants.
4960 * glib/dbus-gobject.c (handle_introspect): Use constants.
4962 * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4964 2005-02-17 Colin Walters <walters@verbum.org>
4966 * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4967 (parse_node, parse_interface, parse_method, parse_signal)
4968 (parse_property, parse_annotation): Lose if we're currently in an
4970 (parse_annotation): New function.
4971 (parser_start_element, parser_end_element): Handle annotation.
4972 (parse_method, parse_interface): Remove support for c_name attribute,
4973 switch to annotations.
4975 * glib/dbus-gidl.h (interface_info_get_binding_names)
4976 (method_info_get_binding_names)
4977 (interface_info_get_binding_name, method_info_get_binding_name)
4978 (interface_info_set_binding_name, method_info_set_binding_name):
4980 (interface_info_get_annotations, method_info_get_annotations)
4981 (interface_info_get_annotation, method_info_get_annotation)
4982 (interface_info_add_annotation, method_info_add_annotation):
4985 * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4987 (struct MethodInfo): Ditto.
4988 Straightfoward conversion of binding methods into annotation methods
4991 * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4993 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4995 * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4996 Use new annotation API.
4998 * doc/introspect.dtd: Fix a number of DTD syntax errors. Add
5001 * doc/dbus-specification.xml: Discuss introspection annotations,
5002 include list of well-known annotations.
5004 * test/glib/test-service-glib.xml: Make validate against new DTD.
5006 2005-02-17 Colin Walters <walters@verbum.org>
5008 This patch is based on initial work from
5009 Paul Kuliniewicz <kuliniew@purdue.edu>.
5011 * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5012 initialization of GValue from dbus type to here.
5013 (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5014 for the "glib-genmarshal" program from a DBus type.
5015 (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5016 into the C name for it we use in the glib bindings.
5017 (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5018 glib C type (not GValue).
5019 (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5021 * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5022 from dbus-gobject.c.
5024 * glib/dbus-gutils.h: Prototype it.
5026 * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5027 (marshal_dbus_message_to_g_marshaller): Use new shared function
5028 dbus_glib_marshal_dbus_message_to_gvalue_array.
5030 * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5031 Will be changed once we have annotations.
5033 * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5034 GStaticRWLock. Callers updated.
5035 (wincaps_to_uscore): Move to dbus-gutils.c. Callers updated.
5036 (string_table_next): New function for iterating over zero-terminated
5038 (string_table_lookup): New function; retrieves specific entry in
5040 (get_method_data): New function; look up method data in object data chunk.
5041 (object_error_domain_prefix_from_object_info)
5042 (object_error_code_from_object_info): New functions, but not implemented yet.
5043 (method_interface_from_object_info): New function; retrieve interface name.
5044 (method_name_from_object_info): New function; retrieve method name.
5045 (method_arg_info_from_object_info): New function; retrieve argument data.
5046 (arg_iterate): New function; iterates over serialized argument data.
5047 (method_dir_signature_from_object_info): New function; returns a
5048 GString holding type signature for arguments for just one
5049 direction (input or output).
5050 (method_input_signature_from_object_info)
5051 (method_output_signature_from_object_info): New functions.
5052 (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5053 converts dbus message arguments into a GValue array. Used for both
5054 signal handling and method invocation.
5055 (struct DBusGlibWriteIterfaceData): New utility structure.
5056 (write_interface): New function; generate introspection XML for
5058 (introspect_interfaces): New function; gathers all interface->methods,
5059 generates introspection XML for them.
5060 (handle_introspect): Invoke introspect_interfaces.
5061 (get_object_property): Be sure to zero-initalize stack-allocated GValue.
5062 (lookup_object_and_method): New function; examines an incoming message
5063 and attempts to match it up (via interface, method name, and argument
5064 signature) with a known object and method.
5065 (gerror_domaincode_to_dbus_error_name): New function; converts a
5066 GError domain and code into a DBus error name. Needs GError data
5067 added to object introspection to work well.
5068 (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5070 (invoke_object_method): New function to invoke an object method
5071 looked up via lookup_object_and_method. Parses the incoming
5072 message, turns it into a GValue array, then invokes the marshaller
5073 specified in the DBusGMethodInfo. Creates a new message with
5074 either return values or error message as appropriate.
5075 (gobject_message_function): Invoke lookup_object_and_method and
5076 invoke_object_method.
5078 * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5079 (enum DBusBindingOutputMode): New enum for binding output modes.
5080 (pretty_print): Print binding names.
5081 (dbus_binding_tool_error_quark): GError bits.
5082 (version): Fix typo.
5083 (main): Create GIOChannel for output. Parse new --mode argument,
5084 possible values are "pretty-print", "glib-server", "glib-client".
5085 Use mode to invoke appropriate function.
5087 * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5089 * glib/dbus-glib-tool.h: New header, just includes GError bits
5092 * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5093 maps binding style to name.
5094 (struct MethodInfo): Ditto.
5095 (get_hash_keys, get_hash_key): Utility function, returns keys for
5097 (interface_info_new, method_info_new): Initialize bindings.
5098 (interface_info_unref, method_info_unref): Destroy bindings.
5099 (method_info_get_binding_names, method_info_get_binding_name)
5100 (interface_info_get_binding_names, interface_info_get_binding_name):
5101 Functions for retrieving binding names.
5102 (method_info_set_binding_name, interface_info_set_binding_name):
5103 Functions for setting binding names.
5105 * glib/dbus-binding-tool-glib.h: New file, has prototypes
5106 for glib binding generation.
5108 * glib/dbus-binding-tool-glib.c: New file, implements server-side
5109 and client-side glib glue generation.
5111 * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5112 dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5115 * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5116 of using GClosureMarshal directly.
5117 (struct DBusGObjectInfo): Add n_infos member.
5119 * test/glib/test-service-glib.xml: New file; contains introspection data
5120 for MyTestObject used in test-service-glib.c.
5122 * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5123 (my_object_do_nothing, my_object_increment, my_object_throw_error)
5124 (my_object_uppercase, my_object_many_args): New test methods.
5125 (main): Use dbus_g_object_class_install_info to include generated object
5128 * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5129 as well as client-side bindings.
5131 * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5132 (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5133 using both the dbus_gproxy stuff directly as well as the generated bindings.
5135 2005-02-15 Havoc Pennington <hp@redhat.com>
5137 * dbus/dbus-connection.c (dbus_connection_dispatch): always
5138 complete a pending call, don't run filters first.
5140 * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5141 dbus_pending_call_steal_reply
5143 * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5144 _dbus_connection_block_pending_call
5145 (dbus_pending_call_get_reply): change to steal_reply and return a
5148 * dbus/dbus-connection.c
5149 (dbus_connection_send_with_reply_and_block): port to work in terms
5151 (_dbus_connection_block_pending_call): replace block_for_reply
5154 2005-02-14 Havoc Pennington <hp@redhat.com>
5156 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5157 properly handle looking up group information by name; fix
5160 2005-02-13 Havoc Pennington <hp@redhat.com>
5162 * dbus/dbus-connection.c (dbus_connection_return_message)
5163 (dbus_connection_borrow_message): hold dispatch lock while message
5165 (_dbus_connection_block_for_reply): hold dispatch lock while we
5166 block for the reply, so nobody steals our reply
5167 (dbus_connection_pop_message): hold the dispatch lock while we
5170 2005-02-13 Havoc Pennington <hp@redhat.com>
5172 * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5173 (_dbus_connection_release_dispatch)
5174 (_dbus_connection_acquire_io_path)
5175 (_dbus_connection_release_io_path): make the mutex and condvar
5176 control access to the "acquired" flag. Drop the connection lock
5177 while waiting on the condvar. Hopefully these are baby steps in
5178 roughly the right direction.
5180 2005-02-13 Havoc Pennington <hp@redhat.com>
5182 * dbus/dbus-connection.c: use separate mutexes for the condition
5183 variables; this is some kind of baseline for sanity, but the
5184 condition variables still aren't used correctly afaict
5186 2005-02-13 Havoc Pennington <hp@redhat.com>
5188 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5191 * dbus/dbus-connection.c
5192 (_dbus_connection_detach_pending_call_unlocked): add this
5194 Initial semi-correct pass through to fix thread locking; there are
5195 still some issues with the condition variable paths I'm pretty
5198 * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5201 * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5202 rename to add _unlocked
5203 (struct DBusConnection): move "dispatch_acquired" and
5204 "io_path_acquired" to use only one bit each.
5205 (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5206 (dbus_connection_set_watch_functions): hacky fix to reentrancy
5207 (_dbus_connection_add_watch, _dbus_connection_remove_watch)
5208 (_dbus_connection_toggle_watch, _dbus_connection_add_timeout)
5209 (_dbus_connection_remove_timeout)
5210 (_dbus_connection_toggle_timeout): drop lock when calling out to
5211 user functions; done in a hacky/bad way.
5212 (_dbus_connection_send_and_unlock): add a missing unlock
5213 (_dbus_connection_block_for_reply): add a missing unlock
5215 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5216 drop lock in a hacky probably unsafe way to call out to user
5219 2005-02-12 Havoc Pennington <hp@redhat.com>
5221 * tools/dbus-tree-view.c (info_set_func_text): display more
5224 * bus/driver.c (bus_driver_handle_list_services): list the bus
5227 * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
5229 * glib/dbus-gidl.c (signal_info_get_n_args): new function
5230 (method_info_get_n_args): new function
5232 2005-02-12 Havoc Pennington <hp@redhat.com>
5234 * bus/driver.c (bus_driver_handle_introspect): add introspection
5237 2005-02-12 Havoc Pennington <hp@redhat.com>
5239 * bus/driver.c: put the signature of each bus driver method in the
5240 table of handlers and check it on incoming calls; this isn't
5241 really useful, but going to add introspect support in a minute.
5243 2005-02-11 Joe Shaw <joeshaw@novell.com>
5245 * mono/Connection.cs: The unpredictability of finalizers in mono
5246 prevents us from deterministically disconnecting the filters from
5247 the Service class's finalizer, so move tracking of filters and
5248 matches here. Add API for that.
5250 * mono/Service.cs: Remove the code, add code which calls the
5251 methods now on the Connection class.
5253 2005-02-11 John (J5) Palmieri <johnp@redhat.com>
5255 * python/dbus.py (class Sender): added to support dbus signals better
5256 (Bus::add_signal_receiver): added expand_args parameter which defaults
5257 to True. When expand args is True the signal handler will pass the
5258 message arguments as parameters to the signal handler. If False
5259 revert to previous behavior where the signal handler must get the
5260 argument list from the message. This is to help port applications
5261 like HAL that have a tendancy to send variable length argument lists.
5262 self._match_rule_to_receivers is now a dict of dicts.
5263 (Bus::remove_signal_receiver): pop handler off the dict intead of
5264 removing it from a list
5265 (Bus::_signal_func): change signal handlers so that interface,
5266 signal_name, service, path and message are packed into a Sender
5267 object and that is passed to the handler. If expand_args is True
5268 extract the args list from the message and append it to the parameter
5271 * python/dbus_bindings.pyx.in (class Signature): added to support
5273 (MessageIter::__init__): changed iteration limit to match D-BUS
5274 (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY,
5275 STRUCT and VARIENT type support
5276 (MessageIter::python_value_to_dbus_sig): made recursive to support
5278 (MessageIter::append*): added Signature, dict, tuple
5281 * python/examples/example-client.py: added examples of getting tuples
5284 * python/examples/example-service.py: added examples of sending tuples
5287 * python/examples/example-signal-recipient.py: Fixed to handle new
5288 signal callback format
5290 2005-02-10 Havoc Pennington <hp@redhat.com>
5292 * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5293 (call dbus_g_proxy_add_signal)
5295 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5297 (_dbus_server_new_for_domain_socket): escape the path
5299 * dbus/dbus-address.c (dbus_address_escape_value): new
5300 (dbus_address_unescape_value): new
5301 (dbus_parse_address): unescape values
5303 * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5305 * doc/dbus-specification.xml: explain how to escape values in
5308 2005-02-10 Havoc Pennington <hp@redhat.com>
5310 * dbus/dbus-message-factory.c (generate_special): modify test to
5311 avoid using a non-basic dict key
5313 * dbus/dbus-marshal-validate-util.c: add test for the below
5315 * doc/dbus-specification.xml: require that dict keys are a basic
5318 * dbus/dbus-marshal-validate.c
5319 (_dbus_validate_signature_with_reason): require that dict key is a
5322 2005-02-10 Havoc Pennington <hp@redhat.com>
5324 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5325 change to be _and_unlock instead of _unlocked
5327 * dbus/dbus-connection.c
5328 (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5329 have no_update so we can find this bug quickly in future
5331 2005-02-10 Havoc Pennington <hp@redhat.com>
5333 * dbus/dbus-message-util.c (verify_test_message): tests for string
5336 * dbus/dbus-message.c (dbus_message_append_args_valist): add
5337 support for arrays of string/signature/path
5339 2005-02-10 Joe Shaw <joeshaw@novell.com>
5341 * dbus/dbus-connection.c
5342 (_dbus_connection_queue_received_message_link,
5343 _dbus_connection_message_sent): Add the path to
5345 (_dbus_connection_send_preallocated_and_unlock): Added. Calls
5346 _dbus_connection_send_preallocated_unlocked(), updated the
5347 dispatch status, and unlocks. Fixes a bug where certain
5348 situations (like a broken pipe) could cause a Disconnect message
5349 to not be sent, tricking the bus into thinking a service was still
5350 there when the process had quit.
5351 (_dbus_connection_send_preallocated): Call
5352 _dbus_connection_send_preallocated_and_unlock().
5353 (_dbus_connection_send_and_unlock): Added. Calls
5354 _dbus_connection_send_preallocated_and_unlock().
5355 (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5356 (dbus_connection_send_with_reply): Update the dispatch status and
5359 * mono/Service.cs (~Service): Added. Removes the filter so that
5360 we don't get unmanaged code calling back into a GCed delegate.
5361 (RemoveFilter); Added.
5363 2005-02-09 John (J5) Palmieri <johnp@redhat.com>
5365 * dbus/dbus-message.c (dbus_message_iter_open_container):
5366 - Removed check for iterator type being an array because
5367 get_arg_type does not work with writer iterators
5368 - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5370 2005-02-07 Havoc Pennington <hp@redhat.com>
5372 * doc/dbus-specification.xml: some more language cleanups; add
5373 stuff about how to deal with invalid protocol and extension
5374 points; add _ to allowed chars in auth commands; add EXTENSION_
5377 2005-02-06 Havoc Pennington <hp@redhat.com>
5379 * s/expected/required/ in a couple places for clarity
5381 2005-02-07 Colin Walters <walters@verbum.org>
5383 * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5384 sender or proposed_recipient.
5386 2005-02-06 Havoc Pennington <hp@redhat.com>
5388 * dbus/dbus-message-factory.c (generate_special): more tests
5390 * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5391 array length that exceeds the maximum
5393 2005-02-05 Havoc Pennington <hp@redhat.com>
5395 * dbus/dbus-message-factory.c (generate_special): more test cases,
5398 * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5399 reason why a signature was invalid
5401 * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5402 skip the length of the string before we look at it in validation
5404 * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5407 * dbus/dbus-message.c (_dbus_message_loader_new): default
5408 max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5410 2005-02-05 Havoc Pennington <hp@redhat.com>
5412 * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5413 if the signature of a variant was empty
5414 (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5415 struct with no element type)
5417 * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5418 mangled messages to break things
5420 2005-02-04 Havoc Pennington <hp@redhat.com>
5422 * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5423 g_quark_try_string() so it actually can return 0
5424 (dbus_g_proxy_connect_signal): ditto
5426 2005-02-04 Havoc Pennington <hp@redhat.com>
5428 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5430 (tristring_from_message): assert cleanly on null path/interface
5431 (should not be possible though I decided later)
5432 (dbus_g_proxy_dispose): move proxy manager unregistration here
5433 (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5434 g_return_if_fail() checks
5436 2005-02-04 Havoc Pennington <hp@redhat.com>
5438 * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5440 * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5441 (with some minor changes)
5443 * doc/dbus-specification.xml: add deprecated attribute to
5444 introspection format
5446 2005-01-31 Havoc Pennington <hp@redhat.com>
5448 * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5449 think it's sort of right
5451 2005-01-30 Havoc Pennington <hp@redhat.com>
5453 * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5455 2005-01-30 Havoc Pennington <hp@redhat.com>
5457 * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5459 * autogen.sh: change to autotools 1.9
5461 * glib/dbus-gproxy.c: completely change how signals work
5462 (dbus_g_proxy_add_signal): new function to specify signature of a
5464 (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5465 and g_warning if the incoming message has the wrong signature.
5467 2005-01-30 Havoc Pennington <hp@redhat.com>
5469 * tools/dbus-names-model.c (have_names_notify): fix this
5471 * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5472 up the string array handling a bit
5474 2005-01-30 Havoc Pennington <hp@redhat.com>
5476 * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5477 (dbus_g_pending_call_cancel): new function
5479 * dbus/dbus-glib.h: move GType decls for connection/message here;
5480 * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5481 here, just kind of rationalizing how we handle all that
5483 * tools/dbus-names-model.c: new file for a tree model listing the
5486 * tools/dbus-tree-view.c (model_new): use proper typing on the
5489 2005-01-30 Havoc Pennington <hp@redhat.com>
5491 * glib/dbus-gmain.c: add a custom GSource back that just checks
5492 whether the message queue has anything in it; otherwise, there are
5493 cases where we won't see messages in the queue since there was no
5494 IO visible to the glib main loop
5496 * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5497 increase default message timeout to 25 seconds
5499 2005-01-30 Havoc Pennington <hp@redhat.com>
5501 * test/glib/test-profile.c (no_bus_stop_server): remove the
5502 warning about the g_warning that I just fixed
5504 * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5505 custom source, seems to be a lot easier to understand and work
5508 2005-01-30 Havoc Pennington <hp@redhat.com>
5510 I think this main loop thing is conceptually broken, but here are
5511 some band aids. I'll maybe rewrite it in a minute.
5513 * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5514 custom GSource, so don't pass it in; confusing
5515 (gsource_server_finalize, gsource_connection_finalize): add
5516 finalize handlers that remove all the watches.
5518 2005-01-30 Havoc Pennington <hp@redhat.com>
5520 * glib/dbus-gobject.c (introspect_properties): fix the XML
5523 * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5524 which effectively detects the use of freed messages
5526 * glib/dbus-gobject.c (handle_introspect): modify and return the
5527 reply message instead of the incoming message
5529 * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5530 gee, maybe it should SEND THE XML instead of just making a string
5531 and freeing it again ;-)
5533 * tools/dbus-print-message.c (print_message): improve printing of
5536 * configure.in: add debug-glib.service to the output
5538 2005-01-30 Havoc Pennington <hp@redhat.com>
5540 dbus-viewer introspected and displayed the bus driver
5542 * dbus/dbus-object-tree.c
5543 (object_tree_test_iteration): add tests for a handler registered on "/"
5545 * dbus/dbus-object-tree.c
5546 (_dbus_decompose_path): fix to handle path "/" properly
5547 (run_decompose_tests): add tests for path decomposition
5549 * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5552 * glib/dbus-gobject.c (handle_introspect): fix quotes
5554 * test/glib/run-test.sh: support launching the bus, then running
5557 * test/glib/test-service-glib.c (main): put in a trivial gobject
5558 subclass and register it on the connection
5560 * bus/driver.c (bus_driver_handle_introspect): implement
5561 introspection of the bus driver service
5563 * dbus/dbus-protocol.h: add #defines for the XML namespace,
5564 identifiers, doctype decl
5566 * bus/driver.c (bus_driver_handle_get_service_owner): handle
5567 attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by
5568 returning the service unchanged.
5569 (bus_driver_handle_message): remove old check for reply_serial in
5570 method calls, now the message type deals with that
5571 (bus_driver_handle_message): handle NULL interface
5573 * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5575 * glib/dbus-gloader-expat.c (description_load_from_string): allow
5578 * tools/dbus-viewer.c: add support for introspecting a service on
5581 * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5582 (dbus_g_pending_call_unref): add
5584 2005-01-29 Havoc Pennington <hp@redhat.com>
5586 * tools/dbus-tree-view.c: add support for displaying properties.
5587 (run dbus-viewer with an introspect xml file as arg, then resize
5588 the window so the tree elements show up, not sure what that is)
5590 * glib/dbus-gobject.c (handle_introspect): return
5591 org.freedesktop.Properties and org.freedesktop.Introspectable
5592 interfaces when we are introspected.
5594 * doc/dbus-specification.xml: allow empty interface name when
5597 2005-01-29 Havoc Pennington <hp@redhat.com>
5599 * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5600 though it uses glib, it could be extended for any binding in
5603 * glib/dbus-gobject.c (gobject_message_function): change to the
5604 new way properties work
5606 * dbus/dbus-protocol.h: add the new interfaces
5608 * doc/dbus-specification.xml: document the introspection format,
5609 Introspectable interface, and add an org.freedesktop.Properties
5612 * glib/dbus-gparser.c: add support for a <property> element
5614 * glib/dbus-gidl.c: add PropertyInfo
5616 * glib/dbus-gobject.c (handle_introspect): put the outermost
5617 <node> outside the signal and property descriptions.
5618 (introspect_properties): export properties as <property> rather
5619 than as method calls
5621 2005-01-28 Havoc Pennington <hp@redhat.com>
5623 * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5624 related to authentication protocol
5626 2005-01-28 John (J5) Palmieri <johnp@redhat.com>
5628 * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5629 - BUS_ACTIVATION -> BUS_STARTER
5630 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5631 - class MessageIter (__init__): Added recursion checking
5632 so we throw a nice error instead of just disconnecting from the
5634 (get): Added arg_type parameter for recursion.
5635 Removed the nil type
5636 Added signiture type placeholder (not implemented)
5637 Added struct type placeholder (not implemented)
5638 Added varient type placeholder (not implemented)
5639 Commented out dict type for now
5640 (get_element_type): renamed from get_array_type
5641 (get_*): changed to use the dbus_message_iter_get_basic API
5642 (get_*_array): removed in favor of recursive get_array method
5643 (get_array): new recursive method which calls get to marshal
5644 the elements of the array
5645 (value_to_dbus_sig): New method returns the corrasponding
5646 dbus signiture to a python value
5647 (append): Comment out dict handling for now
5648 Handle lists with the new recursive API
5649 Comment out None handling for now
5650 (append_nil): removed
5651 (append_*): changed to use dbus_message_iter_append_basic API
5652 (append_*_array): removed in favor of recursive append_array
5654 (__str__): Make it easier to print out recursive iterators
5656 - class Message (__str__): moved type inspection to the
5657 MessageIter class' __str__ method
5658 (get_iter): Added an append parameter wich defaults to False
5659 If True use the new API's to create an append iterator
5661 * python/dbus.py: Update to use new bindings API
5662 - TYPE_ACTIVATION -> TYPE_STARTER
5663 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5664 - class ActivationBus -> class StarterBus
5665 - class RemoteObject (__call__): get an append iterator
5666 - (_dispatch_dbus_method_call): get an append iterator
5667 - class Object (emit_signal): get an append iterator
5669 * python/examples/: Fixed up the examples to work with the new API
5671 2005-01-28 Joe Shaw <joeshaw@novell.com>
5673 * configure.in: Bump version up to 0.30.
5675 * HACKING: Add a release item to bump the version number up after
5678 2005-01-28 Havoc Pennington <hp@redhat.com>
5680 * doc/dbus-specification.xml: update to describe 16-bit types and
5683 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5686 * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5689 * dbus/dbus-marshal-recursive.c: implement
5691 2005-01-27 Havoc Pennington <hp@redhat.com>
5693 * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5695 * configure.in: find the right type for 16 and 32 bit ints as well
5698 * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5699 the 16-bit types so people don't have to stuff them in 32-bit or
5702 2005-01-27 Havoc Pennington <hp@redhat.com>
5704 * dbus/dbus-message.c: byteswap the message if you init an
5705 iterator to read/write from it
5707 * dbus/dbus-marshal-byteswap.c: new file implementing
5708 _dbus_marshal_byteswap()
5710 * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5712 2005-01-26 Havoc Pennington <hp@redhat.com>
5714 * dbus/dbus-marshal-validate-util.c: break this out (and fix
5715 build, apparently - nobody noticed?)
5717 2005-01-26 Havoc Pennington <hp@redhat.com>
5719 * dbus/dbus-marshal-recursive.h: remove todo comment
5721 2005-01-25 Joe Shaw <joeshaw@novell.com>
5723 * Land the mono binding changes to conform to the new APIs.
5725 * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5726 DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5728 * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus
5729 type code as a string.
5730 (InitAppending): Rename dbus_message_append_iter_init() to
5731 dbus_message_iter_init_append().
5733 * mono/BusDriver.cs: Rename ServiceEventHandler to
5734 NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner.
5735 Rename ServiceOwnerChanged to NameOwnerChanged.
5737 * mono/Connection.cs: Rename BaseService to UniqueName, and the
5740 * mono/Custom.cs: Removed. The CUSTOM type has been removed.
5742 * mono/Service.cs: Rename Exists to HasOwner, internally rename
5743 dbus_bus_acquire_service() to dbus_bus_request_name().
5745 * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5746 of Type.UnderlyingSystemType to get the correct element type for
5748 (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5749 dbus_message_get_{element|arg}_type() instead of
5750 dbus_message_iter_init_array_iterator().
5751 (Append): Replace dbus_message_iter_append_array() with
5752 dbus_message_iter_open_container() and
5753 dbus_message_iter_close_container().
5755 * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These
5756 types have been removed.
5758 * mono/DBusType/*.cs: Replace calls of
5759 dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5760 but specify the type in the DllImport extern declaration. Ditto
5761 for dbus_message_iter_append_[type]() ->
5762 dbus_message_iter_append_basic().
5764 * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5765 NameOwnerChangedHandler.
5767 2005-01-25 John (J5) Palmieri <johnp@redhat.com>
5769 * python/dbus_bindings.pyx.in: Rename of methods and bindings
5770 - get_base_service -> get_unique_name
5771 - bus_get_base_service -> bus_get_unique_name
5772 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5773 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS
5774 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5775 - bus_activate_service -> bus_start_service_by_name
5776 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5777 - bus_acquire_service -> bus_request_name
5778 - dbus_bus_acquire_service -> dbus_bus_request_name
5779 - bus_service_exists -> bus_name_has_owner
5780 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5782 * python/dbus.py: Rename of methods
5783 - activate_service -> start_service_by_name
5784 - bus_acquire_service -> bus_request_name
5785 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS
5786 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5789 2005-01-24 Joe Shaw <joeshaw@novell.com>
5791 * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5792 signature for the method that can't be found.
5794 * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5795 the message has any arguments, we need to call
5796 _dbus_type_reader_get_current_type(), not
5797 _dbus_type_reader_has_next().
5799 2005-01-24 Havoc Pennington <hp@redhat.com>
5801 * dbus/dbus-message-factory.c: more testing of message validation
5803 * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5806 2005-01-23 Havoc Pennington <hp@redhat.com>
5808 * dbus/dbus-message-factory.c, dbus/dbus-message-util.c:
5809 get this all working, not many tests in the framework yet though
5811 2005-01-22 Havoc Pennington <hp@redhat.com>
5813 * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5814 tutorial, based on work from David Wheeler.
5816 2005-01-21 Havoc Pennington <hp@redhat.com>
5818 * dbus/dbus-bus.c: add more return_if_fail checks
5820 * dbus/dbus-message.c (load_message): have the "no validation"
5821 mode (have to edit the code to toggle the mode for now though)
5823 * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5824 skips all validation; I want to use this at least for benchmark
5825 baseline, I'm not sure if it should be a publicly-available switch.
5827 2005-01-21 Havoc Pennington <hp@redhat.com>
5829 * glib/dbus-gmain.c: don't put the GLib bindings in the same
5830 toplevel doxygen group as the low-level API stuff
5832 * dbus/dbus.h: note that libdbus is the low-level API
5834 2005-01-20 Havoc Pennington <hp@redhat.com>
5836 * update-dbus-docs.sh: script to update docs on the web site, only
5837 works for me though. neener.
5839 2005-01-20 Havoc Pennington <hp@redhat.com>
5841 * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5842 code can reveal bugs in it
5844 2005-01-20 Havoc Pennington <hp@redhat.com>
5846 * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5847 select() version, patches from Tor Lillqvist
5849 2005-01-20 Havoc Pennington <hp@redhat.com>
5851 * doc/dbus-tutorial.xml: replace > with >
5853 * bus/services.c (bus_registry_acquire_service): validate the name
5854 and return a better error if it's no good.
5856 * doc/dbus-specification.xml: note NO_AUTO_START change
5858 * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5859 from AUTO_START, we're toggling the default
5861 * bus/dispatch.c: adapt the tests to change of auto-start default
5863 2005-01-18 Havoc Pennington <hp@redhat.com>
5865 * rename dbus-daemon-1 to dbus-daemon throughout
5867 2005-01-18 Havoc Pennington <hp@redhat.com>
5869 * Throughout, grand renaming to strip out the use of "service",
5870 just say "name" instead (or "bus name" when ambiguous). Did not
5871 change the internal code of the message bus itself, only the
5872 programmer-facing API and messages.
5874 * doc/dbus-specification.xml: further update the message bus section
5876 * bus/config-parser.c (all_are_equiv): fix bug using freed string
5879 2005-01-17 Havoc Pennington <hp@redhat.com>
5881 * dbus/dbus-types.h: remove 16-bit types since we don't use them
5884 * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5885 "invalid name character" not only non-ASCII
5887 * doc/dbus-specification.xml: further update spec, message bus
5888 parts are still out-of-date but the marshaling etc. stuff is now
5891 2005-01-17 Havoc Pennington <hp@redhat.com>
5893 * doc/dbus-specification.xml: partially update spec
5895 2005-01-17 Havoc Pennington <hp@redhat.com>
5897 * Throughout, align variant bodies according to the contained
5898 type, rather than always to 8. Should save a fair bit of space in
5901 * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5902 fix handling of case where p == end
5904 * doc/TODO: remove the dbus_bool_t item and variant alignment items
5906 2005-01-17 Havoc Pennington <hp@redhat.com>
5908 * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5910 * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5911 of an 8-bit type. Now dbus_bool_t is the type to use whenever you
5912 are marshaling/unmarshaling a boolean.
5914 2005-01-16 Havoc Pennington <hp@redhat.com>
5916 This is about it on what can be disabled/deleted from libdbus
5917 easily, back below 150K anyhow. Deeper cuts are more work than
5918 just turning the code off as I've done here.
5920 * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5921 signed int convenience funcs
5923 * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5926 * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5927 things out of libdbus
5929 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5931 * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5932 tests-enabled-only, though it should probably be deleted)
5934 * dbus/dbus-message-util.c: same stuff
5936 * dbus/dbus-auth-util.c: same stuff
5938 2005-01-16 Havoc Pennington <hp@redhat.com>
5940 * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5942 * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5943 way for stripping down dbus-userdb.c stuff included in libdbus.
5944 Rename _dbus_parse_uid for consistency.
5946 2005-01-16 Havoc Pennington <hp@redhat.com>
5948 * dbus/dbus-internals.c (_dbus_real_assert): print the function
5949 name the assertion failed in
5951 * dbus/dbus-internals.h (_dbus_return_if_fail)
5952 (_dbus_return_val_if_fail): assert that the name of the function
5953 containing the check doesn't start with '_', since we only want to
5954 use checks on public functions
5956 * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5957 checks to assertions
5959 * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5960 change checks to asserts for private function
5962 * dbus/dbus-message.c (_dbus_message_set_serial): checks
5963 to asserts for private function
5965 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5966 broken assertion that was breaking make check
5967 (_dbus_type_reader_array_is_empty): remove this rather than fix
5968 it, was only used in assertions
5970 2005-01-16 Havoc Pennington <hp@redhat.com>
5972 * test/unused-code-gc.py: hacky script to find code that's used
5973 only by the bus (not libdbus) or used only by tests or not used at
5974 all. It has some false alarms, but looks like we can clean up a
5975 lot of size from libdbus.
5977 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5978 dbus/Makefile.am: initially move 10K of binary size out of libdbus
5980 2005-01-16 Havoc Pennington <hp@redhat.com>
5982 * Add and fix docs according to Doxygen warnings throughout
5985 * dbus/dbus-marshal-recursive.c
5986 (_dbus_type_reader_array_is_empty): change this to just call
5987 array_reader_get_array_len() and make it static
5989 * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5991 (dbus_message_iter_init_append): rename from append_iter_init
5993 * dbus/dbus-marshal-recursive.c
5994 (_dbus_type_reader_get_element_type): rename from
5995 _dbus_type_reader_get_array_type
5997 2005-01-15 Havoc Pennington <hp@redhat.com>
5999 * test/glib/test-profile.c (with_bus_server_filter): fix crash
6001 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6002 when DBUS_DISABLE_ASSERT
6003 (_dbus_marshal_set_basic): be sure we align for the string length
6005 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6008 * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6009 inline macro version
6010 (_dbus_string_set_byte): provide inline macro version
6012 2005-01-15 Havoc Pennington <hp@redhat.com>
6014 * Land the new message args API and type system.
6016 This patch is huge, but the public API change is not
6017 really large. The set of D-BUS types has changed somewhat,
6018 and the arg "getters" are more geared toward language bindings;
6019 they don't make a copy, etc.
6021 There are also some known issues. See these emails for details
6023 http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6024 http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6026 * dbus/dbus-marshal-*: all the new stuff
6028 * dbus/dbus-message.c: basically rewritten
6030 * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6031 freed blocks to be all non-nul bytes so using freed memory is less
6032 likely to work right
6034 * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6035 DBUS_FAIL_MALLOC=N environment variable, so you can do
6036 DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6037 DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6040 * qt/message.cpp: port to the new message args API
6041 (operator<<): use str.utf8() rather than str.unicode()
6042 (pretty sure this is right from the Qt docs?)
6044 * glib/dbus-gvalue.c: port to the new message args API
6046 * bus/dispatch.c, bus/driver.c: port to the new message args API
6048 * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6049 "locked" flag to TRUE and align_offset to 0; I guess we never
6050 looked at these anyhow, but seems cleaner.
6052 * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6053 move allocation padding macro to this header; use it to implement
6054 (_DBUS_STRING_STATIC): ability to declare a static string.
6056 * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6057 change to return TRUE if the interface is not set.
6059 * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6060 to dbus-marshal-validate.[hc]
6062 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
6065 * dbus/Makefile.am: cut over from dbus-marshal.[hc]
6066 to dbus-marshal-*.[hc]
6068 * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6069 function here from dbus-marshal.c
6071 2005-01-12 Joe Shaw <joeshaw@novell.com>
6073 * NEWS: Update for 0.23.
6075 * configure.in: Release 0.23.
6077 2005-01-12 Joe Shaw <joeshaw@novell.com>
6079 * mono/Makefile.am, mono/example/Makefile.am: Always build the
6080 dbus DLL with --debug. Clean up after the .mdb files this leaves
6083 * mono/doc/Makefile.am: Need to uninstall the docs on "make
6086 * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6087 is an enum, get the enum's underlying type. Another mono
6090 2005-01-11 Joe Shaw <joeshaw@novell.com>
6092 Patch from Sjoerd Simons <sjoerd@luon.net>
6094 * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6095 DESTDIR. It breaks stuff.
6097 2005-01-11 Joe Shaw <joeshaw@novell.com>
6099 Patch from Tambet Ingo <tambet@ximian.com>
6101 * mono/DBusType/Array.cs (Get): Get the underlying element type by
6102 calling type.GetElementType(). The code previously depended on
6103 broken Mono behavior, which was fixed in Mono 1.1.3.
6105 * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6106 Activator.CreateInstance() so that the class's constructor is
6107 called with the right parameters.
6109 2005-01-11 Joe Shaw <joeshaw@novell.com>
6111 Patch from Timo Teräs <ext-timo.teras@nokia.com>
6113 * dbus/dbus-connection.c
6114 (_dbus_connection_queue_received_message_link): Call
6115 _dbus_connection_remove_timeout() instead of the _locked()
6116 variant, since it's always called from
6117 _dbus_connection_handle_watch(), which handles the locking.
6118 Removed the _locked() variant since it's no longer used.
6120 2005-01-03 Havoc Pennington <hp@redhat.com>
6122 * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6125 2004-12-26 Havoc Pennington <hp@redhat.com>
6127 * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6129 2005-01-03 Havoc Pennington <hp@redhat.com>
6131 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6134 * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6136 2005-01-02 Havoc Pennington <hp@redhat.com>
6138 * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6140 2005-01-01 Havoc Pennington <hp@redhat.com>
6142 * configure.in: add -Wfloat-equal
6144 2005-01-01 Havoc Pennington <hp@redhat.com>
6146 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro,
6147 for a variety of reasons '==' doesn't do this.
6149 2004-12-31 Havoc Pennington <hp@redhat.com>
6151 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6152 I keep wishing I had
6154 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
6156 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6158 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
6160 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6161 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6162 dbus-protocol.h. Because they are defines and not enums they are not
6165 2004-12-26 John (J5) Palmieri <johnp@redhat.com>
6167 * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6168 dbus_bus_activate_service
6170 * python/dbus.py (Bus.activate_service): activate a service on the
6173 2004-12-24 Havoc Pennington <hp@redhat.com>
6175 * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6176 file format has also changed and I haven't adapted to that yet
6178 * Makefile.am: load .gcno files from latest gcc
6180 2004-12-23 John (J5) Palmieri <johnp@redhat.com>
6181 * Patch from Rob Taylor <robtaylor@fastmail.fm>
6183 * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6186 * python/dbus.py (get_unix_user): Added binding to
6187 call dbus_bindings.bus_get_unix_user
6189 * python/extract.py: Modified the proto_pat regex to
6190 handle unsigned long
6192 2004-12-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
6194 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6195 better POSIX compliance.
6197 2004-12-19 Havoc Pennington <hp@redhat.com>
6199 * dbus/dbus-string.c (_dbus_string_insert_4_aligned)
6200 (_dbus_string_insert_8_aligned): new functions
6202 * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6204 2004-12-18 Havoc Pennington <hp@redhat.com>
6206 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6209 * dbus/dbus-message.c: fix a comment, and add a still-unused
6210 not-implemented function
6212 * dbus/dbus-marshal.h: fix comment
6214 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
6216 2004-12-17 Joe Shaw <joeshaw@novell.com>
6218 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
6219 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
6220 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
6221 Type.UnderlyingSystemType to get the actual system type
6222 underneath. This code previously depended on the broken Mono
6223 behavior, which was fixed in 1.1.3.
6225 2004-11-27 Havoc Pennington <hp@redhat.com>
6227 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
6229 (_dbus_string_get_const_data): inline when asserts are disabled
6231 * dbus/dbus-message.c: record the _dbus_current_generation of
6232 creation so we can complain if dbus_shutdown() is used improperly.
6233 Do this only if checks are enabled.
6235 * dbus/dbus-connection.c: ditto
6237 2004-11-26 Havoc Pennington <hp@redhat.com>
6239 * test/glib/test-profile.c: add with_bus mode to profile echoes
6240 that go through the bus.
6242 * test/glib/run-test.sh: add ability to run test-profile
6244 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6247 2004-11-26 Havoc Pennington <hp@redhat.com>
6249 * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6250 thing was implemented
6252 2004-11-26 Havoc Pennington <hp@redhat.com>
6254 * test/glib/test-profile.c: tweak a bit, add support for some
6255 made-up minimal malloc overhead with plain sockets, since in
6256 real life some sort of buffers are unavoidable thus we could
6257 count them in the theoretical best case
6259 2004-11-26 Havoc Pennington <hp@redhat.com>
6261 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6262 where I was trying to cache one too many messages
6264 2004-11-26 Havoc Pennington <hp@redhat.com>
6266 * dbus/dbus-message.c: reimplement message cache as an array which
6267 makes the cache about twice as fast and saves maybe 1.5% overall
6269 2004-11-26 Havoc Pennington <hp@redhat.com>
6271 * dbus/dbus-threads.c (init_global_locks): forgot to put the
6272 message cache lock here
6274 2004-11-26 Havoc Pennington <hp@redhat.com>
6276 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6277 the "char byte_order" next to each other to save 4 bytes
6278 (dbus_message_new_empty_header): reduce preallocation, since the
6279 message cache should achieve a similar effect
6280 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6281 message cache that keeps a few DBusMessage around in a pool,
6282 another 8% speedup or so.
6284 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6286 2004-11-25 Havoc Pennington <hp@redhat.com>
6288 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6289 to write, without reading or blocking, try it before the poll()
6290 and skip the poll() if nothing remains to write. This is about a
6291 3% speedup in the echo client/server
6293 2004-11-25 Havoc Pennington <hp@redhat.com>
6295 The primary change here is to always write() once before adding
6296 the write watch, which gives us about a 10% performance increase.
6298 * dbus/dbus-transport-unix.c: a number of modifications to cope
6299 with removing messages_pending
6300 (check_write_watch): properly handle
6301 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6302 messages_pending stuff
6303 (check_read_watch): properly handle WAITING_FOR_MEMORY and
6305 (unix_handle_watch): after writing, see if the write watch can be
6307 (unix_do_iteration): assert that write_watch/read_watch are
6308 non-NULL rather than testing that they aren't, since they
6309 aren't allowed to be NULL. check_write_watch() at the end so
6310 we add the watch if we did not finish writing (e.g. got EAGAIN)
6312 * dbus/dbus-transport-protected.h: remove messages_pending call,
6313 since it resulted in too much inefficient watch adding/removing;
6314 instead we now require that the transport user does an iteration
6315 after queueing outgoing messages, and after trying the first
6316 write() we add a write watch if we got EAGAIN or exceeded our
6317 max bytes to write per iteration setting
6319 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6322 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6323 freed and then accessed, valgrind flagged this bug, fix it
6325 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6326 as the last valid field plus 1, where really it is equal to the
6327 last valid field. Corrects some message corruption issues.
6329 * dbus/dbus-mainloop.c: verbosity changes
6331 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6332 instead of aborting in one of the test codepaths
6334 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6335 caused not printing the pid ever again if a verbose was missing
6336 the newline at the end
6337 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6339 * dbus/dbus-connection.c: verbosity changes;
6340 (dbus_connection_has_messages_to_send): new function
6341 (_dbus_connection_message_sent): no longer call transport->messages_pending
6342 (_dbus_connection_send_preallocated_unlocked): do one iteration to
6343 try to write() immediately, so we can avoid the write watch. This
6344 is the core purpose of this patchset
6345 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6346 dump the outgoing message queue, so nobody will get confused
6347 trying to send them or thinking stuff is pending to be sent
6349 * bus/test.c: verbosity changes
6351 * bus/driver.c: verbosity/assertion changes
6353 * bus/dispatch.c: a bunch of little tweaks to get it working again
6354 because this patchset changes when/where you need to block.
6356 2004-11-23 Havoc Pennington <hp@redhat.com>
6358 * test/glib/test-profile.c: modify to accept a plain_sockets
6359 argument in which case it will bench plain sockets instead of
6360 libdbus, for comparison purposes.
6362 2004-11-22 Havoc Pennington <hp@redhat.com>
6364 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6365 threads for more time, so sysprof can get a grip on it.
6367 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6370 2004-11-13 Havoc Pennington <hp@redhat.com>
6372 * test/glib/test-profile.c: fix this thing up a bit
6374 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6375 preallocation sizes by a fair bit; not sure if this will be an
6376 overall performance win or not, but it does reduce reallocs.
6378 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6379 the test hack that forced constant realloc if asserts are
6380 disabled, so we can profile sanely. Sprinkle in some
6381 _DBUS_UNLIKELY() which are probably pointless, but before I
6382 noticed the real performance problem I put them in.
6383 (_dbus_string_validate_utf8): micro-optimize this thing a little
6384 bit, though callgrind says it didn't help; then special-case
6385 ascii, which did help a lot; then be sure we detect nul bytes as
6386 invalid, which is a bugfix.
6387 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6388 superstition; use memset to nul the padding instead of a manual
6390 (_dbus_string_get_length): inline this as a
6391 macro; it showed up in the profile because it's used for loop
6394 2004-11-10 Colin Walters <walters@verbum.org>
6396 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6399 2004-11-09 Colin Walters <walters@verbum.org>
6401 * dbus/dbus-string.c (_dbus_string_get_length): New
6402 function, writes DBusString to C buffer.
6404 * dbus/dbus-string.h: Prototype it.
6406 * dbus/dbus-message.c (dbus_message_type_to_string): New
6407 function, converts message type into C string.
6409 * dbus/dbus-message.h: Prototype it.
6411 * bus/selinux.c (bus_selinux_check): Take source pid,
6412 target pid, and audit data. Pass audit data to
6414 (log_audit_callback): New function, appends extra
6416 (bus_selinux_allows_acquire_service): Also take
6417 service name, add it to audit data.
6418 (bus_selinux_allows_send): Also take message
6419 type, interface, method member, error name,
6420 and destination, and add them to audit data.
6421 (log_cb): Initialize func_audit.
6423 * bus/selinux.h (bus_selinux_allows_acquire_service)
6424 (bus_selinux_allows_send): Update prototypes
6426 * bus/services.c (bus_registry_acquire_service): Pass
6427 service name to bus_selinux_allows_acquire_service.
6429 * bus/bus.c (bus_context_check_security_policy): Pass
6430 additional audit data. Move assignment of dest
6433 2004-11-07 Colin Walters <walters@verbum.org>
6435 * dbus/dbus-transport-unix.c (do_authentication): Always
6436 initialize auth_completed.
6438 2004-11-07 Colin Walters <walters@verbum.org>
6440 * bus/bus.c (load_config): Break into three
6441 separate functions: process_config_first_time_only,
6442 process_config_every_time, and process_config_postinit.
6443 (process_config_every_time): Move call of
6444 bus_registry_set_service_context_table into
6445 process_config_postinit.
6446 (process_config_postinit): New function, does
6447 any processing that needs to happen late
6448 in initialization (and also on reload).
6449 (bus_context_new): Instead of calling load_config,
6450 open config parser here and call process_config_first_time_only
6451 and process_config_every_time directly. Later, after
6452 we have forked but before changing UID,
6453 invoke bus_selinux_full_init, and then call
6454 process_config_postinit.
6455 (bus_context_reload_config): As in bus_context_new,
6456 load parse file inside here, and call process_config_every_time
6457 and process_config_postinit.
6459 * bus/services.h, bus/services.c
6460 (bus_registry_set_service_context_table): Rename
6461 from bus_registry_set_sid_table. Take string hash from config
6462 parser, and convert them here into SIDs.
6464 * bus/config-parser.c (struct BusConfigParser): Have
6465 config parser only store a mapping of service->context
6467 (merge_service_context_hash): New function.
6468 (merge_included): Merge context string hashes instead
6469 of using bus_selinux_id_table_union.
6470 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6471 simply create a new string hash.
6472 (bus_config_parser_unref): Unref it.
6473 (start_selinux_child): Simply insert strings into hash,
6474 don't call bus_selinux_id_table_copy_over.
6476 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6477 (bus_selinux_id_table_copy_over): Delete.
6479 2004-11-03 Colin Walters <walters@verbum.org>
6481 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6484 2004-11-03 Colin Walters <walters@verbum.org>
6486 * bus/test-main.c (test_pre_hook): Fix test logic,
6487 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6489 2004-11-02 Colin Walters <walters@redhat.com>
6491 * bus/selinux.c (bus_selinux_init): Split into two functions,
6492 bus_selinux_pre_init and bus_selinux_post_init.
6493 (bus_selinux_pre_init): Just determine whether SELinux is
6495 (bus_selinux_post_init): Do everything else.
6497 * bus/main.c (main): Call bus_selinux_pre_init before parsing
6498 config file, and bus_selinux_post_init after. This ensures that
6499 we don't lose the policyreload notification thread that
6500 bus_selinux_init created before forking previously.
6502 * bus/test-main.c (test_pre_hook): Update for split.
6504 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
6506 Patch from Johan Fischer <linux@fischaz.com>
6508 * mono/doc/Makefile.am (install-data-local): Added directory
6511 2004-10-29 Colin Walters <walters@redhat.com>
6513 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6514 parameter for fd to write pid to.
6516 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6518 * bus/bus.c (bus_context_new): Pass print_pid_fd
6519 to _dbus_become_daemon (bug #1720)
6521 2004-10-29 Colin Walters <walters@redhat.com>
6523 Patch from Ed Catmur <ed@catmur.co.uk>
6525 * mono/doc/Makefile.am (install-data-local): Handle
6528 2004-10-29 Colin Walters <walters@redhat.com>
6530 * bus/.cvsignore, qt/.cvsignore: Update.
6532 2004-10-29 Colin Walters <walters@redhat.com>
6534 Patch from Kristof Vansant <de_lupus@pandora.be>
6536 * configure.in: Detect Slackware.
6537 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6538 * bus/rc.messagebus.in: New file.
6540 2004-10-29 Colin Walters <walters@redhat.com>
6542 * tools/dbus-monitor.c (filter_func): Return
6543 DBUS_HANDLER_RESULT_HANDLED in filter function
6545 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6547 2004-10-29 Colin Walters <walters@redhat.com>
6549 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6551 * bus/services.c (bus_registry_acquire_service):
6552 Correctly retrieve service name from DBusString
6555 2004-10-29 Colin Walters <walters@redhat.com>
6557 * dbus/dbus-glib.h: Update documentation to not
6558 refer to internal APIs.
6560 2004-10-27 Joe Shaw <joeshaw@novell.com>
6562 * mono/Arguments.cs (GetDBusTypeConstructor):
6563 type.UnderlyingSystemType will return "System.Byte" if you do it
6564 on "byte[]", which is not what we want. So check the type.IsArray
6565 property and use System.Array instead.
6567 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
6569 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6570 the DBusUserInfo structure since this is passed into the function.
6571 This would cause a double free when the function that allocated
6572 the structure would try to free it when an error occured.
6574 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6575 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6576 for service activation to avoid 32bit/64bit parallel install issues
6578 2004-10-21 Colin Walters <walters@verbum.org>
6580 * AUTHORS: Fix my email address, the @gnu.org one
6581 has been bouncing for some time. Also add J5.
6583 2004-10-21 Colin Walters <walters@verbum.org>
6585 * dbus/dbus-transport-unix.c (do_authentication): Return
6586 authentication status to callers.
6587 (unix_handle_watch): If we completed authentication this round,
6588 don't do another read. Instead wait until the next iteration,
6589 after we've read any pending data in the auth buffer.
6590 (unix_do_iteration): Ditto.
6591 (unix_handle_watch): Updated for new do_authentication prototype.
6593 2004-10-18 Colin Walters <walters@verbum.org>
6595 * bus/selinux.c (bus_selinux_enabled): Handle
6596 --disable-selinux case.
6598 2004-10-18 Colin Walters <walters@verbum.org>
6600 * bus/selinux.h: Add bus_selinux_enabled.
6602 * bus/selinux.c (bus_selinux_enabled): Implement it.
6604 * bus/config-parser.c (struct include): Add
6605 if_selinux_enabled member.
6606 (start_busconfig_child): Parse if_selinux_enabled
6607 attribute for include.
6608 (bus_config_parser_content): Handle it.
6610 * bus/session.conf.in, bus/system.conf.in: Add
6611 inclusion of context mapping to default config files;
6612 conditional on SELinux being enabled.
6614 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6616 * test/data/invalid-config-files/badselinux-1.conf,
6617 test/data/invalid-config-files/badselinux-2.conf:
6618 Test files for bad syntax.
6620 2004-10-17 Colin Walters <walters@verbum.org>
6622 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6623 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6624 format specifier mismatches.
6626 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
6628 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6631 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6632 pointer (bug #1540, Leonardo Boiko).
6634 2004-09-28 Jon Trowbridge <trow@ximian.com>
6636 * mono/BusDriver.cs: Changed BusDriver struct to remove
6637 the ServiceCreated and ServiceDeleted events and replace them
6638 with the new ServiceOwnerChanged event.
6640 * mono/example/BusListener.cs: Added a new example program,
6641 which listens for and reports any ServiceOwnerChanged events
6644 * mono/example/Makefile.am (DESTDIR): Build changes for the
6645 new BusListener.cs example.
6647 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
6649 * bus/signals.c (bus_match_rule_parse): validate the components of
6650 match rules (bug #1439).
6652 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6654 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
6656 * doc/dbus-specification.xml: document ServiceOwnerChanged
6659 * bus/driver.c, bus/driver.h, bus/services.c: Use
6660 ServiceOwnerChanged signal instead of ServiceCreated and
6663 * bus/dispatch.c: update testcase for the new signal.
6665 2004-09-20 Jon Trowbridge <trow@ximian.com>
6667 Patch from Nat Friedman <nat@novell.com>
6669 * mono/Makefile.am: A number of small build fixes to allow "make
6670 distcheck" to succeed.
6672 * mono/example/Makefile.am: "make distcheck" fixes.
6674 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6677 * test/Makefile.am: "make distcheck" fixes.
6679 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
6681 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6683 * doc/busconfig.dtd: update the DTD for the at_console attribute.
6685 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6686 messages after the first one (bug #1389).
6688 * bus/dispatch.c (check_double_hello_message): add a test case for
6689 the double hello message bug.
6690 (check_existent_service_activation): fix check of spawning error.
6692 2004-09-16 David Zeuthen <david@fubar.dk>
6694 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6696 2004-09-12 David Zeuthen <david@fubar.dk>
6698 Patch from Kay Sievers <kay.sievers@vrfy.org>
6700 * bus/bus.c (bus_context_new):
6702 * bus/main.c (usage)
6704 Add commandline option --nofork to override configuration file
6707 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
6709 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6710 compilers don't like it (bug #974).
6712 2004-09-04 Harald Fernengel <harry@kdevelop.org>
6714 * qt/connection.*: Applied patch by Jérôme Lodewyck
6715 <lodewyck@clipper.ens.fr> to integrate an existing
6716 connection into the Qt eventloop
6718 2004-08-30 Jon Trowbridge <trow@ximian.com>
6720 * mono/BusDriver.cs: Added. This is a class for interacting with
6721 the org.freedesktop.DBus service.
6723 * mono/Message.cs: Added a mechanism to expose the message that is
6724 currently being dispatched via the static Message.Current
6725 property. Added Message.Sender and Message.Destination
6728 * mono/Handler.cs: Expose the dispatched message via
6729 Message.Current when handling method calls.
6731 * mono/Service.cs: Expose the dispatched message via
6732 Message.Current when handling signal emissions.
6734 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6735 Connection.BaseService property.
6737 2004-08-28 Havoc Pennington <hp@redhat.com>
6739 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6741 More fixes from Steve Grubb
6743 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6744 (_dbus_listen_tcp_socket): fix fd leak
6746 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6747 EINTR to a bit lower in the code
6749 2004-08-26 Jon Trowbridge <trow@ximian.com>
6751 * bus/driver.c (bus_driver_handle_service_exists): Respond with
6752 TRUE if we are inquiring about the existence of the built-in
6753 org.freedesktop.DBus service.
6755 2004-08-25 John Palmieri <johnp@redhat.com>
6756 * bus/config-parser.c:
6757 (struct PolicyType): Add POLICY_CONSOLE
6758 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6759 (start_busconfig_child): Sets up console element when
6760 <policy at_console=""> is encountered in a policy file
6761 (append_rule_from_element): Convert console elements to console
6765 (bus_policy_create_client_policy): Add console rules to the client
6766 policy based on if the client is at the console
6767 (bus_policy_append_console_rule): New function for adding a
6768 console rule to a policy
6769 (bus_policy_merge): Handle console rule merging
6771 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6772 where we check for console user files
6774 * dbus/dbus-sysdeps.c:
6775 (_dbus_file_exists): New function which checks if the given
6777 (_dbus_user_at_console): New function which does the system
6778 specific process of checking if the user is at the console
6780 * dbus/dbus-userdb.c:
6781 (_dbus_is_console_user): New function converts a UID to user name
6782 and then calls the system specific _dbus_user_at_console to
6783 see if the user is at the console and therefor a console user
6785 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
6787 * bus/config-parser.c (set_limit):
6788 * bus/dbus-daemon-1.1.in:
6789 * test/data/valid-config-files/many-rules.conf: set the
6790 max_match_rules_per_connection limt from the config file.
6792 * doc/busconfig.dtd: update the DTD.
6794 * bus/driver.c: remove some unused variables.
6796 2004-08-24 Mikael Hallendal <micke@imendio.com>
6798 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
6799 it's been replaced by dbus_g_bus_get
6801 2004-08-23 Colin Walters <walters@redhat.com>
6803 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6805 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6807 * bus/selinux.c: Create a thread for policy reload notification.
6808 (bus_selinux_get_policy_root): Implement.
6810 * bus/config-parser.c (start_busconfig_child)
6811 (bus_config_parser_content): Support SELinux-root relative
6814 * configure.in <HAVE_SELINUX>: Add -lpthread.
6816 * bus/test-main.c (test_pre_hook, test_post_hook): New.
6817 (test_post_hook): Move memory checking into here.
6818 (test_pre_hook, test_post_hook): Move SELinux checks in
6819 here, but conditional on a DBUS_TEST_SELINUX environment
6820 variable. Unfortunately we can't run the SELinux checks
6821 as a normal user, since they won't have any permissions
6822 for /selinux. So this will have to be tested manually
6823 for now, until we have virtualization for most of
6826 2004-08-23 Havoc Pennington <hp@redhat.com>
6828 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6829 drop supplementary groups, suggested by Steve Grubb
6831 2004-08-20 Colin Walters <walters@redhat.com>
6833 * bus/config-parser.c (start_busconfig_child): Remove some unused
6836 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6839 2004-08-17 Joe Shaw <joeshaw@novell.com>
6841 * configure.in: If --enable-mono is passed in, if we can't find
6844 * mono/Makefile.am: Use /gacutil to install assemblies into the
6847 2004-08-12 Havoc Pennington <hp@redhat.com>
6849 * NEWS: update for 0.22
6851 * configure.in: release 0.22
6853 2004-08-11 Colin Walters <walters@redhat.com>
6855 * tools/dbus-send.c (main, usage): Add --reply-timeout
6858 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
6860 * bus/bus.c (process_config_first_time_only): get rid of an unused
6861 DBusError that was causing a memoy leak (bug #989).
6863 * dbus/dbus-keyring.c, dbus/dbus-message.c:
6864 fix compilation on Solaris/Forte C (bug #974)
6866 * bus/main.c (main): plug two minuscule memleaks.
6868 2004-08-10 Havoc Pennington <hp@redhat.com>
6870 * doc/dbus-tutorial.xml: add some more info on GLib bindings
6872 2004-08-09 Havoc Pennington <hp@redhat.com>
6874 * COPYING: switch to Academic Free License version 2.1 instead of
6875 2.0, to resolve complaints about patent termination clause.
6877 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
6879 * README: added documentation for the --enable-python
6882 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
6884 * bus/config-parser.c (bus_config_parser_new): fix an invalid
6885 _unref in the SELinux support.
6887 * doc/busconfig.dtd: update DTD for SELinux support.
6889 * bus/config-loader-libxml.c: fix error handler and parser
6890 initialisation/cleanup. OOM test now works with libxml2 HEAD.
6892 * configure.in: remove the warning about libxml2.
6894 * dbus/dbus-bus.c: silence doxygen warning.
6896 2004-07-31 Colin Walters <walters@redhat.com>
6898 * configure.in: Move #error in SELinux check to its own line.
6900 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
6902 * dbus/dbus-internals.h (_DBUS_SET_OOM):
6903 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6906 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6907 broken by the change in the _SET_OOM macros.
6909 2004-07-31 Colin Walters <walters@redhat.com>
6911 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6914 2004-07-31 Colin Walters <walters@redhat.com>
6916 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6917 to correctly detect DBUS__ACQUIRE_SVC. Also add an
6920 2004-07-24 Havoc Pennington <hp@redhat.com>
6922 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6924 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6927 * configure.in: add --enable-selinux
6929 * bus/policy.c (bus_policy_merge): add FIXME to a comment
6931 * bus/main.c (main): initialize and shut down selinux
6933 * bus/connection.c: store SELinux ID on each connection, to avoid
6934 repeated getting of the string context and converting it into
6937 * bus/bus.c (bus_context_get_policy): new accessor, though it
6939 (bus_context_check_security_policy): check whether the security
6940 context of sender connection can send to the security context of
6941 recipient connection
6943 * bus/config-parser.c: add parsing for <selinux> and <associate>
6945 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6946 implement dbus_connection_get_unix_fd()
6948 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6949 function, used by the selinux stuff
6951 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
6953 * bus/config-loader-libxml.c: complete the implementation of
6954 libxml backend for config file loader. Doesn't work with full OOM
6957 * configure.in: change error when selecting libxml into a warning.
6959 * test/data/invalid-config-files: add two non-well-formed XML
6962 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6964 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6965 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6966 be necessary to read all the buffer. (bug #894)
6968 * bus/activation.c (bus_activation_activate_service): fix a
6969 potential assertion failure (bug #896). Small optimization in the
6970 case of auto-activation messages.
6972 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6973 add test case for byte-through-vararg bug (#901). patch by Kimmo
6976 2004-07-28 Anders Carlsson <andersca@gnome.org>
6979 * python/dbus_bindings.pyx.in:
6980 Add dbus.init_gthreads (), allow emit_signal to pass
6981 arguments to the signal.
6983 2004-07-24 Havoc Pennington <hp@redhat.com>
6985 * AUTHORS: add some people, not really comprehensively, let me
6986 know if I missed you
6988 2004-07-24 Havoc Pennington <hp@redhat.com>
6990 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6993 * test/Makefile.am (DIST_SUBDIRS): here also
6995 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
6997 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6998 breaking build on Solaris, reported by Farhad Saberi on the ML.
7000 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7001 va_arg invocation to account for integer promotion in the case of
7002 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
7004 * bus/services.c (bus_service_remove_owner): fix bug #902, use
7005 _dbus_list_get_first_link, not _dbus_list_get_first.
7007 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7009 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7010 handler functions so that the asserts in _dbus_object_subtree_unref
7013 * dbus/dbus-transport-unix.c (do_reading):
7014 _dbus_transport_queue_messages return value is of type
7015 dbus_bool_t, not DBusDispatchStatus.
7017 2004-07-19 David Zeuthen <david@fubar.dk>
7019 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7022 (check_get_connection_unix_user): Debug says GetProperty; but the
7023 method is called GetConnectionUnixUser
7024 (check_get_connection_unix_process_id): New function
7025 (bus_dispatch_test): Actually call check_get_connection_unix_user();
7026 also call check_get_connection_unix_process_id()
7029 (bus_driver_handle_get_connection_unix_process_id): New function,
7030 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7034 (handle_server_data_external_mech): Set pid from the credentials
7035 obtained from the socket
7037 * dbus/dbus-connection.c:
7038 (dbus_connection_get_unix_process_id): New function
7040 * dbus/dbus-connection.h:
7041 Add prototype for dbus_connection_get_unix_process_id
7043 * dbus/dbus-transport.c:
7044 (_dbus_transport_get_unix_process_id): New function
7046 * dbus/dbus-transport.h:
7047 Add prototype for _dbus_transport_get_unix_process_id
7049 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
7051 * dbus/dbus-message.c: Message counter fix, patch by Christian
7052 Hammond <chipx86@gnupdate.org>
7054 2004-07-18 Seth Nickell <seth@gnome.org>
7057 * python/dbus_bindings.pyx.in:
7058 * python/tests/test-client.py:
7060 Add dbus.ByteArray and dbus_bindings.ByteArray
7061 types so that byte streams can be passed back.
7063 Give jdahlin the heaps of credit that are so
7066 2004-07-12 Seth Nickell <seth@gnome.org>
7070 Add message argument to the default object_method_handler
7073 * python/dbus_bindings.pyx.in:
7075 Automatically return NIL when passed an empty list
7076 (we can't pass back a list since lists are typed
7077 and we don't have any idea what type the the client
7078 intended the list to be... :-( )
7080 2004-07-10 Seth Nickell <seth@gnome.org>
7082 * python/examples/Makefile.am:
7084 Fix distcheck breakage caused by new examples.
7086 2004-07-10 Seth Nickell <seth@gnome.org>
7090 Add "message" argument to service-side dbus.Object
7091 methods. This will break existing services written
7092 using the python bindings, but will allow extraction
7093 of all the message information (e.g. who its from).
7095 Add improved "object oriented" signal handling/emission.
7097 * python/examples/example-service.py:
7101 * python/examples/example-signal-emitter.py:
7102 * python/examples/example-signal-recipient.py:
7104 Two new examples that show how to emit and receive
7105 signals using the new APIs.
7107 * python/examples/example-signals.py:
7108 * python/examples/gconf-proxy-service.py:
7109 * python/examples/gconf-proxy-service2.py:
7111 Add "message" argument to service methods.
7113 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
7115 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7116 * dbus/bus.c (dbus_bus_get_unix_user)
7117 * doc/dbus-specification.xml: implement GetConnectionUnixUser
7118 method of org.freedesktop.DBus interface.
7120 * bus/dispatch.c: test case
7122 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
7124 * python/Makefile.am: switched include directory from glib/ to dbus/
7125 since dbus-glib.h moved
7127 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
7129 * configure.in: prevent building the gcj stuff and libxml loader
7130 since they are broken.
7132 2004-06-20 Havoc Pennington <hp@redhat.com>
7134 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
7135 codes from the dbus error names
7137 * glib/dbus-glib.h: move to subdir dbus/ since it's included
7138 as dbus/dbus-glib.h and that breakage is now visible due to
7139 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7141 * glib/dbus-glib.h: s/gproxy/g_proxy/
7143 * dbus/dbus-shared.h: new header to hold stuff shared with
7146 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7149 * glib/dbus-glib.h (dbus_set_g_error): move to
7150 dbus-glib-lowlevel.h
7152 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7153 of stuff to enable this
7155 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7157 * a bunch of other changes with the same basic "separate glib
7158 bindings from dbus.h" theme
7160 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
7162 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7164 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7166 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
7168 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7169 the reply value of the ServiceExists message.
7171 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
7173 * python/dbus_bindings.pyx.in: No longer need to parse path
7174 elements and pass them as arrays of strings. The C API now
7175 accepts plain path strings.
7176 (_build_parsed_path): removed
7178 2004-06-07 Havoc Pennington <hp@redhat.com>
7180 * doc/TODO: remove auto-activation item since it's done; sort
7181 items by importance/milestone
7183 2004-06-07 Havoc Pennington <hp@redhat.com>
7185 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7186 random signature when using REQUIRED_FIELDS (this hack won't work
7189 * dbus/dbus-message.c: change the signature to be a header field,
7190 instead of message->signature special-case string. Incremental
7191 step forward. Then we can fix up code to send the signature in the
7192 message, then fix up code to validate said signature, then fix up
7193 code to not put the typecodes inline, etc.
7194 (load_one_message): don't make up the signature after the fact
7195 (decode_header_data): require signature field for the known
7198 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7200 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7202 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
7204 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7206 * mono/Handler.cs: Updated to follow new path argument for
7207 (un-)registering objects.
7209 * mono/example/Makefile.am:
7211 * configure.in: Bumped required version for mono and use new -pkg
7214 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
7216 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
7217 registration functions take the path argument as char* instead of
7220 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
7221 split off the path decompostion part of
7222 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
7225 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
7227 2004-06-02 Kristian Høgsberg <krh@redhat.com>
7229 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
7230 machine approach. A state is implemented as a function that
7231 handles incoming events as specified for that state.
7233 * doc/dbus-specification.xml: Update auth protocol state machine
7234 specification to match implementation. Remove some leftover
7237 2004-06-02 Kristian Høgsberg <krh@redhat.com>
7239 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7240 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7243 * Doxyfile.in: remove deprecated options.
7245 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7246 glib/test-thread.h, glib/test-thread-client.c,
7247 glib/test-thread-server.c, glib/test-profile.c,
7248 glib/test-dbus-glib.c: remove these unused files.
7250 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
7252 * dbus/dbus-object-tree.c
7253 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7254 non-fallback handlers (bug #684).
7255 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7256 (find_subtree_recurse): report wether the returned subtree is an
7257 exact match or a "fallback" match higher up in the tree.
7258 (object_tree_test_iteration): update test case.
7260 2004-06-01 Seth Nickell <seth@gnome.org>
7262 * python/dbus_bindings.pyx.in:
7263 * python/tests/test-client.py:
7265 Round off basic type support. Add dicts (yay!), and
7266 remaining array types.
7268 Make MessageIter more general so it works for dicts too.
7270 Mark all loop variables as C integers.
7272 2004-05-31 Havoc Pennington <hp@redhat.com>
7274 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7277 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7279 * glib/dbus-glib-tool.c (main): set up to have a --self-test
7280 option that runs the tests, and start filling in some code
7281 including for starters just dumping the interfaces to stdout
7283 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7285 * test/data/valid-introspection-files/lots-of-types.xml: test of
7286 an example introspection file
7288 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7291 2004-05-31 Seth Nickell <seth@gnome.org>
7293 * python/dbus_bindings.pyx.in:
7294 * python/tests/test-client.py:
7299 Fix string array memory trashing bug... oops...
7301 2004-05-30 Seth Nickell <seth@gnome.org>
7305 Add a nicer-but-less-flexible alternate API for handling
7306 calls to virtual objects in dbus.ObjectTree.
7308 Screw up the argument order to the dbus.Object constructor
7309 for consistency with dbus.ObjectTree (and to make dbus_methods
7310 optional for future extension)
7312 * python/examples/Makefile.am:
7313 * python/examples/gconf-proxy-service.py:
7314 * python/examples/gconf-proxy-service2.py:
7316 Alternate implementation of gconf-proxy-service using the
7317 nicer dbus.ObjectTree API.
7319 * python/examples/example-service.py:
7320 * python/tests/test-server.py
7322 Reverse the argument order to deal with dbus.Object constructor
7325 2004-05-30 Seth Nickell <seth@gnome.org>
7327 * python/examples/example-client.py:
7328 * python/examples/example-service.py:
7330 Take it back. Lists seem to work but they're broken
7331 in the test suite. Make the base examples use
7334 2004-05-30 Seth Nickell <seth@gnome.org>
7336 * python/dbus_bindings.pyx.in:
7337 * python/tests/test-client.py:
7339 Add some more tests and fix errors that crop up.
7340 Unfortunately, currently it seems like marshalling
7341 and unmarshalling of lists is completely broken :-(
7343 2004-05-30 Seth Nickell <seth@gnome.org>
7345 * python/dbus_bindings.pyx.in:
7347 Add support for ObjectPath type.
7351 Refactor message handling code to a common function.
7353 * python/tests/test-client.py:
7354 * python/tests/test-server.py:
7356 Add tests that check to make sure values of all types
7357 can be echoed from a service w/o mangling.
7359 2004-05-29 Seth Nickell <seth@gnome.org>
7363 Add ObjectTree class which allows implementation
7364 of trees of "virtual" objects. Basically the python
7365 wrapper for "register_fallback".
7367 * python/examples/Makefile.am
7368 * python/examples/gconf-proxy-client.py:
7369 * python/examples/gconf-proxy-service.py:
7371 Implement a simple GConf proxy service that supports
7372 get/set on string and int GConf keys using the ObjectTree.
7374 2004-05-29 Seth Nickell <seth@gnome.org>
7377 * python/examples/example-client.py:
7378 * python/examples/example-service.py:
7379 * python/examples/list-system-services.py:
7381 Add SessionBus, SystemBus and ActivationBus classes
7382 so you don't need to know the special little BUS_TYPE
7385 2004-05-29 Havoc Pennington <hp@redhat.com>
7387 * bus/config-parser.c (process_test_valid_subdir): temporarily
7388 stop testing config parser OOM handling, since expat has issues
7389 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7391 * bus/dbus-daemon-1.1.in: change requested_reply to
7392 send_requested_reply/receive_requested_reply so we can send the
7393 replies, not just receive them.
7395 * bus/config-parser.c: parse the new
7396 send_requested_reply/receive_requested_reply
7398 * bus/policy.c (bus_client_policy_check_can_send): add
7399 requested_reply argument and use it
7401 * bus/bus.c (bus_context_check_security_policy): pass through
7402 requested_reply status to message send check
7404 * bus/system.conf.in: adapt to requested_reply change
7406 2004-05-28 Havoc Pennington <hp@redhat.com>
7408 * test/glib/test-service-glib.c (main): remove unused variable
7410 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7412 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7413 from the enum, no longer in use.
7415 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7418 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7419 whether error_name passed in is a valid error name.
7421 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
7423 * dbus/dbus-message.c (dbus_message_get_args): Added support for
7424 OBJECT_PATH and OBJECT_PATH_ARRAY
7426 2004-05-28 Seth Nickell <seth@gnome.org>
7428 * python/examples/Makefile.am:
7430 Forget to add Makefile.am. Do not pass go.
7432 2004-05-28 Michael Meeks <michael@ximian.com>
7434 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
7437 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7439 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7440 (_dbus_message_iter_get_basic_type_array): impl.
7441 drastically simplify ~all relevant _get methods to use these.
7442 (_dbus_message_iter_append_basic_array),
7443 (dbus_message_iter_append_basic): impl
7444 drastically simplify ~all relevant _append methods to use these.
7446 * dbus/dbus-message-builder.c (parse_basic_type)
7447 (parse_basic_array, lookup_basic_type): impl.
7448 (_dbus_message_data_load): prune scads of duplicate /
7451 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
7452 (_dbus_demarshal_basic_type): implement,
7453 (demarshal_and_validate_len/arg): beef up debug.
7454 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7456 2004-05-27 Seth Nickell <seth@gnome.org>
7459 * python/Makefile.am:
7461 Include the example python apps in the tarball.
7463 * python/examples/list-system-services.py
7465 Add a python new example that fetches the list of services
7466 from the system bus.
7468 2004-05-27 Seth Nickell <seth@gnome.org>
7471 * python/dbus_bindings.pyx.in:
7473 Fix failure to notify that a signal was not handled,
7474 resulted in hung functions.
7476 2004-05-25 Colin Walters <walters@redhat.com>
7478 * tools/dbus-monitor.c (main): Monitor all types of messages.
7480 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
7482 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7483 which unregisters the object path and disposes the handler.
7485 2004-05-23 Kristian Høgsberg <krh@redhat.com>
7487 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7489 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7490 operands to && so we call dbus_message_iter_next () for the last
7493 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
7495 * dbus/dbus-object-tree.c
7496 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7497 children even if the requested path isn't registered.
7498 (object_tree_test_iteration): test object_tree_list_registered.
7500 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7503 2004-05-20 Kristian Høgsberg <krh@redhat.com>
7505 * doc/TODO: Remove resolved items.
7507 * bus/expirelist.h (struct BusExpireList): remove unused n_items
7510 * bus/connection.c (bus_connections_expect_reply): Enforce the
7511 per-connection limit on pending replies.
7513 Patch from Jon Trowbridge <trow@ximian.com>:
7515 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
7516 up a watch that triggers a config reload when one end of the pipe
7518 (signal_handler): Instead of doing the config reload in our SIGHUP
7519 handler, just write to the reload pipe and let the associated
7520 watch handle the reload when control returns to the main loop.
7522 * bus/driver.c (bus_driver_handle_reload_config): Added.
7523 Implements a ReloadConfig method for requesting a configuration
7524 file reload via the bus driver.
7526 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
7528 * HACKING: Updated release instructions concerning the wiki page.
7530 2004-05-18 Kristian Høgsberg <krh@redhat.com>
7532 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7533 filter against auth->allowed_mechs; we only add allowed mechs in
7534 record_mechanisms().
7536 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7537 ALLOWED_MECHS to auth-script format so we can set the list of
7540 * data/auth/client-out-of-mechanisms.auth-script: New test to
7541 check client disconnects when it is out of mechanisms to try.
7543 * dbus/dbus-auth.c (process_command): Remove check for lines
7544 longer that 1 MB; we only buffer up maximum 16 kB.
7546 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7547 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7548 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7549 assume there might be unused bytes.
7551 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7552 client-out-of-mechs, it is handled in process_reject(). Move check
7553 for max failures to send_rejected(), as it's a server-only thing.
7555 * dbus/dbus-auth.c: Factor out protocol reply code into functions
7556 send_auth(), send_data(), send_rejected(), send_error(),
7557 send_ok(), send_begin() and send_cancel().
7559 2004-05-17 Kristian Høgsberg <krh@redhat.com>
7561 Remove base64 encoding, replace with hex encoding. Original patch
7562 from trow@ximian.com, added error handling.
7564 * dbus/dbus-string.c (_dbus_string_base64_encode)
7565 (_dbus_string_base64_decode): Remove.
7566 (_dbus_string_hex_decode): Add end_return argument so we can
7567 distinguish between OOM and invalid hex encoding.
7568 (_dbus_string_test): Remove base64 tests and add test case for
7571 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7572 Replace base64 with hex.
7574 * test/data/auth/invalid-hex-encoding.auth-script: New test case
7575 for invalid hex encoded data in auth protocol.
7577 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
7579 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7582 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
7584 * mono/dbus-sharp.dll.config.in: Added for GAC
7585 * mono/dbus-sharp.snk: Added for GAC
7586 * mono/Assembly.cs.in: Added for GAC
7587 * mono/Makefile.am: Changes for GAC installation
7588 * configure.in: Added refs for dbus-sharp.dll.config.in and
7589 Assembly.cs.in. More fixes for mono testing
7590 * mono/example/Makefile.am: Changed var to CSC
7591 * Makefile.am: Changed flag name to DBUS_USE_CSC
7593 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
7595 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7596 * mono/doc/*: Added documentation framework
7597 * configure.in: Added monodoc check
7598 * README: Added description of mono configure flags
7600 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
7602 * doc/dbus-specification.xml: Added a "Required" column to the
7603 header fields table and changed the "zero or more" verbage in
7604 the above paragraph to read "The header must contain the required
7605 named header fields and zero or more of the optional named header
7607 * test/data/invalid-messages/*.message: Added the required PATH
7608 named header field to the tests so that they don't fail on
7609 'Missing path field'
7611 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
7613 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7614 the stack by implicitly defining variable and parameter types and
7615 removing the hack of defining C pointers as python objects and later
7618 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
7620 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7622 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
7624 * mono/DBusType/Dict.cs: Handle empty dicts
7625 * mono/DBusType/Array.cs: Handle empty arrays
7626 * mono/Arguments.cs: Handle empty arguments
7628 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
7630 * dbus-sharp.pc.in: Modified to include include Libs and Requires
7633 2004-04-25 Kristian Høgsberg <krh@redhat.com>
7635 * test/data/valid-messages/standard-*.message: Update message
7636 test scripts to new header field names.
7638 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
7640 * test/break-loader.c (randomly_do_n_things): tracked down buffer
7641 overflow to times_we_did_each_thing array which would chop off the
7642 first character of the failure_dir string. Increased the size of
7643 the array to 7 to reflect the number of random mutation functions
7646 2004-04-21 Kristian Høgsberg <krh@redhat.com>
7648 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7649 unix_server->watch here, it is unreffed in disconnect.
7650 (_dbus_server_new_for_tcp_socket): convert NULL host to
7651 "localhost" here so we don't append NULL to address.
7653 * dbus/dbus-server.c (_dbus_server_test): Add test case for
7654 various addresses, including tcp with no explicit host.
7656 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
7658 * dbus/dbus-message.c (decode_header_data, decode_string_field):
7659 fix incorrect setting of .name_offset in the HeaderField (it was
7660 off by two bytes, positioned right after the name and typecode)
7662 * bus/bus.c (bus_context_new, bus_context_unref): test before
7663 calling dbus_server_free_data_slot and _dbus_user_database_unref
7664 in case of an error.
7666 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7669 2004-04-19 Kristian Høgsberg <krh@redhat.com>
7671 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7672 _dbus_poll() instead of select().
7674 2004-04-15 Jon Trowbridge <trow@ximian.com>
7676 * bus/main.c (signal_handler): Reload the configuration files
7678 (main): Set up our SIGHUP handler.
7680 * bus/bus.c (struct BusContext): Store the config file, user and
7681 fork flag in the BusContext.
7682 (process_config_first_time_only): Added. Contains the code
7683 (previously in bus_context_new) for setting up the BusContext from
7684 the BusConfigParser that should only be run the first time the
7685 config files are read.
7686 (process_config_every_time): Added. Contains the code (previously
7687 in bus_context_new) for setting up the BusContext from the
7688 BusConfigParser that should be run every time the config files are
7690 (load_config): Added. Builds a BusConfigParser from the config
7691 files and passes the resulting structure off to
7692 process_config_first_time_only (assuming this is the first time)
7693 and process_config_every_time.
7694 (bus_context_new): All of the config-related code has been moved
7695 to process_config_first_time_only and process_config_every_time.
7696 Now this function just does the non-config-related initializations
7697 and calls load_config.
7698 (bus_context_reload_config): Added.
7700 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
7702 * bus/driver.c (bus_driver_handle_get_service_owner):
7703 implement a GetServiceOwner method.
7704 * doc/dbus-specification.xml: document it.
7705 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7707 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7708 implement, using the bus GetServiceOwner method.
7710 * test/glib/test-dbus-glib.c:
7711 use dbus_gproxy_new_for_service_owner so that we can receive the
7714 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
7716 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7717 dbus/dbus-message.c, dbus/dbus-protocol.h
7718 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7720 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7721 dbus/dbus-message.c, dbus/dbus-protocol.h
7722 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7724 * dbus/dbus-internals.c (_dbus_header_field_to_string):
7725 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7726 DBUS_HEADER_FIELD_SENDER resolves to "sender"
7728 * doc/dbus-specification.xml (Header Fields Table):
7729 s/SERVICE/DESTINATION
7730 s/SENDER_SERVICE/SENDER
7733 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
7735 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7738 2004-04-13 Michael Meeks <michael@ximian.com>
7740 * glib/dbus-gobject.c (handle_introspect): split out
7741 (introspect_properties): this.
7742 (handle_introspect): implement this.
7744 * test/glib/Makefile.am: use the absolute path so the bus
7745 daemon's chdir ("/") doesn't kill us dead.
7747 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7749 2004-04-12 Jon Trowbridge <trow@ximian.com>
7751 * bus/config-parser.c (struct BusConfigParser): Added
7752 included_files field.
7753 (seen_include): Added. Checks whether or not a file has already
7754 been included by any parent BusConfigParser.
7755 (bus_config_parser_new): Copy the parent's included_files.
7756 (include_file): Track which files have been included, and fail on
7757 circular inclusions.
7758 (process_test_valid_subdir): Changed printf to report if we are
7759 testing valid or invalid conf files.
7760 (all_are_equiv): Changed printf to be a bit clearer about
7761 what we are actually doing.
7762 (bus_config_parser_test): Test invalid configuration files.
7764 2004-04-09 Jon Trowbridge <trow@ximian.com>
7766 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7767 argument. If non-null, the newly-constructed BusConfigParser will
7768 be initialized with the parent's BusLimits instead of the default
7770 (include_file): When including a config file, pass in
7771 the current parser as the parent and then copy the BusLimits
7772 from the included BusConfigParser pack to the current parser.
7773 (process_test_valid_subdir): Renamed from process_test_subdir.
7774 (process_test_equiv_subdir): Added. Walks through a directory,
7775 descending into each subdirectory and loading the config files
7776 it finds there. If any subdirectory contains two config files
7777 that don't produce identical BusConfigParser structs, fail.
7778 For now, the BusConfigParser's BusPolicies are not compared.
7779 (bus_config_parser_test): Call both process_test_valid_subdir and
7780 process_test_equiv_subdir.
7782 * bus/config-loader-libxml.c (bus_config_load): Take a parent
7783 argument and pass it along to the call to bus_config_parser_new.
7784 Also made a few small changes to allow this code to compile.
7786 * bus/config-loader-expat.c (bus_config_load): Take a parent
7787 argument and pass it along to the call to bus_config_parser_new.
7789 * bus/bus.c (bus_context_new): Load the config file
7790 with a NULL parent argument.
7792 2004-03-29 Michael Meeks <michael@ximian.com>
7794 * glib/dbus-gobject.c (introspect_properties): split
7795 out, fix mangled 'while' flow control.
7796 (introspect_signals): implement.
7797 (handle_introspect): update.
7799 2004-03-29 Michael Meeks <michael@ximian.com>
7801 * glib/dbus-gobject.c (set_object_property): split out /
7802 re-work, use the property type, and not the message type(!)
7803 (get_object_property): ditto.
7805 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7806 (dbus_gvalue_marshal): make this code re-usable, needed
7807 for signals too, also on both proxy and server side.
7808 Re-write for more efficiency / readability.
7810 2004-03-29 Michael Meeks <michael@ximian.com>
7812 * dbus/dbus-message.c
7813 (dbus_message_new_error_printf): impl.
7815 * dbus/dbus-connection.c
7816 (dbus_connection_unregister_object_path): fix warning.
7818 * configure.in: fix no-mono-installed situation.
7820 2004-03-27 Havoc Pennington <hp@redhat.com>
7822 Patch from Timo Teräs:
7824 * tools/dbus-send.c (main): if --print-reply, assume type is
7825 method call; support boolean type args
7827 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7828 bunch of memleak and logic bugs
7830 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
7832 * mono/Arguments.cs:
7833 * mono/Introspector.cs:
7835 * mono/InterfaceProxy.cs:
7837 * mono/ProxyBuilder.cs:
7839 Added InterfaceProxy class to avoid building proxies for every
7843 * dbus-message.c (dbus_message_append_args_valist)
7844 (dbus_message_iter_get_object_path)
7845 (dbus_message_iter_get_object_path_array)
7846 (dbus_message_iter_append_object_path)
7847 (dbus_message_iter_append_object_path_array):
7848 Added object_path iter functions to handle OBJECT_PATH arguments
7850 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
7852 First checkin of mono bindings.
7855 Build stuff for the bindings
7856 * dbus-sharp.pc.in: Added for pkgconfig
7858 2004-03-21 Havoc Pennington <hp@redhat.com>
7860 * test/test-service.c (main): remove debug spew
7862 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
7864 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7867 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7868 (dbus_message_iter_init_array_iterator)
7869 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7870 indicate whether the iterator is empty
7872 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7875 2004-03-19 Havoc Pennington <hp@redhat.com>
7877 * NEWS: 0.21 updates
7879 * configure.in: 0.21
7881 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7883 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7884 you don't need pyrex to make dist
7886 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7889 2004-03-18 Richard Hult <richard@imendio.com>
7891 * dbus/dbus-message.c (dbus_message_get_auto_activation)
7892 (dbus_message_set_auto_activation): Add doxygen docs.
7894 2004-03-16 Richard Hult <richard@imendio.com>
7896 * bus/activation.c: (bus_activation_service_created),
7897 (bus_activation_send_pending_auto_activation_messages),
7898 (bus_activation_activate_service):
7900 * bus/dispatch.c: (bus_dispatch),
7901 (check_nonexistent_service_auto_activation),
7902 (check_service_auto_activated),
7903 (check_segfault_service_auto_activation),
7904 (check_existent_service_auto_activation), (bus_dispatch_test):
7905 * bus/driver.c: (bus_driver_handle_activate_service):
7906 * bus/services.c: (bus_registry_acquire_service):
7907 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7908 (dbus_message_get_auto_activation):
7909 * dbus/dbus-message.h:
7910 * dbus/dbus-protocol.h: Implement auto-activation.
7912 * doc/dbus-specification.xml: Add auto-activation to the spec.
7914 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
7916 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7917 fix a bug with CUSTOM types.
7919 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7920 a unit test for this bug (used to fail).
7922 2004-03-12 Mikael Hallendal <micke@imendio.com>
7925 (babysitter_watch_callback): notify all pending activations waiting for
7926 the same exec that the activation failed.
7927 (bus_activation_activate_service): shortcut the activation if we
7928 already waiting for the same executable to start up.
7930 2004-03-12 Mikael Hallendal <micke@imendio.com>
7933 - Added service file reloading.
7934 Each service files directory is kept in an hash table in
7935 BusActivation and each BusActivationEntry knows what .service-file it
7936 was read from. So when you try to activate a service the bus will
7937 check if it's been updated, removed or if new .service-files has
7939 - Test code at the bottom for the service file reloading.
7940 * bus/test-main.c: (main):
7942 - added service reloading test.
7943 * dbus/dbus-sysdeps.c:
7944 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7946 2004-03-08 Michael Meeks <michael@ximian.com>
7948 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
7949 bail immediately if disconnected, to avoid busy loop.
7951 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7952 cleanup cut/paste/inefficiency.
7954 2004-03-01 David Zeuthen <david@fubar.dk>
7956 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7957 bug where args were used twice. This bug resulted in a segfault
7958 on a Debian/PPC system when starting the messagebus daemon. Include
7959 dbus-sysdeps.h for DBUS_VA_COPY
7961 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7963 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7964 appropriate va_copy implementation. From GLib
7966 2004-02-24 Joe Shaw <joe@ximian.com>
7968 * bus/services.c (bus_registry_acquire_service): We need to pass
7969 in the service name to dbus_set_error() to prevent a crash.
7971 2003-12-26 Anders Carlsson <andersca@gnome.org>
7973 * AUTHORS: Reveal my True identity.
7975 2003-12-17 Mikael Hallendal <micke@imendio.com>
7977 * dbus/dbus-message.c: (dbus_message_append_args_valist):
7978 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7980 2003-12-13 Mikael Hallendal <micke@imendio.com>
7982 * doc/TODO: Added not about better error check of configuration files.
7984 2003-12-02 Richard Hult <richard@imendio.com>
7986 * Update AFL version to 2.0 throughout the source files to reflect
7987 the update that was done a while ago.
7989 2003-12-02 Richard Hult <richard@imendio.com>
7991 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7992 wrote_dict_key to FALSE on the iter that the dict is appended to,
7993 just like when appending other types. Fixes a bug where a dict
7994 couldn't be put inside a dict.
7995 (dbus_message_iter_append_dict_key): Fix typo in warning message.
7996 (message_iter_test, _dbus_message_test): Add test case for dict
7999 2003-12-01 David Zeuthen <david@fubar.dk>
8001 * python/dbus.py: Add the actual message when calling the reciever
8002 of a signal such that parameters can be inspected. Add the method
8003 remove_signal_receiver
8005 2003-11-26 Mikael Hallendal <micke@imendio.com>
8009 * glib/*.[ch]: Made ref functions return the pointer
8011 2003-11-25 Zack Rusin <zack@kde.org>
8013 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8015 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
8018 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
8019 the Integrator and to better fit with the server,
8021 2003-11-24 Zack Rusin <zack@kde.org>
8023 * qt/connection.h, qt/connection.cpp: removing initDbus method since
8024 the integrator handles it now
8026 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8027 since QTimer wasn't really meant to be used the way DBusTimeout is
8029 2003-11-24 Zack Rusin <zack@kde.org>
8031 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
8032 Integrator class which integrates D-BUS with the Qt event loop,
8034 * qt/connection.h, qt/connection.cpp: Move all the code which
8035 was dealing with D-BUS integration to the Integrator class,
8036 and start using Integrator,
8038 2003-11-23 Zack Rusin <zack@kde.org>
8040 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
8043 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8044 switching namespaces to DBusQt, reworking the class,
8046 * Makefile.cvs: switching dependencies so that it matches KDE
8049 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
8052 2003-11-19 Havoc Pennington <hp@redhat.com>
8056 * configure.in: bump version to 0.20
8058 * configure.in (have_qt): add yet another place to look for qt
8059 (someone hand trolltech a .pc file...)
8061 2003-11-01 Havoc Pennington <hp@redhat.com>
8063 * doc/dbus-specification.xml: add state machine docs on the auth
8064 protocol; just a first draft, I'm sure it's wrong.
8066 2003-10-28 David Zeuthen <david@fubar.dk>
8068 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8069 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8071 2003-10-28 Havoc Pennington <hp@redhat.com>
8073 * dbus/dbus-message.c (get_next_field): delete unused function
8075 2003-10-28 Havoc Pennington <hp@redhat.com>
8077 * bus/expirelist.c (do_expiration_with_current_time): detect
8078 failure of the expire_func due to OOM
8080 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8082 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8083 NoReply error that's now created by the bus when the service exits
8085 2003-10-28 Havoc Pennington <hp@redhat.com>
8087 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8088 tests for set_path, set_interface, set_member, etc.
8090 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8092 * dbus/dbus-message.c (set_string_field): always just delete and
8093 re-append the field; accept NULL for deletion
8094 (re_align_fields_recurse): reimplement
8096 2003-10-26 Havoc Pennington <hp@redhat.com>
8098 * dbus/dbus-connection.c: fix docs to properly describe the
8099 disconnected message
8100 (_dbus_connection_notify_disconnected): remove this function;
8101 we can't synchronously add the disconnected message, we have to
8102 do it after we've queued any remaining real messages
8103 (_dbus_connection_get_dispatch_status_unlocked): queue the
8104 disconnect message only if the transport has finished queueing all
8105 its real messages and is disconnected.
8106 (dbus_connection_disconnect): update the dispatch status here
8108 2003-10-22 Havoc Pennington <hp@redhat.com>
8110 * bus/bus.c (bus_context_check_security_policy): fix up assertion
8112 * bus/connection.c (bus_transaction_send_from_driver): set the
8113 destination to the connection's base service
8115 2003-10-20 Havoc Pennington <hp@redhat.com>
8117 hmm, make check is currently not passing.
8119 * doc/dbus-specification.xml: add requirement that custom type
8120 names follow the same rules as interface names.
8122 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8123 duplication and allow 'c' to be 'custom'; dict is now 'm' for
8126 * doc/dbus-specification.xml: update type codes to match
8127 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8128 CUSTOM. Add type OBJECT_PATH to the spec.
8130 2003-10-17 Havoc Pennington <hp@redhat.com>
8132 * bus/driver.c (create_unique_client_name): use "." as separator
8133 in base service names instead of '-'
8135 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8136 byte at the end of the string
8138 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8139 optimization macros since string validation seems to be a slow
8142 * doc/dbus-specification.xml: restrict valid
8143 service/interface/member/error names. Add test suite code for the
8146 * dbus/dbus-string.c: limit service/interface/member/error names
8149 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8150 format arg to verbose spew
8152 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8153 memory, return instead of g_error
8155 * test/test-service.c (path_message_func): support emitting a
8158 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8159 activation bus type if DBUS_BUS_ACTIVATION was set; default to
8160 assuming the activation bus was the session bus so that services
8161 started manually will still register.
8162 (init_connections_unlocked): fix so that in OOM situation we get
8163 the same semantics when retrying the function
8165 * test/test-service.c (main): change to use path registration, to
8166 test those codepaths; register with DBUS_BUS_ACTIVATION rather
8167 than DBUS_BUS_SESSION
8169 2003-10-16 Havoc Pennington <hp@redhat.com>
8171 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8173 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8174 coverage of the tests
8175 (coverage-report.txt): don't move the .da and .bbg files around
8177 2003-10-16 Havoc Pennington <hp@redhat.com>
8179 * bus/bus.c (struct BusContext): remove struct field I didn't mean
8182 2003-10-16 Havoc Pennington <hp@redhat.com>
8184 * bus/connection.c (bus_pending_reply_expired): either cancel or
8186 (bus_connections_check_reply): use unlink, not remove_link, as we
8187 don't want to free the link; fixes double free mess
8189 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8190 where no reply was received
8192 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8195 * bus/signals.c (match_rule_matches): add special cases for the
8196 bus driver, so you can match on sender/destination for it.
8198 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8199 DBUS_PRINT_BACKTRACE is set
8201 * dbus/dbus-internals.c: add pid to assertion failure messages
8203 * dbus/dbus-connection.c: add message type code to the debug spew
8205 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8206 sender=foo not service=foo
8208 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8209 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
8210 DBUS_ACTIVATION_ADDRESS instead
8212 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
8213 DBUS_SYSTEM_BUS_ADDRESS if appropriate
8215 * bus/bus.c (bus_context_new): handle OOM copying bus type into
8218 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
8219 (dbus_message_iter_get_object_path_array): new function (half
8220 finished, disabled for the moment)
8222 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
8223 DBUS_MESSAGE_TYPE_ERROR
8225 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
8226 avoid redirecting stderr to /dev/null
8227 (babysit): close stdin if not doing the "exit_with_session" thing
8229 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
8230 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
8231 stdout/stdin, so things don't get confused
8233 * bus/system.conf.in: fix to allow replies, I modified .conf
8234 instead of .conf.in again.
8236 2003-10-14 David Zeuthen <david@fubar.dk>
8238 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
8239 argtype to arg_type when raising unknown arg type exception.
8240 Changed type list to reflect the changes in dbus-protocol.h so
8241 the bindings actually work.
8243 2003-10-14 Havoc Pennington <hp@redhat.com>
8245 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8246 to have a bug keeping it from outputting the .da files sometimes
8247 (string_get_string): don't append garbage nul bytes to the string.
8249 2003-10-15 Seth Nickell <seth@gnome.org>
8251 * python/Makefile.am:
8253 Include dbus_h_wrapper.h in the dist tarball.
8255 2003-10-14 Havoc Pennington <hp@redhat.com>
8257 * bus/bus.c (bus_context_check_security_policy): revamp this to
8258 work more sanely with new policy-based requested reply setup
8260 * bus/connection.c (bus_transaction_send_from_driver): set bus
8261 driver messages as no reply
8263 * bus/policy.c (bus_client_policy_check_can_receive): handle a
8264 requested_reply attribute on allow/deny rules
8266 * bus/system.conf: add <allow requested_reply="true"/>
8268 * bus/driver.c (bus_driver_handle_message): fix check for replies
8269 sent to the bus driver, which was backward. How did this ever work
8270 at all though? I think I'm missing something.
8272 * dbus/dbus-message.c (decode_header_data): require error and
8273 method return messages to have a reply serial field to be valid
8274 (_dbus_message_loader_queue_messages): break up this function;
8275 validate that reply serial and plain serial are nonzero;
8276 clean up the OOM/error handling.
8277 (get_uint_field): don't return -1 from this
8278 (dbus_message_create_header): fix signed/unsigned bug
8280 * bus/connection.c (bus_connections_expect_reply): save serial of
8281 the incoming message, not reply serial
8283 2003-10-14 Havoc Pennington <hp@redhat.com>
8285 * bus/connection.c: implement pending reply tracking using
8288 * bus/bus.c (bus_context_check_security_policy): verify that a
8289 reply is pending in order to allow a reply to be sent. Deny
8290 messages of unknown type.
8292 * bus/dbus-daemon-1.1.in: update to mention new resource limits
8294 * bus/bus.c (bus_context_get_max_replies_per_connection): new
8295 (bus_context_get_reply_timeout): new
8297 2003-10-13 Seth Nickell <seth@gnome.org>
8299 * python/Makefile.am:
8301 Pass "make distcheck": remove a couple files from DIST_FILES
8302 that weren't included in the final version.
8304 2003-10-12 Havoc Pennington <hp@pobox.com>
8306 Added test code that 1) starts an actual bus daemon and 2) uses
8307 DBusGProxy; fixed bugs that were revealed by the test. Lots
8308 more testing possible, but this is the basic framework.
8310 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8311 empty proxy lists from the proxy list hash
8313 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8314 couple of return_if_fail checks
8316 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8317 to allocate, so everything is cleared to NULL as it should be.
8319 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8320 source as data to dbus_connection_set_timeout_functions() as the
8321 timeout functions expected
8323 * test/glib/run-test.sh: add a little script to start up a message
8324 bus and run tests using it
8326 * tools/dbus-launch.1: updates
8328 * tools/dbus-launch.c (main): add --config-file option
8330 * tools/dbus-launch.c (main): remove confusing else if (runprog)
8331 that could never be reached.
8333 * dbus/dbus-message.c (dbus_message_new_method_return)
8334 (dbus_message_new_error, dbus_message_new_signal): set the
8335 no-reply-expected flag on all these. Redundant, but may
8336 as well be consistent.
8338 2003-10-11 Havoc Pennington <hp@pobox.com>
8340 * test/decode-gcov.c (function_solve_graph): make broken block
8341 graph a nonfatal error since it seems to be broken. Need to debug
8344 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8345 can't just check type > INVALID < LAST anymore
8347 * dbus/dbus-message.c (dbus_message_get_signature): new function
8348 (dbus_message_has_signature): new function
8349 (struct DBusMessage): add signature field (right now it isn't sent
8350 over the wire, just generated on the fly)
8351 (dbus_message_copy): copy the signature, and init strings to
8352 proper length to avoid some reallocs
8353 (dbus_message_iter_init_array_iterator): return void, since it
8355 (dbus_message_iter_init_dict_iterator): return void since it can't fail
8356 (_dbus_message_loader_queue_messages): add silly temporary hack to
8357 fill in message->signature on load
8359 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8360 characters, so they are relatively human-readable.
8362 2003-10-11 Havoc Pennington <hp@pobox.com>
8364 * dbus/dbus-message.c (_dbus_message_test): add more test
8365 coverage, but #if 0 for now since they uncover a bug
8366 not fixed yet; I think in re_align_field_recurse()
8367 (re_align_field_recurse): add FIXME about broken assertion
8369 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8371 * bus/connection.c: share a couple code bits with expirelist.c
8373 * bus/expirelist.h, bus/expirelist.c: implement a generic
8374 expire-items-after-N-seconds facility, was going to share between
8375 expiring connections and replies, decided not to use for expiring
8376 connections for now.
8378 * COPYING: include AFL 2.0 (still need to change all the file headers)
8380 2003-10-09 Havoc Pennington <hp@redhat.com>
8382 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8383 gcc 3.3. Not that we do anything about it yet.
8385 * bus/signals.c (bus_match_rule_parse): impose max length on the
8388 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8390 2003-10-09 Havoc Pennington <hp@redhat.com>
8392 Make matching rules theoretically work (add parser).
8394 * bus/bus.c (bus_context_check_security_policy): fix up to handle
8395 the case where destination is explicitly specified as bus driver
8396 and someone else is eavesdropping.
8398 * bus/policy.c (bus_client_policy_check_can_receive): fix up
8399 definition of eavesdropping and assertion
8401 * tools/dbus-send.c (main): use dbus_message_type_from_string
8403 * bus/signals.c (bus_match_rule_parse): implement
8405 * dbus/dbus-message.c (dbus_message_type_from_string): new
8407 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8409 2003-10-02 Havoc Pennington <hp@pobox.com>
8411 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8412 dbus_gproxy_oneway_call
8414 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
8415 (dbus_server_setup_with_g_main): fix to allow calling them more
8416 than once on the same args
8417 (dbus_bus_get_with_g_main): new function
8419 2003-10-02 Havoc Pennington <hp@redhat.com>
8421 * doc/dbus-tutorial.xml: write some stuff
8423 2003-09-29 Havoc Pennington <hp@pobox.com>
8425 * configure.in: split checks for Doxygen from XML docs, check for
8428 * doc/Makefile.am: XML-ify all the docs, and add a blank
8431 2003-09-29 Havoc Pennington <hp@pobox.com>
8433 * Merge dbus-object-names branch. To see the entire patch
8434 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8435 it's huuuuge though.
8436 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8438 2003-09-28 Havoc Pennington <hp@pobox.com>
8440 * HACKING: update to reflect new server
8442 2003-09-26 Seth Nickell <seth@gnome.org>
8445 * python/examples/example-signals.py:
8447 Start implementing some notions of signals. The API
8448 is really terrible, but they sort of work (with the
8449 exception of being able to filter by service, and to
8450 transmit signals *as* a particular service). Need to
8451 figure out how to make messages come from the service
8454 * python/dbus_bindings.pyx.in:
8456 Removed duplicate message_handler callbacks.
8458 2003-09-25 Havoc Pennington <hp@redhat.com>
8460 * bus/session.conf.in: fix my mess
8462 2003-09-25 Havoc Pennington <hp@pobox.com>
8464 * bus/session.conf.in: fix security policy, reported by Seth Nickell
8466 2003-09-25 Seth Nickell <seth@gnome.org>
8468 * python/examples/example-service.py:
8470 Johan notices complete wrong code in example-service, but
8471 completely wrong in a way that works exactly the same (!).
8472 Johan is confused, how could this possibly work? Example
8473 code fails to serve purpose of making things clear.
8476 2003-09-25 Mark McLoughlin <mark@skynet.ie>
8478 * doc/dbus-specification.sgml: don't require header fields
8479 to be 4-byte aligned and specify that fields should be
8480 distinguished from padding by the fact that zero is not
8483 * doc/TODO: remove re-alignment item and add item to doc
8484 the OBJECT_PATH type.
8486 * dbus/dbus-message.c:
8487 (HeaderField): rename the original member to value_offset
8488 and introduce a name_offset member to keep track of where
8489 the field actually begins.
8490 (adjust_field_offsets): remove.
8491 (append_int_field), (append_uint_field),
8492 (append_string_field): don't align the start of the header
8493 field to a 4-byte boundary.
8494 (get_next_field): impl finding the next marhsalled field
8495 after a given field.
8496 (re_align_field_recurse): impl re-aligning a number of
8497 already marshalled fields.
8498 (delete_field): impl deleting a field of any type and
8499 re-aligning any following fields.
8500 (delete_int_or_uint_field), (delete_string_field): remove.
8501 (set_int_field), (set_uint_field): no need to re-check
8502 that we have the correct type for the field.
8503 (set_string_field): ditto and impl re-aligning any
8505 (decode_header_data): update to take into account that
8506 the fields aren't 4-byte aligned any more and the new
8507 way to distinguish padding from header fields. Also,
8508 don't exit when there is too much header padding.
8509 (process_test_subdir): print the directory.
8510 (_dbus_message_test): add test to make sure a following
8511 field is re-aligned correctly after field deletion.
8513 * dbus/dbus-string.[ch]:
8514 (_dbus_string_insert_bytes): rename from insert_byte and
8515 allow the insert of multiple bytes.
8516 (_dbus_string_test): test inserting multiple bytes.
8518 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8519 warning note to docs about having to re-align any
8520 marshalled values following the string.
8522 * dbus/dbus-message-builder.c:
8523 (append_string_field), (_dbus_message_data_load):
8524 don't align the header field.
8526 * dbus/dbus-auth.c: (process_test_subdir): print the
8529 * test/break-loader.c: (randomly_add_one_byte): upd. for
8532 * test/data/invalid-messages/bad-header-field-alignment.message:
8535 * test/data/valid-messages/unknown-header-field.message: shove
8536 a dict in the unknown field.
8538 2003-09-25 Seth Nickell <seth@gnome.org>
8541 * python/dbus_bindings.pyx.in:
8543 Handle return values.
8545 * python/examples/example-client.py:
8546 * python/examples/example-service.py:
8548 Pass back return values from the service to the client.
8550 2003-09-24 Seth Nickell <seth@gnome.org>
8554 Connect Object methods (when you are sharing an object) up... pass
8555 in a list of methods to be shared. Sharing all the methods just
8556 worked out too weird. You can now create nice Services over the
8559 * python/dbus_bindings.pyx.in:
8561 Keep references to user_data tuples passed into C functions so
8562 Python doesn't garbage collect on us.
8564 Implement MethodReturn and Error subclasses of Message for creating
8565 DBusMessage's of those types.
8567 * python/examples/example-client.py:
8568 * python/examples/example-service.py:
8570 Simple example code showing both how create DBus services and objects,
8571 and how to use them.
8573 2003-09-23 Havoc Pennington <hp@pobox.com>
8575 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8577 2003-09-23 Havoc Pennington <hp@redhat.com>
8579 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8580 (dbus_gproxy_disconnect_signal): implement
8581 (dbus_gproxy_manager_remove_signal_match): implement
8582 (dbus_gproxy_manager_add_signal_match): implement
8583 (dbus_gproxy_oneway_call): implement
8585 2003-09-23 Havoc Pennington <hp@pobox.com>
8587 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8588 subclass. This means dropping the transparent thread safety of the
8589 proxy; you now need a separate proxy per-thread, or your own
8590 locking on the proxy. Probably right anyway.
8591 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8593 2003-09-22 Havoc Pennington <hp@redhat.com>
8595 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8597 2003-09-21 Seth Nickell <seth@gnome.org>
8599 First checkin of the Python bindings.
8601 * python/.cvsignore:
8602 * python/Makefile.am:
8603 * python/dbus_bindings.pyx.in:
8604 * python/dbus_h_wrapper.h:
8606 Pieces for Pyrex to operate on, building a dbus_bindings.so
8607 python module for low-level access to the DBus APIs.
8611 High-level Python module for accessing DBus objects.
8616 Build stuff for the python bindings.
8620 Extra macro needed for finding the Python C header files.
8622 2003-09-21 Havoc Pennington <hp@pobox.com>
8624 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8625 implementing the proxy manager, didn't get very far.
8627 * dbus/dbus-bus.c (dbus_bus_add_match): new
8628 (dbus_bus_remove_match): new
8630 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8631 path_name argument; adjust the other not-yet-implemented
8632 gproxy constructors to be what I think they should be.
8634 2003-09-21 Havoc Pennington <hp@pobox.com>
8636 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8637 by default for message bus connections.
8639 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8640 exit_on_disconnect flag is set and we process the disconnected
8642 (dbus_connection_set_exit_on_disconnect): new function
8644 2003-09-21 Havoc Pennington <hp@pobox.com>
8646 Get matching rules mostly working in the bus; only actually
8647 parsing the rule text remains. However, the client side of
8648 "signal connections" hasn't been started, this patch is only the
8651 * dbus/dispatch.c: fix for the matching rules changes
8653 * bus/driver.c (bus_driver_handle_remove_match)
8654 (bus_driver_handle_add_match): send an ack reply from these
8657 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8658 arguments, reported by Seth Nickell
8660 * bus/config-parser.c (append_rule_from_element): support
8661 eavesdrop=true|false attribute on policies so match rules
8662 can be prevented from snooping on the system bus.
8664 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8665 and "destination" in attribute names; fix some docs bugs;
8666 add eavesdrop=true|false attribute
8668 * bus/driver.c (bus_driver_handle_add_match)
8669 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8672 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8673 rid of broadcast service concept, signals are just always broadcast
8675 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8676 mostly implement matching rules stuff (currently only exposed as signal
8679 2003-09-21 Mark McLoughlin <mark@skynet.ie>
8681 * doc/dbus-specification.sgml: Change the header field name
8682 to be an enum and update the rest of the spec to reference
8683 the fields using the conventinal name.
8685 * dbus/dbus-protocol.h: update to reflect the spec.
8687 * doc/TODO: add item to remove the 4 byte alignment requirement.
8689 * dbus/dbus-message.c: Remove the code to generalise the
8690 header/body length and serial number header fields as named
8691 header fields so we can reference field names using the
8693 (append_int_field), (append_uint_field), (append_string_field):
8694 Append the field name as a byte rather than four chars.
8695 (delete_int_or_uint_field), (delete_string_field): reflect the
8696 fact that the field name and typecode now occupy 4 bytes instead
8698 (decode_string_field), (decode_header_data): update to reflect
8699 protocol changes and move the field specific encoding from
8700 decode_string_field() back into decode_header_data().
8702 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8703 Add utility to aid debugging.
8705 * dbus/dbus-message-builder.c:
8706 (append_string_field), (_dbus_message_data_load): Update to
8707 reflect protocol changes; Change the FIELD_NAME directive
8708 to HEADER_FIELD and allow it to take the field's conventional
8709 name rather than the actual value.
8711 * test/data/*/*.message: Update to use HEADER_FIELD instead
8712 of FIELD_NAME; Always align the header on an 8 byte boundary
8713 *before* updating the header length.
8715 2003-09-15 Havoc Pennington <hp@pobox.com>
8717 * dbus/dbus-pending-call.c: add the get/set object data
8718 boilerplate as for DBusConnection, etc. Use generic object data
8719 for the notify callback.
8721 * glib/dbus-gparser.c (parse_node): parse child nodes
8723 * tools/dbus-viewer.c: more hacking on the dbus-viewer
8725 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8726 contain functions shared between the convenience lib and the
8729 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8730 -export-symbols-regex to the GLib library
8732 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8733 fix the locking in here, and add a default handler for
8734 Introspect() that just returns sub-nodes.
8736 2003-09-14 Havoc Pennington <hp@pobox.com>
8738 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8739 rather than gfoo consistent
8741 * glib/dbus-gproxy.h: delete for now, move contents to
8742 dbus-glib.h, because the include files don't work right since we
8743 aren't in the dbus/ subdir.
8745 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8746 (dbus_gproxy_end_call): finish
8747 (dbus_gproxy_begin_call): finish
8749 * glib/dbus-gmain.c (dbus_set_g_error): new
8751 * glib/dbus-gobject.c (handle_introspect): include information
8752 about child nodes in the introspection
8754 * dbus/dbus-connection.c (dbus_connection_list_registered): new
8755 function to help in implementation of introspection
8757 * dbus/dbus-object-tree.c
8758 (_dbus_object_tree_list_registered_and_unlock): new function
8760 2003-09-12 Havoc Pennington <hp@pobox.com>
8762 * glib/dbus-gidl.h: add common base class for all the foo_info
8765 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8768 * test/Makefile.am: try test srcdir -ef . in addition to test
8769 srcdir = ., one of them should work (yeah lame)
8771 * glib/Makefile.am: build the "idl" parser stuff as a convenience
8774 * glib/dbus-gparser.h: make description_load routines return
8775 NodeInfo* not Parser*
8777 * Makefile.am (SUBDIRS): build test dir after all library dirs
8779 * configure.in: add GTK+ detection
8781 2003-09-07 Havoc Pennington <hp@pobox.com>
8783 * Make Doxygen contented.
8785 2003-09-07 Havoc Pennington <hp@pobox.com>
8787 * doc/dbus-specification.sgml: more updates
8789 2003-09-06 Havoc Pennington <hp@pobox.com>
8791 * doc/dbus-specification.sgml: partial updates
8793 * bus/dbus-daemon-1.1.in: fix the config file docs for the
8794 zillionth time; hopefully I edited the right file this time.
8796 * bus/config-parser.c (append_rule_from_element): support
8797 send_type, send_path, receive_type, receive_path
8799 * bus/policy.c: add message type and path to the list of things
8800 that can be "firewalled"
8802 2003-09-06 Havoc Pennington <hp@pobox.com>
8804 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8805 (dbus_connection_register_object_path): make this not handle
8806 messages to paths below the given path
8808 2003-09-03 Havoc Pennington <hp@pobox.com>
8810 * test/glib/Makefile.am: add this with random glib-linked test
8813 * glib/Makefile.am: remove the random test programs from here,
8814 leave only the unit tests
8816 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
8817 uscore/javacaps conversion, and fix
8818 (get_object_property, set_object_property): change to .NET
8819 convention for mapping props to methods, set_FooBar/get_FooBar,
8820 since one language has such a convention we may as well copy it.
8821 Plus real methods in either getFooBar or get_foo_bar style won't
8822 collide with this convention.
8824 2003-09-01 Havoc Pennington <hp@pobox.com>
8826 * glib/dbus-gparser.c: implement
8828 * glib/dbus-gobject.c: start implementing skeletons support
8830 * configure.in: when disabling checks/assert, also define
8831 G_DISABLE_ASSERT and G_DISABLE_CHECKS
8833 2003-09-01 Havoc Pennington <hp@pobox.com>
8835 * glib/Makefile.am: rearrange a bunch of files and get "make
8836 check" framework set up
8838 2003-08-31 Havoc Pennington <hp@pobox.com>
8840 * fix build with --disable-tests
8842 2003-08-30 Havoc Pennington <hp@pobox.com>
8844 * dbus/dbus-connection.c: purge DBusMessageHandler
8846 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
8847 use callbacks everywhere
8849 2003-08-30 Havoc Pennington <hp@pobox.com>
8851 * test/data/valid-config-files/system.d/test.conf: change to
8852 root for the user so warnings don't get printed
8854 * dbus/dbus-message.c: add dbus_message_get_path,
8855 dbus_message_set_path
8857 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8858 dispatching to a path
8860 * dbus/dbus-string.c (_dbus_string_validate_path): add
8862 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8863 (_dbus_marshal_object_path): implement
8865 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
8866 to contain the path to the target object
8867 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8868 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8870 2003-08-30 Havoc Pennington <hp@pobox.com>
8872 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8874 2003-08-29 Havoc Pennington <hp@pobox.com>
8876 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8878 (struct DBusObjectSubtree): shrink this
8879 a lot, since we may have a lot of them
8880 (_dbus_object_tree_free_all_unlocked): implement
8881 (_dbus_object_tree_dispatch_and_unlock): implement
8883 2003-08-29 Havoc Pennington <hp@pobox.com>
8885 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8887 2003-08-28 Havoc Pennington <hp@pobox.com>
8891 * dbus/dbus-connection.c: port to no ObjectID, create a
8892 DBusObjectTree, rename ObjectTree to ObjectPath in public API
8894 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
8895 everything except UnregisterFunction and MessageFunction
8897 * dbus/dbus-marshal.c: port away from DBusObjectID,
8898 add DBUS_TYPE_OBJECT_PATH
8900 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
8901 dbus/dbus-objectid.[hc]: remove these, we are moving to
8902 path-based object IDs
8904 2003-08-25 Havoc Pennington <hp@pobox.com>
8906 Just noticed that dbus_message_test is hosed, I wonder when I
8907 broke that. I thought make check was passing earlier...
8909 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
8910 container tree, will replace most of dbus-object-registry
8912 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8915 2003-08-19 Havoc Pennington <hp@pobox.com>
8917 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8918 (dbus_message_is_error): fix this function
8920 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8923 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8924 reflect clarified man page
8925 (bus_client_policy_check_can_send): ditto
8927 * bus/session.conf.in: fixup
8929 * bus/system.conf.in: fixup
8931 2003-08-18 Havoc Pennington <hp@redhat.com>
8933 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8935 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8936 dumb bug created earlier (wrong order of args to
8937 decode_header_data())
8939 * tools/dbus-send.c: port
8941 * tools/dbus-print-message.c (print_message): port
8943 * test/data/*messages: port all messages over
8945 * dbus/dbus-message-builder.c: support including
8948 * bus/driver.c: port over
8950 * bus/dispatch.c: port over to new stuff
8952 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8953 rename disconnect signal to "Disconnected"
8955 2003-08-17 Havoc Pennington <hp@pobox.com>
8957 This doesn't compile yet, but syncing up so I can hack on it from
8958 work. What are branches for if not broken code? ;-)
8960 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8961 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8962 DBUS_HEADER_FIELD_ERROR_NAME
8964 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8965 for the interface+member pairs
8966 (string_hash): change to use g_str_hash algorithm
8967 (find_direct_function, find_string_function): refactor these to
8970 * dbus/dbus-message.c: port all of this over to support
8971 interface/member fields instead of name field
8973 * dbus/dbus-object-registry.c: port over
8975 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8976 from _dbus_string_validate_name
8978 * bus/dbus-daemon-1.1: change file format for the
8979 <deny>/<allow> stuff to match new message naming scheme
8981 * bus/policy.c: port over
8983 * bus/config-parser.c: parse new format
8985 2003-08-16 Havoc Pennington <hp@pobox.com>
8987 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8990 * glib/dbus-gproxy.c: some hacking
8992 2003-08-15 Havoc Pennington <hp@redhat.com>
8994 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8996 * dbus/dbus-connection.c
8997 (dbus_connection_send_with_reply_and_block): factor out internals;
8998 change to convert any error replies to DBusError instead of
8999 returning them as a message
9001 2003-08-15 Havoc Pennington <hp@pobox.com>
9003 * dbus/dbus-connection.c,
9004 dbus/dbus-pending-call.c: Finish the pending call stuff
9006 2003-08-14 Havoc Pennington <hp@redhat.com>
9008 * dbus/dbus-pending-call.c: start on new object that will replace
9009 DBusMessageHandler and ReplyHandlerData for tracking outstanding
9012 * dbus/dbus-gproxy.c: start on proxy object used to communicate
9013 with remote interfaces
9015 * dbus/dbus-gidl.c: do the boring boilerplate in here
9017 2003-08-12 Havoc Pennington <hp@pobox.com>
9019 * bus/dispatch.c (bus_dispatch): make this return proper
9020 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9022 * dbus/dbus-errors.c (dbus_set_error): use
9023 _dbus_string_append_printf_valist
9025 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9026 (_dbus_string_append_printf): new
9028 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9031 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9032 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9033 message is unhandled.
9035 2003-08-11 Havoc Pennington <hp@pobox.com>
9037 * bus/test.c (client_disconnect_handler): change to return
9038 HANDLED (would have been REMOVE_MESSAGE)
9040 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9041 HANDLED/NOT_YET_HANDLED instead of
9042 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
9045 2003-08-10 Havoc Pennington <hp@pobox.com>
9047 * tools/dbus-send.c (main): add --type argument, for now
9048 supporting only method_call and signal types.
9050 * tools/dbus-print-message.c: print message type
9052 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9053 init connection->objects
9055 * doc/dbus-specification.sgml: fix sgml
9057 * bus/*.c: port over to object-instance API changes
9059 * test/test-service.c: ditto
9061 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
9062 name, we will have to fix up the rest of the code to also handle
9064 (dbus_message_new): generic message-creation call
9065 (set_string_field): allow appending name field
9067 2003-08-06 Havoc Pennington <hp@pobox.com>
9069 * dbus/dbus-object-registry.c: implement signal connection
9072 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9074 * dbus/dbus-internals.c (_dbus_memdup): new function
9076 2003-08-02 Havoc Pennington <hp@pobox.com>
9078 * dbus/dbus-message.c (dbus_message_get_no_reply)
9079 (dbus_message_set_no_reply): add these and remove
9080 set_is_error/get_is_error
9082 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
9083 remove the ERROR flag, since there's now an ERROR type
9085 2003-08-01 Havoc Pennington <hp@pobox.com>
9087 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9090 * dbus/dbus-message.c (dbus_message_get_type): new function
9092 * doc/dbus-specification.sgml: add "type" byte to messages
9094 2003-08-01 Havoc Pennington <hp@pobox.com>
9096 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9097 a message type enum to distinguish kinds of message
9098 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
9099 that need not be replied to
9101 2003-08-01 Havoc Pennington <hp@pobox.com>
9103 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9104 (unpack_8_octets): fix no-64-bit-int bug
9106 * dbus/dbus-object-registry.c (validate_id): validate the
9107 connection ID bits, not just the instance ID.
9109 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9110 the connection-global 33 bits of the object ID
9112 * dbus/dbus-object-registry.c (info_from_entry): fill in
9113 object ID in the new way
9115 * dbus/dbus-objectid.h: rather than high/low bits, specifically
9116 define server/client/instance bits.
9118 2003-07-30 Havoc Pennington <hp@pobox.com>
9120 * dbus/dbus-connection.c (dbus_connection_register_object): fix
9123 2003-07-13 Havoc Pennington <hp@pobox.com>
9125 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9126 fields to DBusObjectVTable and DBusObjectInfo
9128 2003-07-12 Havoc Pennington <hp@pobox.com>
9130 * dbus/dbus-object-registry.c: implement unit test,
9131 fix bugs discovered in process
9133 * dbus/dbus-connection.c: remove handler_table and
9134 register_handler(), add DBusObjectRegistry usage
9136 * dbus/dbus-objectid.c (dbus_object_id_is_null)
9137 (dbus_object_id_set_null): new functions
9139 2003-07-08 Havoc Pennington <hp@pobox.com>
9141 * dbus/dbus-object.c: implement some of this
9143 * dbus/dbus-object-registry.c
9144 (_dbus_object_registry_add_and_unlock): fill in the object_id out
9146 (_dbus_object_registry_new): handle OOM
9148 2003-07-08 Havoc Pennington <hp@pobox.com>
9150 * dbus/dbus-object.h: sketch out an API for registering objects
9151 with a connection, that allows us to use as little as 24 bytes
9152 per object and lets application code represent an object in
9153 any conceivable way.
9155 * dbus/dbus-object-registry.c: implement the hard bits of the
9156 DBusConnection aspect of object API. Not yet wired up.
9158 2003-07-06 Havoc Pennington <hp@pobox.com>
9160 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9161 (_dbus_marshal_object_id): new
9162 (_dbus_demarshal_object_id): new
9163 (_dbus_marshal_get_arg_end_pos): support object ID type, and
9164 consolidate identical switch cases. Don't conditionalize handling
9165 of DBUS_TYPE_UINT64, need to handle the type always.
9166 (_dbus_marshal_validate_arg): consolidate identical cases, and
9167 handle DBUS_TYPE_OBJECT_ID
9169 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9171 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9173 2003-09-28 Havoc Pennington <hp@pobox.com>
9177 2003-09-28 Havoc Pennington <hp@pobox.com>
9179 * doc/Makefile.am (dbus-specification.html): testing a funky hack
9180 to work with Debian db2html
9182 2003-09-28 Havoc Pennington <hp@pobox.com>
9184 * configure.in: 0.13
9186 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9187 stylesheet-images for benefit of Debian
9189 Change back to using filesystem-linked sockets for the system
9190 bus, so only root can create the default system bus address.
9192 * bus/system.conf.in: change to use
9193 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9195 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9198 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9199 here, and AC_DEFINE DBUS_SYSTEM_PATH
9201 2003-08-09 Anders Carlsson <andersca@codefactory.se>
9204 * doc/busconfig.dtd:
9207 2003-08-09 Anders Carlsson <andersca@codefactory.se>
9209 * doc/dbus-specification.sgml:
9210 Add activation reply values.
9212 2003-08-05 Havoc Pennington <hp@redhat.com>
9214 * configure.in: 0.12
9216 2003-08-05 Anders Carlsson <andersca@codefactory.se>
9218 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
9219 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
9220 (add_watch), (remove_watch), (create_source):
9221 Refcount fds, fixes some reentrancy issues.
9223 2003-07-30 Havoc Pennington <hp@redhat.com>
9225 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
9226 bus address to be abstract if we have abstract sockets
9230 2003-07-28 Havoc Pennington <hp@redhat.com>
9232 * bus/messagebus.in: fix to avoid processname/servicename
9233 confusion, from Michael Kearey
9234 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
9236 2003-07-23 Havoc Pennington <hp@pobox.com>
9238 * dbus/dbus-message.c (dbus_message_iter_get_named):
9239 fix from Andy Hanton to remove broken "+1"
9241 2003-07-16 Havoc Pennington <hp@pobox.com>
9243 * tools/dbus-launch.c (babysit): close stdout/stderr in the
9244 babysitter process, as suggested by Thomas Leonard, so
9245 an "eval `dbus-launch --exit-with-session`" will actually
9248 2003-07-16 Havoc Pennington <hp@pobox.com>
9250 * configure.in: print out EXPANDED_* variables in the summary at
9251 the end; clean up the code that computes EXPANDED_ variables and
9252 get the ones using exec_prefix right. Should make things work
9253 when you build without --prefix
9255 2003-06-29 Havoc Pennington <hp@pobox.com>
9257 * mono/Test.cs (class Test): fire up a main loop and run it
9259 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9260 done once, the app has to do it
9262 2003-06-26 Havoc Pennington <hp@pobox.com>
9264 * mono/Connection.cs: set up connection with the glib main loop
9266 2003-07-01 Havoc Pennington <hp@redhat.com>
9268 * doc/dbus-specification.sgml: clarify the format of a type code,
9269 change suggested by Jim Blandy
9271 2003-06-29 Miloslav Trmac <mitr@volny.cz>
9274 * tools/Makefile.am: Don't assume srcdir == builddir.
9276 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9277 the allocated block.
9278 (_dbus_memory_test): New function.
9279 * dbus/dbus-test.h: Add _dbus_memory_test ().
9280 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9282 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9284 (dbus_message_new): Remove obsolete @todo.
9286 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9287 (_dbus_marshal_set_uint64): Fix comment.
9289 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9290 hardcode FIELD_REPLY_SERIAL.
9292 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9293 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9295 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9296 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9298 2003-06-24 Havoc Pennington <hp@pobox.com>
9300 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9302 2003-06-23 Anders Carlsson <andersca@codefactory.se>
9308 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9309 * gcj/org/.cvsignore:
9310 * gcj/org/Makefile.am:
9311 * gcj/org/freedesktop/.cvsignore:
9312 * gcj/org/freedesktop/Makefile.am:
9313 * gcj/org/freedesktop/dbus/.cvsignore:
9314 * gcj/org/freedesktop/dbus/Makefile.am:
9315 * gcj/org/freedesktop/dbus/Message.java: (Message),
9317 * gcj/org/freedesktop/dbus/natMessage.cc:
9318 Fix the build system.
9320 2003-06-22 Havoc Pennington <hp@pobox.com>
9322 * mono/Connection.cs: add more bindings
9324 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9327 2003-06-22 Havoc Pennington <hp@pobox.com>
9329 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9330 Start wrapping more stuff.
9332 2003-06-22 Havoc Pennington <hp@pobox.com>
9334 * mono/Message.cs: implement Message.Wrap() that ensures we only
9335 have a single C# wrapper per DBusMessage, assuming it works which
9336 it probably doesn't.
9338 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9339 (dbus_message_free_data_slot): new
9340 (dbus_message_set_data): new
9341 (dbus_message_get_data): new
9343 2003-06-22 Havoc Pennington <hp@pobox.com>
9345 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9346 (_dbus_data_slot_allocator_alloc): rework these to keep a
9347 reference count on each slot and automatically manage a global
9348 slot ID variable passed in by address
9350 * bus/bus.c: convert to new dataslot API
9352 * dbus/dbus-bus.c: convert to new dataslot API
9354 * dbus/dbus-connection.c: convert to new dataslot API
9356 * dbus/dbus-server.c: convert to new dataslot API
9358 * glib/dbus-gmain.c: ditto
9362 * bus/connection.c: ditto
9364 2003-06-22 Anders Carlsson <andersca@codefactory.se>
9366 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9367 after the gcj checks so that the correct configuration tags
9368 will be added to libtool.
9370 * dbus-glib-1.pc.in: No need to specify any includes since
9371 dbus-1.pc.in has those.
9373 2003-06-22 Havoc Pennington <hp@pobox.com>
9375 * mono/*, gcj/*, configure.in, Makefile.am:
9376 Check in makefiles and subdirs for mono and gcj bindings.
9377 Neither binding actually exists, just trying to get through
9378 all the build and other boring bits.
9380 2003-06-21 Philip Blundell <philb@gnu.org>
9382 * tools/dbus-monitor.1: Updated.
9384 * tools/dbus-send.1: Likewise.
9386 2003-06-20 Anders Carlsson <andersca@codefactory.se>
9388 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9389 for hangup and error after checking read so we won't discard
9390 pending data if both hangup and read are set.
9392 2003-06-19 Philip Blundell <philb@gnu.org>
9394 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9396 * tools/dbus-send.c: Accept both --system and --session.
9398 * tools/dbus-monitor.c: Same here.
9400 2003-06-19 Anders Carlsson <andersca@codefactory.se>
9402 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9403 from C++ (Patch by Miloslav Trmac).
9405 2003-06-15 Joe Shaw <joe@assbarn.com>
9407 * configure.in: Check for socklen_t.
9409 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9411 * test/test-segfault.c: Add #include <sys/time.h>
9413 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9414 dbus-launch needs it.
9416 2003-06-09 Havoc Pennington <hp@redhat.com>
9418 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9419 SUN_LEN, it breaks abstract socket usage
9421 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9424 2003-06-04 Havoc Pennington <hp@pobox.com>
9426 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9427 using unix:abstract=/foo, and when listening in a tmpdir
9428 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9430 * dbus/dbus-transport.c (_dbus_transport_open): support
9433 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9434 support abstract sockets
9436 * dbus/dbus-transport-unix.c
9437 (_dbus_transport_new_for_domain_socket): support abstract sockets
9439 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9440 toggle as an argument, implement abstract namespace support
9441 (_dbus_listen_unix_socket): ditto
9443 * configure.in: add --enable-abstract-sockets and implement
9444 a configure check for autodetection of the right value.
9446 2003-06-01 Havoc Pennington <hp@pobox.com>
9448 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9449 in /tmp (though on Linux this will end up being useless,
9450 when we add abstract namespace support)
9452 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9455 2003-05-28 Colin Walters <walters@verbum.org>
9457 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9459 2003-05-18 Anders Carlsson <andersca@codefactory.se>
9461 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9463 2003-05-17 Colin Walters <walters@gnu.org>
9465 * tools/dbus-send.c: Don't exit with an error code if --help was
9466 passed. Default to using the session bus instead of the system
9469 * tools/dbus-launch.c: Ditto.
9471 * tools/dbus-monitor.c: Ditto.
9473 * tools/dbus-send.1: Update with new arguments.
9475 * tools/dbus-launch.c: Emit code to export variables. New
9476 arguments -s and -c to specify shell syntax, and a bit of code to
9477 autodetect syntax. Also, allow specifying a program to run.
9479 * tools/dbus-launch.1: Update with new arguments.
9481 * tools/dbus-send.1: Ditto.
9483 * tools/dbus-monitor.1: Ditto.
9485 2003-05-17 Havoc Pennington <hp@pobox.com>
9487 * bus/config-parser.c (merge_included): merge in policies from
9488 child configuration file.
9490 * bus/policy.c (bus_policy_merge): function to merge two policies
9493 2003-05-16 Havoc Pennington <hp@redhat.com>
9495 * dbus/dbus-connection.c: disable verbose lock spew
9497 * tools/dbus-send.c: add --print-reply command line option
9499 * tools/dbus-print-message.h (print_message): new util function
9500 shared by dbus-send and dbus-monitor
9502 * tools/dbus-monitor.c (handler_func): exit on disconnect
9504 * dbus/dbus-transport-unix.c (do_reading): if the transport is
9505 disconnected, don't try to use the read_watch
9507 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9508 so we can find this bug more easily
9510 2003-05-16 Havoc Pennington <hp@redhat.com>
9512 * bus/policy.c (free_rule_list_func): avoid a crash when passed
9513 NULL as DBusHashTable is annoyingly likely to do.
9515 2003-05-16 Colin Walters <walters@verbum.org>
9517 * tools/dbus-monitor.c: Add --session argument and usage()
9520 * tools/dbus-monitor.1: Update with new --session arg.
9522 * bus/Makefile.am (install-data-hook): Create
9523 $(libdir)/dbus-1.0/services so that the session bus is happy.
9525 2003-05-15 Havoc Pennington <hp@redhat.com>
9527 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9528 on non-x86. ifdef's are evil.
9530 2003-05-15 Havoc Pennington <hp@redhat.com>
9532 * configure.in: 0.11
9536 * bus/Makefile.am (initddir): apparently we are supposed to put
9537 init scripts in /etc/rc.d/init.d not /etc/init.d
9539 * bus/Makefile.am: remove the "you must --enable-tests to make
9540 check" as it broke distcheck
9542 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9544 2003-05-13 James Willcox <jwillcox@gnome.org>
9547 * bus/activation.c: (bus_activation_service_created),
9548 (bus_activation_activate_service):
9549 * bus/driver.c: (bus_driver_send_service_deleted),
9550 (bus_driver_send_service_created), (bus_driver_send_service_lost),
9551 (bus_driver_send_service_acquired),
9552 (bus_driver_send_welcome_message),
9553 (bus_driver_handle_list_services):
9554 * bus/session.conf.in:
9555 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9556 (dbus_bus_service_exists), (dbus_bus_activate_service):
9559 Add some convenience API which lets you activate a service, and did a
9560 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9561 and dbus_message_get_args()
9563 2003-05-11 Havoc Pennington <hp@pobox.com>
9565 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9566 calling _dbus_marshal_validate_arg() for every byte in a byte
9569 * dbus/dbus-message-handler.c: use atomic reference counting to
9570 reduce number of locks slightly; the global lock in here sucks
9572 * dbus/dbus-connection.c
9573 (_dbus_connection_update_dispatch_status_and_unlock): variant of
9574 update_dispatch_status that can be called with lock held; then use
9575 in a couple places to reduce locking/unlocking
9576 (dbus_connection_send): hold the lock over the whole function
9577 instead of acquiring it twice.
9579 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9581 * bus/connection.c (bus_connections_setup_connection): fix access
9582 to already-freed memory.
9584 * dbus/dbus-connection.c: keep a little cache of linked list
9585 nodes, to avoid using the global linked list alloc lock in the
9586 normal send-message case. Instead we just use the connection lock
9587 that we already have to take.
9589 * dbus/dbus-list.c (_dbus_list_find_last): new function
9591 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9592 change to use a struct for the atomic type; fix docs,
9593 they return value before increment, not after increment.
9595 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9596 (_dbus_string_append_8_aligned): new functions to try to
9597 microoptimize this operation.
9598 (reallocate_for_length): break this out of set_length(), to
9599 improve profile info, and also so we can consider inlining the
9602 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9603 strings with some preallocation, cuts down on our calls to realloc
9604 a fair bit. Though if we can get the "move entire string to empty
9605 string" optimization below to kick in here, it would be better.
9607 * dbus/dbus-string.c (_dbus_string_move): just call
9608 _dbus_string_move_len
9609 (_dbus_string_move_len): add a special case for moving
9610 an entire string into an empty string; we can just
9611 swap the string data instead of doing any reallocs.
9612 (_dbus_string_init_preallocated): new function
9614 2003-05-11 Havoc Pennington <hp@pobox.com>
9616 Write a "test-profile" that does echo client-server with threads;
9617 profile reveals lock contention, memcpy/realloc of buffers, and
9618 UTF-8 validation as hot spots. 20% of lock contention eliminated
9619 with dbus_atomic_inc/dec implementation on x86. Much remaining
9620 contention is global mempool locks for GList and DBusList.
9622 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9625 * dbus/dbus-connection.c (struct DBusConnection): use
9626 dbus_atomic_t for the reference count
9628 * dbus/dbus-message.c (struct DBusMessage): declare
9629 dbus_atomic_t values as volatile
9631 * configure.in: code to detect ability to use atomic integer
9632 operations in assembly, from GLib patch
9634 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9635 time, tired of it being wrong in threads and forked processes
9637 * glib/test-profile.c: a little program to bounce messages back
9638 and forth between threads and eat CPU
9640 * dbus/dbus-connection.c: add debug spew macros for debugging
9641 thread locks; include config.h at top; fix deadlock in
9642 dbus_connection_flush()
9644 2003-05-08 Havoc Pennington <hp@pobox.com>
9646 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9647 data from getting written, and there wasn't a good reason to
9650 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9651 dbus_verbose lines in test coverage
9652 (main): add list of functions sorted by # of untested blocks
9653 to the coverage report
9655 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9657 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9659 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9660 extend test coverage
9662 * test/data/auth/cancel.auth-script: test canceling an
9665 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9666 aren't used. in CVS history if we end up needing them.
9668 2003-05-04 Havoc Pennington <hp@pobox.com>
9670 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9673 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9674 function, which assumed length was in # of strings, not bytes
9676 * dbus/dbus-message.c (_dbus_message_test): add tests for some
9679 * dbus/dbus-connection.c
9680 (_dbus_connection_queue_received_message): disable function for
9681 now, we are only using it in test mode
9683 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9684 remove a mistaken FIXME
9686 2003-05-04 Havoc Pennington <hp@pobox.com>
9688 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9689 unlock mutex on successful return, patch from Anders Gustafsson
9691 2003-05-04 Havoc Pennington <hp@pobox.com>
9693 * dbus-glib-1.pc.in (Requires): fix dependencies, from
9696 2003-05-04 Havoc Pennington <hp@pobox.com>
9698 * tools/dbus-launch.c: implement
9700 * bus/main.c (main), bus/bus.c (bus_context_new):
9701 implement --print-pid and --fork
9703 2003-05-03 Havoc Pennington <hp@redhat.com>
9705 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9706 the address had no value, and add to test suite. Fix and
9707 regression test from Miloslav Trmac
9709 2003-05-03 Havoc Pennington <hp@pobox.com>
9711 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9712 watch is invalid when handled
9714 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9715 dbus-launch utility to launch the bus from a shell script. Didn't
9716 actually implement dbus-launch yet, it's just a placeholder still.
9718 2003-05-03 Havoc Pennington <hp@pobox.com>
9720 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9721 daemon; also documents daemon config file, so replaces
9722 doc/config-file.txt. Corrected some stuff from config-file.txt in
9723 the process of moving it.
9725 2003-05-03 Havoc Pennington <hp@pobox.com>
9727 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9730 2003-05-03 Colin Walters <walters@verbum.org>
9732 * dbus/dbus-sysdeps.c (fill_user_info): Test against
9733 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9735 * Makefile.am: Update to use new .pc versioning scheme.
9737 2003-05-02 Havoc Pennington <hp@redhat.com>
9739 * bus/system.conf.in: allow send/receive to/from message bus
9742 2003-04-30 Havoc Pennington <hp@redhat.com>
9744 * configure.in: print a note when building with unit tests and
9747 2003-04-30 Havoc Pennington <hp@redhat.com>
9749 * Makefile.am: add a check-local that complains if you didn't
9750 configure with --enable-tests
9752 2003-04-29 Havoc Pennington <hp@redhat.com>
9754 * glib/dbus-gmain.c: docs cleanups
9756 * dbus/dbus-types.h: add docs on int64 types
9758 * dbus/dbus-memory.c: fix docs to avoid putting private API in
9759 public API docs section
9761 2003-04-29 Havoc Pennington <hp@redhat.com>
9763 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9764 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9765 parallel install API version, not with the D-BUS package version.
9767 * HACKING: move some of README over here
9769 * README: updates, and document API/ABI policy
9771 * configure.in: reindentation
9773 2003-04-29 Havoc Pennington <hp@redhat.com>
9775 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9776 to use this library" to be sure people have the right
9779 2003-04-28 Havoc Pennington <hp@redhat.com>
9781 * configure.in: add --enable-docs which by default is auto yes if
9782 doxygen and db2html found, no otherwise; but can be forced on/off
9784 * doc/Makefile.am: conditionalize whether to build docs on
9787 2003-04-28 Havoc Pennington <hp@redhat.com>
9789 * configure.in: 0.10
9793 * bus/system.conf.in: add <includedir>system.d</includedir>
9795 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9796 username was provided but not uid
9798 * bus/config-parser.c (struct BusConfigParser): keep track of
9799 whether the parser is toplevel or was included; change some
9800 of the error handling if it's included.
9802 2003-04-27 Havoc Pennington <hp@pobox.com>
9806 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9807 report correct status if we finish processing authentication
9808 inside this function.
9810 * bus/activation.c (try_send_activation_failure): use
9811 bus_transaction_send_error_reply
9813 * bus/connection.c (bus_connection_get_groups): return an error
9814 explaining the problem
9816 * bus/bus.c (bus_context_check_security_policy): implement
9817 restriction here that inactive connections can only send the
9818 hello message. Also, allow bus driver to send anything to
9821 * bus/connection.c (bus_connection_complete): create the
9822 BusClientPolicy here instead of on-demand.
9823 (bus_connection_get_policy): don't return an error
9825 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9826 sender field in message being replied to
9828 * bus/bus.c (bus_context_check_security_policy): fix silly typo
9829 causing it to return FALSE always
9831 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9832 we checked sender rather than destination
9834 2003-04-25 Havoc Pennington <hp@redhat.com>
9836 test suite is slightly hosed at the moment, will fix soon
9838 * bus/connection.c (bus_connections_expire_incomplete): fix to
9839 properly disable the timeout when required
9840 (bus_connection_set_name): check whether we can remove incomplete
9841 connections timeout after we complete each connection.
9843 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9844 probably still broken.
9846 * bus/services.c (bus_registry_acquire_service): implement max
9847 number of services owned, and honor allow/deny rules on which
9848 services a connection can own.
9850 * bus/connection.c (bus_connection_get_policy): report errors here
9852 * bus/activation.c: implement limit on number of pending
9855 2003-04-25 Havoc Pennington <hp@redhat.com>
9857 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9858 where we used >= 0 instead of != DBUS_UID_UNSET.
9860 2003-04-25 Havoc Pennington <hp@redhat.com>
9862 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9863 were toggled without add/remove, fix from Anders Gustafsson
9865 2003-04-24 Havoc Pennington <hp@redhat.com>
9867 * test/data/valid-config-files/basic.conf: add <limit> tags to
9870 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9871 <limit> tag in configuration file.
9873 2003-04-24 Havoc Pennington <hp@redhat.com>
9875 * bus/dispatch.c: somehow missed some name_is
9877 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9878 (_dbus_timeout_set_interval): new
9880 * bus/connection.c (bus_connections_setup_connection): record time
9881 when each connection is first set up, and expire them after the
9882 auth timeout passes.
9884 2003-04-24 Havoc Pennington <hp@redhat.com>
9886 * dbus/dbus-message.c (dbus_message_name_is): rename
9887 (dbus_message_service_is): rename
9888 (dbus_message_sender_is): rename
9889 (dbus_message_get_service): rename
9891 2003-04-24 Havoc Pennington <hp@redhat.com>
9893 * configure.in: add --enable-checks
9895 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9897 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9898 to use thread locks.
9899 (_dbus_connection_handler_destroyed_locked): move some private
9900 functions into proper docs group
9902 * dbus/dbus-internals.h: add _dbus_return_if_fail,
9903 _dbus_return_val_if_fail
9905 Throughout: use dbus_return_if_fail
9907 2003-04-23 James Willcox <jwillcox@gnome.org>
9910 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9911 (dbus_connection_setup_with_g_main),
9912 (dbus_server_setup_with_g_main):
9913 * glib/test-dbus-glib.c: (main):
9914 * glib/test-thread-client.c: (main):
9915 * glib/test-thread-server.c: (new_connection_callback), (main):
9916 * tools/dbus-monitor.c: (main):
9918 Added a GMainContext argument to dbus_connection_setup_with_g_main()
9919 and dbus_server_setup_with_g_main().
9921 2003-04-20 Havoc Pennington <hp@pobox.com>
9923 * doc/dbus-specification.sgml: document the restrictions on
9924 message and service names
9926 2003-04-22 Havoc Pennington <hp@redhat.com>
9928 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9929 support, and do some code cleanups to share more code and
9930 speed up array marshal/demarshal.
9932 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9934 * configure.in: generate dbus-arch-deps.h
9936 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9939 2003-04-22 Havoc Pennington <hp@redhat.com>
9941 * test/data/valid-messages/opposite-endian.message: fix test
9942 to use proper type for rply field
9944 * test/data/invalid-messages: add tests for below validation
9946 * dbus/dbus-message.c (decode_header_data): validate field types,
9947 and validate that named fields are valid names
9948 (decode_name_field): consider messages in the
9949 org.freedesktop.Local. namespace to be invalid.
9951 * dbus/dbus-string.c (_dbus_string_validate_name): new
9953 2003-04-19 Havoc Pennington <hp@pobox.com>
9955 * bus/driver.c (bus_driver_handle_hello): check limits and
9956 return an error if they are exceeded.
9958 * bus/connection.c: maintain separate lists of active and inactive
9959 connections, and a count of each. Maintain count of completed
9960 connections per user. Implement code to check connection limits.
9962 * dbus/dbus-list.c (_dbus_list_unlink): export
9964 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9965 number of bytes in the message queue for a connection
9967 2003-04-18 Havoc Pennington <hp@pobox.com>
9969 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9971 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9974 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9975 on realloc be sure to update the pointer in the keyring
9977 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9978 offset to avoid writing to unallocated memory
9980 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9981 try the next mechanism, so we properly handle OOM
9983 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9985 (_dbus_keyring_new): fix OOM bug
9986 (_dbus_keyring_new_homedir): always set error; impose a maximum
9987 number of keys we'll load from the file, mostly to speed up the
9988 test suite and make its OOM checks more useful, but also for
9991 * dbus/dbus-auth.c (process_error_server): reject authentication
9992 if we get an error from the client
9993 (process_cancel): on cancel, send REJECTED, per the spec
9994 (process_error_client): send CANCEL if we get an error from the
9997 2003-04-18 Havoc Pennington <hp@pobox.com>
9999 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10002 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
10005 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10006 about DBUS_TEST_HOMEDIR once
10008 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10011 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10012 config file so we test the right thing
10014 Throughout: assorted docs improvements
10016 2003-04-18 Havoc Pennington <hp@pobox.com>
10018 * glib/dbus-gmain.c: adapt to watch changes
10020 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10022 * dbus/dbus-server.h: remove dbus_server_handle_watch
10024 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10026 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10027 like DBusTimeout, so we don't need dbus_connection_handle_watch
10030 2003-04-17 Havoc Pennington <hp@redhat.com>
10032 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10033 database usage so it all goes via the DBusUserDatabase cache.
10035 2003-04-17 Havoc Pennington <hp@redhat.com>
10037 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10038 there was an OOM watch we skipped, we always return TRUE so we
10039 iterate again to have a look at it again. Fixes test suite hang.
10040 Code rearrangement also lets us lose some memset and only iterate
10041 over callbacks once.
10043 * bus/driver.c (bus_driver_handle_message): sense of test for
10046 2003-04-16 Havoc Pennington <hp@pobox.com>
10048 * doc/dbus-specification.sgml: make spec say serials are unsigned
10050 * dbus/dbus-message.h: change message serials to unsigned
10052 * dbus/dbus-connection.c: adapt to message serials being unsigned
10054 2003-04-15 Havoc Pennington <hp@pobox.com>
10056 * bus/bus.c: create and keep around a shared DBusUserDatabase
10059 * bus/connection.c (bus_connection_get_groups): don't cache
10060 groups for user in the connection object, since user database
10061 object now does that.
10063 2003-04-16 Havoc Pennington <hp@redhat.com>
10065 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
10066 list of size counters
10067 (_dbus_message_loader_putback_message_link): put back a popped link
10069 * dbus/dbus-connection.c
10070 (dbus_connection_set_max_live_messages_size): rename
10072 (dbus_connection_get_outgoing_size): get size of outgoing
10074 (_dbus_connection_set_connection_counter): remove this cruft
10076 2003-04-14 Havoc Pennington <hp@redhat.com>
10078 * dbus/dbus-userdb.c: user database abstraction, mostly to get
10079 caching, but at some point we might want to be able to use a
10080 different database.
10082 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10083 SHA1 conf file to test the sha1 auth mechanism, since the regular
10084 test always uses EXTERNAL when available.
10087 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10088 add conf file that requires use of sha1 auth
10090 2003-04-13 Havoc Pennington <hp@pobox.com>
10092 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10093 from Philip Blundell to send messages and monitor them.
10095 2003-04-13 Havoc Pennington <hp@pobox.com>
10097 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10100 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10103 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10104 fix to only recover unused bytes if we're already authenticated
10105 (_dbus_transport_get_is_authenticated): fix to still mark us
10106 authenticated if there are unused bytes.
10108 * bus/dispatch.c: implement security policy checking
10110 * bus/connection.c (bus_transaction_send_from_driver): new
10112 * bus/bus.c (bus_context_check_security_policy): new
10114 * bus/dispatch.c (send_service_nonexistent_error): delete this,
10115 now we just set the DBusError and it gets converted to an error
10118 * bus/connection.c (allow_user_function): enable code using actual
10119 data from the config file
10121 * bus/policy.c (list_allows_user): handle wildcard rules for
10122 user/group connection perms
10124 2003-04-13 Havoc Pennington <hp@pobox.com>
10126 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10128 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10130 * bus/policy.c (bus_policy_append_mandatory_rule)
10131 (bus_policy_append_default_rule, bus_policy_append_user_rule)
10132 (bus_policy_append_group_rule): new functions
10134 2003-04-12 Havoc Pennington <hp@pobox.com>
10136 * bus/config-parser.c (bus_config_parser_new): fix a memleak
10138 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10139 the pid/gid/uid, just for paranoia.
10141 * test/break-loader.c (randomly_do_n_things): find a byte
10142 containing a type code, and randomly change it to a different
10145 2003-04-12 Havoc Pennington <hp@pobox.com>
10147 * bus/policy.h: change BusPolicy to be the thing from the config
10148 file, and rename old BusPolicy to BusClientPolicy
10150 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10151 match change in how policy works
10153 * dbus/dbus-internals.h: mark assert_not_reached as
10154 __attribute((noreturn))__
10156 2003-04-11 Havoc Pennington <hp@redhat.com>
10158 * doc/dbus-specification.sgml: fix a spot with the wrong name for
10159 the broadcast service. Use boolean return for ServiceExists.
10161 2003-04-11 Havoc Pennington <hp@redhat.com>
10163 * configure.in: add another directory to look for qt in.
10165 2003-04-11 Havoc Pennington <hp@redhat.com>
10167 * AUTHORS: add Colin Walters
10169 2003-04-11 Havoc Pennington <hp@redhat.com>
10173 * configure.in: 0.9
10175 2003-04-11 Havoc Pennington <hp@redhat.com>
10177 * bus/messagebus.in: remove pid file when stopping the
10178 message bus, since the bus won't have privileges to remove it
10181 2003-04-11 Havoc Pennington <hp@redhat.com>
10183 * bus/bus.c (bus_context_new): move credentials change after
10186 2003-04-11 Havoc Pennington <hp@pobox.com>
10188 * test/decode-gcov.c: add "below average functions" to the
10189 coverage report, and change how some of the code works.
10191 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10192 not in the coverage stats.
10194 * test/test-service.c (main): use _dbus_verbose not fprintf in a
10195 couple places so running the test suite doesn't result in megaspam.
10197 2003-04-11 Havoc Pennington <hp@pobox.com>
10199 * bus/dispatch.c (check_existent_service_activation): accept a no
10200 memory error in a place we didn't before
10202 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10203 in case the first one failed," since the test suite is less
10206 2003-04-10 Havoc Pennington <hp@pobox.com>
10208 * bus/dispatch.c (check_segfault_service_activation): add test
10209 for launching an executable that just crashes.
10211 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10212 don't leave a million cores. We'll see how portable this is.
10214 2003-04-10 Havoc Pennington <hp@pobox.com>
10216 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
10217 the possible parent failures before we fork, so that we don't
10218 fail to create a babysitter after creating the child.
10220 * bus/activation.c (bus_activation_activate_service): kill child
10221 if we don't successfully complete the activation.
10223 2003-04-10 Havoc Pennington <hp@redhat.com>
10225 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
10226 the connection if it's disconnected
10228 * bus/activation.c (bus_activation_service_created): use new
10229 transaction features to roll back removal of pending activation if
10230 we don't successfully create the service after all. Don't remove
10231 pending activation if the function fails.
10233 * dbus/dbus-list.c (_dbus_list_insert_before_link)
10234 (_dbus_list_insert_after_link): new code to facilitate
10237 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
10238 new functionality, so we can preallocate the ability to insert
10241 * bus/connection.c (bus_transaction_add_cancel_hook): new function
10242 allowing us to put custom hooks in a transaction to be used for
10243 cancelling said transaction
10245 * doc/dbus-specification.sgml: add some discussion of secondary
10246 service owners, and disallow zero-length service names
10248 * bus/services.c (bus_registry_acquire_service): new function,
10249 splits out part of bus_driver_handle_acquire_service() and fixes
10250 a bug where we didn't remove the service doing the acquiring
10251 from the secondary queue if we failed to remove the current owner
10252 from the front of the queue.
10254 2003-04-10 Alexander Larsson <alexl@redhat.com>
10256 * doc/dbus-specification.sgml:
10257 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10259 2003-04-10 Alexander Larsson <alexl@redhat.com>
10264 Added files to cvsignore
10266 * dbus/dbus-message.h:
10267 * dbus/dbus-message.c: (dbus_message_iter_get_named):
10268 Make get_named() take two out argument and return a boolean.
10269 (dbus_message_iter_get_args_valist):
10270 Update usage of get_named().
10271 (dbus_message_iter_append_byte):
10273 (dbus_message_iter_append_named)
10275 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10278 2003-04-10 Alexander Larsson <alexl@redhat.com>
10280 * dbus/dbus-marshal.[ch]:
10281 Add array_type_pos argument to _dbus_marshal_validate_arg.
10282 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10284 * dbus/dbus-message.[ch]:
10285 Multi-dimensional arrays have full type specification in the
10286 outermost array. Iter code re-arranged to handle this.
10287 Added some more iter tests.
10289 * doc/dbus-specification.sgml:
10292 Update new array encoding description.
10293 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10295 * test/data/invalid-messages/array-with-mixed-types.message:
10296 * test/data/valid-messages/array-of-array-of-uint32.message:
10297 Change to the new array format.
10299 * test/data/invalid-messages/too-short-dict.message:
10302 * test/data/valid-messages/recursive-types.message:
10303 Fix up and extend test.
10305 2003-04-10 Havoc Pennington <hp@pobox.com>
10307 * bus/dispatch.c: lots of fixes
10309 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10310 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10311 that was crack, broke the test service.
10313 * dbus/dbus-transport.c (_dbus_transport_open): fix error
10314 handling to avoid piling up errors if we get a failure on the
10317 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10318 pid in assertion failures.
10320 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10321 to some fixed size of file descriptor array. Don't return TRUE
10322 anytime a timeout exists, that led to lots of busy loop silliness
10325 2003-04-09 Havoc Pennington <hp@redhat.com>
10327 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10328 I'd checked this in earlier but hadn't.
10330 2003-04-09 Havoc Pennington <hp@redhat.com>
10332 * bus/dispatch.c (bus_dispatch_test): get a bit further through
10333 the activation test (man this is getting old!)
10335 2003-04-09 Havoc Pennington <hp@redhat.com>
10337 * test/test-utils.c: use dispatch status function to fix this up
10339 * bus/connection.c (connection_watch_callback): don't dispatch
10341 (connection_timeout_callback): don't dispatch from here
10342 (bus_connections_setup_connection): set the dispatch status function
10343 (bus_connection_disconnected): unset it
10345 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10346 used to add a connection to be dispatched
10347 (_dbus_loop_iterate): do the dispatching at the end of each
10350 * dbus/dbus-connection.c
10351 (dbus_connection_set_dispatch_status_function): new function
10352 allowing us to fix up main loop usage
10353 (_dbus_connection_last_unref): free all the various function
10355 (dbus_connection_dispatch): call the DispatchStatusFunction
10356 whenever this function returns
10357 (dbus_connection_handle_watch): call DispatchStatusFunction
10358 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10359 (reply_handler_timeout): call DispatchStatusFunction
10360 (dbus_connection_flush): call DispatchStatusFunction
10362 2003-04-09 Havoc Pennington <hp@redhat.com>
10364 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10367 * bus/dispatch.c (check_service_activated): fix bug in test
10369 * dbus/dbus-mainloop.c (check_timeout): fix this up
10371 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10372 verbose output so we can sort out output from different processes,
10373 e.g. in the activation case.
10375 2003-04-08 Colin Walters <walters@gnu.org>
10377 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10379 (bus_context_new): Set it.
10380 (bus_context_unref): Use it to delete the pid file.
10382 2003-04-08 Havoc Pennington <hp@redhat.com>
10384 * test/data/invalid-messages/array-with-mixed-types.message:
10385 regression test that fails for the moment
10387 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10388 tests for convenience
10390 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10391 array of nil, it broke things.
10393 * test/data/invalid-messages/array-of-nil.message: regression test
10395 * test/data/valid-messages/array-of-array-of-uint32.message:
10396 happened to write this so added it to suite
10398 2003-04-08 Havoc Pennington <hp@redhat.com>
10400 * bus/driver.c (bus_driver_handle_acquire_service): init
10401 retval/reply before checking name
10403 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10404 recursion depth argument
10406 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10407 in the public struct for future extension
10409 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10412 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10415 * doc/dbus-specification.sgml: fix typo
10417 2003-04-08 Alexander Larsson <alexl@redhat.com>
10419 Implemented recursive types, named types and new-style iters
10422 * glib/test-thread-client.c: (thread_func):
10423 * glib/test-thread-server.c: (handle_test_message):
10424 * test/test-service.c: (handle_echo):
10427 * dbus/Makefile.am:
10428 * dbus/dbus-dict.c:
10429 * dbus/dbus-dict.h:
10433 * dbus/dbus-internals.c: (_dbus_type_to_string):
10434 Update for new types.
10436 * dbus/dbus-marshal.[ch]:
10437 Implement recursive types and the new marshalling format.
10438 Remove hardcoded dict marshalling.
10439 Marshal named types.
10441 * dbus/dbus-message-builder.c:
10443 Remove references to old types
10445 * dbus/dbus-message.[ch]:
10446 New non-refcounted iter API that supports recursive iters.
10447 Use iters for appending, including support for recursive
10449 Add byte and named type support.
10450 Update everything to new marshalling formats.
10451 Add tests for new API.
10453 * dbus/dbus-protocol.h:
10454 Remove old array types.
10455 Add types: BYTE, ARRAY, DICT, NAMED
10457 * dbus/dbus-string.c:
10458 * dbus/dbus-sysdeps.c:
10459 Make parse_double locale safe.
10461 * dbus/dbus-test-main.c:
10464 * dbus/dbus-test.c:
10467 * doc/dbus-specification.sgml:
10470 * test/data/incomplete-messages/missing-body.message:
10471 * test/data/invalid-messages/bad-boolean.message:
10472 * test/data/invalid-messages/bad-boolean-array.message:
10473 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10474 * test/data/invalid-messages/boolean-has-no-value.message-raw:
10475 * test/data/invalid-messages/too-short-dict.message:
10476 * test/data/valid-messages/dict-simple.message:
10477 * test/data/valid-messages/dict.message:
10478 * test/data/valid-messages/emptiness.message:
10479 * test/data/valid-messages/lots-of-arguments.message:
10480 * test/data/valid-messages/no-padding.message:
10481 * test/data/valid-messages/recursive-types.message:
10482 Add missing NAME fields
10483 Fix up dicts & arrays
10485 * test/data/invalid-messages/dict-with-nil-value.message:
10486 Removed, this is not invalid anymore.
10488 * test/data/valid-messages/recursive-types.message:
10489 Add new test for deeply recursive types.
10491 2003-04-07 Havoc Pennington <hp@pobox.com>
10493 * bus/driver.c (bus_driver_handle_acquire_service): return an
10494 error if you try to acquire a service that starts with ':'
10496 2003-04-07 Havoc Pennington <hp@redhat.com>
10498 * doc/dbus-specification.sgml: require that base service names
10499 start with ':' and that the base service is created/deleted
10500 as first and last things a connection does on the bus
10502 * bus/dispatch.c (check_existent_service_activation): lots more
10503 work on the activation test; it doesn't fully pass yet...
10505 * test/test-service.c (main): fix so we don't memleak the
10506 connection to the message bus
10507 (filter_func): accept a message asking us to exit
10509 2003-04-06 Havoc Pennington <hp@pobox.com>
10511 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10514 * configure.in: fixes to Qt detection from Colin Walters
10516 * doc/Makefile.am: Only remove generated docbook dirs if they
10517 exist, from Colin Walters
10519 * dbus/dbus-bus.c: change how we set well-known connections to
10520 NULL, so that it works if a single connection is stored in
10521 two well-known array slots.
10523 * test/Makefile.am: remove a lot of stuff that isn't immediately
10524 useful, it's in CVS history if we want it.
10526 * test/test-service.c: use dbus-mainloop instead of that
10529 2003-04-06 Havoc Pennington <hp@pobox.com>
10531 * dbus/Makefile.am: split lists of sources into stuff that goes in
10532 the library, util functions that go in the lib and are also used
10533 elsewhere, and util functions that are used in tests/daemon but
10534 don't go in the lib.
10536 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10537 here so it can be used in test binaries also
10539 2003-04-06 Havoc Pennington <hp@pobox.com>
10541 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10542 here in the parent process, so we can return an error if it
10543 fails. Also, move some of the code into the child so the parent
10544 is less hosed if we fail midway through.
10546 * bus/bus.c (bus_context_new): move pidfile detection further up
10547 in the function, before we start overwriting sockets and such.
10549 * bus/messagebus.in: adjust this a bit, not sure if it will work.
10551 * configure.in: add --with-system-pid-file and --with-system-socket
10553 2003-04-06 Colin Walters <walters@verbum.org>
10555 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10557 * bus/system.conf.in: Declare a pidfile.
10559 * bus/bus.c (bus_context_new): Test for an existing pid file, and
10560 create one (if appropriate).
10562 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10563 (struct BusConfigParser) [pidfile]: New.
10564 (element_type_to_name, merge_included, start_busconfig_child)
10565 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10566 (bus_config_parser_unref): Free it.
10567 (bus_config_parser_get_pidfile): New function.
10569 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10571 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10573 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10575 * dbus/dbus-sysdeps.h: Prototype it.
10577 2003-04-06 Havoc Pennington <hp@pobox.com>
10579 * bus/bus.c (bus_context_new): print the address in here, rather
10580 than in main(), because we need to do it before forking the daemon
10582 * bus/dispatch.c (send_service_nonexistent_error): set the sender
10583 on the service nonexistent error
10585 * bus/driver.c (bus_driver_handle_acquire_service): set the
10586 sender on the AcquireService reply
10588 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10589 server also listen on a UNIX socket so services can connect to it.
10591 2003-04-06 Havoc Pennington <hp@pobox.com>
10593 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10594 so it detects deadlocks and also we actually init threads when
10597 2003-04-06 Havoc Pennington <hp@pobox.com>
10599 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10600 save the domain socket name, and unlink it when we disconnect the
10601 server. Means that at least when we exit normally, we won't leave
10602 a bunch of junk in /tmp
10604 * dbus/dbus-transport-unix.c
10605 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10606 memory management). (I was making a real change here but then
10609 2003-04-06 Havoc Pennington <hp@pobox.com>
10611 * bus/bus.c (bus_context_new): fix wrong handling of
10612 server_data_slot_unref() in the error case.
10614 * dbus/dbus-internals.h (_dbus_assert): change so it passes
10615 "(condition) != 0" to _dbus_real_assert so that
10616 "_dbus_assert (pointer)" doesn't cause a warning
10618 * bus/main.c (main): accept --print-address option to print out
10619 the message bus address
10621 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10623 * dbus/dbus-transport.c (_dbus_transport_open): special error for
10624 "tmpdir" option to unix: address on client side
10626 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10629 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10630 we can use to create sockets in the test suite.
10632 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10633 cleanly. To be used for testing.
10635 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10637 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10639 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10640 handle trying to call this when there's no servers active
10642 2003-04-05 Havoc Pennington <hp@pobox.com>
10646 * configure.in: 0.8
10648 2003-04-05 Havoc Pennington <hp@pobox.com>
10650 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10651 crash on startup. Need to get "try starting the daemon"
10652 in the test suite I guess. ;-)
10654 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10655 tracked the number of open connections; it's better done in
10656 application-specific code as you want it to span all servers etc.
10658 2003-04-05 Havoc Pennington <hp@pobox.com>
10660 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10661 patch from Colin Walters
10663 2003-04-05 Havoc Pennington <hp@pobox.com>
10665 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10666 reality; in fact multiple mechanisms are allowed.
10668 * dbus/dbus-internals.c (_dbus_real_assert)
10669 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10670 _dbus_assert_not_reached() into functions, so that they don't show
10671 up in basic block counts for test coverage, and don't use up as
10672 much disk space. Does mean slower execution speed though, so
10673 assumes --disable-asserts is the normal production case.
10675 2003-04-05 Havoc Pennington <hp@pobox.com>
10677 * test/Makefile.am (dist-hook): also dist *.in files
10681 * configure.in: 0.7
10683 2003-04-05 Havoc Pennington <hp@pobox.com>
10685 * dbus/dbus-string.c: docs warning
10687 * dbus/dbus-spawn.c: missing docs
10689 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10691 2003-04-05 Havoc Pennington <hp@pobox.com>
10693 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10696 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10697 to -1 once we've reaped the babysitter
10698 (_dbus_babysitter_handle_watch): do as much work as we can, not
10701 * bus/activation.c: add code using DBusBabysitter so that we
10702 handle it when a service fails to start up properly.
10703 (bus_activation_service_created): don't remove the activation
10704 entries as we go, just let them get removed when we free the pending
10705 activation. Unref reply messages after sending them.
10707 2003-04-05 Havoc Pennington <hp@pobox.com>
10709 * test/decode-gcov.c (main): print per-directory stats in the report
10711 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10713 2003-04-05 Havoc Pennington <hp@pobox.com>
10715 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10717 * test/decode-gcov.c: hack up a little program to suck data
10718 out of gcov files. Yes this is sort of silly.
10720 * configure.in: define something in config.h and do an
10721 AM_CONDITIONAL when gcov is enabled
10723 2003-04-04 Havoc Pennington <hp@redhat.com>
10725 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10726 return a "babysitter" object that is used to monitor the status of
10727 the spawned process and reap it when required.
10729 * test/test-segfault.c, test/test-exit.c,
10730 test/test-sleep-forever.c: binaries that do various lame things,
10731 used in the test suite.
10733 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10735 2003-04-03 Havoc Pennington <hp@pobox.com>
10737 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10738 in preparation for modifying it, dbus-sysdeps is getting
10739 a bit unmanageable.
10741 2003-04-03 Havoc Pennington <hp@redhat.com>
10743 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10746 * bus/*.[hc]: adapt to mainloop change
10748 2003-04-03 Havoc Pennington <hp@redhat.com>
10750 * bus/activation.c (load_directory): fix up memleaks
10751 (bus_activation_entry_free): free the entry
10753 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10754 we get one from the message bus; fix memleaks.
10756 * dbus/dbus-message.c (dbus_set_error_from_message): new function
10758 2003-04-03 Havoc Pennington <hp@pobox.com>
10760 * bus/config-parser.c (bus_config_parser_unref): free
10761 list of mechanisms, bug discovered by test suite enhancements
10762 (putting system.conf and session.conf into suite)
10764 * test/Makefile.am, test/test-service.c: add placeholder for a
10765 test service that we'll activate as part of test suite. Doesn't
10768 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10769 setting NULL value, and use system malloc not dbus_malloc()
10770 when we have unavoidable memleakage.
10772 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10773 didn't work, and support DBUS_BUS_ACTIVATION.
10775 * bus/activation.c (child_setup): pass our well-known bus type to
10778 * bus/config-parser.c: support <type> to specify well-known type
10780 * doc/dbus-specification.sgml: document the env variables to
10781 locate well-known buses and find service activator
10783 2003-04-02 Havoc Pennington <hp@redhat.com>
10785 * test/Makefile.am (all-local): add a rule to copy tests to
10786 builddir, so we can have generated tests. Use this to remove the
10787 silly hack for testing system.conf and session.conf. Will use this
10788 shortly to generate .service files pointing to test binaries.
10790 2003-04-02 Havoc Pennington <hp@redhat.com>
10792 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10793 current alloc and needed new length, not max of the doubled
10794 allocation and needed new length. Also, when building tests,
10795 don't do the double-allocation stuff, just realloc every time.
10797 2003-04-02 Havoc Pennington <hp@redhat.com>
10799 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10801 (_dbus_string_get_dirname): new
10802 (_dbus_sysdeps_test): new
10803 (_dbus_directory_open): include dirnames in error messages
10805 * bus/config-parser.c: interpret <include> and <includedir> and
10806 <servicedir> relative to config file location if the given
10807 filename is not absolute.
10809 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10811 2003-04-02 Havoc Pennington <hp@redhat.com>
10813 * bus/connection.c (bus_transaction_send_error_reply): set sender
10814 service for the error, and unref the reply on success
10816 * bus/activation.c: convert to use BusTransaction so OOM can be
10818 (bus_activation_service_created): set sender of the message
10820 2003-04-01 Havoc Pennington <hp@redhat.com>
10822 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10823 <includedir> (at least mostly)
10825 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10826 first, then the user ID
10828 2003-04-01 Havoc Pennington <hp@pobox.com>
10830 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10833 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10835 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10837 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10838 socket 0777, and unlink any existing socket.
10840 * bus/bus.c (bus_context_new): change our UID/GID and fork if
10841 the configuration file so specifies; set up auth mechanism
10844 * bus/config-parser.c (bus_config_parser_content): add support
10845 for <fork> option and fill in code for <auth>
10847 * bus/system.conf.in: add <fork/> to default configuration,
10848 and limit auth mechanisms to EXTERNAL
10850 * doc/config-file.txt (Elements): add <fork>
10852 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10853 (_dbus_change_identity): new function
10855 2003-03-31 Havoc Pennington <hp@redhat.com>
10857 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10858 (_dbus_listen_unix_socket): fix off-by-one error in null
10859 termination spotted by Nalin
10861 2003-03-31 Havoc Pennington <hp@redhat.com>
10863 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10864 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10865 having a real home directory available.
10867 2003-03-31 Havoc Pennington <hp@redhat.com>
10869 * bus/Makefile.am (install-data-hook): create /var/run/dbus
10871 * bus/messagebus.in: add init script for Red Hat /etc/init.d
10873 * configure.in: add support for specifying a style of init script
10876 2003-03-31 Havoc Pennington <hp@redhat.com>
10878 Fix some annoying DBusString API and fix all affected code.
10880 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10881 max_length argument
10882 (_dbus_string_get_data): change to return string instead of using
10884 (_dbus_string_get_const_data): ditto
10885 (_dbus_string_get_data_len): ditto
10886 (_dbus_string_get_const_data_len): ditto
10888 2003-03-31 Havoc Pennington <hp@redhat.com>
10890 * bus/main.c (main): fix up the command line arguments to be nicer
10892 2003-03-31 Havoc Pennington <hp@redhat.com>
10894 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10895 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10896 final location that lands in the config file
10898 * bus/config-loader-expat.c (bus_config_load): fix type of
10899 XML_Parser variable
10901 * doc/TODO: remove TODO item for dbus_bus_get()
10903 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10905 2003-03-31 Havoc Pennington <hp@pobox.com>
10907 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10908 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10909 argument since they are always client side
10911 * dbus/dbus-server.c (dbus_server_get_address): new function
10913 * bus/main.c (main): take the configuration file as an argument.
10915 * test/data/valid-config-files/debug-allow-all.conf: new file to
10916 use with dispatch.c tests for example
10918 * bus/test-main.c (main): require test data dir
10920 * bus/bus.c (bus_context_new): change this to take a
10921 configuration file name as argument
10923 * doc/config-file.txt (Elements): add <servicedir>
10925 * bus/system.conf, bus/session.conf: new files
10927 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10928 well-known socket if none set
10930 * configure.in: create system.conf and session.conf
10932 2003-03-30 Havoc Pennington <hp@pobox.com>
10934 * bus/config-parser.c: hacking
10936 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10937 to shut down, since it could cause weirdness with the DBusList
10940 * dbus/dbus-list.c (_dbus_list_test): add tests for the
10941 link-oriented stack routines
10942 (alloc_link): free the mempool if the first alloc from it fails
10944 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10946 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10948 (_dbus_string_skip_white): new
10950 * doc/config-file.txt (Elements): add <includedir>
10952 2003-03-28 Havoc Pennington <hp@pobox.com>
10954 * dbus/dbus-string.c (_dbus_string_copy_data_len)
10955 (_dbus_string_copy_data): new functions
10957 2003-03-28 Anders Carlsson <andersca@codefactory.se>
10959 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10963 * dbus/dbus-memory.c:
10966 2003-03-28 Havoc Pennington <hp@pobox.com>
10968 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10969 I think it may have just been superstition. Not sure.
10971 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10972 failures that were not being handled.
10974 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10976 * dbus/dbus-memory.c: add ability to set number of mallocs in a
10977 row that will fail on out-of-memory.
10979 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10980 function for testing out-of-memory handling.
10982 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10983 allocation functions, they do map exactly to the expat ones.
10985 2003-03-27 Havoc Pennington <hp@redhat.com>
10987 * bus/config-loader-libxml.c (bus_config_load): add another error
10990 2003-03-26 Anders Carlsson <andersca@codefactory.se>
10993 Add note about automatic service activation.
10995 * doc/dbus-specification.sgml:
10996 Rename the specification and clarify a few things.
10998 2003-03-26 Anders Carlsson <andersca@codefactory.se>
11001 * dbus/dbus-address.c:
11002 * dbus/dbus-dict.c:
11003 * dbus/dbus-marshal.c:
11004 * dbus/dbus-server-debug-pipe.c:
11005 * dbus/dbus-transport-unix.c:
11006 Fix documentation warnings.
11008 2003-03-26 Havoc Pennington <hp@pobox.com>
11010 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11011 after every test so it's quick and easy to see which leaked, and
11012 so we test multiple dbus_shutdown() calls
11014 * configure.in: change configure.in XML stuff to also support
11017 * config-loader-libxml.c: some hacking
11019 * config-loader-expat.c: some hacking
11021 * config-parser.c: some hacking, plus tests
11023 2003-03-25 Havoc Pennington <hp@redhat.com>
11025 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11027 * configure.in: add --with-xml option to specify XML library,
11028 right now only libxml is supported.
11030 * bus/config-loader-libxml.c, config-parser.c: sync some minor
11031 nonworking code between home and work, still just stubs
11033 2003-03-24 Havoc Pennington <hp@redhat.com>
11035 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11038 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11039 NULL argument for "message" if the error is a well-known one,
11040 fill in a generic message in this case.
11042 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11045 * bus/test.c (bus_test_flush_bus): add
11047 * bus/policy.c (bus_policy_test): test code stub
11049 2003-03-24 Havoc Pennington <hp@pobox.com>
11051 * bus/connection.c (bus_connections_setup_connection): set up
11052 the "can this user connect" function, but it always returns
11053 TRUE until we have a config file parser so we can have a config
11054 file that allows connections.
11056 2003-03-23 Havoc Pennington <hp@pobox.com>
11058 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11059 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11060 the mutex, so we can check for proper memory management
11063 * dbus/dbus-dataslot.c: remove the mutex from
11064 DBusDataSlotAllocator and lock it manually when using it,
11065 to simplify fitting it into the global slots framework.
11067 * dbus/dbus-threads.c (init_static_locks): rework how we're
11068 handling global locks so they are easily shut down.
11070 * bus/policy.c (bus_policy_append_rule): fix
11072 * bus/test-main.c (main): check for memleaks
11074 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11075 test suite check for memleaks
11077 * dbus/dbus-memory.c: add support in test mode for tracking
11078 number of outstanding blocks
11080 2003-03-23 Havoc Pennington <hp@pobox.com>
11082 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11085 * dbus/dbus-hash.h: add ULONG hash keys
11087 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11088 (_dbus_get_group_id): new function
11090 2003-03-20 Havoc Pennington <hp@redhat.com>
11092 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11094 (dbus_connection_get_unix_user): new function
11096 2003-03-20 Havoc Pennington <hp@pobox.com>
11098 * bus/connection.c (bus_connection_send_oom_error): assert that
11099 message has a sender
11100 (connection_execute_transaction): ditto
11101 (bus_connection_preallocate_oom_error): fix to set the sender, and
11102 set recipient to the destination service, not the bus driver
11104 * bus/policy.c: hacking
11106 * dbus/dbus-message.c (dbus_message_service_is): new function
11107 (dbus_message_sender_is): new
11109 2003-03-19 Havoc Pennington <hp@redhat.com>
11111 * bus/policy.c: start sketching code for policy restrictions on
11112 what connections can do.
11114 2003-03-18 Havoc Pennington <hp@redhat.com>
11116 * doc/TODO: some notes on high-level todo items. Little nitpick
11117 stuff is all in @todo, so no need to add it here.
11119 * doc/config-file.txt: some notes on how config file might look
11121 2003-03-18 Anders Carlsson <andersca@codefactory.se>
11123 * configure.in: 0.6
11127 2003-03-17 Havoc Pennington <hp@redhat.com>
11129 * dbus/dbus-internals.h: add gcc attributes so that
11130 our printf-style functions warn on bad arguments to
11133 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11136 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11139 2003-03-17 Havoc Pennington <hp@redhat.com>
11141 * bus/test-main.c (main): make it print something as it runs
11142 so make check doesn't look stuck
11144 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11145 from CVS, now obsolete
11147 2003-03-17 Anders Carlsson <andersca@codefactory.se>
11149 * bus/dispatch.c: (bus_dispatch):
11150 Refetch the service name since it may have been reallocated
11151 when dbus_message_set_sender was called.
11153 * dbus/dbus-sysdeps.c: (_dbus_accept):
11154 Add address and address length variables and use them to stop
11155 valgrind from complaining.
11157 2003-03-17 Havoc Pennington <hp@pobox.com>
11159 All tests pass, no memleaks, no valgrind complaints.
11161 * bus/test.c: refcount handler_slot
11163 * bus/connection.c (bus_connections_new): refcount
11164 connection_data_slot
11166 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11167 bytes so that auth scripts pass.
11169 * bus/dispatch.c: init message_handler_slot so it gets allocated
11172 * bus/dispatch.c (message_handler_slot_ref): fix memleak
11174 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11175 dealloc server_pipe_hash when no longer used for benefit of
11178 * dbus/dbus-auth.c (process_command): memleak fix
11180 * bus/dispatch.c (check_hello_message): memleak fix
11182 2003-03-16 Havoc Pennington <hp@pobox.com>
11184 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11186 2003-03-17 Anders Carlsson <andersca@codefactory.se>
11188 * bus/activation.c (bus_activation_activate_service): Append
11189 the pending activation entry to the list of pending activations.
11191 2003-03-16 Havoc Pennington <hp@pobox.com>
11193 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11196 * dbus/dbus-address.c (create_entry): fix OOM handling when
11197 failing to alloc entry->method
11199 2003-03-16 Havoc Pennington <hp@pobox.com>
11201 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11204 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11205 add some missing dbus_set_result
11207 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11208 alloc the DBusMessageHandler
11210 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11211 the transport here, since we call this from the finalizer; it
11212 resulted in a double-finalize.
11214 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
11215 where we tried to use transport->connection that was NULL,
11216 happened when transport was disconnected early on due to OOM
11218 * bus/*.c: adapt to handle OOM for watches/timeouts
11220 * dbus/dbus-transport-unix.c: port to handle OOM during
11223 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
11224 reference to unused bytes instead of a copy
11226 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
11229 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
11232 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
11235 2003-03-16 Anders Carlsson <andersca@codefactory.se>
11237 * doc/dbus-specification.sgml:
11238 Document reply message for ActivateService.
11240 2003-03-16 Anders Carlsson <andersca@codefactory.se>
11242 * bus/activation.c: (bus_pending_activation_entry_free),
11243 (bus_pending_activation_free), (bus_activation_new),
11244 (bus_activation_unref), (bus_activation_service_created),
11245 (bus_activation_activate_service):
11246 * bus/activation.h:
11247 * bus/bus.c: (bus_context_new):
11248 * bus/desktop-file.c: (new_section):
11249 * bus/driver.c: (bus_driver_send_service_deleted),
11250 (bus_driver_handle_activate_service):
11251 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11253 * dbus/dbus-connection.c:
11254 (dbus_connection_send_with_reply_and_block):
11255 * dbus/dbus-message.c: (dbus_message_append_args_valist):
11256 * dbus/dbus-protocol.h:
11257 Make activation work better. Now pending activations will be queued
11258 and the daemon won't try to activate services that are already registered.
11260 2003-03-16 Havoc Pennington <hp@pobox.com>
11262 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11265 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11266 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11268 2003-03-16 Havoc Pennington <hp@pobox.com>
11270 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11271 this. always run the test suite before commit...
11273 * bus/*: adapt to DBusConnection API changes
11275 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11276 requires renaming stuff to avoid dbus_connection_dispatch name
11279 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11282 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11283 separate from _dbus_message_loader_return_buffer()
11285 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11286 this, because it's now always broken to use; the number of
11287 messages in queue vs. the number still buffered by the message
11288 loader is undefined/meaningless. Should use
11289 dbus_connection_get_dispatch_state().
11290 (dbus_connection_dispatch): rename from
11291 dbus_connection_dispatch_message
11293 2003-03-16 Havoc Pennington <hp@pobox.com>
11295 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11298 2003-03-16 Anders Carlsson <andersca@codefactory.se>
11300 * dbus/dbus-connection.c:
11301 (dbus_connection_send_with_reply_and_block):
11302 Decrease connection->n_incoming when removing an entry
11304 * dbus/dbus-dict.c: (dbus_dict_entry_free),
11305 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11306 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11307 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11308 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11309 (dbus_dict_get_byte_array):
11310 Handle NULL arrays and strings. Also add support for byte arrays.
11312 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11313 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11314 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11315 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11316 (_dbus_demarshal_dict), (demarshal_and_validate_len),
11317 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11318 * dbus/dbus-marshal.h:
11319 Add support for marshalling and demarshalling empty arrays and strings.
11321 * dbus/dbus-message.c: (dbus_message_append_args_valist),
11322 (dbus_message_append_string_array),
11323 (dbus_message_iter_get_boolean),
11324 (dbus_message_iter_get_boolean_array),
11325 (dbus_message_iter_get_int32_array),
11326 (dbus_message_iter_get_uint32_array),
11327 (dbus_message_iter_get_double_array),
11328 (dbus_message_iter_get_byte_array),
11329 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11330 (check_message_handling):
11331 Add support for getting empty arrays and dicts.
11333 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11334 Don't do any validation at all for now, that's better than just checking
11337 * test/data/valid-messages/emptiness.message:
11338 New test message with lots of empty arrays.
11340 2003-03-16 Havoc Pennington <hp@pobox.com>
11342 * dbus/dbus-connection.c
11343 (_dbus_connection_queue_received_message_link): new function that
11344 can't fail due to OOM
11346 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11347 new function pops a message together with a list link
11350 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11351 message queuing functions to avoid needing to alloc memory
11353 2003-03-16 Havoc Pennington <hp@pobox.com>
11355 Oops - test code was only testing failure of around 30 of the
11356 mallocs in the test path, but it turns out there are 500+
11357 mallocs. I believe this was due to misguided linking setup such
11358 that there was one copy of dbus_malloc etc. in the daemon and one
11359 in the shared lib, and only daemon mallocs were tested. In any
11360 case, the test case now tests all 500+ mallocs, and doesn't pass
11361 yet, though there are lots of fixes in this patch.
11363 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11364 this so that it doesn't need to allocate memory, since it
11365 has no way of indicating failure due to OOM (and would be
11366 annoying if it did).
11368 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11370 * bus/Makefile.am: rearrange to create two self-contained
11371 libraries, to avoid having libraries with overlapping symbols.
11372 that was resulting in weirdness, e.g. I'm pretty sure there
11373 were two copies of global static variables.
11375 * dbus/dbus-internals.c: move the malloc debug stuff to
11378 * dbus/dbus-list.c (free_link): free list mempool if it becomes
11381 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11383 * dbus/dbus-address.c (dbus_parse_address): free list nodes
11386 * bus/dispatch.c (bus_dispatch_add_connection): free
11387 message_handler_slot when no longer using it, so
11388 memory leak checkers are happy for the test suite.
11390 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11392 * bus/bus.c (new_connection_callback): disconnect in here if
11393 bus_connections_setup_connection fails.
11395 * bus/connection.c (bus_connections_unref): fix to free the
11397 (bus_connections_setup_connection): if this fails, don't
11398 disconnect the connection, just be sure there are no side
11401 * dbus/dbus-string.c (undo_alignment): unbreak this
11403 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11405 (_dbus_auth_new): fix the order in which we free strings
11408 * bus/connection.c (bus_connection_disconnected): fix to
11409 not send ServiceDeleted multiple times in case of memory
11412 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11413 get the base service name
11414 (dbus_bus_register_client): don't return base service name,
11415 instead store it on the DBusConnection and have an accessor
11417 (dbus_bus_register_client): rename dbus_bus_register()
11419 * bus/dispatch.c (check_hello_message): verify that other
11420 connections on the bus also got the correct results, not
11421 just the one sending hello
11423 2003-03-15 Havoc Pennington <hp@pobox.com>
11425 Make it pass the Hello handling test including all OOM codepaths.
11426 Now to do other messages...
11428 * bus/services.c (bus_service_remove_owner): fix crash when
11429 removing owner from an empty list of owners
11430 (bus_registry_ensure): don't leave service in the list of
11431 a connection's owned services if we fail to put the service
11434 * bus/connection.c (bus_connection_preallocate_oom_error): set
11435 error flag on the OOM error.
11437 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11438 handle _dbus_transport_set_connection failure
11440 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11441 to create watches up front and simply enable/disable them as
11443 (unix_connection_set): this can now fail on OOM
11445 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11446 of enabling/disabling a watch or timeout.
11448 * bus/loop.c (bus_loop_iterate): don't touch disabled
11451 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11453 2003-03-15 Havoc Pennington <hp@pobox.com>
11455 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11456 write useful test code, after all that futzing around ;-)
11458 Test does not yet pass because we can't handle OOM in
11459 _dbus_transport_messages_pending (basically,
11460 dbus_connection_preallocate_send() does not prealloc the write
11461 watch). To fix this, I think we need to add new stuff to
11462 set_watch_functions, namely a SetEnabled function so we can alloc
11463 the watch earlier, then enable it later.
11465 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11466 dbus-memory.c to the convenience lib
11468 * bus/test.c: rename some static functions to keep them clearly
11469 distinct from stuff in connection.c. Handle client disconnection.
11471 2003-03-14 Havoc Pennington <hp@pobox.com>
11473 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11474 transport, tests more of the real codepath. Set up clients
11475 with bus_setup_debug_client.
11477 * bus/test.c (bus_setup_debug_client): function to set up debug
11478 "clients" on the main loop
11480 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11483 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11486 * dbus/dbus-server-debug.c: support a debug server based on pipes
11488 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11489 (_dbus_close): new function
11491 * configure.in: check for socketpair
11493 2003-03-14 Havoc Pennington <hp@redhat.com>
11495 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11498 * dbus/dbus-transport-debug.c: rework this a good bit to be
11499 less complicated. hopefully still works.
11501 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11504 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11507 * dbus/dbus-message.c (dbus_message_copy): rename from
11508 dbus_message_new_from_message, fix it up to copy
11509 all the message fields, add test case
11511 * bus/dispatch.c (bus_dispatch_test): add some more test code,
11512 not quite passing yet
11514 2003-03-14 Havoc Pennington <hp@pobox.com>
11516 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11517 until no work remains" in test code. (the large diff here
11518 is just code movement, no actual changes)
11520 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11521 1, no point waiting around for test code.
11522 (_dbus_server_debug_accept_transport): unref the timeout
11523 after adding it (right?)
11525 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11527 2003-03-13 Havoc Pennington <hp@redhat.com>
11529 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11532 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11535 * dbus/dbus-connection.h: Make AddWatchFunction and
11536 AddTimeoutFunction return a bool so they can fail on out-of-memory
11538 * bus/bus.c (bus_context_new): set up timeout handlers
11540 * bus/connection.c (bus_connections_setup_connection): set up
11543 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11546 * bus/bus.c (bus_context_new): adapt to changes
11548 * bus/connection.c: adapt to changes
11550 * test/watch.c: adapt to DBusWatch changes
11552 * bus/dispatch.c (bus_dispatch_test): started adding this but
11555 2003-03-14 Anders Carlsson <andersca@codefactory.se>
11557 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11559 2003-03-13 Havoc Pennington <hp@pobox.com>
11561 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11562 set up a test framework as for the library
11564 2003-03-12 Havoc Pennington <hp@pobox.com>
11566 Throughout: purge global variables, introduce BusActivation,
11567 BusConnections, BusRegistry, etc. objects instead.
11569 * bus/bus.h, bus/bus.c: introduce BusContext as a global
11572 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11573 going to redo this a bit differently I think
11575 2003-03-12 Havoc Pennington <hp@redhat.com>
11577 Mega-patch that gets the message bus daemon initially handling
11578 out-of-memory. Work still needed. Also lots of random
11579 moving stuff to DBusError instead of ResultCode.
11581 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11583 * dbus/dbus-connection.c
11584 (dbus_connection_send_with_reply_and_block): use DBusError
11586 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11589 * dbus/dbus-connection.c (dbus_connection_send): drop the result
11590 code here, as the only failure possible is OOM.
11592 * bus/connection.c (bus_connection_disconnect):
11593 rename bus_connection_disconnected as it's a notification only
11595 * bus/driver.c (bus_driver_handle_acquire_service): don't free
11596 "name" on get_args failure, should be done by get_args;
11597 don't disconnect client for bad args, just return an error.
11598 (bus_driver_handle_service_exists): ditto
11600 * bus/services.c (bus_services_list): NULL-terminate returned array
11602 * bus/driver.c (bus_driver_send_service_lost)
11603 (bus_driver_send_service_acquired): send messages from driver to a
11604 specific client to the client's unique name, not to the broadcast
11607 * dbus/dbus-message.c (decode_header_data): reject messages that
11608 contain no name field
11609 (_dbus_message_get_client_serial): rename to
11610 dbus_message_get_serial and make public
11611 (_dbus_message_set_serial): rename from set_client_serial
11612 (_dbus_message_set_reply_serial): make public
11613 (_dbus_message_get_reply_serial): make public
11615 * bus/connection.c (bus_connection_foreach): allow stopping
11616 iteration by returning FALSE from foreach function.
11618 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11619 (dbus_connection_free_preallocated_send)
11620 (dbus_connection_preallocate_send): new API for sending a message
11621 without possibility of malloc failure.
11622 (dbus_connection_send_message): rename to just
11623 dbus_connection_send (and same for whole function family)
11625 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11627 * dbus/dbus-sysdeps.c (_dbus_exit): new function
11629 * bus/activation.c: handle/return errors
11631 * dbus/dbus-errors.h: add more DBUS_ERROR #define
11633 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11634 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11635 (_dbus_result_from_errno): move to this file
11637 2003-03-10 Anders Carlsson <andersca@codefactory.se>
11639 * dbus/dbus-marshal.c:
11640 (_dbus_marshal_set_string):
11641 Take a length argument so we can marshal the correct string
11644 (_dbus_marshal_dict), (_dbus_demarshal_dict),
11645 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11646 (_dbus_marshal_test):
11647 * dbus/dbus-marshal.h:
11648 Add support for marshalling and demarshalling dicts.
11650 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11651 Add support for TYPE DICT.
11653 * dbus/dbus-message.c: (set_string_field):
11654 Adjust header padding.
11656 (dbus_message_append_args_valist), (dbus_message_append_dict),
11657 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11658 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11659 (check_message_handling), (check_have_valid_message):
11660 * dbus/dbus-message.h:
11661 Add functions for setting and getting dicts.
11663 * dbus/dbus-protocol.h:
11664 Add DBUS_TYPE_DICT.
11669 * doc/dbus-specification.sgml:
11670 Add information about how dicts are marshalled.
11672 * test/data/invalid-messages/dict-with-nil-value.message:
11673 * test/data/invalid-messages/too-short-dict.message:
11674 * test/data/valid-messages/dict-simple.message:
11675 * test/data/valid-messages/dict.message:
11676 Add sample messages containing dicts.
11678 2003-03-08 Anders Carlsson <andersca@codefactory.se>
11680 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11682 2003-03-07 Anders Carlsson <andersca@codefactory.se>
11684 * dbus/Makefile.am:
11685 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11686 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11687 (dbus_dict_set_int32), (dbus_dict_set_uint32),
11688 (dbus_dict_set_double), (dbus_dict_set_string),
11689 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11690 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11691 (dbus_dict_set_string_array), (_dbus_dict_test):
11692 * dbus/dbus-dict.h:
11693 Fix according to comments from Havoc.
11695 2003-03-06 Michael Meeks <michael@server.home>
11697 * configure.in: if we don't have kde-config, disable have_qt.
11699 2003-03-07 Anders Carlsson <andersca@codefactory.se>
11701 * dbus/Makefile.am:
11704 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11705 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11706 (dbus_dict_remove), (dbus_dict_get_value_type),
11707 (dbus_dict_get_keys), (dbus_dict_put_boolean),
11708 (dbus_dict_put_int32), (dbus_dict_put_uint32),
11709 (dbus_dict_put_double), (dbus_dict_put_string),
11710 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11711 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11712 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11713 (dbus_dict_get_int32), (dbus_dict_get_uint32),
11714 (dbus_dict_get_double), (dbus_dict_get_string),
11715 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11716 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11717 (dbus_dict_get_string_array), (_dbus_dict_test):
11718 * dbus/dbus-dict.h:
11719 Add DBusDict implementation
11721 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11722 * dbus/dbus-test.h:
11723 Add _dbus_dict_test
11725 2003-03-04 Havoc Pennington <hp@pobox.com>
11727 * test/data/auth/*: adapt to changes
11729 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11730 USERID_BASE64 and change USERNAME_BASE64 to put in username not
11733 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11734 more stuff from being in a context name, to make the protocol
11735 simpler to deal with
11737 * dbus/dbus-errors.c (dbus_error_has_name): new function
11738 (dbus_error_is_set): new function
11740 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11741 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11743 * dbus/dbus-connection.c (dbus_connection_flush): also read
11744 messages during a flush operation
11746 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11748 2003-03-05 Anders Carlsson <andersca@codefactory.se>
11750 * configure.in: Check for gethostbyname on Solaris.
11752 * dbus/dbus-transport.c: (_dbus_transport_open):
11753 Remove duplicate "tcp" entry.
11755 * doc/dbus-specification.sgml:
11756 Clarify some things.
11758 2003-03-05 Anders Carlsson <andersca@codefactory.se>
11760 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11761 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11762 (_dbus_keyring_test):
11763 * dbus/dbus-md5.c: (_dbus_md5_compute):
11764 * dbus/dbus-sha.c: (_dbus_sha_compute):
11767 2003-03-05 Anders Carlsson <andersca@codefactory.se>
11769 * README: Add some things.
11771 2003-03-04 Anders Carlsson <andersca@codefactory.se>
11773 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11774 after case DBUS_TYPE_BOOELAN.
11776 2003-03-02 Havoc Pennington <hp@pobox.com>
11778 * test/break-loader.c (randomly_set_extreme_ints): add test that
11779 sets really huge and small integers
11781 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11782 that length of boolean array fits in the string, and that
11783 string has room for boolean value in single-bool case.
11785 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11786 optional value to "ALIGN" command which is what to fill the
11789 * test/data/valid-messages/no-padding.message: add regression
11790 test for the message padding problem
11792 2003-03-02 Havoc Pennington <hp@pobox.com>
11794 * dbus/dbus-message.c (decode_header_data): fix to always init
11795 message_padding, from Benjamin Dauvergne
11797 2003-03-02 Havoc Pennington <hp@pobox.com>
11799 * configure.in: 0.5
11803 2003-03-01 Joe Shaw <joe@assbarn.com>
11805 * configure.in: Check for "struct cmsgcred" and try to access its
11806 members for BSD-like unices.
11808 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11809 _dbus_read_credentials_unix_socket().
11810 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11811 read() for reading the credential byte off the unix socket. Use
11812 struct cmsgcred on systems that support it.
11814 2003-02-27 Alexander Larsson <alexl@redhat.com>
11816 * glib/Makefile.am:
11818 Make gthreads-2.0 dependency optional. Don't build thread test if
11821 2003-02-27 Havoc Pennington <hp@pobox.com>
11823 * dbus/dbus-connection.c
11824 (dbus_connection_send_message_with_reply_and_block): fix doh!
11825 doh! doh! bug that resulted in never removing a reply from the
11826 queue, no wonder we called get_reply_serial so much ;-)
11828 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11829 and client serial instead of demarshaling them every time
11831 2003-02-27 Havoc Pennington <hp@pobox.com>
11833 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11834 more inlined, using dbus-string-private.h, speeds things up
11837 * dbus/dbus-string.c (_dbus_string_free): apply align offset
11838 when freeing the string
11839 (_dbus_string_steal_data): fix for align offset
11840 (undo_alignment): new function
11842 2003-02-26 Havoc Pennington <hp@redhat.com>
11844 All kinds of audit fixes from Owen, plus initial attempt to
11845 handle unaligned memory returned from malloc.
11847 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11848 leave room for align_offset and nul byte
11849 (fixup_alignment): function to track an align_offset and
11850 ensure real->str is aligned
11851 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11852 to allow a nul byte plus align offset
11853 (_dbus_string_lock): fix overflow issue
11854 (_dbus_string_init_const_len): add assertions on sanity of len,
11855 assign allocated to be ALLOCATION_PADDING larger than len
11856 (set_length): fixup the overflow handling
11857 (_dbus_string_get_data_len): fix overflow in assertion
11858 (open_gap): detect overflow in size of gap to be opened
11859 (_dbus_string_lengthen): add overflow check
11860 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11861 (_dbus_string_append): add overflow check
11862 (_dbus_string_append_unichar): overflow
11863 (_dbus_string_delete): fix overflow in assertion
11864 (_dbus_string_copy_len): overflow in assertion
11865 (_dbus_string_replace_len): overflows in assertions
11866 (_dbus_string_find): change to implement in terms of
11867 _dbus_string_find_to
11868 (_dbus_string_find_to): assorted fixage
11869 (_dbus_string_equal_c_str): assert c_str != NULL,
11870 fix logic so the function works
11871 (_dbus_string_ends_with_c_str): fix overflow thingy
11872 (_dbus_string_base64_encode): overflow fix
11873 (_dbus_string_validate_ascii): overflow
11874 (_dbus_string_validate_nul): overflow
11876 2003-02-26 Havoc Pennington <hp@redhat.com>
11878 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11880 2003-02-26 Alexander Larsson <alexl@redhat.com>
11883 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11885 * dbus/dbus-connection.c:
11886 * dbus/dbus-connection.h:
11887 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11888 Add dbus_connection_set_wakeup_main_function and use it when queueing
11889 incoming and outgoing messages.
11892 * dbus/dbus-dataslot.c:
11893 Threadsafe usage of DBusDataSlotAllocator
11895 * dbus/dbus-message.c: (dbus_message_get_args_iter):
11898 * dbus/dbus-server-unix.c:
11901 * glib/dbus-gmain.c:
11902 Implement the new wakeup functions for glib.
11904 * glib/Makefile.am:
11905 * glib/test-thread-client.c:
11906 * glib/test-thread-server.c:
11907 * glib/test-thread.h:
11908 Initial cut at some thread test code. Not really done yet.
11910 2003-02-26 Havoc Pennington <hp@pobox.com>
11912 * dbus/dbus-connection.c
11913 (dbus_connection_send_message_with_reply_and_block): fix crash
11914 where we ref'd the outgoing message instead of the returned reply
11916 * dbus/dbus-transport-unix.c (do_authentication): check read watch
11917 at the end of this function, so if we didn't need to read for
11918 authentication, we reinstall it for receiving messages
11920 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11921 a NULL sender for peer-to-peer case
11923 * dbus/dbus-transport-unix.c (check_read_watch): handle
11924 !authenticated case correctly
11926 * glib/dbus-gmain.c: add support for DBusServer
11928 * dbus/dbus-server.c: add data slot support
11930 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11931 return values and handle errors
11933 * dbus/dbus-dataslot.c: factor out the data slot stuff from
11936 * Doxyfile.in (INPUT): add glib subdir
11938 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11939 setup_with_g_main instead of hookup_with_g_main; write docs
11941 2003-02-24 Anders Carlsson <andersca@codefactory.se>
11943 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11944 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11945 * dbus/dbus-message.c: (dbus_message_append_boolean),
11946 (dbus_message_append_boolean_array),
11947 (dbus_message_get_args_valist), (_dbus_message_test):
11948 * dbus/dbus-message.h:
11949 * doc/dbus-specification.sgml:
11950 Various fixes as pointed out by Havoc.
11952 * test/data/invalid-messages/bad-boolean-array.message:
11953 * test/data/invalid-messages/bad-boolean.message:
11954 Add invalid boolean value test cases.
11956 2003-02-24 Anders Carlsson <andersca@codefactory.se>
11958 * dbus/dbus-internals.c: (_dbus_type_to_string):
11959 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11960 (_dbus_marshal_validate_arg):
11961 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11962 * dbus/dbus-message.c: (dbus_message_append_args_valist),
11963 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11964 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11965 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11966 (dbus_message_iter_get_double),
11967 (dbus_message_iter_get_boolean_array), (message_iter_test):
11968 * dbus/dbus-message.h:
11969 * dbus/dbus-protocol.h:
11970 * doc/dbus-specification.sgml:
11971 * test/data/valid-messages/lots-of-arguments.message:
11972 Add support for boolean and boolean array types.
11974 2003-02-23 Havoc Pennington <hp@pobox.com>
11976 * dbus/dbus-keyring.c: finish most of this implementation and
11979 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11980 these barf if the error isn't cleared to NULL
11982 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11983 (_dbus_create_directory): new function
11985 * dbus/dbus-errors.c (dbus_set_error): fix warning
11987 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11988 (_dbus_string_hex_decode): new function
11989 (test_hex_roundtrip): test code
11991 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11993 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11995 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11996 the save-to-temp/rename trick to atomically write the new file
11997 (_dbus_string_parse_uint): new function
11999 2003-02-22 Havoc Pennington <hp@pobox.com>
12001 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12003 2003-02-22 Havoc Pennington <hp@pobox.com>
12005 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12006 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12008 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12010 * dbus/test/data/sha-1: add US government test suite for SHA-1
12012 2003-02-21 Anders Carlsson <andersca@codefactory.se>
12014 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12015 Make string arrays NULL-terminated.
12017 * dbus/dbus-memory.c: (dbus_free_string_array):
12018 * dbus/dbus-memory.h:
12019 New function for freeing NULL-terminated string arrays.
12021 * dbus/dbus-message-builder.c: (append_quoted_string),
12022 (_dbus_message_data_load):
12023 Add support for array types.
12025 * dbus/dbus-message.c: (check_message_handling):
12026 Add more types as test cases.
12028 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12029 (_dbus_string_parse_double):
12030 Add the start offset to the end offset.
12032 * test/data/valid-messages/lots-of-arguments.message:
12033 New test message with lots of arguments.
12035 2003-02-21 Anders Carlsson <andersca@codefactory.se>
12037 * dbus/dbus-message.c: (dbus_message_append_nil),
12038 (dbus_message_append_int32), (dbus_message_append_uint32),
12039 (dbus_message_append_double), (dbus_message_append_string),
12040 (dbus_message_append_int32_array),
12041 (dbus_message_append_uint32_array),
12042 (dbus_message_append_double_array),
12043 (dbus_message_append_byte_array),
12044 (dbus_message_append_string_array):
12045 Fix all out-of-memory handling in these functions.
12047 2003-02-21 Anders Carlsson <andersca@codefactory.se>
12049 * dbus/dbus-message.c: (dbus_message_append_nil):
12052 2003-02-21 Anders Carlsson <andersca@codefactory.se>
12054 * dbus/dbus-message.c: (dbus_message_append_args_valist),
12055 (dbus_message_append_nil), (dbus_message_append_int32_array),
12056 (dbus_message_append_uint32_array),
12057 (dbus_message_append_double_array),
12058 (dbus_message_append_byte_array),
12059 (dbus_message_append_string_array), (dbus_message_get_args_valist),
12060 (dbus_message_iter_get_int32_array),
12061 (dbus_message_iter_get_uint32_array),
12062 (dbus_message_iter_get_double_array),
12063 (dbus_message_iter_get_byte_array),
12064 (dbus_message_iter_get_string_array):
12066 * dbus/dbus-message.h:
12067 Add functions for appending and getting arrays.
12069 2003-02-21 Anders Carlsson <andersca@codefactory.se>
12071 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12072 element size at least 8 bytes, fixes mempool tests on
12075 2003-02-20 Alexander Larsson <alexl@redhat.com>
12077 * dbus/dbus-transport-unix.c (unix_do_iteration):
12078 Unlock the connection mutex during a blocking select call.
12079 Add todo about how we need a way to wake up the select.
12081 * dbus/dbus-connection-internal.h:
12082 * dbus/dbus-connection.c:
12083 Add _dbus_connection_lock and _dbus_connection_unlock.
12085 2003-02-19 Havoc Pennington <hp@pobox.com>
12087 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12088 Doxyfile.in, not Doxyfile
12090 * dbus/dbus-keyring.c: do some hacking on this
12092 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12094 * dbus/dbus-errors.c (dbus_set_error_const): do not call
12096 (dbus_set_error): remove dbus_error_init, check for message ==
12097 NULL *before* we sprintf into it, and add @todo about including
12098 system headers in this file
12100 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12102 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12104 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12105 get various bits of user information based on either username
12107 (_dbus_homedir_from_username): new function
12109 2003-02-19 Anders Carlsson <andersca@codefactory.se>
12112 Add check for nonposix getpwnam_r
12114 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12115 Align the pool element size to a sizeof (void *) boundary.
12117 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12118 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12119 General Solaris fixes.
12121 * test/data/valid-messages/simplest-manual.message:
12122 Explicitly state that we want little-endian packing.
12124 2003-02-19 Mikael Hallendal <micke@codefactory.se>
12126 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12128 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12129 Added to create a transport connecting using a tcp/ip socket.
12131 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12132 to a tcp socket at given host and port.
12133 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12136 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12138 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12139 Added to create a server listening on a TCP/IP socket.
12141 2003-02-19 Havoc Pennington <hp@pobox.com>
12143 Throughout: mop up all the Doxygen warnings and undocumented
12146 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12147 to search any paths.
12149 * dbus/dbus-threads.c: move global mutex initializers to
12150 dbus-internals.h, multiple prototypes was confusing doxygen
12151 besides being kind of ugly
12153 * Doxyfile (PREDEFINED): have Doxygen define
12154 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12155 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12156 (do not abuse the feature! it's for stuff like the autogenerated
12157 macros in dbus-md5.c, not just for things you don't feel like
12160 2003-02-18 Havoc Pennington <hp@pobox.com>
12162 * dbus/dbus-string.c (_dbus_string_zero): new function
12164 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12165 wrap it in some dbus-friendly API
12167 * dbus/dbus-types.h: add 16-bit types
12169 2003-02-18 Joe Shaw <joe@assbarn.com>
12171 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12172 credentials from our currently running process.
12173 (get_word): Fix a buglet where we were copying the entire length
12174 instead of relative to our position.
12176 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12177 keys on the stack... it's 640k of data.
12179 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12180 read the credentials byte off the socket, even if we don't have
12182 (_dbus_poll): Implement poll() using select() for systems which
12185 * glib/test-dbus-glib.c (main): Print out an error if no
12186 parameters are given.
12188 * test/data/auth/fallback.auth-script: Added. Tests that a client
12189 can fallback to a secondary auth mechanism if the first fails.
12191 2003-02-18 Havoc Pennington <hp@pobox.com>
12193 * AUTHORS: add Alex
12195 2003-02-17 Havoc Pennington <hp@pobox.com>
12197 * doc/dbus-specification.sgml: lots of cosmetic
12198 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12199 env variable to DBUS_BUS_ADDRESS, s/client/application/,
12200 s/server/bus/ (except in authentication section). Add a section
12201 "Message Bus Message Routing"
12203 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
12209 2003-02-17 Anders Carlsson <andersca@codefactory.se>
12211 * doc/dbus-specification.sgml:
12212 Specification updates.
12214 2003-02-17 Anders Carlsson <andersca@codefactory.se>
12216 * bus/activation.c: (bus_activation_init), (child_setup),
12217 (bus_activation_activate_service):
12218 * bus/activation.h:
12219 * bus/main.c: (main):
12220 Set DBUS_ADDRESS environment variable.
12222 * dbus/dbus-errors.c: (dbus_set_error):
12223 Don't use va_copy since that's a C99 feature.
12225 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
12226 (_dbus_spawn_async):
12227 * dbus/dbus-sysdeps.h:
12228 Add child_setup_func to _dbus_spawn_async.
12230 * doc/dbus-specification.sgml:
12231 Update specification.
12233 * test/spawn-test.c: (setup_func), (main):
12236 2003-02-17 Alexander Larsson <alexl@redhat.com>
12238 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
12241 2003-02-17 Anders Carlsson <andersca@codefactory.se>
12245 * doc/dbus-test-plan.sgml:
12246 Add test plan document.
12248 * test/Makefile.am:
12251 2003-02-17 Anders Carlsson <andersca@codefactory.se>
12253 * dbus/dbus-message.c: (decode_header_data),
12254 (_dbus_message_loader_return_buffer):
12255 Set the header padding amount when loading a message.
12257 2003-02-16 Anders Carlsson <andersca@codefactory.se>
12259 * bus/dispatch.c: (send_one_message):
12260 Only send broadcast messages to registered connections.
12262 * dbus/dbus-message.c: (dbus_message_name_is):
12263 * dbus/dbus-message.h:
12264 New convenience function.
12266 * dbus/dbus-transport-debug.c: (do_reading):
12267 Only dispatch one message per run.
12269 * test/Makefile.am:
12270 * test/bus-test.c: (new_connection_callback), (die),
12271 (test_hello_client1_handler), (test_hello_client2_handler),
12272 (test_hello_replies), (main):
12274 * test/bus-test-loop.[ch]:
12277 2003-02-16 Havoc Pennington <hp@pobox.com>
12279 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12280 backward conditional
12282 2003-02-16 Alexander Larsson <alexl@redhat.com>
12284 * dbus/dbus-connection.c:
12285 Implement sent_message_with_reply. (with_reply_and block is still
12287 Made dispatch_message not lose message if OOM.
12289 * dbus/dbus-errors.h:
12290 Add NoReply error (for reply timeouts).
12292 2003-02-16 Alexander Larsson <alexl@redhat.com>
12294 * dbus/dbus-hash.c (_dbus_hash_table_unref):
12295 Actually free keys and values when destroying hashtable.
12297 2003-02-16 Anders Carlsson <andersca@codefactory.se>
12299 * dbus/dbus-auth.c: (client_try_next_mechanism):
12302 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12303 Return TRUE if there's no thread implementation around.
12305 * glib/dbus-gmain.c: (free_source),
12306 (dbus_connection_hookup_with_g_main):
12307 Make sure to remove the GSource when the connection is finalized.
12309 2003-02-16 Anders Carlsson <andersca@codefactory.se>
12311 * bus/dispatch.c: (bus_dispatch_message_handler):
12312 * dbus/dbus-errors.h:
12313 Return an error if someone tries to send a message to a service
12314 that doesn't exist.
12316 2003-02-16 Anders Carlsson <andersca@codefactory.se>
12318 * bus/activation.c: (load_directory), (bus_activation_init),
12319 (bus_activation_activate_service):
12320 * bus/activation.h:
12322 (bus_driver_handle_activate_service), (bus_driver_handle_message):
12323 More work on the activation handling.
12325 * dbus/dbus-errors.h:
12326 Add some error messages
12328 * dbus/dbus-message.c: (dbus_message_new_error_reply):
12329 * dbus/dbus-message.h:
12330 New function that creates an error message.
12332 * dbus/dbus-protocol.h:
12333 Add ACTIVATE_SERVER message.
12335 * dbus/dbus-server-unix.c: (unix_handle_watch),
12336 (_dbus_server_new_for_domain_socket):
12337 Call _dbus_fd_set_close_on_exec.
12339 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12340 (_dbus_spawn_async), (_dbus_disable_sigpipe),
12341 (_dbus_fd_set_close_on_exec):
12342 * dbus/dbus-sysdeps.h:
12343 Add _dbus_fd_set_close_on exec function. Also add function that checks
12344 that all open fds are set to close-on-exec and warns otherwise.
12346 * dbus/dbus-transport-unix.c:
12347 (_dbus_transport_new_for_domain_socket):
12348 Call _dbus_fd_set_close_on_exec.
12350 2003-02-16 Havoc Pennington <hp@pobox.com>
12352 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12353 allow people to avoid setting SIGPIPE to SIG_IGN
12354 (_dbus_connection_new_for_transport): disable SIGPIPE unless
12355 we've been asked not to
12357 2003-02-15 Anders Carlsson <andersca@codefactory.se>
12359 * dbus/dbus-list.c: (_dbus_list_append_link),
12360 (_dbus_list_prepend_link):
12361 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12365 2003-02-15 Anders Carlsson <andersca@codefactory.se>
12368 * bus/activation.c: (bus_activation_entry_free),
12369 (add_desktop_file_entry), (load_directory), (bus_activation_init):
12370 * bus/activation.h:
12371 * bus/main.c: (main):
12372 Add simple activation support, doesn't work yet though.
12374 2003-02-15 Zack Rusin <zack@kde.org>
12376 * qt/dbus-qthread.cpp: small casting fix
12378 2003-02-15 Anders Carlsson <andersca@codefactory.se>
12380 * dbus/dbus-errors.c: (dbus_set_error):
12381 * dbus/dbus-errors.h:
12382 Add a few errors and make dbus_set_error void.
12384 * dbus/dbus-sysdeps.c:
12385 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12386 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12387 * dbus/dbus-sysdeps.h:
12388 Add _dbus_spawn_async.
12390 * test/spawn-test.c: (main):
12391 Test for _dbus_spawn_async.
12393 2003-02-15 Anders Carlsson <andersca@codefactory.se>
12395 * dbus/dbus-internals.h:
12396 Fix build without tests.
12398 * dbus/dbus-list.c: (alloc_link):
12399 Fix a segfault when a malloc fails.
12401 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12402 (dbus_malloc0), (dbus_realloc):
12403 Add support for malloc debugging.
12405 2003-02-15 Alexander Larsson <alexl@redhat.com>
12407 * dbus/dbus-threads.c:
12408 * dbus/dbus-threads.h:
12409 Add condvars. Remove static mutext from API.
12410 Implement static mutexes by initializing them from threads_init.
12412 * glib/dbus-gthread.c:
12413 * qt/dbus-qthread.cpp:
12414 Update with the thread api changes.
12417 * dbus/dbus-list.c:
12418 * dbus/dbus-list.h:
12419 Turn StaticMutex into normal mutex + init function.
12420 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12421 _dbus_list_append_link, _dbus_list_prepend_link
12424 * dbus/dbus-sysdeps.c:
12425 * dbus/dbus-sysdeps.h:
12426 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12427 _dbus_atomic_dec. Only slow fallback implementation at the moment.
12429 * dbus/dbus-protocol.h:
12430 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12432 * dbus/dbus-message.c:
12433 Make ref/unref atomic.
12436 * dbus/dbus-connection-internal.h:
12437 * dbus/dbus-connection.c:
12438 * dbus/dbus-connection.h:
12440 Change _peek to _borrow,_return & _steal_borrowed.
12441 Change disconnect callback to event.
12442 Make dbus_connection_dispatch_messages reentrant.
12444 * dbus/dbus-transport.c:
12445 Don't ref the connection on calls to the transport
12448 * dbus/dbus-message-handler.c:
12451 * glib/dbus-gmain.c:
12452 Don't use peek_message anymore
12454 * test/Makefile.am:
12455 * test/debug-thread.c:
12456 * test/debug-thread.h:
12457 Simple thread implementation that asserts() on deadlocks in
12458 single-threaded code.
12461 (main) Call debug_threads_init.
12464 Use disconnect message instead of disconnect callback.
12466 * bus/connection.c:
12467 * bus/connection.h:
12468 Don't call dbus_connection_set_disconnect_function. Instead export
12469 bus_connection_disconnect.
12472 Call bus_connection_disconnect when we get a disconnected message.
12474 2003-02-15 Havoc Pennington <hp@pobox.com>
12476 * dbus/dbus-message.c (dbus_message_new): fool around with the
12479 2003-02-14 Havoc Pennington <hp@pobox.com>
12481 * dbus/dbus-mempool.c: fail if the debug functions so indicate
12483 * dbus/dbus-memory.c: fail if the debug functions indicate we
12486 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12487 (_dbus_decrement_fail_alloc_counter): debug functions to
12488 simulate memory allocation failures
12490 2003-02-14 Havoc Pennington <hp@pobox.com>
12492 * dbus/dbus-errors.h (struct DBusError): add a word of padding
12495 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12497 * bus/driver.c: (bus_driver_handle_hello):
12499 * bus/services.c: (bus_service_lookup):
12500 Reorder message sending so we get a more sane order.
12502 * test/bus-test.c: (message_handler):
12505 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12507 * bus/driver.c: (bus_driver_send_service_deleted),
12508 (bus_driver_send_service_created), (bus_driver_send_service_lost),
12509 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12510 (bus_driver_send_welcome_message),
12511 (bus_driver_handle_list_services),
12512 (bus_driver_handle_acquire_service),
12513 (bus_driver_handle_service_exists):
12514 * dbus/dbus-bus.c: (dbus_bus_register_client),
12515 (dbus_bus_acquire_service), (dbus_bus_service_exists):
12516 * dbus/dbus-errors.c: (dbus_result_to_string):
12517 * dbus/dbus-errors.h:
12518 * dbus/dbus-message.c: (dbus_message_append_args),
12519 (dbus_message_append_args_valist), (dbus_message_get_args),
12520 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12521 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12522 (dbus_message_iter_get_byte_array),
12523 (dbus_message_iter_get_string_array), (message_iter_test),
12524 (check_message_handling), (_dbus_message_test):
12525 * dbus/dbus-message.h:
12526 * test/bus-test.c: (main):
12527 Change fields to arguments in messages, so that they won't be
12528 confused with header fields.
12530 * glib/test-dbus-glib.c: (main):
12531 Remove append_fields from hello message.
12533 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12535 * dbus/dbus-errors.c:
12536 * dbus/dbus-message.c:
12537 * dbus/dbus-string.c:
12538 Documentation fixes.
12540 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12542 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12544 Implement support for timeouts in dbus-glib.
12546 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12548 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12549 * dbus/dbus-message.c: (process_test_subdir):
12550 * test/break-loader.c: (find_breaks_based_on):
12551 Plug some memory leaks.
12553 2003-02-13 Richard Hult <rhult@codefactory.se>
12555 * bus/main.c: Fix build.
12557 * dbus/dbus-errors.h:
12558 * dbus/dbus-errors.c: Fix copyright for Anders.
12560 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12565 * bus/connection.c: (bus_connection_foreach):
12568 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12569 (unescape_string), (new_section), (parse_section_start),
12570 (parse_key_value), (report_error), (bus_desktop_file_load),
12571 (bus_desktop_file_get_string):
12572 * bus/desktop-file.h:
12573 Use DBusError for error reporting.
12575 * bus/dispatch.c: (send_one_message),
12576 (bus_dispatch_message_handler):
12577 * bus/driver.c: (bus_driver_send_service_deleted),
12578 (bus_driver_send_service_created), (bus_driver_send_service_lost),
12579 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12580 (bus_driver_send_welcome_message),
12581 (bus_driver_handle_list_services),
12582 (bus_driver_handle_acquire_service),
12583 (bus_driver_handle_service_exists):
12584 * bus/loop.c: (bus_loop_run):
12586 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12588 * bus/utils.c: (bus_wait_for_memory):
12590 New files with general utility functions.
12592 * dbus/dbus-internals.h:
12593 Remove _DBUS_HANDLE_OOM.
12595 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12597 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12598 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12599 * dbus/dbus-errors.h:
12600 Add DBusError structure.
12602 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12604 * test/data/valid-messages/standard-acquire-service.message:
12605 * test/data/valid-messages/standard-hello.message:
12606 * test/data/valid-messages/standard-list-services.message:
12607 * test/data/valid-messages/standard-service-exists.message:
12608 Add some standard messages.
12610 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12612 * bus/driver.c: (bus_driver_send_welcome_message),
12613 (bus_driver_handle_list_services),
12614 (bus_driver_handle_acquire_service),
12615 (bus_driver_handle_service_exists), (bus_driver_handle_message):
12616 Update for API changes in libdbus.
12618 * dbus/dbus-message.c: (dbus_message_new_reply):
12619 * dbus/dbus-message.h:
12620 Remove the name argument. The spec states that replies shouldn't
12623 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12625 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12626 (report_error), (bus_desktop_file_load), (lookup_section),
12627 (lookup_line), (bus_desktop_file_get_raw),
12628 (bus_desktop_file_get_string):
12629 * bus/desktop-file.h:
12630 Some fixes, and new functions for getting a key value from a section.
12632 2003-02-13 Havoc Pennington <hp@pobox.com>
12634 * test/data/auth/fail-after-n-attempts.auth-script: new test
12636 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12639 2003-02-13 Havoc Pennington <hp@pobox.com>
12641 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12642 dbus_credentials_match were backward
12644 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12645 NO_CREDENTIALS and ROOT_CREDENTIALS
12647 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12648 into here. Never process more commands after we've reached an
12649 end state; store further data as unused bytes.
12651 * test/data/auth/*: add more auth tests
12653 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12654 command to match exact string and EXPECT_UNUSED to match unused
12657 * test/Makefile.am (dist-hook): fix to dist all the test stuff
12659 2003-02-12 Havoc Pennington <hp@pobox.com>
12661 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12662 \r off of popped lines
12664 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12667 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12670 2003-02-12 Havoc Pennington <hp@pobox.com>
12672 * dbus/Makefile.am: remove break-loader from the build, since it
12675 * configure.in: add --enable-gcov to turn on coverage profiling
12676 flags and disable optimization
12678 2003-02-10 Havoc Pennington <hp@pobox.com>
12680 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12681 initial cut at test framework for DBusAuth from laptop.
12682 Doesn't quite work yet but it compiles and I need to get
12683 it off the 266mhz laptop. ;-)
12685 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12686 fix a memleak in error case
12688 2003-02-12 Anders Carlsson <andersca@codefactory.se>
12691 * bus/desktop-file.c:
12692 * bus/desktop-file.h:
12693 Add a desktop file parser.
12695 2003-02-11 Zack Rusin <zack@kde.org>
12697 * qt/message.[h|cpp]: sample implementation
12698 of the KDE wrapper for DBusMessage
12700 2003-02-09 Zack Rusin <zack@kde.org>
12702 * test/bus-test.c: make_it_compile
12703 * doc/dbus-specification.sgml: minimal semantic fix
12705 2003-02-06 Anders Carlsson <andersca@codefactory.se>
12711 2003-02-06 Anders Carlsson <andersca@codefactory.se>
12713 * dbus/Makefile.am:
12714 * dbus/dbus-break-loader.c:
12715 * test/Makefile.am:
12716 * test/break-loader.c:
12717 Move dbus-break-loader to test/ and rename it to break-loader.
12719 2003-02-02 Havoc Pennington <hp@pobox.com>
12721 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12722 for code to manage cookies in your home directory
12724 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12726 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12727 to authenticate, then disconnect the client.
12729 2003-02-03 Alexander Larsson <alexl@redhat.com>
12731 * dbus/dbus-message.c (dbus_message_append_fields):
12734 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12736 * doc/dbus-specification.sgml:
12737 Update address format section.
12739 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12741 * test/Makefile.am:
12742 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12743 (message_handler), (new_connection_callback), (loop_quit),
12744 (loop_run), (main):
12747 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12749 * bus/driver.c: (bus_driver_handle_service_exists):
12750 Simplify the code a bit.
12752 * dbus/dbus-bus.c: (dbus_bus_service_exists):
12755 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12758 Add libdbus-daemon.la and link to it.
12760 2003-02-01 James Willcox <jwillcox@gnome.org>
12762 * bus/driver.c: (bus_driver_handle_own_service):
12763 Actually include the service reply code in the message.
12765 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12767 * bus/driver.c: (bus_driver_handle_service_exists):
12768 Don't unref the incoming message.
12770 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12772 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12774 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12776 * dbus/dbus-server.c: (dbus_server_listen):
12777 * dbus/dbus-transport.c: (_dbus_transport_open):
12778 ifdef out the calls to the debug transport and server.
12780 2003-02-02 Alexander Larsson <alexl@redhat.com>
12782 * dbus/dbus-watch.c (dbus_watch_get_flags):
12783 Add note in the docs that ERROR or HANGUP won't be returned
12784 and are assumed always on.
12786 * glib/dbus-gmain.c (add_watch):
12787 Always add IO_ERR | IO_HUP
12789 * dbus/dbus-message.h:
12790 Add semicolon after dbus_message_iter_get_string_array().
12791 Makes qt code build again
12793 2003-02-01 Anders Carlsson <andersca@codefactory.se>
12795 * bus/driver.c: (create_unique_client_name),
12796 (bus_driver_handle_hello):
12797 Don't take a name, just use a numeric id to identify
12800 * dbus/Makefile.am:
12801 * dbus/dbus-bus.c: (dbus_bus_register_client),
12802 (dbus_bus_acquire_service), (dbus_bus_service_exists):
12804 Add new convenience functions for communicating with the bus.
12806 * dbus/dbus-message.h:
12808 * dbus/dbus-protocol.h:
12811 2003-02-01 Alexander Larsson <alexl@redhat.com>
12813 * dbus/dbus-message.c (dbus_message_append_fields):
12814 Add some more doc comments.
12816 2003-02-01 Havoc Pennington <hp@pobox.com>
12818 * dbus/dbus-break-loader.c (randomly_modify_length): change
12819 a 4-byte value in the message as if it were a length
12821 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12822 execute bit on saved files
12824 2003-02-01 Havoc Pennington <hp@pobox.com>
12826 * dbus/dbus-break-loader.c (main): new program to find messages
12827 that break the loader.
12829 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12830 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12832 * dbus/dbus-string.c (_dbus_string_set_byte): new
12834 2003-01-31 Havoc Pennington <hp@pobox.com>
12836 * dbus/dbus-message.c: refactor the test code to be more general,
12837 in preparation for writing a "randomly permute test cases to
12838 try to break the loader" program.
12840 2003-01-31 Havoc Pennington <hp@pobox.com>
12842 * doc/dbus-specification.sgml: work on the specification
12844 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12845 the protocol version of the message.
12847 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12848 no longer specifies that.
12849 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12852 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12853 "break" for DBUS_TYPE_NIL, remove @todo
12855 2003-01-31 Havoc Pennington <hp@pobox.com>
12857 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12858 just set_is_error/get_is_error as this is a commonly-used
12859 function, and write docs.
12861 2003-01-31 Anders Carlsson <andersca@codefactory.se>
12863 * dbus/dbus-address.c: (dbus_address_entry_free):
12864 Free key and value lists.
12866 * dbus/dbus-internals.c: (_dbus_type_to_string):
12867 Add the types we didn't have.
12869 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12870 (_dbus_marshal_validate_arg):
12873 * dbus/dbus-message.c: (dbus_message_set_sender):
12874 Remove todo about being able to set sender to NULL.
12876 (dbus_message_set_is_error_reply),
12877 (dbus_message_get_is_error_reply):
12878 * dbus/dbus-message.h:
12881 * dbus/dbus-protocol.h:
12882 Add error reply flag.
12884 * test/data/valid-messages/opposite-endian.message:
12885 Add NIL type to test.
12887 2003-01-31 Havoc Pennington <hp@pobox.com>
12889 * doc/dbus-specification.sgml: fully specify the header. Add
12890 flags and major protocol version, and change header/body len to
12893 * dbus/dbus-message-builder.c (append_saved_length): append length
12896 * dbus/dbus-message.c (dbus_message_create_header): change header
12897 length and body length to unsigned. Add the new fields from the
12899 (_dbus_message_loader_return_buffer): unsigned header/body len
12901 2003-01-30 Havoc Pennington <hp@pobox.com>
12903 * dbus/dbus-auth.c: rework to use only REJECTED, no
12906 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12907 use REJECTED, suggested by Mark McLoughlin
12909 2003-01-30 Havoc Pennington <hp@pobox.com>
12911 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12912 a better way to report errors here. e.g. "unix address lacks
12913 path" or something. also "no such file" when the path doesn't
12916 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12918 (dbus_parse_address): add @todo about documenting address format,
12919 and allowing , and ; to be escaped
12921 2003-01-30 Anders Carlsson <andersca@codefactory.se>
12923 * dbus/Makefile.am:
12924 Add dbus-address.[ch]
12926 * dbus/dbus-address.c: (dbus_address_entry_free),
12927 (dbus_address_entries_free), (create_entry),
12928 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12929 (dbus_parse_address), (_dbus_address_test):
12930 * dbus/dbus-address.h:
12931 New files for dealing with address parsing.
12933 * dbus/dbus-connection.c:
12934 Document timeout functions.
12936 * dbus/dbus-message.c:
12937 Document dbus_message_new_from_message.
12939 * dbus/dbus-server-debug.c:
12942 * dbus/dbus-server.c: (dbus_server_listen):
12943 Parse address and use correct server implementation.
12945 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12946 * dbus/dbus-string.h:
12947 New function with test.
12949 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12950 * dbus/dbus-test.h:
12953 * dbus/dbus-transport-debug.c:
12956 * dbus/dbus-transport.c: (_dbus_transport_open):
12957 Parse address and use correct transport implementation.
12959 2003-01-30 Havoc Pennington <hp@pobox.com>
12961 * dbus/dbus-message.c: use message->byte_order instead of
12962 DBUS_COMPILER_BYTE_ORDER throughout.
12963 (dbus_message_create_header): pad header to align the
12964 start of the body of the message to 8-byte boundary
12966 * dbus/dbus-marshal.h: make all the demarshalers take const
12967 DBusString arguments.
12969 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12970 validate message args here, so we don't have to do slow validation
12971 later, and so we catch bad messages as they are incoming. Also add
12972 better checks on header_len and body_len. Also fill in
12973 message->byte_order
12975 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12976 implemented properly)
12977 (_dbus_string_validate_nul): new function to check all-nul
12979 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12980 get_arg_end_pos and remove all validation
12981 (_dbus_marshal_validate_arg): actually do validation here.
12983 2003-01-29 Havoc Pennington <hp@pobox.com>
12985 * dbus/dbus-message.c (check_message_handling): fix assertion
12986 failure on set_client_serial
12988 2003-01-28 Havoc Pennington <hp@pobox.com>
12990 * dbus/dbus-server-debug.c: Add doc section comments
12992 * dbus/dbus-transport-debug.c: add doc section comments
12994 2003-01-28 Havoc Pennington <hp@redhat.com>
12996 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12997 the reverse order from how I had it
12998 (_dbus_string_base64_encode): reverse encoding order. I was
12999 basically byteswapping everything during encoding.
13001 2003-01-28 Anders Carlsson <andersca@codefactory.se>
13003 * dbus/dbus-connection-internal.h:
13004 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13005 (_dbus_connection_remove_timeout):
13006 Add functions for adding and removing timeouts.
13008 * dbus/dbus-message.c: (dbus_message_new_from_message):
13009 Add new function that takes a message and creates an exact
13010 copy of it, but with the refcount set to 1.
13011 (check_message_handling):
13014 * dbus/dbus-server-protected.h:
13015 * dbus/dbus-server.c: (_dbus_server_init_base),
13016 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13017 (dbus_server_set_timeout_functions):
13018 (_dbus_server_remove_timeout):
13019 New functions so that a server can add and remove timeouts.
13021 (dbus_server_listen):
13022 Add commented out call to dbus_server_debug_new.
13024 * dbus/dbus-timeout.c: (_dbus_timeout_new):
13025 Actually set the handler, doh.
13027 * dbus/dbus-transport.c: (_dbus_transport_open):
13028 Add commented out call to dbus_transport_debug_client_new.
13030 * dbus/Makefile.am:
13031 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13033 2003-01-28 Havoc Pennington <hp@pobox.com>
13035 * dbus/dbus-message.c (check_message_handling): function to check
13036 on the loaded message, iterates over it etc.
13038 2003-01-28 Havoc Pennington <hp@pobox.com>
13040 * test/Makefile.am (dist-hook): fix make distdir
13042 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13044 2003-01-27 Havoc Pennington <hp@pobox.com>
13046 * dbus/dbus-mempool.c (time_for_size): replace printf with
13049 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13050 empty lines; fix the SAVE_LENGTH stuff to be
13051 START_LENGTH/END_LENGTH so it actually works; couple other
13054 * test/Makefile.am (dist-hook): add dist-hook for .message files
13056 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13057 can be constant or locked.
13058 (_dbus_string_free): allow freeing a const string as
13059 documented/intended
13061 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
13063 * dbus/dbus-test-main.c (main): take an argument which is the
13064 directory containing test data
13066 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13067 argument to this and load all the messages in test/data/
13068 checking that they can be loaded or not loaded as appropriate.
13070 2003-01-27 Anders Carlsson <andersca@codefactory.se>
13072 * bus/dispatch.c: (bus_dispatch_message_handler):
13073 Dispatch messages sent to services.
13075 * bus/driver.c: (bus_driver_send_service_deleted),
13076 (bus_driver_send_service_created), (bus_driver_send_service_lost),
13077 (bus_driver_send_service_acquired):
13078 Add helper functions for sending service related messages.
13080 (bus_driver_send_welcome_message):
13081 Send HELLO_REPLY instead of WELCOME.
13083 (bus_driver_handle_list_services):
13084 Send LIST_SERVICES_REPLY instead of SERVICES.
13086 (bus_driver_handle_own_service),
13087 (bus_driver_handle_service_exists):
13088 New message handlers.
13090 (bus_driver_handle_message):
13091 Invoke new message handlers.
13093 (bus_driver_remove_connection):
13094 Don't remove any services here since that's done automatically
13095 by bus_service_remove_owner now.
13098 New function signatures.
13100 * bus/services.c: (bus_service_add_owner):
13101 Send ServiceAcquired message if we're the only primary owner.
13103 (bus_service_remove_owner):
13104 Send ServiceAcquired/ServiceLost messages.
13106 (bus_service_set_prohibit_replacement),
13107 (bus_service_get_prohibit_replacement):
13108 Functions for setting prohibit replacement.
13110 (bus_service_has_owner):
13111 New function that checks if a connection is in the owner queue of
13115 Add new function signatures.
13117 * dbus/dbus-list.c: (_dbus_list_test):
13118 Add tests for _dbus_list_remove_last and traversing the list backwards.
13120 * dbus/dbus-list.h:
13121 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13122 go any further, so return NULL then.
13124 * dbus/dbus-protocol.h:
13125 Add new messages, service flags and service replies.
13127 2003-01-26 Havoc Pennington <hp@pobox.com>
13129 * dbus/dbus-message-builder.c: implement, completely untested.
13131 * test/data/*: add data to be used in testing.
13132 ".message" files are our simple loadable text format.
13133 ".message-raw" will be binary dumps of messages.
13135 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13137 2003-01-26 Havoc Pennington <hp@pobox.com>
13139 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13141 * dbus/dbus-errors.c (dbus_result_to_string): add
13144 * dbus/dbus-message-builder.c: new file, will contain code to load
13145 up messages from files. Not implemented yet.
13147 2003-01-26 Havoc Pennington <hp@pobox.com>
13149 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13150 the sender by setting to NULL
13152 2003-01-26 Havoc Pennington <hp@pobox.com>
13154 The unit tests pass, but otherwise untested. If it breaks, the
13155 tests should have been better. ;-)
13157 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13160 * dbus/dbus-message.c: redo everything so we maintain
13161 message->header as the only copy of the various fields.
13162 This avoids the possibility of out-of-memory in some cases,
13163 for example dbus_message_lock() can't run out of memory anymore,
13164 and avoids extra copying. Figured I may as well go ahead and do
13165 this since it was busted for dbus_message_lock to not return
13166 failure on OOM, and dbus_message_write_header was totally
13167 unchecked for OOM. Also fixed some random other bugs.
13169 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13170 that strings are nul-terminated. Also, end_pos can be equal
13171 to string length just not greater than, I think.
13172 (_dbus_marshal_set_int32): new function
13173 (_dbus_marshal_set_uint32): new function
13174 (_dbus_marshal_set_string): new function
13176 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13177 a warning, init timeout_list to NULL
13178 (dbus_connection_send_message): don't use uninitialized variable
13181 * dbus/dbus-string.c (_dbus_string_replace_len): new function
13183 2003-01-26 Anders Carlsson <andersca@codefactory.se>
13185 * bus/driver.c: (bus_driver_handle_hello),
13186 (bus_driver_send_welcome_message):
13189 2003-01-26 Anders Carlsson <andersca@codefactory.se>
13191 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13192 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13193 (dbus_connection_unref):
13194 * dbus/dbus-marshal.c: (_dbus_marshal_test):
13195 * dbus/dbus-message.c: (dbus_message_unref),
13198 (dbus_message_get_fields):
13199 Remove debugging printout.
13201 (_dbus_message_loader_return_buffer):
13202 Don't store the header string.
13204 (_dbus_message_test):
13207 2003-01-26 Richard Hult <rhult@codefactory.se>
13209 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13210 the file descriptor list, since it can change under us.
13212 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13214 * glib/dbus-gmain.c: (dbus_connection_prepare),
13215 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
13216 (remove_watch), (dbus_connection_hookup_with_g_main):
13217 Rewrite the glib handling to use its own GSource instead of a
13218 GIOChannel so we can catch messages put in the queue while waiting
13221 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13224 * bus/connection.c: (connection_disconnect_handler),
13225 (connection_watch_callback), (bus_connection_setup):
13226 * bus/dispatch.c: (send_one_message),
13227 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
13228 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
13230 * bus/driver.c: (bus_driver_send_service_deleted),
13231 (bus_driver_send_service_created), (bus_driver_handle_hello),
13232 (bus_driver_send_welcome_message),
13233 (bus_driver_handle_list_services), (bus_driver_remove_connection),
13234 (bus_driver_handle_message):
13236 Refactor code, put the message dispatching in its own file. Use
13237 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
13240 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13242 * dbus/dbus-internals.h:
13243 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13245 * dbus/dbus-message.c: (dbus_message_get_sender):
13246 * dbus/dbus-message.h:
13247 Implement dbus_message_get_sender.
13249 * dbus/dbus-protocol.h:
13250 Add message and service defines.
13252 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13254 * dbus/dbus-connection.c: (dbus_connection_send_message):
13255 * dbus/dbus-message-internal.h:
13256 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13257 (dbus_message_write_header):
13258 Remove _dbus_messag_unlock and don't set the client serial on a
13259 message if one already exists.
13261 2003-01-24 Havoc Pennington <hp@pobox.com>
13263 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13266 * bus/driver.c (bus_driver_handle_list_services): fix a leak
13269 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13271 * dbus/dbus-list.c: (alloc_link), (free_link):
13272 Use a memory pool for the links.
13274 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13276 * bus/connection.c: (bus_connection_foreach):
13277 * bus/connection.h:
13278 Add new bus_connection_foreach function.
13280 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13281 Add function that broadcasts a message to all clients.
13283 (bus_driver_send_service_created), (bus_driver_handle_hello),
13284 (bus_driver_send_welcome_message),
13285 (bus_driver_handle_list_services), (bus_driver_message_handler):
13286 Implement functions that take care of listing services, and notifying
13287 clients when new services are created.
13289 * bus/services.c: (bus_services_list):
13291 Add new function that returns an array of strings with the currently
13292 registered services.
13294 * glib/dbus-glib.h:
13295 * glib/dbus-gmain.c:
13296 Update copyright year.
13298 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13300 * dbus/dbus-connection.c: (dbus_connection_send_message):
13301 Unlock the message in case it was sent earlier.
13303 (dbus_connection_send_message_with_reply_and_block):
13304 Remove the reply message from the list.
13306 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13307 Set array_len and new_pos correctly.
13309 (_dbus_marshal_test):
13310 Remove debug output.
13312 * dbus/dbus-message-internal.h:
13313 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13314 New function that returns the reply serial.
13316 (_dbus_message_unlock):
13317 New function that unlocks a message and resets its header.
13319 (dbus_message_append_string_array),
13320 (dbus_message_get_fields_valist),
13321 (dbus_message_iter_get_field_type),
13322 (dbus_message_iter_get_string_array),
13323 (dbus_message_get_fields),
13324 (dbus_message_append_fields_valist):
13325 Handle string arrays.
13327 (dbus_message_set_sender):
13328 Make this function public since the bus daemon needs it.
13330 (decode_header_data):
13331 Set the reply serial to -1 initially.
13333 * dbus/dbus-message.h:
13334 Add dbus_message_set_sender.
13336 2003-01-24 Havoc Pennington <hp@pobox.com>
13338 * doc/dbus-specification.sgml: add some stuff
13340 2003-01-22 Havoc Pennington <hp@pobox.com>
13342 * doc/dbus-specification.sgml: Start to document the protocol.
13344 2003-01-22 Havoc Pennington <hp@pobox.com>
13346 * dbus/dbus-connection.c
13347 (dbus_connection_send_message_with_reply_and_block): add some @todo
13349 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13351 2003-01-21 Havoc Pennington <hp@pobox.com>
13353 (patch untested because can't compile)
13355 * bus/driver.c (create_unique_client_name): make this function
13356 never recycle client names. Also, caller should initialize
13359 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13361 2003-01-21 Anders Carlsson <andersca@codefactory.se>
13363 * dbus/dbus-marshal.c: (_dbus_marshal_double),
13364 (_dbus_marshal_int32), (_dbus_marshal_uint32),
13365 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13366 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13367 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13368 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13369 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13370 * dbus/dbus-marshal.h:
13371 * dbus/dbus-protocol.h:
13372 Add support for marshalling and demarshalling integer, double
13375 2003-01-21 Anders Carlsson <andersca@codefactory.se>
13380 * bus/connection.c: (connection_disconnect_handler):
13381 Remove the connection from the bus driver's list.
13383 (connection_watch_callback): Dispatch messages.
13385 (free_connection_data): Free connection name.
13387 (bus_connection_setup): Add connection to the bus driver's list.
13388 (bus_connection_remove_owned_service):
13389 (bus_connection_set_name), (bus_connection_get_name):
13390 Add functions for setting and getting the connection's name.
13392 * bus/connection.h:
13393 Add function headers.
13395 * bus/driver.c: (create_unique_client_name),
13396 (bus_driver_handle_hello_message),
13397 (bus_driver_send_welcome_message), (bus_driver_message_handler),
13398 (bus_driver_add_connection), (bus_driver_remove_connection):
13401 * bus/services.c: (bus_service_free):
13403 New file that handles communication and registreation with the bus
13406 2003-01-21 Anders Carlsson <andersca@codefactory.se>
13408 * dbus/dbus-connection.c: (dbus_connection_send_message):
13409 Add a new client_serial parameter.
13411 (dbus_connection_send_message_with_reply):
13412 Remove a @todo since we've implemented the blocking function.
13414 (dbus_connection_send_message_with_reply_and_block):
13415 New function that sends a message and waits for a reply and
13416 then returns the reply.
13418 * dbus/dbus-connection.h:
13421 * dbus/dbus-errors.c: (dbus_result_to_string):
13422 * dbus/dbus-errors.h:
13423 Add new DBUS_RESULT.
13425 * dbus/dbus-message-internal.h:
13426 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13427 (_dbus_message_set_sender), (dbus_message_write_header),
13428 (dbus_message_new_reply), (decode_header_data),
13429 (_dbus_message_loader_return_buffer), (_dbus_message_test):
13430 * dbus/dbus-message.h:
13431 Add new functions that set the reply serial and sender.
13432 Also marshal and demarshal them correctly and add test.
13434 * dbus/dbus-protocol.h:
13435 Add new DBUS_MESSAGE_TYPE_SENDER.
13437 * glib/dbus-glib.h:
13438 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13439 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13440 (dbus_connection_hookup_with_g_main):
13441 * glib/test-dbus-glib.c: (main):
13442 Rewrite to use GIOChannel and remove the GSource crack.
13444 * test/echo-client.c: (main):
13445 * test/watch.c: (check_messages):
13446 Update for changed APIs
13448 2003-01-19 Anders Carlsson <andersca@codefactory.se>
13450 * dbus/Makefile.am: Add dbus-timeout.[cħ]
13452 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13453 Create a DBusTimeoutList.
13454 (dbus_connection_set_timeout_functions): Add new function to
13455 set timeout callbacks
13457 * dbus/dbus-connection.h: Add public DBusTimeout API.
13459 * dbus/dbus-message.c: (dbus_message_get_service):
13460 * dbus/dbus-message.h: New function.
13462 * dbus/dbus-server.c: Fix small doc typo.
13464 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13466 2003-01-19 Anders Carlsson <andersca@codefactory.se>
13468 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13469 of the string, just as long as specified.
13471 2003-01-19 Havoc Pennington <hp@pobox.com>
13473 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13476 * dbus/dbus-server.c (dbus_server_set_max_connections)
13477 (dbus_server_get_max_connections, dbus_server_get_n_connections):
13478 keep track of current number of connections, and add API for
13479 setting a max (but haven't implemented enforcing the max yet)
13481 2003-01-18 Havoc Pennington <hp@pobox.com>
13483 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13484 reading/writing if read_watch != NULL or write_watch != NULL.
13486 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13487 the message loader code to actually load message->header and
13488 message->body into the newly-created message.
13490 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13493 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13494 (dbus_connection_get_max_message_size)
13495 (dbus_connection_set_max_live_messages_size)
13496 (dbus_connection_get_max_live_messages_size): implement some
13497 resource limitation functions
13499 * dbus/dbus-resources.c: new file implementing some of the
13500 resource limits stuff
13502 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13503 missing docs, add @todo to handle OOM etc.
13505 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13508 2003-01-18 Havoc Pennington <hp@pobox.com>
13510 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13511 connection if it hasn't been already.
13513 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13514 replace with DisconnectFunction.
13516 2003-01-18 Havoc Pennington <hp@pobox.com>
13518 Building --disable-verbose-mode --disable-asserts --disable-tests
13519 cuts the library from 112K to 45K or so
13521 * configure.in: check for varargs macro support,
13522 add --enable-verbose-mode, --enable-asserts.
13524 * dbus/dbus-internals.h (_dbus_assert): support
13525 DBUS_DISABLE_ASSERT
13526 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13528 2003-01-18 Havoc Pennington <hp@pobox.com>
13530 * dbus/dbus-test.c: include config.h so that tests actually run
13532 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13533 so the failure mode when that assumption fails will be plenty
13536 2003-01-18 Havoc Pennington <hp@pobox.com>
13538 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13540 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13543 * test/Makefile.am: don't use special variable "TESTS" for echo-*
13544 since we don't want to use those in make check
13546 2003-01-15 Havoc Pennington <hp@redhat.com>
13552 2003-01-15 Havoc Pennington <hp@redhat.com>
13554 * test/Makefile.am: fix so that test source code ends up in the
13555 distribution on make distcheck
13557 2003-01-15 Havoc Pennington <hp@redhat.com>
13563 2003-01-15 Havoc Pennington <hp@redhat.com>
13565 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13566 fix build when --disable-tests
13568 * Makefile.am (EXTRA_DIST): put HACKING in here
13570 * HACKING: document procedure for making a tarball release.
13572 2003-01-14 Anders Carlsson <andersca@codefactory.se>
13574 * bus/connection.c: (connection_error_handler),
13575 (bus_connection_setup):
13576 * bus/main.c: (main):
13577 Make sure that the DBusConnectionData struct is NULLed
13578 out to prevent a segfault.
13580 * dbus/dbus-errors.c: (dbus_result_to_string):
13581 * dbus/dbus-errors.h:
13582 * dbus/dbus-message.c: (dbus_message_get_fields),
13583 (dbus_message_get_fields_valist), (_dbus_message_test):
13584 * dbus/dbus-message.h:
13585 Make dbus_message_get_fields return a result code so we can
13586 track invalid fields as well as oom.
13588 2003-01-11 Havoc Pennington <hp@pobox.com>
13590 * configure.in: change --enable-test/--enable-ansi action-if-given
13591 to enable_foo=$enableval instead of enable_foo=yes
13593 2003-01-08 Havoc Pennington <hp@pobox.com>
13595 * dbus/dbus-string.c (_dbus_string_align_length): new function
13597 * dbus/dbus-test-main.c: move main() for test app here
13599 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13600 symbol to run tests, because dbus-test isn't in the main
13603 Code review nitpicks.
13605 * dbus/dbus-message.c (dbus_message_write_header): add newlines
13606 for people with narrow emacs ;-). Assert client_serial was filled
13607 in. Assert message->name != NULL.
13608 (dbus_message_append_fields): have "first_field_type" arg separate
13609 from va list, needed for C++ binding that also uses varargs IIRC
13610 and helps with type safety
13611 (dbus_message_new): add @todo about using DBusString to store
13612 service/name internally
13613 (dbus_message_new): don't leak ->service and ->name on OOM later
13615 (dbus_message_unref): free the service name
13616 (dbus_message_get_fields): same change to varargs
13617 i.e. first_field_type
13618 (_dbus_message_loader_return_buffer): assert that the message data
13619 is aligned (if not it's a bug in our code). Put in verbose griping
13620 about why we set corrupted = TRUE.
13621 (decode_header_data): add FIXME that char* is evil. Was going to
13622 add FIXME about evil locale-specific string.h strncmp, but just
13623 switched to wacky string-as-uint32 optimization. Move check for
13624 "no room for field name" above get_const_data_len() to avoid
13625 assertion failure in get_const_data_len if we have trailing 2
13626 bytes or the like. Check for service and name fields being
13627 provided twice. Don't leak service/name on error. Require field
13628 names to be aligned to 4 bytes.
13630 * dbus/dbus-marshal.c: move byte swap stuff to header
13631 (_dbus_pack_int32): uscore-prefix
13632 (_dbus_unpack_int32): uscore-prefix
13633 (_dbus_unpack_uint32): export
13634 (_dbus_demarshal_string): add @todo complaining about use of
13636 (_dbus_marshal_get_field_end_pos): add @todo about bad error
13637 handling allowing corrupt data to go unchecked
13639 2003-01-08 Havoc Pennington <hp@redhat.com>
13641 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13642 to the select() as needed for authentication. (should be using
13643 _dbus_poll() not select, but for another day)
13645 * dbus/dbus.h: include dbus/dbus-protocol.h
13647 2003-01-08 Anders Carlsson <andersca@codefactory.se>
13649 * dbus/Makefile.am (dbusinclude_HEADERS): Install
13652 2003-01-08 Anders Carlsson <andersca@codefactory.se>
13654 * dbus/dbus-internals.c: (_dbus_type_to_string):
13655 New function that returns a string describing a type.
13657 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13658 * dbus/dbus-marshal.h:
13659 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13660 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13661 (dbus_message_iter_get_byte_array):
13662 * dbus/dbus-message.h:
13663 Add new convenience functions for appending and getting message fields.
13664 Also add demarshalling routines for byte arrays.
13666 2003-01-07 Anders Carlsson <andersca@codefactory.se>
13668 * dbus/dbus-connection-internal.h:
13669 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13670 (_dbus_connection_get_next_client_serial),
13671 (dbus_connection_send_message):
13672 * dbus/dbus-internals.h:
13673 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13674 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13675 (_dbus_marshal_uint32), (_dbus_demarshal_double),
13676 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13677 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13678 (_dbus_verbose_bytes), (_dbus_marshal_test):
13679 * dbus/dbus-marshal.h:
13680 * dbus/dbus-message-internal.h:
13681 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13682 (dbus_message_write_header), (_dbus_message_lock),
13683 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13684 (dbus_message_get_name), (dbus_message_append_int32),
13685 (dbus_message_append_uint32), (dbus_message_append_double),
13686 (dbus_message_append_string), (dbus_message_append_byte_array),
13687 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13688 (dbus_message_iter_unref), (dbus_message_iter_has_next),
13689 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13690 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13691 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13692 (decode_header_data), (_dbus_message_loader_return_buffer),
13693 (message_iter_test), (_dbus_message_test):
13694 * dbus/dbus-message.h:
13695 * dbus/dbus-protocol.h:
13696 * dbus/dbus-test.c: (main):
13697 * dbus/dbus-test.h:
13698 * glib/test-dbus-glib.c: (message_handler), (main):
13699 * test/echo-client.c: (main):
13700 * test/watch.c: (check_messages):
13701 Make messages sendable and receivable for real.
13703 2003-01-07 Anders Carlsson <andersca@codefactory.se>
13705 * dbus/dbus-marshal.c: (_dbus_marshal_double),
13706 (_dbus_marshal_string), (_dbus_marshal_byte_array):
13707 * dbus/dbus-message.c: (dbus_message_append_int32),
13708 (dbus_message_append_uint32), (dbus_message_append_double),
13709 (dbus_message_append_string), (dbus_message_append_byte_array):
13710 Handle OOM restoration.
13712 2003-01-07 Anders Carlsson <andersca@codefactory.se>
13714 * dbus/dbus-marshal.c: (_dbus_marshal_string),
13715 (_dbus_demarshal_string), (_dbus_marshal_test):
13716 * dbus/dbus-marshal.h:
13717 * dbus/dbus-message.c: (dbus_message_get_name),
13718 Document these functions.
13720 (dbus_message_append_int32), (dbus_message_append_uint32),
13721 (dbus_message_append_double), (dbus_message_append_string),
13722 (dbus_message_append_byte_array):
13723 * dbus/dbus-message.h:
13724 Add functions for adding message fields of different types.
13726 * dbus/dbus-protocol.h:
13727 Add the different types.
13729 2003-01-05 Havoc Pennington <hp@pobox.com>
13731 * bus/connection.c: implement routines for handling connections,
13732 first thing is keeping a list of owned services on each connection
13733 and setting up watches etc.
13735 * bus/services.c: implement a mapping from service names to lists
13738 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13740 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13741 to use static mutexes for global data
13743 * dbus/dbus-connection.c (dbus_connection_set_data): add new
13744 collection of functions to set/get application-specific data
13745 on the DBusConnection.
13747 2003-01-04 Havoc Pennington <hp@pobox.com>
13749 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13750 (_dbus_poll): new function
13752 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13755 * bus/loop.c: initial code for the daemon main loop
13757 2003-01-04 Havoc Pennington <hp@pobox.com>
13759 * test/watch.c (error_handler): make it safe if the error handler
13760 is called multiple times (if we s/error handler/disconnect
13761 handler/ we should just guarantee it's called only once)
13763 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13764 error handler on disconnect (it's quite possible we should
13765 just change the error handler to a "disconnect handler," I'm
13766 not sure we have any other meaningful errors)
13768 * configure.in: check for getpwnam_r
13770 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13771 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13772 mechanism as in SASL spec, using socket credentials
13774 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13775 (_dbus_send_credentials_unix_socket): new function
13777 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13779 (_dbus_write): only check errno if <0 returned
13780 (_dbus_write_two): ditto
13782 2003-01-02 Anders Carlsson <andersca@codefactory.se>
13784 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13785 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13786 (_dbus_marshal_test):
13787 * dbus/dbus-marshal.h:
13788 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13789 to _dbus_marshal_utf8_string. Also fix some tests.
13791 2002-12-28 Harri Porten <porten@kde.org>
13793 * configure.in: added check for C++ compiler and a very cheesy
13794 check for the Qt integration
13796 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13798 * qt/Makefile.am: added
13800 * qt/.cvsignore: added
13802 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13803 latter, added #ifdef QT_THREAD_SUPPORT guard.
13805 * dbus/Makefile.am: added missing headers for make dist
13807 2002-12-28 Kristian Rietveld <kris@gtk.org>
13809 * dbus/Makefile.am: fixup export-symbols-regex.
13811 2002-12-27 Anders Carlsson <andersca@codefactory.se>
13813 * acinclude.m4: Add this file and put the
13814 PKG_CHECK_MODULE macro in it.
13816 2002-12-27 Anders Carlsson <andersca@codefactory.se>
13818 * dbus/dbus-marshal.c: (_dbus_marshal_string),
13819 (_dbus_demarshal_double), (_dbus_demarshal_int32),
13820 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13821 (_dbus_marshal_test):
13822 Make the demarshalling routines align the pos argument.
13823 Add string marshalling tests and fix the obvious bugs
13826 2002-12-26 Havoc Pennington <hp@pobox.com>
13828 * dbus/dbus-auth.c: fixes fixes fixes
13830 * dbus/dbus-transport-unix.c: wire up support for
13831 encoding/decoding data on the wire
13833 * dbus/dbus-auth.c (_dbus_auth_encode_data)
13834 (_dbus_auth_decode_data): append to target string
13835 instead of nuking it.
13837 2002-12-26 Havoc Pennington <hp@pobox.com>
13839 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13840 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13843 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13844 avoid swap_bytes() overhead (ignoring possible assembly stuff for
13845 now). Main point is because I wanted unpack_uint32 to implement
13846 _dbus_verbose_bytes
13847 (_dbus_verbose_bytes): new function
13849 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13851 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13852 mechanism to handle a corrupt message stream
13853 (_dbus_message_loader_new): fix preallocation to only prealloc,
13856 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13857 (_dbus_string_test): enhance tests for copy/move and fix the
13860 * dbus/dbus-transport-unix.c: Hold references in more places to
13861 avoid reentrancy problems
13863 * dbus/dbus-transport.c: ditto
13865 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13866 leak reference count in no-message case
13868 * test/watch.c (do_mainloop): handle adding/removing watches
13869 during iteration over the watches. Also, ref the connection/server
13870 stored on a watch, so we don't try to mangle a destroyed one.
13872 * dbus/dbus-transport-unix.c (do_authentication): perform
13875 * dbus/dbus-auth.c (get_state): add a state
13876 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13877 (_dbus_auth_get_unused_bytes): append the unused bytes
13878 to the passed in string, rather than prepend
13880 * dbus/dbus-transport.c (_dbus_transport_init_base): create
13881 the auth conversation DBusAuth
13883 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13884 (_dbus_transport_new_for_domain_socket): when creating a
13885 transport, pass in whether it's a client-side or server-side
13886 transport so we know which DBusAuth to create
13888 2002-12-03 Havoc Pennington <hp@pobox.com>
13890 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13891 _after_ finalizing the derived members
13892 (unix_connection_set): unref watch if we fail to add it
13894 * dbus/dbus-connection.c (dbus_connection_unref): delete the
13895 transport first, so that the connection owned by the
13896 transport will be valid as the transport finalizes.
13898 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13899 if necessary, and remove watches from the connection.
13901 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13903 2002-12-26 Anders Carlsson <andersca@codefactory.se>
13905 * dbus/dbus-marshal.c: (_dbus_marshal_string),
13906 (_dbus_demarshal_double), (_dbus_demarshal_int32),
13907 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13908 (_dbus_marshal_test):
13909 * dbus/dbus-marshal.h:
13910 Add string marshal functions and have the demarshal functions
13911 return the new position.
13913 2002-12-25 Havoc Pennington <hp@pobox.com>
13915 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13916 it is a simple protocol that just maps directly to SASL.
13918 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13919 initial implementation, not actually used yet.
13921 * dbus/dbus-string.c (_dbus_string_find): new function
13922 (_dbus_string_equal): new function
13923 (_dbus_string_base64_encode): new function
13924 (_dbus_string_base64_decode): new function
13926 2002-12-25 Anders Carlsson <andersca@codefactory.se>
13928 * dbus/Makefile.am:
13929 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13930 (_dbus_marshal_int32), (_dbus_marshal_uint32),
13931 (_dbus_demarshal_double), (_dbus_demarshal_int32),
13932 (_dbus_demarshal_uint32), (_dbus_marshal_test):
13933 * dbus/dbus-marshal.h:
13934 * dbus/dbus-protocol.h:
13935 * dbus/dbus-test.c: (main):
13936 * dbus/dbus-test.h:
13937 Add un-optimized marshalling/demarshalling routines.
13939 2002-12-25 Harri Porten <porten@kde.org>
13941 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13943 2002-12-24 Zack Rusin <zack@kde.org>
13945 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13946 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13949 2002-12-24 Havoc Pennington <hp@pobox.com>
13951 * glib/dbus-gthread.c: fix include
13953 * glib/dbus-glib.h: rename DBusMessageHandler for now.
13954 I think glib API needs to change, though, as you don't
13955 want to use DBusMessageFunction, you want to use the
13956 DBusMessageHandler object. Probably
13957 dbus_connection_open_with_g_main_loop()
13958 and dbus_connection_setup_g_main_loop() or something like that
13959 (but think of better names...) that just create a connection
13960 that has watch/timeout functions etc. already set up.
13962 * dbus/dbus-connection.c
13963 (dbus_connection_send_message_with_reply): new function just to
13964 show how the message handler helps us deal with replies.
13966 * dbus/dbus-list.c (_dbus_list_remove_last): new function
13968 * dbus/dbus-string.c (_dbus_string_test): free a string that
13971 * dbus/dbus-hash.c: use memory pools for the hash entries
13972 (rebuild_table): be more paranoid about overflow, and
13973 shrink table when we can
13974 (_dbus_hash_test): reduce number of sprintfs and write
13975 valid C89. Add tests for case where we grow and then
13976 shrink the hash table.
13978 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13980 * dbus/dbus-connection.c (dbus_connection_register_handler)
13981 (dbus_connection_unregister_handler): new functions
13983 * dbus/dbus-message.c (dbus_message_get_name): new
13985 * dbus/dbus-list.c: fix docs typo
13987 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13988 an object representing a handler for messages.
13990 2002-12-16 Anders Carlsson <andersca@codefactory.se>
13992 * glib/dbus-glib.h:
13993 * glib/dbus-gthread.c: (dbus_gthread_init):
13994 Don't use the gdbus prefix for public functions.
13996 2002-12-16 Anders Carlsson <andersca@codefactory.se>
14000 Add GLib checks and fixup .pc files
14002 * glib/Makefile.am:
14003 * glib/dbus-glib.h:
14004 * glib/dbus-gmain.c: (gdbus_connection_prepare),
14005 (gdbus_connection_check), (gdbus_connection_dispatch),
14006 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14007 (dbus_connection_gsource_new):
14008 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14009 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14010 * glib/test-dbus-glib.c: (message_handler), (main):
14013 2002-12-15 Harri Porten <porten@kde.org>
14015 * autogen.sh: check for libtoolize before attempting to use it
14017 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14020 * .cvsignore: ignore more stamp files
14022 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14024 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14025 without make install.
14027 2002-12-15 Havoc Pennington <hp@pobox.com>
14029 * dbus/dbus-threads.c: add thread stubs that a higher library
14030 layer can fill in. e.g. the GLib wrapper might fill them in with
14031 GThread stuff. We still need to use this thread API to
14032 thread-safe-ize the library.
14034 2002-12-12 Havoc Pennington <hp@pobox.com>
14036 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14037 below new interfaces and include fewer system headers.
14039 * dbus/dbus-sysdeps.c (_dbus_read): new function
14040 (_dbus_write): new function
14041 (_dbus_write_two): new function
14042 (_dbus_connect_unix_socket): new function
14043 (_dbus_listen_unix_socket): new function
14045 * dbus/dbus-message-internal.h: change interfaces to use
14048 2002-12-11 Havoc Pennington <hp@pobox.com>
14050 * dbus/dbus-types.h: add dbus_unichar
14052 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14054 * dbus/dbus-connection.c (dbus_connection_send_message): return
14057 * dbus/dbus-transport.c: include dbus-watch.h
14059 * dbus/dbus-connection.c: include dbus-message-internal.h
14061 * HACKING: add file with coding guidelines stuff.
14063 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
14064 handling here, for security purposes (as in vsftpd). Not actually
14065 using this class yet.
14067 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14068 system/libc usage here, as in vsftpd, for ease of auditing (and
14069 should also simplify portability). Haven't actually moved all the
14070 system/libc usage into here yet.
14072 2002-11-25 Havoc Pennington <hp@pobox.com>
14074 * dbus/dbus-internals.c (_dbus_verbose): fix to not
14075 always print the first verbose message.
14077 2002-11-24 Havoc Pennington <hp@pobox.com>
14079 * test/echo-client.c, test/echo-server.c: cheesy test
14082 * configure.in (AC_CHECK_FUNCS): check for writev
14084 * dbus/dbus-message.c (_dbus_message_get_network_data): new
14087 * dbus/dbus-list.c (_dbus_list_foreach): new function
14089 * dbus/dbus-internals.c (_dbus_verbose): new function
14091 * dbus/dbus-server.c, dbus/dbus-server.h: public object
14092 representing a server that listens for connections.
14094 * dbus/.cvsignore: create
14096 * dbus/dbus-errors.h, dbus/dbus-errors.c:
14097 public API for reporting errors
14099 * dbus/dbus-connection.h, dbus/dbus-connection.c:
14100 public object representing a connection that
14101 sends/receives messages. (Same object used for
14102 both client and server.)
14104 * dbus/dbus-transport.h, dbus/dbus-transport.c:
14105 Basic abstraction for different kinds of stream
14106 that we might read/write messages from.
14108 2002-11-23 Havoc Pennington <hp@pobox.com>
14110 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14113 * dbus/dbus-test.c (main): add list test, and include
14114 dbus-test.h as intended
14116 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14117 (_dbus_hash_table_remove_int): return value indicates
14118 whether the entry existed to remove
14120 * dbus/dbus-list.c: add linked list utility class,
14121 with docs and tests
14123 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14126 2002-11-23 Havoc Pennington <hp@pobox.com>
14128 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14129 DBUS_END_DECLS to nothing, that should fix this once and for all
14131 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14133 * dbus/dbus-message.c, dbus/dbus-hash.c:
14134 add some missing @brief
14136 2002-11-23 Havoc Pennington <hp@pobox.com>
14138 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14139 to avoid confusing Doxygen
14141 * dbus/dbus-hash.c: @} not }@
14143 * dbus/dbus-message.c (struct DBusMessage): split out
14146 2002-11-23 Havoc Pennington <hp@pobox.com>
14148 * configure.in: pile on more warning flags if using gcc
14150 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14151 to document static functions
14153 * configure.in: add summary to end of configure so it
14154 looks nice and attractive
14156 * dbus/dbus-hash.c: finish implementation and write unit
14159 * configure.in: add --enable-tests to enable unit tests
14161 * dbus/dbus-test.c: test program to run unit tests
14162 for all files in dbus/*, initially runs a test for
14165 * dbus/dbus-internals.h: file to hold some internal utility stuff
14167 2002-11-22 Havoc Pennington <hp@redhat.com>
14169 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14170 "ported" away from Tcl
14172 * dbus/dbus-types.h: header for types such as dbus_bool_t
14174 2002-11-22 Havoc Pennington <hp@redhat.com>
14176 * dbus/dbus.h: fixups for doc warnings
14178 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14180 (QUIET): make it quiet so we can see warnings
14182 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14184 2002-11-22 Havoc Pennington <hp@redhat.com>
14186 * Makefile.am: include "Doxyfile" target in all-local
14188 * configure.in: generate the Doxyfile
14190 * Doxyfile.in: move Doxyfile here, so we can use
14191 configure to generate a Doxyfile with the right
14192 version number etc.
14194 2002-11-22 Havoc Pennington <hp@redhat.com>
14196 * dbus/dbus-message.c: move inline docs into .c file
14198 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14199 so all docs are under doc/
14200 (MAN_EXTENSION): generate man pages. Use extension
14201 ".3dbus" which matches ".3qt" on my system,
14202 I guess this is OK, I don't know really.
14203 (FILE_PATTERNS): look for .c files not .h, makes sense
14204 for plain C I think
14206 2002-11-22 Havoc Pennington <hp@pobox.com>
14208 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14209 because any app can be a server, and any app can be a client,
14210 the bus is a special kind of server.
14212 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
14214 * Doxyfile : adding. Still needs Makefile rules to be generated
14215 automatically (just run "doxygen" in the toplevel dir for now to
14218 * dbus/dbus-message.h : Adding sample docs (javadoc since
14219 resembles gtk-doc a little more)
14221 * dbus/dbus.h : Adding sample docs
14223 2002-11-21 Havoc Pennington <hp@redhat.com>
14225 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
14226 so we can allow ourselves to include files directly,
14227 instead of having to use dbus.h
14229 * dbus/dbus.h: fill in
14231 * dbus/dbus-message.h: sketch out a sample header file.
14232 Include griping if you include it directly instead of
14235 * dbus/dbus-macros.h: new file with macros for extern "C",
14236 TRUE/FALSE, NULL, etc.
14238 * doc/file-boilerplate.c: put include guards in here
14240 2002-11-21 Havoc Pennington <hp@redhat.com>
14242 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14244 * COPYING: include the GPL as well, and license code
14245 under both AFL and GPL.
14247 2002-11-21 Havoc Pennington <hp@redhat.com>
14249 * acconfig.h: get rid of this
14251 * autogen.sh (run_configure): add --no-configure option
14253 * configure.in: remove AC_ARG_PROGRAM to make
14254 autoconf complain less. add AC_PREREQ.
14255 add AC_DEFINE third arg.
14257 2002-11-21 Anders Carlsson <andersca@codefactory.se>
14260 Fix references so we can distcheck.
14262 2002-11-21 Havoc Pennington <hp@redhat.com>
14264 * Initial module creation