1 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
3 * configure.in, dbus/Makefile.am, test/name-test/run-test.sh,
4 test/name-test/Makefile.am: Fixed some issues with getting get dbus
5 to build with builddir != srcdir (Taken from a patch by Bernard Leak
6 <bernard at brenda-arkle dot demon dot co dot uk>)
8 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
10 * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
13 2006-08-25 John (J5) Palmieri <johnp@redhat.com>
15 * configure.ac, bus/Makefile.am: Generalize kqueue support so that
16 it works on any system providing this interface, not only FreeBSD.
17 For example, NetBSD. (Patch by Julio M. Merino Vidal <jmmv at NetBSD dot org>)
19 2006-08-20 Havoc Pennington <hp@redhat.com>
21 * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
24 2006-08-18 John (J5) Palmieri <johnp@redhat.com>
28 2006-08-18 John (J5) Palmieri <johnp@redhat.com>
30 * dbus/dbus-threads.c (dbus_threads_init): change the documentation
31 to reflect the init late change
33 * bus/bus.c (bus_context_new): Check user before we fork so we can
34 print out an error message a user will be able to see
36 2006-08-18 John (J5) Palmieri <johnp@redhat.com>
38 Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de)
40 * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
41 Add two more global locks for use on windows platforms. These are
42 unused on non-windows platforms but are not ifdefed out to avoid
43 potential bugs (i.e. the few bytes lost does not warrent the extra
44 maintanence and complexity that having seperate sets of locks would
47 2006-08-18 John (J5) Palmieri <johnp@redhat.com>
49 * bus/services.c (bus_registry_acquire_service): Return an error
50 when an application tries to register the org.freedesktop.DBus Bus Name
52 * bus/services.c (bus_registry_release_service): Return an error
53 when an application tries to release the org.freedesktop.DBus Bus Name
55 2006-08-17 Alp Toker <alp@atoker.com>
57 * doc/dbus-specification.xml: Fix some minor typos.
59 2006-08-17 John (J5) Palmieri <johnp@redhat.com>
61 * configure.in: use $with_init_scripts instead of $operating_system
62 to determine where to store the pid since the init scripts manipulate
63 the pid file (patch from Marcelo Ricardo Leitner
64 <marcelo dot leitner at terra dot com dot br>.
66 2006-08-16 John (J5) Palmieri <johnp@redhat.com>
68 * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
69 static DBusList *uninitialized_condvar_list to support new late
70 initialization threading model. In this model threads can be initialized
71 even after the D-Bus API has been used but still needs to be initialized
72 before the second thread has been started. Mutexes and condvar addresses
73 are stored in the two static lists and are replaced with actuall locks
74 when threads are initalized.
75 (_dbus_mutex_new_at_location): New method for creating a mutex and placing
76 the location into the static list
77 (_dbus_mutex_free_at_location): New method for removing a mutex location
78 from the static list and freeing the mutex
79 (_dbus_condvar_new_at_location): New method for creating a conditional
80 variable and placing the location into the static list
81 (_dbus_condvar_free_at_location): New method for removing a conditional
82 variable location from the static list and freeing the conditional variable
83 (init_uninitialized_locks): Atomic method which goes through the static
84 lists of mutex and condvar location and updates them with actuall locks
85 (init_global_locks): changed to init_locks
87 * dbus/dbus-connection.c:
88 (_dbus_connection_test_get_locks): New method for tests to check connections
89 (_dbus_connection_new_for_transport): Use the new at_location mutex and
91 (dbus_connection_allocate_data_slot): Pass in the global lock address
92 to _dbus_data_slot_allocator_alloc
94 * dbus/dbus-dataslot.c:
95 (_dbus_data_slot_allocator_alloc): Use the address of the mutex
96 instead of the mutex itself
98 * dbus/dbus-message.c:
99 (dbus_message_allocate_data_slot): Pass in the global lock address
100 to _dbus_data_slot_allocator_alloc
102 * dbus/dbus-pending-call.c:
103 (dbus_pending_call_allocate_data_slot): Pass in the global lock address
104 to _dbus_data_slot_allocator_alloc
106 * dbus/dbus-server.c:
107 (_dbus_server_init_base): Use the new at_location mutex API
108 (dbus_server_allocate_data_slot): Pass in the global lock address
109 to _dbus_data_slot_allocator_alloc
111 * test/name-test/test-threads-init.c: New test case for late thread
114 2006-08-14 John (J5) Palmieri <johnp@redhat.com>
116 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
117 Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
118 causes compile problems when asserts are turned off
119 Keeping _dbus_warn for printing out the message so even if
120 asserts are turned off the user gets the messages that something is
123 2006-08-14 John (J5) Palmieri <johnp@redhat.com>
125 Patches by Kjartan Maraas <kmaraas at gnome dot org>
127 * bus/services.c (bus_service_list_queued_owners):
128 Add a pointer cast to fix compiler warning
130 * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
131 return a NULL instead of FALSE since the return type
132 is not expecting a boolean
134 * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
135 Remove unused variable
137 * dbus/dbus-marshal-recursive-util.c (node_new):
138 return a NULL instead of FALSE since the return type
139 is not expecting a boolean
141 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
142 Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
143 because we are expecting a pointer not a boolean
145 * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir):
146 add void as the parameter so some compilers
149 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
150 _dbus_transport_new_for_tcp_socket):
151 Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
152 because we are expecting a pointer not a boolean
154 * test/shell-test.c (test_command_line):
155 cast the second argument to _dbus_list_append to avoid compiler
158 * test/test-names.c (main): remove unused variable
160 * test/test-service.c (check_hello_from_self_reply):
161 Initialize echo_message and echo_reply to NULL
163 * test/test-shell-service.c (handle_echo):
164 Remove unused variable and cast the third parameter passed to
165 dbus_connection_get_object_path_data to avoid compiler warrnings
167 * test/name-test/test-names.c (clear_message_queue):
168 Remove unused function
170 * test/name-test/test-pending-call-dispatch.c:
171 Fix format string in printf
174 2006-08-14 John (J5) Palmieri <johnp@redhat.com>
177 * test/name-test/test-names.c:
178 Remove test method dbus_bus_connection_get_unique_name because
179 we already have public method dbus_bus_get_unique_name that
180 does the exact same thing
182 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
184 * dbus/dbus-signature.c:
185 fix typos in Julio's previous patch which cause make check to fail
187 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
189 * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.
190 In any case it was wrong since this is a test checking to see if
191 address parsing is correct. There was no need to get the true
194 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
196 * dbus/dbus-macros.h: Revert the addition of stddef.h
197 as we should not be adding it to library headers
199 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
201 * dbus/dbus-signature.c:
202 Fix the unit tests so that they work if assertions are not enabled.
203 (patch from Julio M. Merino Vidal <jmmv at NetBSD dot org>)
205 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
207 * tools/run-with-tmp-session-bus.sh:
208 * test/name-test/run-test.sh:
209 Remove bashisms (patch from Julio M. Merino Vidal
210 <jmmv at NetBSD dot org>)
212 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
214 * configure.in: add a version (>= 2.6.0) check for libxml2
216 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
218 * configure.in: make sure the compiler supports -Wfloat-equal
220 * bus/dir-watch-dnotify.c: move functional code after
221 variable declerations (C99 fix) (patches from Jens Granseuer
222 <jensgr at gmx dot net>
224 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
226 * dbus/dbus-macros.h:
227 add #include <stddef.h> so that Sun compilers don't complain about
230 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
232 * dbus/dbus-sysdeps.c:
233 * dbus/dbus-address.c:
236 don't hardcode tmp directory (patch from Dave Meikle
237 <dmk at davemeikle dot co dot uk>)
239 2006-08-09 John (J5) Palmieri <johnp@redhat.com>
241 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
242 Change an assert to a detailed warning and abort.
243 When allocator->lock != mutex it indicates that the user has failed
244 to initalize threads before using the D-Bus library. This warning
245 helps the user identify the issue and fix their app.
247 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
249 These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
250 with cleanups of bugs found from Coverity reports:
252 * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
253 close the file on error to avoid a leak
255 * bus/expirelist.c (bus_expire_list_test):
256 Check for NULL on dbus_new0
258 * bus/activation.c (update_directory):
261 * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
264 * bus/bus.c (process_config_every_time):
267 * bus/desktop-file.c (parse_key_value):
270 * bus/selinux.c (bus_selinux_id_table_insert):
273 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
275 * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
278 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
280 * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
283 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
285 * Doxyfile.in: fix the INPUT line so we can generate docs
286 when sourcedir != builddir (patch from Cygwin Ports maintainer
287 <yselkowitz at users dot sourceforge dot net>
289 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
291 * dbus/dbus-sysdeps.h:
292 * dbus/dbus-sysdeps.c:
293 * dbus/dbus-string.c:
294 s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
295 GLib's function which does the same thing
299 * bus/dir-watch-default.c:
300 * bus/dir-watch-dnotify.c:
301 * bus/dir-watch-kqueue.c:
302 Add kqueue directory watching for freebsd and split the directory
303 watching code into seperate files per method/arch
304 (patches from Timothy Redaelli <drizzt at gufi dotorg>)
306 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
310 * tools/dbus-launch.c:
312 allow --with-dbus-daemondir switch to be used to make the
313 daemon install to a seperate bindir like /usr/libexec
314 (patch from Brian Cameron <brian dot cameron at sun dot com)
316 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
318 * bus/Makefile.am (install-data-hook): removed the slash after
319 $(DESTDIR) so we don't get the double slash which does not work
320 in windows (patch from Andras Porjesz
321 <andras dot porjesz at siemens dot com>)
323 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
325 * dbus/dbus-sysdeps.h:
326 * dbus/dbus-sysdeps.c:
327 add _dbus_printf_length (patch from Peter Kümmel
328 <syntheticpp at gmx dot net>)
330 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
332 * dbus/dbus-internals.c: unistd.h is not used
333 (_dbus_verbose_real): only enable verbose printing
334 if DBUS_VERBOSE environment var is set to '1'
335 (patch from Peter Kümmel <syntheticpp at gmx dot net>)
337 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
339 * configure.in: add a GCC flag check for -Wdeclaration-after-statement
340 so we still compile on older gcc (patch from Frederic Peters
341 <fpeters at 0d dot be>
343 2006-08-04 Havoc Pennington <hp@redhat.com>
345 * configure.in: add -Wdeclaration-after-statement
347 * dbus/dbus-connection.c: change all the pending call stuff to
348 reflect the fact that pending call operations use the connection
351 * dbus/dbus-pending-call.c: add locking here
353 * dbus/dbus-errors.c (struct DBusRealError): don't make the name
354 field const consistent with how message field is done
356 2006-08-03 John (J5) Palmieri <johnp@redhat.com>
360 2006-08-03 John (J5) Palmieri <johnp@redhat.com>
362 * dbus/dbus-object-tree.c: Patch by Benjamin Otte
363 <in7y118 at public.uni-hamburg dot de> - fix invalid
364 read/write reported by valgrind
366 2006-07-24 John (J5) Palmieri <johnp@redhat.com>
370 2006-07-22 John (J5) Palmieri <johnp@redhat.com>
372 * dbus/dbus-connection.c:
373 (_dbus_connection_attach_pending_call_unlocked):
374 (connection_timeout_and_complete_all_pending_calls_unlocked):
375 Make sure we set timeout_added on pending calls to FALSE when
376 we remove the timeout from the connection
378 2006-07-21 John (J5) Palmieri <johnp@redhat.com>
380 * Removed some extra bindings stuff lingering around (thanks timo)
381 * dbus-pendingcall.c (_dbus_pending_call_new):
382 s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
383 when we tried to take a lock on an already locked connection
385 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
389 2006-07-17 Havoc Pennington <hp@redhat.com>
391 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
392 ints, reported by Owen Taylor
394 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
399 * dbus/dbus-marshal-validate.c:
400 Removed TODO items which were fixed or are no longer relevent
402 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
404 * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
405 Remove stray files from the stripped bindings
407 2006-07-16 Havoc Pennington <hp@redhat.com>
409 * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
410 Improve the error message on reply timeout
412 2006-07-14 John (J5) Palmieri <johnp@redhat.com>
414 * Remove all bindings
416 2006-07-13 John (J5) Palmieri <johnp@redhat.com>
418 * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
419 and set pending_reply out arg to NULL is connection is disconnected
420 (connection_timeout_and_complete_all_pending_calls_unlocked): New
421 static method for cleaning up pending calls on disconnect
422 (_dbus_connection_get_dispatch_status_unlocked): If we have pending
423 calls queued timeouts on disconnect
425 * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
428 2006-07-13 Carlos Garcia Campos <carlosgc@gnome.org>
430 * bus/activation.[ch] (bus_activation_list_services): new function to
431 get the list of services that can be activated
433 * bus/dispatch.c: test coverage for the new bus method
436 * bus/driver.c: new bus method ListActivatableNames to get the list of
437 services that can be activated
439 * doc/dbus-specification.xml: ListActivatableNames method documentation
441 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
442 * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
445 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
446 * dbus/dbus-message-factory.c:
447 Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
449 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
450 * dbus/dbus-connection-internal.h:
451 * dbus/dbus-connection.c:
452 * file dbus/dbus-pending-call.c:
453 * dbus/dbus-pending-call.h:
454 Make DBusPendingCall an opaque type even to D-Bus internals
456 2006-07-07 John (J5) Palmieri <johnp@redhat.com>
458 * dbus/dbus-connection.h: remove connection_disconnect and replace with
461 * dbus/dbus-connection.c: include dbus-bus.h
462 (_dbus_connection_read_write_dispatch): make static
464 2006-07-07 John (J5) Palmieri <johnp@redhat.com>
466 * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
468 (dbus_connection_dispatch): On disconnect unref any shared connections
470 * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
471 for cleaning up shared connections on disconnect
472 (internal_bus_get): get a hard refrence to shared connections when
475 * doc/TODO: Remove items which are no longer relevent or have been fixed
476 Split 1.0 todo items with a 0.90 freeze todo list
478 2006-06-14 Ross Burton <ross@openedhand.com>
480 * glib/dbus-gobject.c:
481 Free a leaking GArray (surely not!) in dbus_g_method_return.
483 2006-06-14 Ross Burton <ross@openedhand.com>
486 * tools/dbus-monitor.c:
487 Don't use the GLib bindings in dbus-monitor (patch from Ralf
490 2006-06-14 Ross Burton <ross@openedhand.com>
492 * tools/dbus-print-message.c:
493 Also print the object path when outputting signals or method calls.
495 2006-06-13 Thiago Macieira <thiago.macieira@trolltech.com>
497 * qt/src/Makefile.am: install the qdbus.h header.
498 This allows people to actually use the installed code.
500 2006-06-12 Ross Burton <ross@openedhand.com>
502 * glib/dbus-gproxy.c:
503 Don't leak a GArray when firing signals (thank Rob Taylor for review).
505 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
509 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
511 * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
512 break pedantic builds. Closes bug 6043 (patch approved by
513 Havoc back in February).
515 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
517 * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
518 that took a QDBusMessage parameter.
519 * qt/src/qdbusbus.h: Add a default flag for RequestName.
520 * qt/tools/dbus.cpp: Don't use automatic call because we might
521 be calling an async method: request a reply.
523 2006-06-11 Thiago Macieira <thiago.macieira@trolltech.com>
525 * test/qt/*: Update the testcases, including testing the new
526 functionality of sending null QByteArray and QString over the
527 bus. Add new headertest test and restore the old
530 2006-06-11 Thiago Macieira <thiago.macieira@trolltech.com>
532 * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
533 * qt/tools/dbusidl2cpp.cpp: Add missing newline.
535 * qt/examples/Makefile.am:
536 * qt/examples/chat.h: Use UI-generated files with the ui_*.h
539 * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
540 QByteArray() (nulls) over the bus.
541 * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
542 the one that has the signature suffix stripped.
543 * qt/src/qdbusreply.h: Make some methods const.
545 2006-06-09 Thiago Macieira <thiago.macieira@trolltech.com>
547 Patch from Timo Hoenig <thoenig@suse.de>.
549 * qt/dbus/Makefile.am: New file. Fix "make dist", add all headers
550 required during build to EXTRA_DIST.
551 * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
552 * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
553 * configure.in: Fix "make dist", take care that the Makefile for
554 qt/dbus is being generated.
556 2006-06-07 John (J5) Palmieri <johnp@redhat.com>
558 * bus/bus.c: Fix eavesdropping on method calls
560 2006-06-07 John (J5) Palmieri <johnp@redhat.com>
563 * dbus/dbus-userdb-util.c:
564 Add Solaris console owner patch from Artem Kachitchkine
566 2006-06-07 Thiago Macieira <thiago.macieira@trolltech.com>
569 * qt/src/Makefile.am: Fix the EXTRA_DIST after the
570 reorganisation. Thanks to Timo Hoenig for pointing this out.
572 2006-06-06 Robert McQueen <robot101@debian.org>
574 * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
575 call to dbus_g_type_get_struct.
577 2006-06-06 Robert McQueen <robot101@debian.org>
579 * glib/dbus-gvalue-utils.c: Fix the failing test where static string
580 pointers were put into a GPtrArray-based specialised collection, and
581 then freed along with the array. GValues which you add into
582 collections or maps which have the NOCOPY flag set are assumed to not
583 belong to the caller, so rather than the existing pointer-stealing
584 semantics, they are copied instead. Given that the main consumers of
585 this abstraction are the bindings themselves, I don't think this is
586 too bad, but others should watch their choice of take vs set_static.
588 2006-06-06 Robert McQueen <robot101@debian.org>
590 * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
591 of g_slist_prepend not being used. Fixed copying of slist-based
592 specialised collections, then wrote a test case and found that it was
593 all broken. Went on to fix iterating and appending too. Good thing
594 nobody uses this code yet.
596 2006-06-06 Robert McQueen <robot101@debian.org>
598 * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
599 the iterators use gvalue_take_ptrarray_value (the GValues themselves
600 are discarded without unsetting, so it makes no difference whether
601 we take or set_static). Remove cases for G_TYPE_POINTER because
602 there really is nothing useful we can do with them in our
603 specialised types - we *need* boxed copy/free functions at the very
606 2006-06-05 Thiago Macieira <thiago.macieira@trolltech.com>
608 * qt/dbus: Add directory. I had forgotten to add this
609 yesterday after the move...
611 * qt/examples/Makefile.am:
612 * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
614 * qt/tools/Makefile.am:
615 * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
616 Added feature to get and set properties.
617 Added validation of service, object path and interface names.
619 * qt/tools/dbusidl2cpp.cpp: Two new features:
620 1) Allow specifying both the header and the source file names,
621 by separating them with a colon.
622 2) Don't write an interface output if the -p switch wasn't
623 given, but the -a was.
625 * qt/src/*: Fix usage of Iterators and ConstIterators.
626 Fix shadowing of variables by other variables (-Wshadow).
627 Fix keyword-cleanliness in headers.
628 Fix ASCII-cast (QLatin1String, QLatin1Char).
629 Fix validation of member names.
630 Add extra checking of introspection data during XML parsing.
633 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
636 * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
639 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
641 * configure.in: Make --disable-qt actually do
642 something. Patch inspired by Zack Rusin.
644 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
646 * qt/: Update to Subversion r548032.
647 This includes a big reorganisation of the files inside the
650 2006-05-30 Sjoerd Simons <sjoerd@luon.net>
652 * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
654 "Failed to connect to socket <host>:<port> <error>" instead of
655 "Failed to connect to socket <host>: <error>:<port>"
657 * dbus/dbus-transport-unix.c: Fix crash when no host option is given
660 2006-05-29 Thiago Macieira <thiago.macieira@trolltech.com>
662 * qt/*: Update the QtDBus bindings up to revision 546310 in
664 This adds the dbuscpp2xml tool, that parses a C++ header and
665 outputs a D-BUS Introspection XML.
667 2006-05-21 Havoc Pennington <hp@redhat.com>
669 * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
670 is not NULL when it shouldn't be. Also a couple of possible fixes
671 for #4637 though I don't understand why the bug happens, to be
672 honest... also the object constructor has an assert name != NULL
673 and the name is only currently NULL for peer-to-peer proxies that
674 I don't think anyone uses? So it should be asserting.
675 Anyway, for now at least see if we get an earlier assertion failure.
677 * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
678 apparently broken code to be sure the tests fail and someone
681 2006-05-07 Thiago Macieira <thiago.macieira@trolltech.com>
683 * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
684 and arrays when they had a single element: has_next returns
685 false, even before you read the element. So, instead, check
688 2006-05-06 Thiago Macieira <thiago.macieira@trolltech.com>
690 * qt/qdbusmessage.cpp:
691 * qt/qdbustypehelper_p.h:
692 * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
693 the list is a const-reference
695 2006-05-03 John (J5) Palmieri <johnp@redhat.com>
697 * Adding old doc patch that never got applied
699 * dbus/bus.c (dbus_bus_add_match): Add documentation
701 * doc/dbus-specification.xml: Add documentation for the match rules
702 and the AddMatch and RemoveMatch methods
704 2006-05-02 Thiago Macieira <thiago.macieira@trolltech.com>
706 * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
709 * qt/dbusidl2cpp.cpp:
710 * qt/qdbusabstractadaptor.cpp:
711 * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
712 sibling of the QDBusAbstractAdaptor objects instead of the
715 * qt/dbusidl2cpp.cpp:
716 * qt/qdbusabstractinterface.cpp:
717 * qt/qdbusabstractinterface.h:
718 * qt/qdbusabstractinterface_p.h:
719 * qt/qdbusinterface.cpp: Make properties in interfaces
720 actually work. The code that was generated would not compile,
721 due to moc calls to functions that did not exist. They now
724 2006-04-30 Thiago Macieira <thiago.macieira@trolltech.com>
728 * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
729 Thanks to Brad Hards for providing the patch
731 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
733 * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
736 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
738 * qt/examples/dbus.cpp: Enhance error messages and use
741 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
743 * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
744 and disable the copy operators. (r533772, r534746)
746 * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
748 * qt/qdbusabstractinterface.cpp:
749 * qt/qdbusabstractinterface.h: Change the default call mode to
750 not use the event loop. Add convenience call() methods that
751 take a CallMode parameter. (r534042)
753 * qt/qdbusconnection.h: Change the default call mode to not
754 use the event loop. (r534042)
756 * qt/qdbusinterface.cpp:
757 * qt/qdbusinterface.h: Add a method to tell us if the
758 interface is valid (since we don't return a null pointer
761 * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
764 * qt/qdbusinternalfilters.cpp: Decouple the introspection
765 function in two so taht we get the chance to introspect
766 without having a QDBusMessage (r534102)
769 * qt/qdbusconnection.cpp:
770 * qt/qdbusconnection_p.h:
771 * qt/qdbusintegrator.cpp: Keep a list of our own names to
772 avoid a round-trip to the server when attempting to introspect
773 one of our own objects. Also make sure the filter functions
774 match the empty interface as well. (r534108)
775 Don't keep the connection names. Instead, trust the unique
776 connection name (r534111)
777 Remove event loop usage (r534112)
779 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
781 * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
784 2006-04-28 Robert McQueen <robot101@debian.org>
786 * glib/dbus-gproxy.c: Fix properties so that they can be given in
787 any order, making it easier for people who inherit from this
790 2006-04-28 Robert McQueen <robot101@debian.org>
792 * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
793 of memory from within pointer arrays and lists. Fixes bug #6300.
795 2006-04-28 Robert McQueen <robot101@debian.org>
797 * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
798 generating struct signatures. Fixes bug #6083.
800 2006-04-28 Robert McQueen <robot101@debian.org>
802 * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
803 to qdbusconnection_p.moc.
805 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
807 * README, INSTALL: Doc fixes
808 Patch from Brad Hards <bradh at frogmouth.net>
810 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
812 * qt/examples/dbus.cpp: Use the new merged-interface mode for
813 the dynamic meta object. No need to guess which interface to
816 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
818 * qt/qdbusconnection_p.h:
819 * qt/qdbusmetaobject.cpp:
820 * qt/qdbusmetaobject_p.h:
821 * qt/qdbusintegrator.cpp: Use the new merged-interface mode
822 for the dynamic meta object. No need to guess which
824 * qt/qdbusabstractinterface_p.h:
825 * qt/qdbusconnection.cpp:
826 * qt/qdbusintegrator.cpp:
827 * qt/qdbusinterface.cpp:
828 * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
829 Add a QDBusRef that looks and behaves like DCOPRef.
831 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
833 * dbus/dbus-connection.c: Interfaces are optional in method
834 calls, so don't give up if the interface parameter is NULL.
835 Patch reviewed by Havoc Pennington.
837 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
839 * qt/qdbusreply.h: Add default constructor and operator=
841 * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
842 in public headers (r532952)
843 * qt/qdbusabstractinterface.cpp:
844 * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
845 make it the default (r532951)
847 2006-04-19 John (J5) Palmieri <johnp@redhat.com>
849 * dbus/dbus-connection.c: Fix asserts
850 Patch from Tim Moloney <t.moloney at verizon.net>
852 2006-04-19 John (J5) Palmieri <johnp@redhat.com>
854 * mono/Connection.cs, mono/Message.cs: Check Target type
855 Patch from Aaron Bockover (abockover at novell.com)
857 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
859 * INSTALL: fine-tune the requirements for the Qt4 binding.
861 2006-04-16 Daniel P. Berrange <dan@berrange.com>
863 * tools/dbus-print-message.c: Added support for printing of all
864 remaining data types. Fixed logic for indentation of compound
867 2006-04-15 Daniel P. Berrange <dan@berrange.com>
869 * INSTALL: fill out content of file providing DBus specific
870 build installations, followed by generic Auto* INSTALL file
873 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
875 * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
876 Patch by Stefan Eilers. (r529537)
878 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
880 * qt/qdbusinternalfilters.cpp: Don't show the parent's
883 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
885 * qt/Makefile.am: fix the dependency for
886 qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
887 not in qdbusconnection.cpp.
888 Thanks to Jakub Stachowski <stachowski@hypair.net> for
891 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
893 * qt/examples/listnames.cpp:
894 * qt/examples/Makefile.am: Three ways to list the names on the
897 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
899 * test/qt/tst_hal.cpp: Remove the waiting, since it's not
900 needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
902 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
904 Merge from Subversion:
905 * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
906 something that exists (r526315)
907 * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
908 slots/signals (r526316)
909 * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
910 also return an unknown-method error if the parameters don't
911 match for org.freedesktop.DBus.Properties. (r526842)
912 * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
913 * qt/qdbusintegrator.cpp: Restore the proper order of
914 delivery: don't make method returns be delivered on priority
917 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
919 * configure.in qt/Makefile.am: add qt/examples
920 * qt/examples: Add QtDBus example programs:
921 - hello: Hello, World
922 - ping: Simple method-calling program
923 - pong: Simple object-exporting program (not using adaptors)
924 - complexping: Interactive method-calling program
925 (also gets and sets properties).
926 - complexpong: Sample program exporting methods, signals and
927 properties, using adaptors.
928 - dbus: Simple implementation of a generic method-calling
929 program, similar to 'dbus-send', but with semantics
931 - chat: Simplistic chat program, implemented using signals
932 and the system bus. Looks like IRC.
934 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
936 * configure.in: Detect QtGui (necessary for one of the
937 example programs). Note: this increases the minimum required
938 version of Qt to 4.1.3.
940 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
942 * test/qt/*: Sync with KDE Subversion revision 523647.
943 Update the testcases to the new API. Remove testcases for
944 classes that are no longer public or have been removed.
946 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
949 * dbus/qdbus.h: Sync with KDE Subversion revision
950 523647. Hopefully, this will be the last of the
951 source-incompatible changes. Documentation has been improved;
952 support for QList<basic-types> has been added; QDBusObject is
953 gone; QDBus(Abstract)Interface is now a QObject with
954 auto-generated meta-object; QDBusIntrospection is marked
955 private, since QMetaObject can be used now; lots of bugfixes.
957 2006-03-16 John (J5) Palmieri <johnp@redhat.com>
959 Patch from Milosz Derezynski <internalerror at gmail.com>
962 Output the service directory in the configure summary
965 Add session_bus_services_dir
967 2006-03-10 Ross Burton <ross@openedhand.com>
969 * tools/dbus-print-message.c:
970 Add support for object paths and signatures.
972 2006-03-06 Sjoerd Simons <sjoerd@luon.net>
974 * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
976 * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
978 * dbus/dbus-hash.c: (_dbus_hash_table_remove_all):
979 * dbus/dbus-hash.h: Add function to remove all entries from a hash table
980 * dbus/dbus-userdb.c: (_dbus_user_database_flush):
981 * dbus/dbus-userdb.h: Add function to flush all user/group information
984 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
986 * qt/dbusidl2cpp.cpp:
987 * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
988 for dcopidl2cpp, found in the KDE installations (or the more
989 modern kalyptus): generate Qt4 C++ code for the input XML
990 introspection. Currently no IDL parsing.
992 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
994 * test/qt/*: Update the self-tests.
996 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
999 * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1000 represents the first feature-complete version of the Qt4
1001 bindings since I took ove maintainership.
1003 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
1005 * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1006 dir. This is C++, so we can't use the DBus ones.
1008 2006-03-02 John (J5) Palmieri <johnp@redhat.com>
1010 * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1011 (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1013 2006-03-02 John (J5) Palmieri <johnp@redhat.com>
1015 * dbus/dbus-connection.c:
1016 (_dbus_connection_block_pending_call):
1017 Check to see if our data has already been read off the connection
1018 by another blocking pending call before we block in poll.
1019 (check_for_reply_and_update_dispatch_unlocked):
1020 Code taken from _dbus_connection_block_pending_call - checks for
1021 an already read reply and updates the dispatch if there is one.
1023 * test/name-test/test-pending-call-dispatch.c:
1024 New test for making sure we don't get stuck polling a
1025 dbus connection which has no data on the socket when
1026 blocking out of order on two or more pending calls.
1028 2006-02-28 Thiago Macieira <thiago.macieira@trolltech.com>
1030 * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1031 make/automake don't detect that we're talking about the same
1032 .lo file if I specify the full path to the source files.
1034 2006-02-26 Havoc Pennington <hp@redhat.com>
1036 * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1038 * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1039 session bus variable is unset, suggest "man dbus-launch" and "man
1040 dbus-daemon" to figure out how to fix the problem
1042 2006-02-25 Havoc Pennington <hp@redhat.com>
1044 * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1045 should make this thing use the new glib options parser
1047 2006-02-25 Thiago Macieira <thiago.macieira@trolltech.com>
1049 * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1050 .lo files taking moc sources.
1052 2006-02-25 Havoc Pennington <hp@redhat.com>
1054 * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1055 and install it as a public header
1057 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
1061 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
1063 * proxies.py: Fix the callchain
1065 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
1067 * patch from Sjoerd Simons <sjoerd at debian.org>:
1069 * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to
1072 * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1073 call _dbus_group_info_free_allocated which causes infinite loop,
1074 correctly call _dbus_group_info_free
1076 2006-02-20 Thiago Macieira <thiago.macieira@trolltech.com>
1078 * qt/qdbusinterface_p.h:
1079 * qt/qdbusinterface.cpp: Use the standard
1080 org.freedesktop.DBus.Method.NoReply annotation for the "async"
1081 calls instead of creating one for us.
1083 * qt/qdbusconnection_p.h:
1084 * qt/qdbusintegrator.cpp: Remove debugging code.
1086 * qt/qdbusintegrator.cpp:
1087 * qt/qdbusmessage.cpp:
1088 * qt/qdbusmessage_p.h:
1089 * qt/qdbusmessage.h: Change the behaviour of automatic
1090 reply-sending: now a reply is always sent, unless the caller
1091 didn't request one or if the user slot has already sent one.
1093 2006-02-16 Robert McQueen <robot101@debian.org>
1095 * configure.in: Patch from Debian packages by Sjoerd Simons
1096 <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
1097 arguments so it's possible to build both bindings in the
1100 * qt/Makefile.am: Fix truncated value so that make dist works.
1102 2006-02-16 Robert McQueen <robot101@debian.org>
1104 * acinclude.m4, configure.in: Patch from Brad Hards
1105 <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
1106 improving quoting, re-ordering a few checks, and a few other
1109 2006-02-16 Robert McQueen <robot101@debian.org>
1111 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
1112 Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1113 assertion that the next element to read from the iter is fixed in
1114 size. This is not the case when you are at the end of the iter,
1115 because the next element type is INVALID.
1117 * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1118 a bogus assert which means that you may not initialise a 0-length
1119 string unless you provide a non-NULL pointer. This prevented
1120 you from marshalling messages containing zero-length arrays in
1123 * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1124 from Rob to correct bogus asserts when trying to demarshal an
1125 array and get_fixed_array got you 0 elements. Append nothing to
1126 the GArray in this case.
1128 * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1129 an empty array via the glib bindings. Without all of the above
1130 patches, this new test fails.
1132 2006-02-16 Robert McQueen <robot101@debian.org>
1134 * glib/dbus-gmain.c: Make the previous commit compile.
1136 * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1137 Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1138 specify sender_keyword="foo", path_keyword="bar" when adding
1139 a signal listener, so that you can bind to signals generically
1140 but still do something useful in your callback.
1142 * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1143 chars so that they're not cast to chars and made negative. Thanks
1144 to Jakub Stachowski for reporting this and testing the fix.
1146 2006-02-15 John (J5) Palmieri <johnp@redhat.com>
1149 * glib/dbus-gmain.h:
1150 (dbus_g_connection_open): new method for openning
1151 a connection to an arbitrary address in the glib bindings
1153 * ChangeLog: checkin last entry which doesn't seem to be commited
1155 2006-02-13 John (J5) Palmieri <johnp@redhat.com>
1157 * tools/dbus-launch.c: Fixed sh syntax output
1159 2006-02-13 Robert McQueen <robot101@debian.org>
1161 * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1162 glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1163 glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1164 glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1165 Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1166 missing piece of the glib bindings jigsaw puzzle. This modifies
1167 the existing specialised types to have N type parameters (rather
1168 than the current 1 or 2 for arrays and dictionaries respectively).
1169 You can then use this to get a glib type to represent any arbitrary
1170 D-Bus struct type using dbus_g_type_get_struct. The only
1171 implementation of these types is with GValueArrays as before,
1172 but it's now possible to store these in arrays, emit them in
1175 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
1177 * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1178 deal with nested arrays (Bug #5823) Patch by Thiago Macieira
1179 <thiago.macieira at trolltech.com>
1181 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
1183 * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1184 (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1186 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
1188 * bus/connection.c (bus_connections_expect_reply): Make
1189 pending reply limit not common to all connections (Bug #5416)
1190 Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1192 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
1194 * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1196 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
1198 * gcj/Makefile.am: point to correct jar command (Bug #4529)
1199 patch from Doug Goldstein <cardoe at gentoo.org>
1201 2006-02-09 Joe Shaw <joeshaw@novell.com>
1203 * mono/Arguments.cs: Fix a magic number in the mono bindings
1204 that doesn't work on 64 bit arches. Patch from Peter Johanson.
1206 2006-01-27 Robert McQueen <robot101@debian.org>
1208 * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1209 patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1210 when generating the client-side methods, instead of overloading
1211 CSymbol which broke everything horribly. My apologies.
1213 2006-01-27 Robert McQueen <robot101@debian.org>
1215 * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1216 by me and Rob Taylor to add a simple_free function to D-Bus map
1217 and collection types, which allows those types which can be freed
1218 with a GDestroyNotify (such as GHashTables and GArrays, but not
1219 GPtrArrays) to be stored as the values in hashtables.
1221 * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1222 Patch by Rob Taylor to add nested dicts to the glib tests to check
1223 the above code works, and appears not to leak when called repeatedly.
1225 2006-01-27 Robert McQueen <robot101@debian.org>
1227 * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1228 to free a D-Bus allocated string with dbus_free () instead of
1231 2006-01-27 Iain Holmes <iain@openedhand.com>
1233 * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1234 method from being called multiple times.
1236 2006-01-19 Robert McQueen <robot101@debian.org>
1238 * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1239 <rob.taylor@collabora.co.uk> to add support for generating bindings
1240 to arrays that are represented as GPtrArrays rather than GArrays (ie
1241 size-variable things, such as strings, objects, structs, etc).
1243 2006-01-05 Robert McQueen <robot101@debian.org>
1245 * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1246 <ricardo.kekki@movial.fi> to make it possible to inherit from
1247 DBusGProxy, by splitting the DBusGProxy struct into a public part and
1248 a private part, and moving the setting of the DBusGProxyManager into a
1249 connection property, allowing proper GObject construction.
1251 2006-01-05 Robert McQueen <robot101@debian.org>
1253 * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1254 <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1255 annotations when generating glib client bindings.
1257 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
1259 * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1261 * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1263 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
1265 * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1267 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
1269 * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1271 2005-12-19 Ross Burton <ross@openedhand.com>
1273 * doc/dbus-tutorial.xml:
1274 Document the Glib client-side bindings, and list all possible annotations.
1276 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
1278 * dbus/bus.c (dbus_bus_release_name): Add documentation
1280 2005-12-06 Robert McQueen <robot101@debian.org>
1282 * python/service.py: s/sucessful/successful/ so we're allocating to
1283 and reading from the same variable. Oops.
1285 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1289 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1291 * test/qt/Makefile.am: build from srcdir
1293 * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1294 Note - this code is wrong and needs to be fixed by the Qt binding
1295 developers. The flags should be treated as bitfields and not enums.
1297 * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1299 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1301 * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after,
1302 link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods
1305 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1307 * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1308 method for getting messages off the bus in the absence of a
1309 mainloop. This method is much like
1310 dbus_connection_read_write_dispatch except it does not dispatch
1311 the messages to a registered filter function. Instead it
1312 allows a developer to process messages by directly popping
1315 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1317 * bus/desktop-file.c (parse_key_value): Ignore locales allowing
1318 the parser to continue instead of returning error
1319 (bus_desktop_file_load): Do not free parser data when
1320 parse_section_start or parse_key_value fails because it was
1321 already freed by parser_free (patch from Carlos Garcia Campos
1322 <carlosgc at gnome.org>)
1324 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1326 * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1327 dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1328 glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1329 test/test-segfault.c, test/test-utils.c,
1330 test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1331 tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1332 Various cleanup of dead code and compiler warnings (patch from
1333 Kjartan Maraas <kmaraas at gnome.org>)
1335 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1337 * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1338 (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1340 2005-11-27 Robert McQueen <robot101@debian.org>
1342 * python/dbus_bindings.pyx: Repair my previous commit which reverted
1343 part of the preceding one. Oops. Merge patch by Johan Hedberg
1344 <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1345 on big-endian platforms.
1347 * test/python/test-client.py: Add some 16-bit integers to the test
1350 2005-11-27 Carlos Garcia Campos <carlosgc@gnome.org>
1352 * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1353 method return message for property getters
1355 2005-11-27 Robert McQueen <robot101@debian.org>
1357 * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1358 with type v of an instance of dbus.Variant(foo, type='x') caused
1359 it to be boxed twice before sending over the bus.
1361 * python/dbus_bindings.pyx, python/service.py,
1362 test/python/test-client.py: Update the constants for the new
1363 request_name flags, and update comments/test cases now that queueing
1364 is the default action.
1366 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
1369 - Change version to 0.60 for impending release
1370 - upped the sonames because of ABI and API breakage
1372 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
1374 * configure.in: Add test/name-test/Makefile to the generated
1377 * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1378 New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1379 (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1380 not to queue an ower if it can't be the primary owner
1382 * bus/bus.h: Add new internal BusOwner struct
1384 * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1385 to bus_registry_ensure and don't set the prohibit_replacement flag
1386 since they are now set per BusOwner and not per name.
1387 (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners)
1388 that returns the list of connections in a name's connection queue
1390 * bus/services.c (struct BusService): remove prohibit_replacement field
1391 (struct BusOwner): new struct for keeping track of queued connections
1392 and their associated flags for the queue
1393 (struct BusRegistry): add a BusOwner memory pool
1394 (bus_registry_new): initialize the BusOwner memory pool
1395 (bus_registry_unref): free the BusOwner memory pool
1396 (_bus_service_find_owner_link): new internal method for
1397 searching the queue for a specific connection
1398 (bus_owner_set_flags): new method for adding setting the flags on a
1400 (bus_owner_new): new method that creates a BusOwner object from the
1401 pool and sets its flags
1402 (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1403 (bus_registry_ensure): Add the flags parameter
1404 (bus_registry_acquire_service): Switch from using raw connections to
1405 using the BusOwner struct
1406 Add new state machine for dealing with the new set of flags
1407 (bus_registry_set_service_context_table, struct OwnershipCancelData,
1408 cancel_ownership, free_ownership_cancel_data,
1409 add_cancel_ownership_to_transaction, struct OwnershipRestoreData,
1410 restore_ownership, free_ownership_restore_data,
1411 add_restore_ownership_to_transaction): Switch to using BusOwner
1412 instead of raw connections
1413 (bus_service_add_owner): Add flags parameter
1414 Switch to using BusOwner instead of raw connections
1415 Add state machine for dealing with the new set of flags
1416 (bus_service_swap_owner): Swaps the first and second owners in the
1417 queue. Used to make sure proper signals are sent when a service looses
1418 or gains primary ownership. We never insert an owner at the top of the
1419 queue. Instead we insert it in the second position and then swap.
1420 (bus_service_remove_owner): Remove the owner from the queue sending
1421 out the NameLost and NameOwnerChanged signals if the we were the
1423 (bus_service_get_primary_owners_connection): New method that extracts
1424 the connection from the primary owner
1425 (bus_service_get_primary_owner): Returns the BusOwner instead of the
1427 (bus_service_get_allow_replacement): Changed from the old
1428 bus_service_get_prohibit_replacement method. Checks the flags of the
1429 primary owner and returns if it can be replaced or not
1430 (bus_service_set_prohibit_replacement): removed
1431 (bus_service_has_owner): returns TRUE if and owner with
1432 the specified connection exists in the queue
1434 * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1435 method that only compiles if tests are enabled. Allows us to get the
1436 unique name of a connection so we can check it against the queue when
1437 doing regression tests
1439 * bus/activation.c (bus_activation_send_pending_auto_activate),
1440 bus/dispatch.c (bus_dispatch),
1441 bus/driver.c (bus_driver_handle_get_service_owner,
1442 bus_driver_handle_get_connection_unix_user,
1443 bus_driver_handle_get_connection_unix_process_id,
1444 bus_driver_handle_get_connection_selinux_security_context),
1445 bus/signals.c (connection_is_primary_owner):
1446 use bus_service_get_primary_owners_connection instead of
1447 bus_service_get_primary_owner
1449 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket,
1450 _dbus_listen_unix_socket): Calculate the length of the socket
1451 path and use that instead of using a fixed length which was
1452 causing socket names to contain many trailing Nul bytes.
1454 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1455 (dbus_g_method_get_sender): New method for extracting the sender
1456 from a DBusGMethodInvocation
1457 (dbus_g_method_return_get_reply): changed name to
1458 dbus_g_method_get_reply
1459 (dbus_g_method_return_send_reply): changed name to
1460 dbus_g_method_send reply
1462 * doc/dbus-specification.xml: New docs that describe how the new
1463 queueing system works and talks about the changes to the how
1464 we specify socket names
1466 * glib/examples/example-service.c,
1467 glib/examples/example-signal-emitter.c,
1468 glib/examples/statemachine/statemachine-server.c:
1469 Changed the RequestName flags to the new system
1471 * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1472 regression test suite for testing various states of the new
1475 2005-11-15 Robert McQueen <robot101@debian.org>
1477 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1478 Taylor to add two methods, dbus_g_method_return_get_reply and
1479 dbus_g_method_return_send_reply, to allow you to get the reply
1480 message from a DBusGMethodInvocation, append arbitrary stuff to it,
1481 and send it. The GLib bindings can't marshal a return value of
1482 something like a(s) if the array is empty - ultimately they should be
1483 made to heed the signature of the out arguments as the Python bindings
1484 now can, but this is a workable interim solution which might have
1487 2005-11-15 Robert McQueen <robot101@debian.org>
1489 * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1490 method to org.freedesktop.DBus to release a bus name or give up
1491 waiting in the queue for it.
1493 * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1494 dbus_bus_release_name method to send the ReleaseName method calls.
1495 Add constants for the return values to dbus/dbus-shared.h.
1497 * doc/dbus-specification.xml: Document the new ReleaseName method
1498 in the specification.
1500 * python/dbus_bindings.pyx: Add a low-level python binding for the
1501 release name method.
1503 * python/exceptions.py, python/service.py: Make freeing BusName
1504 objects release the name. Add a NameExistsException, and fix a
1505 bug with creating UnknownMethodException.
1507 * test/python/test-client.py: Add tests for freeing BusName
1508 objects causing names to be released.
1510 2005-11-14 Robert McQueen <robot101@debian.org>
1512 * python/service.py: Include the traceback in the error reply when we
1513 send an exception over the bus. _BEST_ _PATCH_ _EVER_
1515 2005-11-14 David Zeuthen <davidz@redhat.com>
1517 Patch from Timo Hoenig <thoenig@suse.de>.
1519 * bus/bus.c: I've recently investigated why the automatic reload
1520 of configuration files does not work as expected.
1522 Currently, reloading configuration files does only work when
1523 running dbus-daemon with --nodaemon. If we are running as daemon
1524 we're hitting a dnotify bug once we fork the process.
1526 We're initializing the dnotify fds before calling fork(). Once
1527 the child process forked it does still have the fds (and they
1528 still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1529 getting SIGIO as changes are made to the configuration files.
1531 The attached patch moves the initialization of the dnotify fds to
1532 process_config_postinit(). This is safe for all current code
1533 paths and solves the dnotify disfunction. If we're running
1534 dbus-daemon as daemon the fds for dnotify are now being
1535 initialized after fork() for the child process.
1537 * configure.in: The current configure.in check for dnotify probes
1538 'x$target_os' for being 'xlinux-gnu'. I've changed the check to
1539 match for 'xlinux', too. Additionally I have adapted the configure
1540 option's style to match with the others.
1542 2005-11-14 Robert McQueen <robot101@debian.org>
1544 * python/decorators.py, python/service.py: Add a new argument to the
1545 dbus.service.method decorator called sender_keyword, which if set,
1546 specifies the name of an argument which will be provided the bus
1547 name of the method caller.
1549 * test/python/test-client.py, test/python/test-service.py: Add a
1550 method and test to check the sender_keyword functionality.
1552 2005-11-07 John (J5) Palmieri <johnp@redhat.com>
1554 * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an
1555 empty reply so blocking calls don't block forever (Patch from Sjoerd
1556 Simons <sjoerd at luon.net>)
1558 * AUTHORS: Add Robert McQueen for his work on the Python
1559 Bindings and other parts of D-Bus
1561 2005-11-07 Robert McQueen <robot101@debian.org>
1563 * python/decorators.py: Change emit_signal function to use the
1564 signature annotation of the signal when marhsalling the arguments from
1565 the service. Fix a bug where the code checking signature length
1566 against argument length referenced the wrong variable.
1568 * python/introspect_parser.py: Avoid adding the type signature of
1569 signal arguments to any methods which occur after them in the
1570 introspection data (!) by making the parser a little more careful
1571 about its current state.
1573 * python/service.py: Remove debug prints from last commit (again :D).
1575 * test/python/test-client.py, test/python/test-service.py: Add test
1576 signals with signature decorators to test the strict marshalling code
1577 gives errors at the right time. Could do with checking the signals
1578 actually get emitted too, given that the test does nothing with
1579 signals at the moment...
1581 2005-11-07 Robert McQueen <robot101@debian.org>
1583 * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1584 instances to stop madness of creating new instances representing
1585 the same bus connection all the time, rendering any tracking of
1586 match rules and bus names quite meaningless. Caught a bug where
1587 the private argument to SessionBus() and friends was being passed
1588 in as use_default_mainloop by mistake. Still some problems with
1589 multiple dbus_binding.Connection instances representing the same
1590 low-level connection (eg when you use both SessionBus() and
1591 StarterBus() in same process), but it's a lot better now than it
1594 * python/dbus_bindings.pyx: Add constants with the return values
1595 for bus_request_name().
1597 * python/service.py: Store bus name instances in a per-dbus.Bus cache
1598 and retrieve the same instances for the same name, so deletion can be
1599 done with refcounting. Also now throws some kind of error if you
1600 don't actually get the name you requested, unlike previously...
1602 * test/python/test-client.py: Add tests for instance caching of buses
1603 and bus name objects.
1605 2005-11-04 Robert McQueen <robot101@debian.org>
1607 * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1608 marshalling of boolean values. Add some booleans to the values in
1611 * python/decorators.py, python/service.py: Add an 'async_callbacks'
1612 argument to the dbus.service.method decorator, which allows you to
1613 name arguments to take two callback functions for replying with
1614 return values or an exception.
1616 * test/python/test-client.py, test/python/test-service.py: Add test
1617 case using asynchronous method reply functions, both return values and
1618 errors, and from within both the function itself and from a mainloop
1621 * python/decorators.py, python/service.py: Perform checking that the
1622 number of method/signal arguments matches the number of types in the
1623 signature at class loading time, not when you first introspect the
1626 * python/service.py: Remove debug print left by the last commit.
1628 2005-11-03 Robert McQueen <robot101@debian.org>
1630 * python/service.py: Heavy refactoring of method invocation, with
1631 hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1632 in favour of a new _message_cb that uses seperate functions for
1633 looking up the method to call, marshalling the return values, and
1634 sending exceptions as errors, and is easier to follow as a
1635 consequence. Fixes some corner cases about returning things that
1636 don't match your declared out_signature, allows exceptions to define
1637 _dbus_error_name and have it be sent over the bus as the error name,
1638 and paves the way for cool stuff like heeding the message no reply
1639 flag, asynchronous method implementations, informing the method of the
1640 sender, and including backtraces in the error messages.
1642 * test/python/test-client.py: Catch and print exceptions thrown in the
1643 async callback tests, rather than passing them to the low-level
1644 bindings to be ignored in a noisy and frustrating manner.
1646 2005-11-03 Robert McQueen <robot101@debian.org>
1648 * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1649 functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1650 tweak others to be consistent.
1652 * test/python/test-client.py: Tweak output of testInheritance.
1654 2005-10-29 Robert McQueen <robot101@debian.org>
1656 * python/service.py: Major changes to allow multiple inheritance
1657 from classes that define D-Bus interfaces:
1659 1. Create a new Interface class which is the parent class of
1660 Object, and make the ObjectType metaclass into InterfaceType.
1662 2. Patch written with Rob Taylor to replace use of method_vtable
1663 with code that walks the class's __MRO__ (method resolution order)
1664 to behave like Python does when invoking methods and allow
1665 overriding as you'd expect. Code is quite tricky because
1666 we have to find two methods, the one to invoke which has the
1667 right name and isn't decorated with the /wrong/ interface,
1668 and the one to pick up the signatures from which is decorated
1669 with the right interface.
1671 The same caveats apply as to normal multiple inheritance -
1672 this has undefined behaviour if you try and inherit from two
1673 classes that define a method with the same name but are
1674 decorated with different interfaces. You should decorate
1675 your overriding method with the interface you want.
1677 3. Replace grungy introspection XML generation code in the metaclass
1678 with dictionaries that cope correctly with multiple inheritance
1679 and the overriding of methods. This also uses the signature
1680 decorations to provide correct introspection data, including
1681 the debut appearance of the types of your return values. :D
1683 * test/python/test-client.py, test/python/test-service.py: Add a test
1684 case to try invoking an method that overrides one inherited from a
1685 D-Bus interface class.
1687 2005-10-29 Robert McQueen <robot101@debian.org>
1689 * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1690 Add checking for the end of struct character when marshalling a
1691 struct in MessageIter.append_strict.
1693 * python/examples/example-service.py,
1694 python/examples/gconf-proxy-service.py,
1695 python/examples/gconf-proxy-service2.py: Update to use gobject
1696 mainloop directly rather than appearing to depend on gtk.
1698 * python/test/test-client.py, python/test/test-server.py: Remove
1699 obsolete and broken test scripts for old bindings. We have up to date
1700 and working tests in test/python/.
1702 2005-10-29 Robert McQueen <robot101@debian.org>
1704 * python/decorators.py: Add optional arguments to the method and
1705 signal decorators to allow you to specify the signature of arguments
1706 and return values. Preserve the doc strings of signal functions in the
1707 decorated version, for pydoc and friends.
1709 * python/dbus_bindings.pyx, python/proxies.py: Replace the
1710 parse_signature_block function with an iterable dbus.Signature()
1711 type. Fix a bug in MessageIter.append_strict where you could append
1712 anything by claiming it was a string.
1714 * python/service.py: Use the out_signature decoration on methods to
1715 marshal return values, meaning you no longer require dbus.Array()
1716 or dbus.Dictionary() to indicate the type when returning empty
1717 arrays or dictionaries. Fix a bug where exceptions which are defined
1718 in __main__ are not turned into error replies.
1720 * test/python/test-client.py, test/python/test-service.py: Add test
1721 for correct marshalling of return values according to out_signature.
1722 Fix a bug in the async call test where the error_handler is missing a
1725 2005-10-29 Robert McQueen <robot101@debian.org>
1727 * glib/Makefile.am, glib/examples/Makefile.am,
1728 glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1729 Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1731 * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1733 * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1734 from Ubuntu by Daniel Silverstone to allow specifying match rules on
1737 2005-10-27 Ross Burton <ross@openedhand.com>
1739 * dbus/dbus-marshal-header.c:
1742 * glib/dbus-gobject.c:
1743 Stop compiler warning.
1745 2005-10-25 Ross Burton <ross@openedhand.com>
1748 * dbus/dbus-server-unix.c:
1749 * dbus/dbus-transport-unix.c:
1750 * glib/dbus-gmain.c:
1751 * glib/dbus-gobject.c:
1752 Add some const keywords.
1754 2005-10-25 Ross Burton <ross@openedhand.com>
1756 * doc/dbus-specification.xml:
1757 Document the NoReply annotation.
1759 * glib/dbus-binding-tool-glib.h:
1760 * glib/dbus-binding-tool-glib.c:
1761 Respect the NoReply annotation.
1763 2005-10-24 Robert McQueen <robot101@debian.org>
1765 * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1766 derive from unicode instead of str, and encode/decode UTF-8 when
1767 marshalling/unmarshalling bus messages
1769 * python/introspect_parser.py: encode introspection data as UTF-8
1770 before passing the buffer into libxml2
1772 * test/python/test-client.py: add unicode test strings
1774 * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1775 ignore generated python test files
1777 2005-10-17 John (J5) Palmieri <johnp@redhat.com>
1779 * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1780 and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1781 (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1783 * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1784 DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1785 when constructing struct signatures
1787 * python/_dbus.py (Bus): handle private connections using the
1788 private keyword in the constructor. defaults to private=False
1789 (Bus::close): new method to close a connection to the bus
1791 * python/dbus_bindings.pyx (Connection::close): renamed method
1792 was previously called disconnect
1793 (bus_get): now supports getting a private connection
1795 * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1796 keyword is set to True. if it is, execute the method without waiting
1798 (ProxyObject::_introspect_execute_queue): new method for executing
1799 all the pending methods that were waiting for the introspect to
1800 finish. this is called when introspect either succeeds or fails
1801 (ProxyObject::_introspect_error_handler): call queued methods
1803 2005-10-14 John (J5) Palmieri <johnp@redhat.com>
1805 * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1806 STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1808 * python/service.py (Object::_message_cb): handle exceptions correctly
1809 by sending them over the wire to the calling app. This makes sure
1810 the client returns immediately instead of waiting the 15 seconds to
1813 * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect):
1814 Add a test to benchmark how long it takes to introspect a service and
1815 call a method which returns a large element (pretty fast)
1817 * test/python/test-service.py (TestObject::GetComplexArray): new test
1818 method which pushes a lot of data
1820 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
1822 * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):
1823 reclaim memory outside of the loop and use del istead of just setting
1826 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
1828 * python/service.py (ObjectType::_reflect_on_signal): Always close
1829 signal tag even when there are no arguments
1831 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
1833 * configure.in: Set mono, mono-docs and Qt3 to default
1834 to no instead of auto when building. These bindings do not
1835 have full time maintainers and will not be supported for the
1838 2005-10-12 John (J5) Palmieri <johnp@redhat.com>
1840 patches from Michael Krivoruchko <misha at sun.com>:
1842 * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1843 _dbus_connection_message_sent,
1844 _dbus_connection_send_preallocated_unlocked_no_update,
1845 _dbus_connection_pop_message_link_unlocked): handle the case when path
1846 is NULL when calling _dbus_verbose
1848 * configure.in: check for functions getpeerucred and getpeereid
1850 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides
1851 support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+,
1852 OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid).
1853 Patch was only tested on Solaris 10 x86 so it might be issues
1854 with other platforms (i.e. BSDs and MacOSX)
1857 2005-10-05 John (J5) Palmieri <johnp@redhat.com>
1859 * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal
1860 instead of marshal basic so we can handle recursive types in a variant
1862 * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1865 * test/glib/test-service-glib.c, test-service-glib.xml
1866 (my_object_echo_variant [EchoVariant],
1867 my_object_process_variant_of_array_of_ints123
1868 [ProcessVariantOfArrayOfInts123]):
1869 Add two test methods
1871 * python/introspect_parser.py: New module for parsing introspect
1874 * python/dbus_bindings.pyx:
1875 (various places): when throwing errors fix to use errormsg instead
1876 of message local variable because Pyrex can get confused with other
1877 message variables (initial patch by Robert McQueen
1878 <robert.mcqueen at collabora.co.uk>)
1879 (MessageIter::parse_signature_block): new method for getting the next
1880 block in a signiture.
1881 (MessageIter::append_strict): new method for appending values strictly
1882 using the passed in signature instead of guessing at the type
1883 (MessageItter:: append_dict, append_struct, append_array): use
1884 signatures to marshal children if the signature is available
1886 * python/exceptions.py (IntrospectionParserException): new exception
1888 * python/proxies.py (ProxyMethod::__call__): Marshal args with
1889 introspected signatures if available, else we fall back to the
1890 old way of doing things.
1891 (ProxyObject::_introspect_reply_handler ): parse introspection data
1893 * python/service.py (ObjectType::_reflect_on_method): Properly
1894 terminate <method> if there are no args in the reflection data
1896 * test/python/test-client.py: add tests for talking with the GLib
1897 test server. This gives us better coverage for introspection since
1898 python to python will always generate arguments as variants. It also
1899 allows us to test the robustness of the GLib bindings and interlanguage
1903 2005-10-03 John (J5) Palmieri <johnp@redhat.com>
1905 * bus/driver.c (bus_driver_handle_introspect): Add signals
1906 to the introspect data. (patch from Daniel P. Berrange
1907 <dan at berrange.com>)
1909 * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1911 * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1912 _dbus_connection_run_builtin_filters): Changed these to
1913 be unlock_no_update functions and call
1914 _dbus_connection_send_unlocked_no_update instead of
1915 dbus_connection_send to avoid locking errors.
1917 * doc/TODO: Removed the make Ping test TODO
1919 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
1921 * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1922 We now copy the message from a DBusError and then free
1923 the error object befor throwing the error
1925 * glib/dbus-glib-tool.c: removed extra comma at the end of the
1926 DBusBindingOutputMode enum which was causing a warning.
1927 #include <time.h> so using time_t is explicitly defined
1929 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
1931 * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1933 (internal_bus_get): new method that take over the heavy lifting
1934 of dbus_bus_get and adds the ability to get a private connection
1936 (dbus_bus_get): wrapper to internal_bus_get that provides the same
1937 interface as in previous versions
1938 (dbus_bus_get_private): new method that is a wrapper to
1939 internal_bus_get to get a private connection to the bus
1942 (dbus_bus_get_private): add as a public libdbus interface
1944 - dbus-1.pc.in: output system_bus_default_address and
1945 sysconfdir variables so apps can use them when compiling
1947 2005-09-23 Harald Fernengel <harry@kdevelop.org>
1948 * dbus/qt: New Qt bindings
1950 2005-09-12 Waldo Bastian <bastian@kde.org>
1952 * dbus/dbus-marshal-validate.c,
1953 doc/dbus-specification.xml, test/Makefile.am,
1954 test/test-names.c: allow hyphens in bus names.
1956 2005-09-11 Mark McLoughlin <mark@skynet.ie>
1958 * test/data/auth/fallback.auth-script: we don't
1959 retry the EXTERNAL method when we know its going
1962 2005-09-11 Mark McLoughlin <mark@skynet.ie>
1964 * dbus/dbus-connection-internal.h: rename
1965 (add|remove|toggle)_(watch|timeout) to unlocked()
1967 * dbus/dbus-connection.c: ditto.
1969 * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1970 Update some callers for the renaming.
1972 2005-09-10 Mark McLoughlin <mark@skynet.ie>
1974 * dbus/dbus-auth.c: (record_mechanisms): don't
1975 retry the first auth mechanism because we know
1976 we're just going to get rejected again.
1978 * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1979 Fix thinko ... and what a nasty little bugger to
1980 track down you were ...
1982 * dbus/dbus-connection.c:
1983 (_dbus_connection_add_watch),
1984 (_dbus_connection_remove_watch): add note about
1985 these needing the connection to be locked.
1986 (_dbus_connection_get_dispatch_status_unlocked):
1987 set status to DATA_REMAINS when we queue the
1988 disconnected message.
1991 (bus_dispatch): fix warning.
1992 (check_existent_service_no_auto_start):
1993 Expect ChildSignaled error too.
1994 (check_existent_hello_from_self): fix another
1997 2005-09-08 Joe Shaw <joeshaw@novell.com>
1999 Patches from James Willcox <snorp@snorp.net>
2001 * mono/Makefile.am: Add Int16.cs and UInt16.cs
2003 * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2004 support array "out" parameters.
2006 * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2007 for 16-bit int support.
2009 2005-09-06 John (J5) Palmieri <johnp@redhat.com>
2013 * Patch from Steve Grubb:
2014 - bus/activation.c (bus_activation_service_reload_test): clean up
2016 - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional
2017 - dbus/dbus-message-factory.c (generate_special): fix a couple of
2018 buffer overflows in the test suite. This is non critical because
2019 it can not be exploited and this code is only run when doing a
2022 * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2023 - configure.in: Don't check and link against kdecore, only qt headers
2024 - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2025 - gcj/org/freedesktop/dbus/Makefile.am:
2026 add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2027 - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2028 and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2029 - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2030 - tools/Makefile.am: Add platform extentions to binaries
2031 (i.e. .exe on windows)
2034 - Make it so if no suitable version of python is found we only
2035 disable building python instead of exiting the configure script
2036 - Require version 2.4 of glib for glib bindings
2037 - Up version to 0.50
2039 * python/__init__.py: Sync version with libdbus to (0,50,0)
2041 2005-09-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
2043 * dbus/dbus-object-tree.c (find_subtree_recurse):
2044 a couple of optimizations (bug #710):
2045 - do a binary search in the tree
2046 - insert a new child at the right place directly, no need for
2048 - do the "double alloc" thing when allocating children
2050 2005-08-31 John (J5) Palmieri <johnp@redhat.com>
2052 * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2054 * python/dbus_bindings.pyx: Memory management foo
2055 (global): remove hacky _user_data_references global list
2056 (GIL_safe_cunregister_function_handler): userdata now stuffed into
2057 tuples. Unref user_data
2058 (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2059 (Connection::__del__): Remove and replace with __dealloc__ method
2060 (Connection::add_filter): Stuff user_data into a tuple. Use Py_INCREF
2061 to keep tuple from being deallocated instead of the global var hack
2062 (Connection::register_object_path): Stuff user_data into a tuple.
2063 Use Py_INCREF to keep tuple from being deallocated instead of the
2065 (Connection::register_fallback): Stuff user_data into a tuple.
2066 Use Py_INCREF to keep tuple from being deallocated instead of the
2068 (GIL_safe_pending_call_notification): Don't unref the message
2069 because it gets unreffed when going out of scope. Py_XDECREF
2071 (PendingCall::__del__): Remove and replace with __dealloc__ method
2072 (PendingCall::set_notify): ref the pending call because we will
2073 need it to stick around for when the notify callback gets called
2074 (Message::__del__): Remove and replace with __dealloc__ method
2076 * python/dbus_glib_bindings.pyx (init_gthreads): Changed to
2077 gthreads_init to match up with the dbus call
2079 * python/glib.py (init_threads): Changed to threads_init to match
2080 up with gobject.threads_init(). init_threads is kept for backwards
2081 compat but will most likely be deprecated in the future
2083 * test/python/test-client.py:
2084 - revamp to use Python's unittest functionality
2085 - add async call tests
2086 - setup threads in glib and dbus so we make sure locks are working
2088 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
2090 * python/dbus_bindings.pyx
2091 (_pending_call_notification, cunregister_function_handler,
2092 cmessage_function_handler): All callback functions have been rearranged
2093 to workaround a bug in Pyrex when working with the GIL which is Python's
2094 global lock when dealing with threads. They have been split into
2095 a wrapper function (which assumes the name of the old function) and
2096 a _GIL_safe_<function name> function which contains the functionality
2097 of the old function. This ensures that Pyrex does not write code
2098 the lock is released.
2101 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
2103 * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
2104 GIL global lock when calling back into Python
2106 2005-08-29 John (J5) Palmieri <johnp@redhat.com>
2110 * Add Havoc's patch that never got applied to HEAD (Bug #2436):
2112 * bus/policy.c (bus_policy_allow_user): change default "user is
2113 allowed" to be "user has same uid as the bus itself"; any
2114 allow/deny rules will override.
2116 * bus/session.conf.in: don't allow all users, since now by default
2117 the user that ran the bus can connect.
2119 2005-08-26 Colin Walters <walters@verbum.org>
2121 * tools/dbus-print-message.c (print_message): Flush stdout
2122 after printing a message, so that redirecting to a file, then
2123 hitting Ctrl-C works.
2125 2005-08-25 John (J5) Palmieri <johnp@redhat.com>
2127 * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2128 (EmptyMessage): new class that subclasses Message. This is a workaround
2129 to a Pyrex bug that fails to call __del__ when the Message object goes out
2130 of scope. For some reason subclassing Message fixes this bug
2131 (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2132 - s/Message(_create=0)/EmptyMessage everywhere else
2134 * test/python/test-{server|client}.py: add the python/.libs directory
2135 to the lookup path so dbus_bindings and dbus_glib_bindings don't
2136 get picked up from the system
2138 2005-08-25 Colin Walters <walters@verbum.org>
2140 * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2141 to Ryan Lortie for the suggestion.
2143 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
2145 * test/python: Add python regression test
2147 * configure.in: Add test/python/Makefile
2149 * test/Makefile.am: Add the python directory to SUBDIRS
2151 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
2156 (Interface::connect_to_signal): propigate keywords for match on args
2157 (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2159 * python/proxies.py (ProxyObject::connect_to_signal):
2160 propigate keywords for match on args
2162 * Makefile.am: point everything to pyexecdir since python borks
2165 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
2169 2005-08-23 Colin Walters <walters@verbum.org>
2171 * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2173 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
2175 * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2176 to fix some wranings. We now use dbus_bindings.DBusConnection instead
2177 of defining DBusConnection ourselves.
2179 2005-08-18 John (J5) Palmieri <johnp@redhat.com>
2181 * python/dbus.pth: New path file to fix up problems when installing
2182 c libraries to lib64 and python files to lib.
2184 * python/Makefile.am: install dbus.pth in the correct spot
2186 2005-08-17 John (J5) Palmieri <johnp@redhat.com>
2187 * ChangeLog: clean up my last entry a bit
2189 * doc/introspect.xsl: New stylesheet for converting introspection data
2190 into browser renderable xhtml. Contributed by Lennart Poettering.
2192 * doc/introspect.dtd: Fixups in the introspect format from Lennart
2195 * doc/dbus-tutorial.xml:
2196 - Add Colin Walter to the Authors section for authoring the GLib
2198 - Add descriptions of the new signature and type functionality
2199 in the Python complex type mapping section
2200 - Add a sidenote on the new args matching functionality in
2202 - Fixed up some of the examples to use the gobject.MainLoop
2206 (Bus::_create_args_dict): New. Converts a hash of arg matches
2207 to a more useable format
2208 (Bus::add_signal_receiver): add a **keywords parameter for catching
2209 arg match parameters
2210 (Bus::remove_signal_receiver): add a **keywords parameter for catching
2211 arg match parameters
2213 * python/matchrules.py:
2214 (MatchTree::exec_matches): Check for arg matches
2215 (SignalMatchRule::add_args_match): New method
2216 (SignalMatchRule::execute): Added args_list parameter as an optimization
2217 so we don't have to marshal the args more than once
2218 (SignalMatchRule::match_args_from_list): New method that checks to see
2219 if the rule's arg matches match an argument list. Only arguments
2220 set in the rule are checked.
2221 (SignalMatchRule::match_args_from_rule): New method that checks to see
2222 if the rule's arg matches match another rule's. All args have to match
2223 in order for this method to return true. If either rule has more args
2224 then it is not a match.
2225 (SignalMatchRule::is_match): Add args match
2226 (SignalMatchRule::repr): Add args to the final output if they exist
2228 2005-08-17 Ross Burton <ross@burtonini.com>
2230 * glib/dbus-gproxy.c:
2231 (dbus_g_proxy_call_no_reply): unref the message once sent.
2232 (dbus_g_proxy_call): protect against NULL proxy.
2234 2005-08-16 John (J5) Palmieri <johnp@redhat.com>
2236 * python/__init__.py: Version updated (0, 43, 0)
2238 * python/dbus_bindings.pyx:
2239 - Fixed type objects to have self passed into __init__
2240 - Added the Variant type
2241 - Add the ability to specify types or signatures for Array, Variant
2243 (Connection::send_with_reply_handlers): return a PendingCall object
2244 (_pending_call_notification): handle the case when an error is returned
2245 without an error message in the body
2246 (MessageIter::get_boolean): return True or False instead of an integer
2247 (MessageIter::python_value_to_dbus_sig): add direct checking of types
2248 and add checks for objects with embeded signatures or types (Array,
2249 Variant and Dictionary)
2250 (MessageIter::append_byte): handle case when the value is a dbus.Byte
2251 (MessageIter::append_dict): handle embeded types or signatures
2252 (MessageIter::append_array): handle embeded types or signatures
2253 (MessageIter::append_variant): new method
2255 * python/proxies.py:
2256 (DeferedMethod): New. Dummy executable object used when queuing calls
2257 blocking on introspection data
2258 (ProxyMethod::__call__): add the timeout keyword for specifying longer
2259 or shorter timeouts for method calls
2260 (ProxyObject): Add first pass at an introspection state machine
2261 (ProxyObject::__init__): Add introspect keyword for turing off an on
2263 (ProxyObject::_Introspect): Internal Introspect call that bypasses
2264 the usual mechanisms for sending messages. This is to avoid a deadlock
2265 where the Intospect call would be queued waiting for the Introspect
2267 (ProxyObject::_introspect_reply_handler): New. This method is called
2268 when introspection returns with no error
2269 (ProxyObject::_introspect_error_handler): New. This method is called
2270 when introspection encounters an error
2271 (ProxyObject::__getattr__): Code to handle different introspection
2272 states. Queue async calls or block blocking calls if we are
2273 introspecting. Pass through as normal if we are not or are done with
2276 * python/service.py: Import signal and method from decorators.py
2278 * python/types.py: Add Variant type
2280 2005-08-16 Colin Walters <walters@verbum.org>
2282 * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2283 DBusError message is NULL.
2285 2005-08-09 Havoc Pennington <hp@redhat.com>
2287 * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2288 malloc'd copy of the name parameter
2290 2005-08-09 Havoc Pennington <hp@redhat.com>
2292 * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2293 warning if the reply serial is set to 0
2295 2005-08-04 Colin Walters <walters@verbum.org>
2297 * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2298 (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2299 (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2300 (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2301 (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2302 (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2303 (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2304 * glib/dbus-gvalue.h (dbus_g_value_types_init)
2305 (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2306 (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2308 Prefix name with _ to ensure they're not exported. All callers
2311 * glib/dbus-gvalue.c (typecode_to_gtype)
2312 (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2313 (signature_iter_to_g_type_dict)
2314 (signature_iter_to_g_type_array)
2315 (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2316 (dbus_gtypes_from_arg_signature):
2317 Move to dbus-gsignature.c.
2319 * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2320 dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2321 (dbus_binding_tool_output_glib_client): Ditto.
2323 * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2324 and dbus-gsignature.h
2326 * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2329 2005-08-03 Colin Walters <walters@verbum.org>
2331 * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2332 catch any incompatible changes accidentally made.
2334 2005-08-03 Havoc Pennington <hp@redhat.com>
2336 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2337 typo, from Julien Puydt
2339 * bus/connection.c (bus_connection_disconnected): we were always
2340 doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2342 2005-08-01 Colin Walters <walters@verbum.org>
2344 Patch from Joe Markus Clarke:
2346 * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2349 2005-08-01 Colin Walters <walters@verbum.org>
2351 Patch from Joe Markus Clarke:
2353 * tools/dbus-send.c (main):
2355 Don't use C99 style initializers (bug #3933).
2357 2005-08-01 Colin Walters <walters@verbum.org>
2359 Patch from Joe Markus Clarke:
2361 * glib/dbus-gvalue.c (dbus_g_value_types_init):
2362 * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init)
2363 * glib/dbus-gobject.c (write_interface):
2365 Don't use C99 style initializers (bug #3933).
2367 2005-07-31 Havoc Pennington <hp@redhat.com>
2369 * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2370 dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2372 2005-07-30 Havoc Pennington <hp@redhat.com>
2374 * fix a bunch of Doxygen warnings and mistakes
2376 2005-07-30 Havoc Pennington <hp@redhat.com>
2378 * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2379 DBUS_BUILD_TESTS since it's now used in production code
2381 2005-07-29 Havoc Pennington <hp@redhat.com>
2383 * test/glib/test-profile.c (write_junk): initialize the junk
2384 buffer so valgrind doesn't have a breakdown
2386 2005-07-29 Havoc Pennington <hp@redhat.com>
2388 * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2389 (match_rule_matches): remove unused arg
2390 (test_matching): add tests for match_rule_matches()
2392 * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2393 do arg0='foo' arg5='bar' in the match rules
2394 (match_rule_matches): don't match if the arg0='foo' doesn't match.
2396 * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2398 2005-07-29 Ross Burton <ross@openedhand.com>
2400 * dbus/dbus-connection.c:
2401 Don't create a DBusCondVar which is never used.
2403 2005-07-27 Ross Burton <ross@openedhand.com>
2405 * dbus/dbus-message.c:
2406 Reduce the size of the maximum cached message to 10K.
2408 2005-07-25 Ross Burton <ross@openedhand.com>
2410 * glib/dbus-gproxy.c:
2411 Remove matches when all proxies are unregistered.
2413 2005-07-24 Colin Walters <walters@verbum.org>
2415 * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2416 typedata; recursive arrays won't have it.
2418 * test/glib/test-dbus-glib.c:
2419 * test/glib/test-service-glib.c:
2420 * test/glib/test-service-glib.xml: Add recursive arrays tests.
2422 2005-07-20 John (J5) Palmieir <johnp@redhat.com>
2424 * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2425 proxies.py, service.py: Cleanup of code after running it through the
2426 pyflakes code checker mostly dealing with undefined names.
2427 (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2429 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
2431 * NEWS: Update to 0.35.2
2433 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
2435 * python/_dbus.py: Remove import of the dbus.services
2436 module as it no longer exists (patch from Dimitur Kirov)
2438 * python/service.py (Object::__init__): Fixed typo
2439 s/name/bus_name (patch from Dimitur Kirov)
2441 * python/examples/example-signal-emitter.py: import dbus.glib
2442 to get the main loop and use glib mainloop instead of gtk so
2443 X doesn't have to be running.
2445 * python/examples/example-signal-recipient.py: import dbus.glib
2446 to get the main loop and use glib mainloop instead of gtk so
2447 X doesn't have to be running. Import the decorators module
2450 * test/glib/Makefile.am: Added DIST_EXTRA files that distcheck
2451 didn't pick up on but are needed to build
2453 * configure.in: upped version to 0.35.2
2455 * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2456 added Colin Walters' SELinux API rename patch from head
2457 s/unix sercurity context/selinux security context/
2459 2005-07-16 John (J5) Palmieri <johnp@redhat.com>
2461 * python/Makefile.am: dbus_binding.pxd.in should be included
2462 in EXTRA_DIST not dbus_binding.pxd
2463 fix up $(srcdir) hopefully for the last time
2465 * NEWS: Update to 0.35.1
2467 2005-07-16 Colin Walters <walters@verbum.org>
2469 * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2470 from bus_driver_handle_get_connection_unix_security_context. Update for
2472 (message_handlers): Update for renames.
2474 * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2475 _dbus_string_init failure correctly.
2476 (bus_selinux_append_context): Convert SID to context. Append it
2478 (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2481 * bus/selinux.h: Update prototype.
2483 * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2484 from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2486 2005-07-15 Colin Walters <walters@verbum.org>
2488 * doc/TODO: Add note about convenience wrappers.
2490 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2492 * NEWS: Update to 0.35
2494 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2496 * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2497 so distcheck doesn't fail
2499 * glib/examples/Makefile.am: Add example-service.xml and
2500 example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2502 * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2503 statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2505 * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2506 compiler looks in the right places during distcheck
2508 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2510 * glib/example/Makefile.am: Fix a typo which cause make distcheck
2513 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2515 * python/examples/example-service.py,
2516 python/examples/example-signal-emitter.py: Fixed up examples
2519 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2521 * python/__init__.py: Upped to version (0,42,0) because of
2524 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2526 * ChangeLog: fix date in last entry
2528 * configure.in, bus/system.conf.in: add the ability to configure
2529 the system bus user at compiletime with the --with-dbus-user flag
2530 (patch from Kristof Vansant)
2532 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2534 * bus/dispatch.c, test/test-service.c: Add testcase
2535 for sending messages to oneself (TODO item).
2537 * python/service.py (class Object): Swap ordering of bus_name
2538 and object_path parameters to better support inheritance.
2540 * doc/dbus-tutorial.xml: change Python docs to reflect change
2541 in parameter ordering and fix the inheritance section.
2543 * doc/TODO: remove sending message to oneself TODO item
2545 2005-07-15 Ross Burton <ross@openedhand.com>
2547 * glib/dbus-gproxy.c:
2548 Fix a leak when calling methods via the proxy.
2550 2005-07-15 Colin Walters <walters@verbum.org>
2552 * bus/selinux.c (bus_selinux_append_context): Wrap in
2555 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
2557 * python/_dbus.py (Bus::remove_signal_receiver):
2558 don't add a callback to the match if none has been passed in
2560 * python/matchrules.py (SignalMatchTree::remove): if the rule
2561 being matched does not have a callback treat it as a wildcard
2564 * doc/dbus-tutorial.xml: Add Python tutorial
2566 2005-07-14 Colin Walters <walters@verbum.org>
2569 (bus_driver_handle_get_connection_unix_security_context): New function.
2570 (message_handlers): Add.
2572 * bus/selinux.c (bus_selinux_append_context): New function; appends
2573 security context to message.
2575 * bus/selinux.h: Prototype.
2577 * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2579 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
2581 * bus/activation.c: clean up all tabs to be 8 spaces
2582 (bus_activation_activate_service): make sure we clean up
2585 * bus/dispatch.c: clean up all tabs to be 8 spaces
2586 (check_shell_fail_service_auto_start): New function
2587 tests to make sure we get fail properly when trying to auto start a service
2588 with a faulty command line
2589 (check_shell_service_success_auto_start): New function tests to make sure
2590 auto started services get the arguments on the command line
2592 * test/test-shell-service.c: Added service for testing auto-starting with
2593 command line arguments
2595 * test/data/valid-service-files/debug-shell-echo-fail.service.in,
2596 test/data/valid-service-files/debug-shell-echo-success.service.in:
2597 Added service files for testing auto-starting with command line arguments
2599 * */.cvsignore: added a bunch of generated files to various .cvsignore files
2601 2005-07-14 Rodrigo Moya <rodrigo@novell.com>
2603 * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2605 * dbus/Makefile.am: added new files to build.
2607 * bus/activation.c (bus_activation_activate_service): support
2608 activation commands with parameters.
2610 * test/shell-test.c: added test program for the shell parsing
2613 2005-07-13 David Zeuthen <davidz@redhat.com>
2615 * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2616 64 bit signed and unsigned parameters
2618 2005-07-13 John (J5) Palmieri <johnp@redhat.com>
2620 * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2622 * python/service.py (class Name): renamed BusName to make it clearer
2623 what the object is for (a name on the bus)
2625 * python/examples/example-service.py,
2626 python/examples/example-signal-emitter.py: change the Name object to
2629 2005-07-12 Colin Walters <walters@verbum.org>
2631 Patch from Jim Gettys <Jim.Gettys@hp.com>.
2633 * tools/dbus-launch.c: Include sys/select.h.
2635 2005-07-12 John (J5) Palmieri <johnp@redhat.com>
2636 * python/dbus_bindings.pyx.in: removed
2638 * python/dbus_bindings.pyx: Added.
2639 - Fixed some memleaks (patch from
2640 Sean Meiners <sean.meiners@linspireinc.com>)
2641 - Broke out the #include "dbus_h_wrapper.h" and put it in its
2642 own pxd file (Pyrex definition)
2643 - Broke out glib dependancies into its own pyx module
2645 * python/dbus_bindings.pdx: Added.
2646 - Defines C class Connection for exporting to other modules
2648 * python/dbus_glib_bindings.pyx: Added.
2649 - New module to handle lowlevel dbus-glib mainloop integration
2651 * python/glib.py: Added.
2652 - Registers the glib mainloop when you import this module
2654 * python/services.py: Removed (renamed to service.py)
2656 * python/service.py: Added.
2657 - (class Server): renamed Name
2659 * python/__init__.py: Bump ro version (0,41,0)
2660 -don't import the decorators or service module
2661 by default. These now reside in the dbus.service namespace
2663 * python/_dbus.py (Bus::__init__): Add code run the main loop
2664 setup function on creation
2666 * python/examples/example-service.py,
2667 python/examples/example-signal-emitter.py: update examples
2669 * python/examples/gconf-proxy-service.py,
2670 python/examples/gconf-proxy-service2.py: TODO fix these up
2672 * doc/TODO: Addition
2673 - Added a Python Bindings 1.0 section
2674 - added "Add match on args or match on details to match rules"
2677 2005-07-12 Colin Walters <walters@verbum.org>
2679 * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h)
2680 (statemachine-glue.h):
2681 * glib/examples/Makefile.am (example-service-glue.h)
2682 (example-signal-emitter-glue.h):
2683 * glib/Makefile.am (dbus-glib-error-switch.h):
2684 Add libtool --mode=execute so we use the built library instead
2685 of any installed one.
2687 2005-07-11 Colin Walters <walters@verbum.org>
2689 * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2690 (dbus_g_value_types_init): Remove assertion.
2691 (dbus_g_value_get_g_type, dbus_g_value_open)
2692 (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2693 (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2694 functions related to DBusGValue. Now we marshal/demarshal
2695 structures as GValueArray.
2696 (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2698 (signature_iter_to_g_type_array): Don't call
2699 signature_iter_to_g_type_struct.
2700 (signature_iter_to_g_type_struct): Delete.
2701 (dbus_gvalue_to_signature): Delete.
2702 (dbus_gvalue_to_signature): New function with same name as other
2703 one; we can convert structures to signatures.
2704 (demarshal_valuearray): New function.
2705 (get_type_demarshaller): Use it.
2706 (demarshal_recurse): Delete.
2707 (marshal_proxy): New function.
2708 (marshal_map): Warn if we can't determine signature from type.
2709 (marshal_collection_ptrarray): Ditto.
2710 (marshal_collection_array): Ditto.
2711 (get_type_marshaller): Use marshal_valuearray.
2712 (marshal_recurse): Delete.
2713 (_dbus_gvalue_test): Add some tests.
2715 * dbus/dbus-glib.h (struct _DBusGValueIterator):
2716 (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2717 (dbus_g_value_open, dbus_g_value_iterator_get_value)
2718 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2719 (dbus_g_value_free): Remove prototypes.
2721 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2724 * glib/examples/example-service.c:
2725 * glib/examples/example-client.c: Implement GetTuple.
2727 * test/glib/test-dbus-glib.c:
2728 * test/glib/test-service-glib.c:
2729 * test/glib/test-service-glib.xml: Add structure tests.
2731 2005-07-10 Colin Walters <walters@verbum.org>
2733 * doc/TODO: Knock off some GLib items with this patch.
2735 * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error)
2736 (_dbus_gvalue_signals_error): New functions.
2738 * glib/dbus-gvalue-utils.h: Prototype them.
2740 * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2741 and change to not output const/retval flags for input args. All
2743 (invoke_object_method): Refactor to handle return values. Add
2744 some more comments in various places. Remove debug g_print.
2746 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2748 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2750 (compute_gsignature): New function; refactored from code from
2751 compute_marshaller and compute_marshaller_name. Enhance to
2752 handle return values and async ops more cleanly. Update for
2753 async ops returning NONE instead of BOOLEAN.
2754 (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2755 and output appropriate string.
2756 (generate_glue): Handle return value annotation. Also don't dump
2757 constness flag for input arguments.
2759 * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2760 files shared between installed library and utilities.
2761 (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2762 (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2763 binding tool can access gtype utility functions.
2765 * test/glib/test-service-glib.c:
2766 * test/glib/test-service-glib.xml:
2767 * test/glib/test-dbus-glib.c: Add some tests for return values.
2769 2005-07-09 Colin Walters <walters@verbum.org>
2771 * glib/dbus-gparser.c (parse_annotation): Add annotations to
2772 argument if available, not method.
2774 * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2775 (invoke_object_method): First, remove some redundant
2776 GValues (object_value, error_value) in favor of working on
2777 array directly. Second, rework constness to be less buggy.
2778 Now we iterate directly over the argument metadata instead
2779 of parallel iterating over output signature and metadata.
2781 * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2783 * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2784 annotation on input args.
2786 2005-07-09 Colin Walters <walters@verbum.org>
2788 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2791 * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2794 * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2795 (method_dir_signature_from_object_info): Handle arg_iterate change.
2796 (write_interface): Ditto.
2797 (lookup_object_info): Don't barf if format_version is > 0.
2798 (invoke_object_method): Handle arg constness.
2800 * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2801 (arg_info_new): Create.
2802 (arg_info_unref): Destroy.
2803 (arg_info_get_annotations, arg_info_get_annotation)
2804 (arg_info_add_annotation): New functions.
2806 * glib/dbus-gidl.h: Prototype them.
2808 * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2809 args, disallow them in properties.
2810 (parse_annotation): Handle arg annotations.
2812 * test/glib/test-service-glib.xml:
2813 * test/glib/test-service-glib.c: Update to make some methods
2816 2005-07-08 Colin Walters <walters@verbum.org>
2818 * test/glib/test-service-glib.xml:
2819 * test/glib/test-service-glib.c:
2820 * test/glib/test-dbus-glib.c: Test a{sv}.
2822 * glib/examples/statemachine/statemachine.c:
2823 * glib/examples/statemachine/statemachine-server.c:
2824 * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2825 add progress bar, etc.
2827 * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2828 needed anymore due to generic array/map marshalling.
2829 (dbus_g_value_types_init): Don't register basic arrays or the
2831 (dbus_gtype_from_signature_iter): Don't try to recurse into
2833 (dbus_gtype_to_signature): Check collection/map before type
2835 (demarshal_garray_basic): Renamed to demarshal_collection_array.
2836 (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2837 generic map creation/append functions instead of hash table
2839 (get_type_demarshaller): Handle maps.
2840 (demarshal_collection): Dispatch on collection type to either
2841 demarshal_collection_ptrarray or demarshal_collection_array.
2842 (get_type_marshaller): Handle maps.
2843 (marshal_collection): Dispatch collection type to either
2844 marshal_collection_ptrarray or marshal_collection_array.
2845 (_dbus_gvalue_test): New test.
2847 * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2848 (hash_free_from_gtype): Use it to free GValues.
2849 (hashtable_append): New function.
2850 (ptrarray_append): Fix prototype.
2851 (slist_append): Ditto.
2852 (_dbus_gvalue_utils_test): Extend tests.
2854 * glib/dbus-gtype-specialized.c
2855 (dbus_g_type_specialized_init_append): Renamed from
2856 dbus_g_type_specialized_collection_init_append. Remove const from
2857 value, since we steal it.
2858 (dbus_g_type_specialized_map_append): New function.
2860 * glib/dbus-gtype-specialized.h: Update prototypes.
2861 Add DBusGTypeSpecializedMapAppendFunc.
2863 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2866 * glib/dbus-gtest.h: Prototype it.
2868 2005-07-08 Ross Burton <ross@openedhand.com>
2871 Add DBysGAsyncData for the async bindings.
2873 * glib/dbus-binding-tool-glib.c:
2874 Re-enable the async bindings.
2876 * test/glib/test-dbus-glib.c:
2877 Add a test for the generated async bindings.
2879 2005-07-08 Colin Walters <walters@verbum.org>
2881 * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2884 2005-07-08 Colin Walters <walters@verbum.org>
2886 * tools/Makefile.am: Kill of print-introspect in favor of using
2887 dbus-send --print-reply=literal.
2889 * test/glib/test-service-glib.xml:
2890 * test/glib/test-service-glib.c (my_object_get_objs): New test
2893 * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2894 (main): Test GetObjs.
2896 * glib/examples/statemachine/Makefile.am:
2897 * glib/examples/statemachine/sm-marshal.list:
2898 * glib/examples/statemachine/statemachine-client.c:
2899 * glib/examples/statemachine/statemachine-server.c:
2900 * glib/examples/statemachine/statemachine-server.xml:
2901 * glib/examples/statemachine/statemachine.c:
2902 * glib/examples/statemachine/statemachine.h:
2903 * glib/examples/statemachine/statemachine.xml:
2907 * glib/examples/example-service.c (main): Move invocation
2908 of dbus_g_object_type_install_info earlier, to emphasize it
2909 should only be done once.
2911 * glib/examples/example-signal-emitter.c (main): Ditto.
2913 * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2915 * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2916 (dbus_gvalue_marshal): Update prototypes.
2918 * glib/dbus-gvalue.c: Update all marshalling functions to take
2919 const GValue instead of GValue.
2920 (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2922 (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2924 (dbus_gtype_to_signature): Handle generic collecitons and maps.
2925 Return a newly-allocated string.
2926 (demarshal_proxy, demarshal_object_path, demarshal_object)
2927 (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2928 we get the wrong types from message.
2929 (get_type_demarshaller): New function, extracted from
2930 dbus_gvalue_demarshal.
2931 (demarshal_collection): New function, demarshals generic
2933 (dbus_gvalue_demarshal): Just invoke result of
2934 get_type_demarshaller. Throw error if we don't have one.
2935 (marshal_garray_basic): Abort on OOM.
2936 (get_type_marshaller): New function, extracted from
2937 dbus_gvalue_marshal.
2938 (collection_marshal_iterator, marshal_collection): New functions;
2939 implements generic marshalling for an iteratable specialized
2941 (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2943 * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2945 (ptrarray_value_from_gvalue): Ditto.
2946 (ptrarray_append, ptrarray_free): New functions.
2947 (slist_constructor, slist_iterator, slist_copy_elt, slist_copy)
2948 (slist_append, slist_end_append, slist_free): New functions.
2949 (dbus_g_type_specialized_builtins_init): Add append fuctions
2950 for GPtrArray and GSList. Register GSList.
2951 (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2953 * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2955 (dbus_g_type_specialized_collection_init_append)
2956 (dbus_g_type_specialized_collection_append)
2957 (dbus_g_type_specialized_collection_end_append): Prototype.
2958 (DBusGTypeSpecializedCollectionVtable): Add append_func and
2961 * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append)
2962 (dbus_g_type_specialized_collection_append)
2963 (dbus_g_type_specialized_collection_end_append): New functions.
2964 (dbus_g_type_map_value_iterate): Take const GValue.
2965 (dbus_g_type_collection_value_iterate): Ditto.
2967 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2968 _dbus_gvalue_utils_test.
2970 * glib/dbus-gtest.h: Prototype it.
2972 * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2973 using uninitialized owner_list.
2974 (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2976 (dbus_g_proxy_end_call_internal): Update to use error set
2977 from dbus_gvalue_demarshal instead of setting it here.
2978 (dbus_g_proxy_begin_call): Move return_if_fail here.
2980 * glib/dbus-gobject.c (write_interface): Update for
2981 dbus_gtype_to_signature returning new string.
2983 * configure.in: Add glib/examples/statemachine.
2985 2005-07-08 Joe Shaw <joeshaw@novell.com>
2987 * configure.in: Add a configure option, --with-console-auth-dir
2989 * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2990 new setting. Patch from Kay Sievers.
2992 2005-07-06 Colin Walters <walters@verbum.org>
2994 * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2995 (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2996 (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2997 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2998 Delete in favor of dbus_g_proxy_begin_call and
2999 dbus_g_proxy_cancel_call.
3000 (DBusGProxyCall, DBusGProxyCallNotify): New.
3001 (dbus_g_proxy_begin_call): Change prototype to take callback, user
3002 data, and destroy function. This replaces
3003 dbus_g_pending_call_set_notify.
3004 (dbus_g_proxy_cancel_call): Prototype.
3005 (DBusGAsyncData): Delete, shouldn't be needed anymore.
3007 * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3009 (struct _DBusGProxyManager): Add bus_proxy member, which is an
3010 internal proxy for calls to the bus. Remove
3011 pending_nameowner_calls, now the internal proxy keeps track.
3012 (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3013 pending_nameowner_calls.
3014 (got_name_owner_cb): Update prototype, and use
3015 dbus_g_proxy_end_call.
3016 (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3017 (dbus_g_proxy_manager_register): Delete directly libdbus code in
3018 favor of using internal proxy.
3019 (dbus_g_proxy_manager_unregister): Update to use
3020 dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3021 (dbus_g_proxy_init): Initialize pending calls map.
3022 (dbus_g_proxy_constructor): New.
3023 (dbus_g_proxy_class_init): Add get/set property functions,
3024 constructor, and add NAME, PATH, and INTERFACE properties.
3025 (cancel_pending_call): New function.
3026 (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3028 (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3029 (GPendingNotifyClosure): New structure.
3030 (d_pending_call_notify, d_pending_call_free): Moved here from
3032 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3034 (manager_begin_bus_call): New internal function for talking to
3036 (dbus_g_proxy_new): Construct object using GObjet properties.
3037 (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3038 Create closure of same, and insert call into map of pending calls.
3039 (dbus_g_proxy_end_call_internal): Take call id instead of pending
3040 call. Look up pending call in current set. Remove it when we've
3042 (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3043 (dbus_g_proxy_begin_call): Change API to take callback, user data,
3044 and destroy function directly.
3045 (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3046 (dbus_g_proxy_call): Invoke with NULL callback.
3047 (dbus_g_proxy_cancel_call): New function, replaces
3048 dbus_g_pending_call_cancel.
3050 * glib/dbus-gparser.c (validate_signature): Fix call to
3053 * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3054 New quark for attaching metadata to GType.
3055 (info_hash): Delete.
3056 (lookup_object_info): Look up using quark.
3057 (dbus_g_object_type_install_info): Check that a type is classed,
3058 not that it's an object. Also just install type data using quark
3059 instead of using global hash.
3061 * glib/dbus-glib.c (dbus_g_pending_call_ref)
3062 (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3063 (GPendingNotifyClosure): Delete.
3064 (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3065 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3067 * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3068 client method generation until we can fix it...
3070 * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3071 (load_from_service_thread_func): Ditto.
3073 * tools/dbus-names-model.c (struct NamesModel): Hold
3075 (have_names_notify): Update prototype, use
3076 dbus_g_proxy_cancel_call.
3077 (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3079 * tools/dbus-monitor.c (filter_func): Update for print_message
3082 * test/glib/test-dbus-glib.c: Add more tests for async
3083 invocations. Update many begin_call/end_call pairs to just use
3086 * tools/dbus-send.c (main): Add --print-reply=literal mode. This
3087 allows us to dump print-introspect.c.
3089 * tools/dbus-print-message.h (print_message): Add literal argument
3090 to print_message which is intended to allow printing arguments without
3091 metadata like "string=".
3093 * tools/dbus-print-message.c (print_iter): Add literal argument.
3094 (print_message): Allow printing string messages literally.
3096 2005-07-05 Colin Walters <walters@verbum.org>
3098 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3099 Remove value refcount leak, original patch from Jorn Baayen
3100 <jorn@openedhand.com>. Also remove useless extra value in favor
3101 of prepending to value array directly.
3103 2005-07-02 Colin Walters <walters@verbum.org>
3105 * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
3107 2005-07-01 Colin Walters <walters@verbum.org>
3109 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3111 * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
3112 (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3113 G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3114 and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3116 2005-06-30 Colin Walters <walters@verbum.org>
3118 * test/glib/test-dbus-glib.c:
3119 * test/glib/test-service-glib.c:
3120 * test/glib/test-service-glib.xml: Update tests for new error
3121 setting bits, also add async tests (patch from Ross Burton).
3123 * test/glib/Makefile.am (test_service_glib_LDADD): Add
3124 DBUS_GLIB_THREADS_LIBS.
3126 * glib/dbus-gproxy.c (get_name_owner)
3127 (dbus_g_pending_call_end_valist): Ditto.
3129 * glib/dbus-gobject.c (error_metadata): New mapping from GError
3130 domain (GQuark) to DBusGErrorInfo.
3131 (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3132 quark in error_metadata. Take message interface as default
3133 error message interface.
3134 (gerror_to_dbus_error_message): Pass message interface.
3135 (dbus_set_g_error): Resurrected.
3136 (dbus_g_error_info_free): New function.
3137 (dbus_g_object_type_install_info): Use g_type_class_ref instead
3138 of _peek to actually create the object class if it hasn't been
3140 (dbus_g_error_domain_register): New function.
3142 * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3144 * glib/dbus-gparser.c (validate_signature): Ditto.
3146 * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3147 (dbus_g_error_domain_register): Prototype.
3149 * glib/dbus-glib.c (dbus_g_error_set): Delete.
3152 2005-06-29 Colin Walters <walters@verbum.org>
3154 * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY. Add
3155 DBUS_TYPE_G_OBJECT_PATH.
3157 * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3158 for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3159 be handled more generically). Add DBUS_TYPE_G_OBJECT_PATH.
3160 (dbus_g_object_path_get_g_type): New function.
3161 (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3162 to DBUS_TYPE_G_OBJECT_PATH by default.
3163 (demarshal_proxy): Remove unused name variable.
3164 (demarshal_object_path, marshal_object_path): New functions.
3165 (demarshal_proxy_array, marshal_proxy_array): Delete.
3167 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3168 DBUS_TYPE_G_OBJECT_PATH to char *.
3169 (dbus_g_type_get_lookup_function): Map builtin
3170 DBUS_TYPE_G_OBJECT_PATH.
3172 * test/glib/test-dbus-glib.c
3173 * test/glib/test-service-glib.c (my_object_objpath):
3174 Adapt tests to new object path marshalling.
3176 2005-06-29 John (J5) Palmieri <johnp@redhat.com>
3178 * configure.in: force check for Python >= 2.4
3180 2005-06-29 Colin Walters <walters@verbum.org>
3182 Patch from Ross Burton <ross@openedhand.com>
3184 * glib/dbus-gobject.c (invoke_object_method): Unset object
3185 value in all cases, not only in async case.
3187 2005-06-29 Colin Walters <walters@verbum.org>
3189 * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3190 name_call for keeping track of any outgoing GetNameOwner call.
3191 Also add for_owner and associated.
3192 (struct _DBusGProxyManager): Add owner_names, which is hash table
3193 that maps a base name to a list of names it owns (that we're
3194 interested in). Add pending_nameowner_calls which is a list of
3195 all outstanding GetNameOwner; avoids us having to iterate over
3196 every proxy. Add unassociated_proxies which keeps track of name
3197 proxies with no associated name owner.
3198 (dbus_g_proxy_manager_unref): Destroy owner_names.
3199 (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3201 (find_name_in_info, name_owner_foreach)
3202 (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3203 (dbus_g_proxy_manager_monitor_name_owner)
3204 (dbus_g_proxy_manager_unmonitor_name_owner)
3205 (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3206 New functions; they manipulate the owner_names mapping.
3207 (got_name_owner_cb): New function.
3208 (get_name_owner): New function, extracted from
3209 dbus_g_proxy_new_for_name_owner.
3210 (dbus_g_proxy_manager_register): For now we need to keep track of
3211 all NameOwnerChanged. Also if the proxy is for a name, if we
3212 don't already know the name owner, queue a new GetNameOwner
3213 request and add it to our list of unassociated proxies. Otherwise
3215 (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3216 cancel any pending GetNameOwner call, etc.
3217 (dbus_g_proxy_manager_filter): Handle NameOwnerChanged. Also use
3218 the owner_names mapping to look up the current names for the
3219 signal source, and dispatch to any proxies for that name.
3220 (dbus_g_proxy_new): Initialize new members.
3221 (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3222 (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3223 (dbus_g_pending_call_end_valist): New function, extracted from
3224 dbus_g_proxy_end_call_internal. Useful when we don't have a proxy
3225 but want to use the GLib infrastructure. Also note how many
3226 arguments in reply were over.
3227 (dbus_g_pending_call_end): New function, just call
3228 dbus_g_pending_call_end_valist.
3229 (dbus_g_proxy_end_call_internal): Just call
3230 dbus_g_pending_call_end_valist.
3232 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3233 of builtin marshaller for STRING_STRING_STRING.
3235 * test/glib/test-dbus-glib.c:
3236 * test/glib/test-service-glib.c:
3237 * test/glib/test-service-glib.xml:
3238 Extend tests to cover name proxies, destruction of owner proxies,
3241 * glib/examples/example-signal-recipient.c
3242 (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3244 * tools/dbus-send.c (main): Print D-BUS error name in addition
3247 2005-06-28 John (J5) Palmieri <johnp@redhat.com>
3249 * python/dbus_bindings.pyx.in (cunregister_function_handler,
3250 cmessage_function_handler): Patch from
3251 Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3252 by using the Py_GILState_Ensure/Release to synchronize with the
3255 2005-06-28 Ray Strode <rstrode@redhat.com>
3257 * dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3258 babysitter helper process on last unref, bug #2813.
3260 2005-06-27 Colin Walters <walters@verbum.org>
3262 * test/glib/test-dbus-glib.c:
3263 * test/glib/test-service-glib.c:
3264 * test/glib/test-service-glib.xml:
3265 Test hash table signal emitting.
3267 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3268 types to their fundamental basis types, since this is what
3269 marshallers operate on. Also add an entry for VOID__BOXED.
3270 (dbus_g_object_register_marshaller_array): Convert to fundamental.
3272 2005-06-26 Havoc Pennington <hp@redhat.com>
3274 * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3277 2005-06-26 Colin Walters <walters@verbum.org>
3279 * glib/dbus-glib.c (dbus_set_g_error): Delete.
3280 (dbus_g_error_set): New public function from its ashes; used by
3281 both service-side method implementation and GLib bindings
3283 (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3284 (_dbus_glib_test): Add some tests.
3286 * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3288 * test/glib/test-service-glib.c (my_object_throw_error): Use
3291 * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3292 errors thrown by dbus_g_error_set.
3294 * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3296 * glib/dbus-gparser.c (validate_signature): Ditto.
3298 * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner)
3299 (dbus_g_proxy_end_call_internal): Ditto.
3301 * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3302 converts DBUS_ERROR_x to DBUS_GERROR_x.
3303 (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3305 * doc/TODO: Remove error TODO.
3307 * doc/dbus-tutorial.xml: Update with documentation about error
3310 * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3311 sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3312 GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION.
3314 2005-06-22 Colin Walters <walters@verbum.org>
3316 Patch from Ross Burton <ross@openedhand.com>
3318 * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3320 2005-06-20 Colin Walters <walters@verbum.org>
3322 * configure.in: Add glib/examples.
3324 * glib/Makefile.am: Add examples/
3326 * glib/examples/.cvsignore
3327 * glib/examples/Makefile.am
3328 * glib/examples/example-client.c
3329 * glib/examples/example-service.c
3330 * glib/examples/example-service.xml
3331 * glib/examples/example-signal-emitter.c
3332 * glib/examples/example-signal-emitter.xml
3333 * glib/examples/example-signal-recipient.c:
3334 New files; GLib binding examples, ported from
3337 2005-06-20 Colin Walters <walters@verbum.org>
3340 * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3343 * glib/dbus-binding-tool-glib.c:
3344 * doc/dbus-tutorial.xml:
3345 * test/glib/test-dbus-glib.c: Update for rename.
3347 2005-06-20 Colin Walters <walters@verbum.org>
3349 Patch suggested by Ross Burton <ross@openedhand.com>
3351 * glib/dbus-gobject.c (export_signals): Free signal name.
3352 (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3353 memory leak. Add a bit of documentation.
3354 (dbus_g_method_return_error): Free context, and note we do
3357 2005-06-18 Murray Cumming <murrayc@murrayc.com>
3360 * glib/dbus-gobject.c:
3361 * glib/dbus-gproxy.c:
3362 * glib/dbus-gvalue.c: Predeclare structs as
3363 typedef struct _Something Something instead of
3364 typedef struct Something Something, so we can
3365 redeclare the prototypes. Other GNOME libraries
3368 2005-06-17 Colin Walters <walters@verbum.org>
3370 * tools/dbus-names-model.c (have_names_notify): Fix call
3371 to dbus_g_proxy_end_call.
3373 2005-06-17 Colin Walters <walters@verbum.org>
3375 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3376 spew warnings if we get malformed remote signals.
3378 * glib/dbus-gobject.c (propsig_iterate): New function.
3379 (lookup_object_info): New function, extracted from
3380 lookup_object_and_method.
3381 (introspect_properties, introspect_signals): Delete; these
3382 are merged into write_interface.
3383 (write_interface): Write out signals and properties here;
3384 dump the org.gtk.object stuff and use the interface given
3385 in the introspection data blob. Also fix up property XML.
3386 (lookup_values): New function.
3387 (introspect_interfaces): Gather a mapping from interface to a
3388 list of its methods, signals, and properties, then write out
3390 (lookup_object_and_method): Use lookup_object_info.
3391 (struct DBusGSignalClosure): Add interface.
3392 (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3393 we can just use the constant data.
3394 (dbus_g_signal_closure_finalize): Don't free signal name.
3395 (signal_emitter_marshaller): Use interface from signal closure.
3396 (export_signals): Only export signals mentioned in introspection
3398 (dbus_g_connection_register_g_object): Warn if we have no
3399 introspection data for an object.
3400 (funcsig_equal): Remove unused variable.
3401 (dbus_g_object_register_marshaller): Take varargs instead of
3403 (dbus_g_object_register_marshaller_array): New function,
3404 extracted from old dbus_g_object_register_marshaller.
3406 * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3407 signals and property data.
3408 (write_quoted_string): New function, extracted from generate_glue.
3409 (generate_glue): Write signals and properties to introspection
3412 * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3413 exported_signals and exported_properties.
3414 (dbus_g_object_register_marshaller): Update prototype.
3415 (dbus_g_object_register_marshaller_array): Prototype.
3417 * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3419 * test/glib/test-service-glib.c: Add new test signals and method
3422 * test/glib/test-service-glib.xml: Add some test signals.
3424 * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3425 and my-object-marshal.h
3426 (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3427 my-object-marshal.c.
3428 (my-object-marshal.c, my-object-marshal.h): Implement.
3430 * test/glib/.cvsignore: Update.
3432 * doc/TODO: Remove two GLib TODO items fixed by this
3435 2005-06-16 Colin Walters <walters@verbum.org>
3437 * doc/TODO: Update for GLib bindings.
3439 2005-06-16 Colin Walters <walters@verbum.org>
3441 * glib/dbus-binding-tool-glib.c:
3442 * glib/dbus-gobject.c:
3443 * glib/dbus-gproxy.c: Add Nokia copyright; Patch
3444 from Ross Burton, for his GLib bindings work.
3446 2005-06-16 Colin Walters <walters@verbum.org>
3448 * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3449 to iterate instead of walking to G_TYPE_INVALID.
3451 Patch based on a patch from Ryan Gammon.
3453 2005-06-16 Colin Walters <walters@verbum.org>
3455 * bus/bus.c (bus_context_new): Set parser to NULL
3456 after we unref it (Patch from Chris Boscolo, #2174).
3458 2005-06-16 Colin Walters <walters@verbum.org>
3460 * python/dbus_bindings.pyx.in: Import size_t,
3461 __int64_t, __uint64_t, and __signed.
3463 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3464 Define cmsg struct, output it.
3465 (_dbus_read_credentials_unix_socket):
3468 Patch from Joe Markus Clarke for FreeBSD support.
3470 2005-06-16 Colin Walters <walters@verbum.org>
3472 * tools/dbus-send.c (append_array): Use strtok.
3473 (append_dict): New function.
3474 (type_from_name): New function, extracted from main.
3475 (main): Handle sending dicts.
3477 * tools/dbus-print-message.c (print_iter): Print dict
3480 2005-06-16 Colin Walters <walters@verbum.org>
3482 * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3483 values as the empty string (#2948).
3485 2005-06-16 Colin Walters <walters@verbum.org>
3488 * mono/doc/Makefile.am:
3489 * test/glib/Makefile.am:
3491 Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3493 2005-06-16 Colin Walters <walters@verbum.org>
3495 * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3496 header byte order from expected byte order (Patch from Chris Wilson, #3475).
3498 * dbus/dbus-marshal-byteswap.c (byteswap_body_helper):
3499 Increment pointer after swapping fixed array. Add assertion
3502 2005-06-15 Colin Walters <walters@verbum.org>
3504 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3505 Fix call to dbus_set_error. (Patch from Michael Banck, #3461)
3507 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3509 * NEWS: Update to 0.34
3511 2005-06-15 David Zeuthen <davidz@redhat.com>
3513 * configure.in (LT_CURRENT): Revert back to 1 as the library
3514 hasn't changed and we've certainly not committed to protocol
3515 stability yet. All this does is to break ABI. See commit note
3516 from hp@redhat.com 2005-05-05 for details.
3518 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3520 * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method
3521 (_dbus_connection_run_builtin_filters): New method
3522 (dbus_connection_dispatch): Run the builtin filters which in turn
3523 runs the peer filter which handles Ping messages.
3526 - Ping isn't handled: This patch fixes it
3528 - Add a test case for the Ping message: added TODO item
3530 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3532 * dbus/dbus-message.c:
3533 (dbus_message_has_path): New method
3534 (dbus_message_has_interface): New method
3535 (dbus_message_has_member): New method
3537 * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3540 * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that
3541 the keyring directory is private to the user
3544 - The convenience functions in dbus-bus.h should perhaps have
3545 the signatures that they would have if they were autogenerated
3546 stubs. e.g. the acquire service function. We should also evaluate
3547 which of these functions to include, in light of the fact that
3548 GLib/Qt native stubs will probably also exist.: Punted
3550 - add dbus_message_has_path(), maybe has_member/interface:
3553 - in dbus-keyring.c, enforce that the keyring dir is not
3554 world readable/writable: Fixed in this patch
3556 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3558 * dbus/dbus-marshal-validate.h: Added a new validation
3559 error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for
3560 out of memory errors when validating signitures
3562 * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3563 in places where we previously used DBUS_VALID and a FALSE return
3564 value to indicate OOM
3566 * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3567 Use a stack to track the number of elements inside containers. The
3568 stack values are then used to validate that dict entries have only two
3569 elements within them.
3570 (validate_body_helper): check the reason for failure when validating
3573 * dbus/dbus-message.c (load_message): use
3574 DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used
3575 DBUS_VALID and a FALSE return value to indicate OOM
3577 * doc/TODO: remove "- validate dict entry number of fields" as this
3580 2005-06-14 David Zeuthen <davidz@redhat.com>
3582 * bus/bus.c (process_config_every_time): Drop existing conf-dir
3583 watches (if applicable) and add new watches
3585 * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3586 (main): Setup SIGIO signal handler if using D_NOTIFY
3588 * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3590 * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3591 (merge_included): Also merge conf_dirs list
3592 (bus_config_parser_unref): Clear conf_dirs list
3593 (include_dir): Add directory to conf_dirs list
3594 (bus_config_parser_get_conf_dirs): New function
3596 * bus/dir-watch.[ch]: New files
3598 * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3600 * configure.in: Add checks for D_NOTIFY on Linux
3602 2005-06-14 Colin Walters <walters@verbum.org>
3604 * glib/dbus-binding-tool-glib.c:
3605 * glib/dbus-gobject.c:
3606 * glib/dbus-gvalue.c: Fix indentation and brace style.
3608 2005-06-14 Ross Burton <ross@openedhand.com>.
3610 * glib/dbus-glib.h: Make DBusGMethodInvocation
3611 a private structure. Rearrange prototypes a bit.
3613 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3614 documentation for first_arg_type.
3616 * glib/dbus-gobject.c: Move DBusGMethodInvocation
3617 here, add documentation. Move dbus_g_method_return
3618 and dbus_g_method_return_error into public API
3621 2005-06-14 Colin Walters <walters@verbum.org>
3623 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3624 Add missing return statements, noticed by Ross Burton.
3626 2005-06-13 Ross Burton <ross@openedhand.com>.
3628 * glib/dbus-gobject.c: Handle errors on message
3629 demarshalling by sending error message back.
3630 * glib/dbus-gvalue.c: Initialize return variables.
3632 2005-06-13 Colin Walters <walters@verbum.org>
3634 * glib/Makefile.am: Fix thinko in last patch.
3636 2005-06-13 Colin Walters <walters@verbum.org>
3638 * glib/Makefile.am: Move dbus-gtype-specialized.c
3639 and dbus-gtype-specialized.h into a _HEADERS variable,
3642 2005-06-12 Colin Walters <walters@verbum.org>
3644 Async signals and various bugfixes and testing by
3645 Ross Burton <ross@openedhand.com>.
3647 * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3648 (dbus_gvalue_genmarshal_name_from_type)
3649 (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3650 (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3651 (dbus_g_value_types_init, dbus_gtype_from_signature)
3652 (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3653 (dbus_gtypes_from_arg_signature): New function prototypes.
3654 (dbus_gvalue_demarshal): Take context and error arguments.
3655 (dbus_gvalue_demarshal_variant): New function.
3656 (dbus_gvalue_demarshal_message): New function.
3657 (dbus_gvalue_store): Delete.
3659 * glib/dbus-gvalue.c:
3661 File has been almost entirely rewritten; now we special-case
3662 more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3663 hash tables correctly, etc. Full support for recursive values
3664 is not yet complete.
3666 * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3667 argument of signal to G_TYPE_POINTER since we now pass a
3669 (lookup_g_marshaller): Delete in favor of
3670 _dbus_gobject_lookup_marshaller.
3671 (marshal_dbus_message_to_g_marshaller): Use
3672 _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3673 to handle remote signal callbacks.
3674 (dbus_g_proxy_new_from_proxy): New function; creates a new
3675 DBusGProxy by copying an existing one.
3676 (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3677 (dbus_g_proxy_get_path): New functions.
3678 (dbus_g_proxy_marshal_args_to_message): New function;
3679 factored out of existing code.
3680 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3681 from a varargs array.
3682 (dbus_g_proxy_begin_call_internal): New function.
3683 (dbus_g_proxy_end_call_internal): New function.
3684 (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3685 as arguments; simply invoke dbus_g_proxy_begin_call_internal
3686 after collecting args into value array.
3687 (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3688 invoke dbus_g_proxy_end_call_internal.
3689 (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3691 (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3693 (array_free_all): New function.
3694 (dbus_g_proxy_add_signal): Take GTypes.
3696 * glib/dbus-gobject.h:
3697 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3698 (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3701 * glib/dbus-gobject.c: Add a global marshal_table hash which
3702 stores mappings from type signatures to marshallers. Change lots
3703 of invocations of dbus_gtype_to_dbus_type to
3704 dbus_gtype_to_signature.
3705 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3706 (introspect_signals): Fix test for query.return_type.
3707 (set_object_property): Update invocation of dbus_gvalue_demarshal.
3708 (invoke_object_method): Many changes. Handle asynchronous
3709 invocations. Convert arguments with
3710 dbus_gvalue_demarshal_message. Handle errors. Use
3711 DBusSignatureIter instead of strlen on args. Handle all arguments
3712 generically. Special-case variants.
3713 (dbus_g_method_return, dbus_g_method_return_error): New function.
3714 (DBusGSignalClosure): New structure, closes over signal
3716 (dbus_g_signal_closure_new): New function.
3717 (dbus_g_signal_closure_finalize): New function.
3718 (signal_emitter_marshaller): New function; is special marshaller
3719 which emits signals on bus.
3720 (export_signals): New function; introspects object signals and
3722 (dbus_g_object_type_install_info): Take GType instead of
3724 (dbus_g_connection_register_g_object): Invoke export_signals.
3725 (dbus_g_connection_lookup_g_object): New function.
3726 (DBusGFuncSignature) New structure; used for mapping type
3727 signatures to marshallers.
3728 (funcsig_hash): New function; hashes DBusGFuncSignature.
3729 (funcsig_equal): New function; compares DBusGFuncSignature.
3730 (_dbus_gobject_lookup_marshaller): New function.
3731 (dbus_g_object_register_marshaller): New function; used to
3732 register a marshaller at runtime for a particular signature.
3734 * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3736 * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3737 which notes a server method implementation should be
3740 * glib/dbus-binding-tool-glib.c
3741 (dbus_binding_tool_output_glib_server): Call
3742 dbus_g_value_types_init.
3743 (write_formal_parameters): Use dbus_gtype_from_signature. Handle
3745 (dbus_g_type_get_lookup_function): Turn GType into an invocation
3746 of a lookup function.
3747 (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3748 (write_untyped_out_args): New method; write output arguments.
3749 (write_formal_declarations_for_direction): Function for
3751 (write_formal_parameters_for_direction): Function for
3752 writing implementations.
3753 (write_typed_args_for_direction): Function for writing
3754 arguments prefixed with GTypes.
3755 (write_async_method_client): Write out async version
3758 * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3759 (dbus_g_type_get_marshal_name): Move mapping from GType
3760 to marshal name into here.
3761 (dbus_g_type_get_c_name): Move into here.
3762 (compute_marshaller): Convert signature to type with
3763 dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3764 (compute_marshaller_name): Ditto.
3765 (compute_marshaller): Handle async signal annotations.
3766 (gather_marshallers): Return if we don't have a known
3768 (generate_glue): Collect introspection blob here, and
3769 write all of the blob at the end. This allows an object
3770 with multiple interfaces to work.
3771 Mark async methods in introspection blob.
3773 * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3774 dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3775 dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3777 * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3778 avoids people accidentally using DBUS_TYPE_* which should
3779 not be necessary anymore.
3780 Do include dbus-gtype-specialized.h, which are utilities
3781 for GLib container types.
3782 Add various #defines for types such as
3783 DBUS_TYPE_G_BOOLEAN_ARRAY.
3784 (DBusGValueIterator, DBusGValue): Define, not fully used
3786 (dbus_g_value_get_g_type): Type for recursive value.
3787 (dbus_g_value_open, dbus_g_value_iterator_get_value)
3788 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3789 (dbus_g_value_free): Prototypes.
3790 (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3791 (dbus_g_proxy_set_interface): Prototype.
3792 (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3793 (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3795 (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3797 (DBusGAsyncData, DBusGMethodInvocation): Structures for
3798 doing async invocations.
3799 (dbus_g_method_return, dbus_g_method_return_error):
3801 * doc/dbus-tutorial.xml: Update GLib section.
3803 * tools/dbus-viewer.c (load_child_nodes): Update
3804 for new invocation type of dbus_g_proxy_end_call.
3805 (load_from_service_thread_func): Ditto.
3807 * tools/print-introspect.c (main): Ditto.
3809 * tools/dbus-names-model.c (have_names_notify)
3810 (names_model_reload, names_model_set_connection)
3813 * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3814 needed since Python bindings use GLib bindings.
3816 * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3817 Add --prefix argument.
3819 * tools/Makefile.am: Define DBUS_COMPILATION. Remove
3820 unneeded --ignore-unsupported arg.
3822 * test/glib/test-service-glib.c:
3823 * test/glib/test-service-glib.xml:
3824 * test/glib/test-dbus-glib.c: Add many more tests.
3826 2005-06-06 David Zeuthen <davidz@redhat.com>
3828 * doc/TODO: Add item about need to remove deprecated functions.
3830 * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3832 * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3833 to repair the ABI which was broken with the last commit.
3835 2005-06-02 John (J5) Palmieri <johnp@redhat.com>
3837 * dbus/dbus-connection.c, dbus/dbus-connection.h
3838 (dbus_connection_disconnect): renamed to dbus_connection_close
3839 for API symmetry with dbus_connection_open
3840 (_dbus_connection_open_internal):
3841 s/dbus_connection_disconnect/dbus_connection_close
3843 * dbus/dbus-bus.c (dbus_bus_get):
3844 s/dbus_connection_disconnect/dbus_connection_close
3846 * bus/connection.c (bus_connections_unref,
3847 bus_connections_setup_connection, bus_connections_expire_incomplete):
3848 s/dbus_connection_disconnect/dbus_connection_close
3850 * bus/dispatch.c (bus_dispatch, kill_client_connection,
3851 kill_client_connection_unchecked, check_hello_connection):
3852 s/dbus_connection_disconnect/dbus_connection_close
3854 * bus/bus.c (new_connection_callback):
3855 s/dbus_connection_disconnect/dbus_connection_close
3857 * tools/dbus-send.c (main):
3858 s/dbus_connection_disconnect/dbus_connection_close
3860 * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3861 s/dbus_connection_disconnect/dbus_connection_close
3863 * test/test-service.c (path_message_func, filter_func):
3864 s/dbus_connection_disconnect/dbus_connection_close
3866 * doc/TODO: remove connection_open/connection_disconnect lacks symmetry item that was just fixed
3868 2005-05-25 Colin Walters <walters@verbum.org>
3870 * dbus/dbus-protocol.h: Move various bus service #defines such
3871 as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3873 * dbus/dbus-shared.h: Various defines moved here.
3874 * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3876 2005-05-25 John (J5) Palmieri <johnp@redhat.com>
3878 * python/__init__.py: Python bindings deserve a minor version
3879 update. Upped to (0, 40, 2)
3881 2005-05-24 John (J5) Palmieri <johnp@redhat.com>
3883 * python/decorators.py: add explicitly_pass_message decorator
3884 for passing in the dbus message as keyword for edge case signal
3887 * python/matchrules.py (SignalMatchRule.__repr__): fix output
3888 to conform with what dbus expects for match rules
3889 (SignalMatchRule.execute): add the dbus message as a keyword
3890 if the signal handler has requested it
3892 * python/examples/example/signal-recipient.py: added some more
3893 examples on how to hook up to signals
3895 2005-05-23 John (J5) Palmieri <johnp@redhat.com>
3897 * python/decorators.py: import dbus_bindings
3899 * python/matchrules.py (SignalMatchRule, SignalMatchTree,
3900 SignalMatchNode): new classes that implement wildcard signal
3901 callback matching using a tree lookup. Heavily modified from a
3902 patch sent by Celso Pinto (fd.o bug #3241)
3904 * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3905 use new match classes to handle signals.
3907 2005-05-19 John (J5) Palmieri <johnp@redhat.com>
3909 * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3911 2005-05-18 Havoc Pennington <hp@redhat.com>
3913 * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3914 gettext. Not really worth requiring yet perhaps, but any
3915 production quality 1.0 would require it so we should go ahead and
3916 get things set up. We do have a couple token calls to
3917 bindtextdomain in the code already.
3919 2005-05-16 John (J5) Palmieri <johnp@redhat.com>
3921 * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3922 when using recursive g_main_loops
3924 * python/_dbus.py (class Bus): add the ProxyObjectClass
3925 alias for ProxyObject to make it easier for the Twisted
3926 networking framework to integrate dbus.
3928 * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3929 alias for ProxyMethod to make it easier for the Twisted
3930 networking framework to integrate dbus.
3932 2005-05-11 Ross Burton <ross@openedhand.com>
3934 * glib/dbus-glib-tool.c: Add --prefix argument.
3935 * glib/dbus-binding-tool-glib.h: Add prefix argument.
3936 * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3937 Add prefix argument.
3938 (generate_glue): Pass prefix argument down.
3939 (dbus_binding_tool_output_glib_server): Pass prefix to
3942 2005-05-11 Colin Walters <walters@verbum.org>
3944 * tools/dbus-send.c (append_array): New function.
3945 (append_arg): Broken out from main.
3946 (main): Add cheesy hack to send arrays and variants.
3948 * tools/dbus-print-message.c (print_iter): Broken out
3951 2005-05-11 Colin Walters <walters@verbum.org>
3953 * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3954 New function, returns signature string for signature iter.
3955 * dbus/dbus-signature.h: Prototype it.
3956 * dbus/dbus-message.c (dbus_message_iter_get_signature):
3957 New function, returns signature string for message iter.
3958 (dbus_message_iter_get_array_len): New function, returns
3960 (dbus_message_iter_get_fixed_array): Fix assertion; this
3961 function should be used when the iter is pointing to the
3962 contents of an array
3963 * dbus/dbus-message.h: Prototypes.
3964 * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3965 New function; returns length of an array.
3966 * dbus/dbus-marshal-recursive.h: Prototype it.
3968 2005-05-11 Colin Walters <walters@verbum.org>
3970 * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3973 2005-05-08 Havoc Pennington <hp@redhat.com>
3975 * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3976 daemon's pid, not the parent's pid, to the file descriptor.
3977 Reported by Taj Morton.
3979 2005-05-05 Havoc Pennington <hp@redhat.com>
3981 * configure.in (LT_*): add notes on how the libtool versioning
3982 works to save thinking. Increment soname to indicate protocol
3983 breakage (though really the library interface hasn't changed I
3986 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3987 verify the GUID received from server matches what we were
3988 expecting, if we had an expectation
3990 * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3991 (_dbus_auth_get_guid_from_server): new function
3992 (send_begin): parse the OK args
3994 * doc/dbus-specification.xml: add GUID to the auth protocol
3996 2005-05-05 John (J5) Palmieri <johnp@redhat.com>
3998 * Fix my name in previous changelog ;)
4000 * python/proxies.py (ProxyObject.__getattr__): add further patch
4001 from Anthony Baxter to throw an AttributeError when python
4002 __special__ functions are called instead of marshling them over
4003 the bus (Bug#1685 comment 3).
4005 2005-05-04 John (J5) Palmieri <johnp@redhat.com>
4007 * python/Makefile.am: changed to use pyexecdir for the binding
4008 shared libraries (Bug#2494)
4010 * python/exceptions.py: bring exceptions over from the bindings
4011 so they can be used in applications (Bug#2036)
4012 Make all exceptions derive from DBusException
4014 * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4015 of classes so that print obj doesn't throw an exception (Bug #1685)
4017 2005-05-03 Ross Burton <ross@openedhand.com>
4019 * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4020 Return if we get an error during registration. Set up a
4021 weak reference on object to unregister if object is destroyed.
4022 (unregister_gobject): New function.
4024 2005-05-01 John (J5) Palmieri <johnp@redhat.com>
4026 * python/dbus_bindings.pyx.in:
4027 - added new type classes for hinting to the marashaler what type
4028 to send over the wire
4029 - added int16 and uint16 marshalers
4030 - Fixed a bug in the type constants that caused int32 to go out
4031 as uint16 over the wire
4032 * python/dbus.py: split up into different files and renamed _dbus.py
4033 * python/__init__.py, python/_util.py, python/decorators.py,
4034 python/exceptions.py, python/proxies.py, python/services.py,
4035 python/types.py: new files split off from dbus.py
4036 * python/Makefile.am: Add new files, remove dbus.py and
4037 install all python files to <python module dir>/dbus
4038 * python/examples/*: Added #!/usr/bin/env python to the top of
4039 every example. Patch provided by Tatavarty Kalyan
4041 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
4043 * NEWS: Update to 0.33
4045 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
4047 * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4048 method for doing async calls
4049 (_pending_call_notification): New C function for handling pendning call
4051 (set_notify): New method for setting pending call notification
4053 * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4054 Async capabilities added to remote method calls
4055 (Sender): class removed
4056 (RemoteService): class removed
4057 (ObjectTree): class removed for now
4058 (RemoteObject): Renamed to ProxyObject
4059 (RemoteMethod): Renamed to ProxyMethod
4060 (method): Decorator added for decorating python methods as dbus methods
4061 (signal): Decorator added for decorating python methods as signal emitters
4062 (ObjectType): Metaclass added for generating introspection data and the
4063 method callback vtable
4064 (Interface): Wrapper class added to wrap objects in a dbus interface
4065 (Object): Uses ObjectType as its metaclass and exports Introspect
4066 of the org.freedesktop.DBus.Introspectable interface
4067 (ValidationException, UnknownMethodException): new exceptions
4069 * python/examples/*: Modified to fit with the new bindings
4071 2005-04-23 Havoc Pennington <hp@redhat.com>
4073 * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4074 reported by Tony Houghton
4076 * test/test-service.c (main): test
4077 dbus_connection_get_object_path_data()
4079 * dbus/dbus-object-tree.c (find_handler): be sure we always init
4081 (_dbus_object_tree_get_user_data_unlocked): new function used by
4082 dbus_connection_get_object_path_data()
4083 (do_register): add assertion test for get_user_data_unlocked
4084 (object_tree_test_iteration): more tests
4086 * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
4087 new function from Dan Reed to let you get the user data from
4088 dbus_connection_register_object_path()
4090 2005-04-23 John (J5) Palmieri <johnp@redhat.com>
4092 * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
4093 in numerous places that did not account for the NULL terminator
4094 (signature_from_seed): changed the manual string copy loop to
4095 just use strcpy instead
4096 make check should now pass
4098 2005-04-19 John (J5) Palmieri <johnp@redhat.com>
4100 * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
4101 so that it allows messages that are not signals to pass in
4102 NULL as the interface.
4104 2005-04-18 David Zeuthen <davidz@redhat.com>
4106 * glib/dbus-gmain.c (io_handler_destroy_source):
4107 (timeout_handler_destroy_source, connection_setup_free):
4108 Also unref the source to avoid memory leaks.
4110 2005-04-13 David Zeuthen <davidz@redhat.com>
4112 * bus/config-parser.c (bus_config_parser_new): Bump this to a
4113 more reasonable, yet still totally arbitrary, value :-).
4115 2005-04-13 David Zeuthen <davidz@redhat.com>
4117 * doc/TODO: Added an "important for 1.0" item about selinux
4120 2005-04-13 David Zeuthen <davidz@redhat.com>
4122 * bus/selinux.c: Add c-file-style to top of file
4123 (log_audit_callback): Don't free the data here anymore
4124 (bus_selinux_check): Don't take spid and tpid since appending
4125 that to auxdata may OOM.
4126 (bus_selinux_allows_acquire_service): Handle OOM and signal back
4127 to the caller if we are OOM by taking an error object.
4128 (bus_selinux_allows_send): -do-
4130 * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4131 and bus_selinux_allows_send
4133 * bus/bus.c (bus_context_check_security_policy): Pass error and
4134 pass on OOM thrown by bus_selinux_allows_send()
4136 * bus/services.c (bus_registry_acquire_service): Pass error and
4137 pass on OOM thrown by bus_selinux_allows_acquire_service()
4139 2005-04-13 Havoc Pennington <hp@redhat.com>
4141 * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4142 message at a time to avoid monopolizing the main loop, bug
4143 #2953 from Benjamin Otte
4145 2005-04-09 Havoc Pennington <hp@redhat.com>
4147 * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4148 possible overlap, fix from Daniel Reed
4149 (fixup_alignment): fix signedness warnings
4150 (_dbus_string_append_unichar): ditto
4152 2005-04-09 Havoc Pennington <hp@redhat.com>
4154 * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4156 * glib/dbus-glib-tool.c (main): fix warning
4158 * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4160 * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4161 add a new function that can be used in simple applications that
4162 don't have a main loop and are willing to block
4164 2005-04-05 David Zeuthen <davidz@redhat.com>
4166 Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4168 * glib/dbus-gmain.c:
4169 (io_handler_destroy_source): Remove from list of IO handlers
4170 of the ConnectionSetup object
4171 (timeout_handler_destroy_source): -do- for timeout handlers
4172 (io_handler_source_finalized): Don't remove from list since
4173 we now do that in io_handler_destroy_source(). Renamed from
4174 io_handler_source_destroyed
4175 (timeout_handler_source_destroyed): -do- for timeout handlers
4176 (connection_setup_free): It is now safe to iterate over all
4177 IO and timeout handlers as the _destroy_source removes them
4178 from the list synchronously
4180 2005-03-30 Havoc Pennington <hp@redhat.com>
4182 * configure.in: change check to gtk 2.4
4184 * tools/dbus-viewer.c (name_combo_changed_callback): remove
4185 gtk_combo_box_get_active_text() usage to decrement GTK requirement
4188 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
4192 * HACKING: Fixed realease instructions. configure.in should be updated to
4193 the next release by the person who made the last release.
4195 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
4197 * python/lvalue_cast_post_process.py - removed. Patch has been
4198 submitted to Pyrex maintainers that fixes gcc4.0 errors
4200 * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4202 2005-03-24 Daniel Reed <n@ml.org>
4204 * tools/Makefile.am: Make print-introspect and
4205 dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4207 2005-03-22 John (J5) Palmieri <johnp@redhat.com>
4209 * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4211 * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have
4212 had in Red Hat packages for a while but for some reason never
4214 (_dbus_is_a_number): New checks if a string
4215 can be converted to a number and does the conversion if it can
4216 (_dbus_user_database_lookup): Add check to see if the given username
4217 is a udi. This allows udi's to be used instead of usernames in the
4219 (_dbus_user_database_lookup_group): Add check to see if the given groupname
4220 is a gdi. This allows gdi's to be used instead of groupnames in the
4223 2005-03-21 John (J5) Palmieri <johnp@redhat.com>
4225 * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4226 code so that it compiles with gcc4.0
4228 * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4229 run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4230 results back to dbus_binding.c
4232 2005-03-20 Colin Walters <walters@verbum.org>
4234 Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4236 * configure.in: Require GTK+ 2.6.
4238 2005-03-20 Colin Walters <walters@verbum.org>
4240 * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4242 2005-03-17 Tom Parker <palfrey@tevp.net>
4244 * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4245 print DBUS_UID_UNSET; instead print passed username. Also
4246 be sure to actually use gid looked up in cache.
4248 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4249 for DBUS_GID_UNSET and groupname.
4251 2005-03-17 Colin Walters <walters@verbum.org>
4253 * bus/print-introspect.c: Move to tools/.
4254 * bus/run-with-tmp-session-bus.sh: Ditto.
4256 * glib/Makefile.am (dbus-glib-bindings.h): Move
4257 generation to tools/Makefile.am.
4259 * test/glib/run-test.sh: Update to handle move
4260 of run-with-tmp-session-bus.sh.
4262 * test/glib/test-service-glib.c: Update to handle
4263 move of dbus-glib-bindings.h.
4265 * tools/print-introspect.c: Moved here
4266 from bus/, and ported to GLib bindings.
4268 * tools/run-with-tmp-session-bus.sh: Moved here
4271 * tools/Makefile.am: Generate dbus-glib-bindings.h
4272 and dbus-bus-introspect.xml here.
4274 * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4277 2005-03-17 Colin Walters <walters@verbum.org>
4279 * bus/driver.c (write_args_for_direction): Use
4280 _dbus_string_get_const_data to retrieve string;
4281 _dbus_string_get_const_data_len doesn't actually return
4282 a NULL-terminated substring.
4284 * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4285 (main): Change to use org_freedesktop_DBus_request_name
4286 instead of using g_proxy_begin_call/end_call.
4288 2005-03-15 Joe Shaw <joeshaw@novell.com>
4290 * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4291 generating the finalizer. Fixes from Ben Maurer.
4293 2005-03-12 Joe Shaw <joeshaw@novell.com>
4295 * mono/BusDriver.cs: Update method names: ListServices
4296 becomes ListNames; GetOwner becomes GetNameOwner.
4298 * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4299 onto the eval stack when removing the delegate.
4301 2005-03-12 Joe Shaw <joeshaw@novell.com>
4303 * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4304 LT_CURRENT. Set it to the autoconf variable.
4306 * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4307 classes that disconnects the signal handler delegate from the
4308 service object. Fixes a big leak of proxy objects on the
4309 client side of things. Patch from Ben Maurer
4310 <bmaurer@ximian.com>
4312 2005-03-12 Colin Walters <walters@verbum.org>
4314 * bus/driver.c (write_args_for_direction): New function,
4315 parses a type signature into arguments and outputs to
4317 (bus_driver_handle_introspect): Use it instead of
4318 hardcoding XML for certain signatures.
4320 * bus/Makefile.am (dbus-bus-introspect.xml): Add
4321 dependency on dbus-daemon.
4323 * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4324 argument, pass it to dbus_binding_tool_output_glib_client.
4326 * glib/dbus-binding-tool-glib.c
4327 (generate_client_glue): Protect against multiple inclusion.
4328 (dbus_binding_tool_output_glib_client): Add
4329 G_BEGIN_DECLS/G_END_DECLS.
4331 * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4332 Change to just take iface prefix directly.
4333 (write_formal_parameters): Clarify error message.
4334 (check_supported_parameters): New function; checks to see type
4335 signatures of method parameters are supported.
4336 (generate_client_glue): Handle ignore_unsupported flag.
4337 (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4340 * glib/Makefile.am (dbus-glib-bindings.h): Pass
4341 --ignore-unsupported by default until glib bindings
4344 2005-03-11 Colin Walters <walters@verbum.org>
4346 * glib/Makefile.am: Generate dbus-glib-bindings.h and
4349 * bus/print-introspect.c: New file; prints introspection
4350 data for a given name and object path.
4352 * bus/run-with-tmp-session-bus.sh: New file, refactored
4353 from test/glib/run-test.sh. Creates a temporary session
4354 bus and runs another program.
4356 * test/glib/run-test.sh: Refactor to invoke
4357 run-with-tmp-session-bus.sh.
4359 * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4360 introspection format. Also change to use DBUS_TYPE_x_AS_STRING
4361 macros instead of hardcoding.
4363 * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4365 2005-03-11 Joe Shaw <joeshaw@novell.com>
4367 * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4368 this unref; it doesn't match up evenly in some codepaths.
4369 (_dbus_connection_block_pending_call): Unref at every exitpoint;
4370 this evenly matches with the ref near the top of this function.
4372 2005-03-09 Joe Shaw <joeshaw@novell.com>
4374 * dbus/dbus-object-tree.c
4375 (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4376 and we try to unregister a path that's not registered, still go
4377 through the process of unlocking and don't just return.
4379 2005-03-09 Colin Walters <walters@verbum.org>
4381 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4382 to this are generated for client-side wrappers. Invokes a
4383 D-BUS method and returns reply values.
4385 * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4386 function; writes signature string for argument direction.
4387 (write_args_for_direction): Change to pass input values directly
4388 instead of via address, and fix indentation.
4389 (generate_client_glue): Change to invoke dbus_g_proxy_invoke. Also
4390 make generated wrappers inlineable.
4392 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4393 note about using dbus_type_is_fixed.
4395 * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4396 dbus/dbus-signature.c as dbus_type_is_fixed.
4398 All callers updated.
4400 * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4401 from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4403 * dbus/dbus-signature.h: Prototype.
4405 * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4408 * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4409 appropriate instead of just freeing it.
4410 (main): Free returned strings using g_free.
4412 * test/glib/Makefile.am (test-service-glib-glue.h)
4413 (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4415 * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4416 simply maps a simple D-BUS type to GType.
4417 (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4419 (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4420 initialize the value with it.
4421 (dbus_gvalue_binding_type_from_type): Unused, delete.
4422 (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4423 various types instead of unmarshalling to value data directly.
4424 Remove can_convert boolean.
4425 (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4426 returning directly instead of using can_convert boolean.
4427 (dbus_gvalue_store): New function; not related to D-BUS per-se.
4428 Stores a GValue in a pointer to a value of its corresponding C
4431 * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4432 add dbus_gvalue_store.
4434 2005-03-08 Joe Shaw <joeshaw@novell.com>
4436 Fix a bunch of lifecycle and memory management problems
4437 in the mono bindings.
4439 * mono/Arguments.cs (Arguments): Implement IDisposable
4441 * mono/Bus.cs (Bus): Don't allow public instantiation. This is
4442 strictly a static class.
4444 * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4445 delegates into this file.
4446 (Connection): Implement IDisposable.
4447 (Dispose): Disconnect the connection and set the raw connection
4448 pointer to IntPtr.Zero.
4449 (~Connection): Call Dispose().
4450 (RegisterObjectPath): Added. Manages the registration of object
4451 paths so we can cleanly disconnect them at dispose/finalize time.
4452 (UnregisterObjectPath): Ditto.
4453 (set_RawConnection): Unregister all of the object paths when
4454 changing the underlying DBusConnection. Add them back onto the
4455 new connection, if any.
4457 * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4458 more unmanaged resources anymore, so it's not necessary. Move all
4459 the DBusObjectPathVTable stuff out of here.
4460 (Handler): Save references to our delegates so that they don't get
4461 finalized. Call Connection.RegisterObjectPath() instead of
4462 dbus_connection_register_object_path() directly.
4463 (Message_Called): Dispose the message after we're finished with
4466 * mono/Message.cs (Message): Implement IDisposable.
4467 (Dispose): Dispose the Arguments, and set the RawMessage to
4469 (SendWithReplyAndBlock): We own the ref to the reply that comes
4470 back from dbus_connection_send_with_reply_and_block() so add a
4471 comment about that and unref it after we've constructed a managed
4472 MethodReturn class around it. Fixes a big, big leak.
4474 * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4476 (BuildSignalHandler): After we've sent the Signal message, dispose
4478 (BuildMethod): Dispose of the method call and reply messages after
4479 we've sent the message and extracted the data we want from the
4482 * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4484 (Service_FilterCalled): Dispose of the message after we're
4487 2005-03-08 Joe Shaw <joeshaw@novell.com>
4489 * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4490 After we attach our pending call to the connection, unref
4493 * mono/Connection.cs (set_RawConnection): Disconnect our
4494 filter and match callbacks from the old connection and
4495 reconnect them to the new connection, if any.
4497 * mono/DBusType/Array.cs: "Code" is a static member, so
4498 don't use "this" to refer to it. Fix for stricter checking
4501 * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4502 object path that we pass into unmanaged code.
4504 * mono/DBusType/String.cs (Append): Don't leak the string
4505 that we pass into unmanged code.
4507 2005-03-07 John (J5) Palmieri <johnp@redhat.com>
4508 * NEWS: Update for 0.31
4510 * configure.in: Release 0.31
4511 add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4513 * qt/Makefile.am: fixed build
4515 * dbus/Makefile.am: soname bump for libdbus
4517 * glib/Makefile.am: soname bump for libdbus-glib
4519 2005-03-05 Havoc Pennington <hp@redhat.com>
4521 * dbus/dbus-sysdeps.c:
4522 (pseudorandom_generate_random_bytes_buffer): fix to have no return
4524 (_dbus_generate_random_bytes_buffer): fix return value
4526 * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4527 checks actually work, from Tom Parker <fdo@tevp.net>
4529 2005-03-01 Colin Walters <walters@verbum.org>
4531 * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4532 functions copied from dbus-glib-tool.c.
4533 (main): Convert lots of error code to use them.
4534 Also add some testing for introspection bits.
4536 2005-03-01 Colin Walters <walters@verbum.org>
4538 * doc/TODO: Remove introspection signature TODO.
4540 2005-02-27 Colin Walters <walters@verbum.org>
4542 * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4543 Change return value to const char * instead of int so we can do
4545 (struct PropertyInfo, struct ArgInfo): Store char *.
4546 (property_info_new, arg_info_new): Update parameters, strdup.
4547 (property_info_unref, arg_info_unref): Free.
4549 * glib/dbus-gidl.h: Update prototypes.
4551 * glib/dbus-gparser.c (basic_type_from_string): Delete.
4552 (validate_signature): New function, just validates signature and
4554 (parse_property, parse_arg): Invoke validate_signature. Store
4555 signature instead of just type code.
4557 * glib/dbus-gvalue.c (base_type_from_signature): New utility
4558 function to return a primary type for a signature, dropping
4559 information about types in container types.
4560 (dbus_gvalue_genmarshal_name_from_type)
4561 (dbus_gvalue_binding_type_from_type)
4562 (dbus_gvalue_ctype_from_type): Update to take full signature
4563 instead of type code.
4564 (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4566 * glib/dbus-gvalue.h: Update prototypes for above.
4568 * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4569 glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4570 (introspect_properties, introspect_signals, write_interface):
4571 Update to handle signatures, and remove usage of
4572 _dbus_gutils_type_to_string.
4573 (handle_introspect): Print out type codes instead of e.g. "string"
4574 in hardcoded introspection XML; also use x_AS_STRING constants
4575 instead of hardcoding in string.
4577 * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4578 to string. Remove usage of _dbus_gutils_type_to_string.
4580 * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4582 * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4585 * glib/dbus-binding-tool-glib.c (compute_marshaller)
4586 (compute_marshaller_name, generate_glue): Handle signature change
4588 (write_formal_parameters, write_args_for_direction): Ditto, and
4591 * tools/dbus-tree-view.c (type_to_string): Delete.
4592 (info_set_func_text): Update to print full signatures.
4594 * test/glib/test-service-glib.xml: Change types to new
4595 introspection format.
4597 2005-02-26 Havoc Pennington <hp@redhat.com>
4599 * doc/TODO: remove the "guid" item
4601 * test/glib/test-profile.c (no_bus_thread_func): use open_private
4602 (with_bus_thread_func): use open_private
4604 * dbus/dbus-connection.c (dbus_connection_open_private): new
4605 function that works like the old dbus_connection_open()
4606 (dbus_connection_open): now returns an existing connection if
4609 * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4610 through the GUID to the transport
4612 * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4613 GUID in hex-encoded form.
4615 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4616 pass GUID argument in to the transport
4618 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4621 * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4623 * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4625 2005-02-25 Havoc Pennington <hp@redhat.com>
4627 * doc/dbus-specification.xml: document the GUID thing
4629 * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4630 globally unique ID for the server, and put a "guid=hexencoded"
4631 field in the address
4633 * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4635 * dbus/dbus-message.c: ditto
4637 * dbus/dbus-dataslot.c: ditto
4639 * dbus/dbus-list.c: ditto
4641 * dbus/dbus-internals.h: wait, just include
4642 dbus-threads-internal.h here
4644 * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4647 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4649 2005-02-24 Colin Walters <walters@verbum.org>
4651 * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4653 2005-02-24 John (J5) Palmieir <johnp@redhat.com>
4655 * glib/Makefile.am: added dbus-gobject.h to sources list
4656 so distcheck doesn't fail
4658 2005-02-24 Havoc Pennington <hp@redhat.com>
4660 * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4661 you must disconnect before unref, since locking and other things
4662 are screwed up otherwise. Fix assorted other locking stuff.
4664 * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4667 * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4668 into a private header and don't export from the library
4670 * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4672 2005-02-24 Colin Walters <walters@verbum.org>
4674 * dbus/dbus-signature.c: New file; implements various functions
4675 related to type signatures. Includes an interator for parsing,
4676 validation functions.
4677 (dbus_type_is_basic): Moved here from
4678 dbus-marshal-basic.c:_dbus_type_is_basic.
4679 (dbus_type_is_container): Moved here from
4680 dbus-marshal-basic.c:_dbus_type_is_container.
4682 All callers of _dbus_type_is_container and _dbus_type_is_basic
4683 updated, and include dbus-signature.h.
4685 * dbus/dbus-signature.h: New file; prototypes for the above.
4687 * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4690 * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4691 function factored out of _dbus_first_type_in_signature.
4692 (_dbus_first_type_in_signature_c_str): New function; returns first
4693 type code for a type signature character.
4695 * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4696 handle function moves.
4698 * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4700 * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4701 function; skips to next complete type in type signature.
4702 Implemented using previous skip_one_complete_type. Now
4703 skip_one_complete_type just delegates to
4704 _dbus_type_signature_next.
4706 * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4708 (_dbus_type_is_container): Ditto.
4710 * doc/dbus-specification.xml: Update introspection sample to
4711 use real type signatures.
4713 * dbus/dbus-test.h: Prototype signature test.
4715 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4718 * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4720 2005-02-23 John (J5) Palmieri <johnp@redhat.com>
4722 * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4723 s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4725 2005-02-21 Colin Walters <walters@verbum.org>
4727 * dbus/dbus-test-main.c (main): Take optional specific test
4730 * dbus/dbus-test.c (run_test): New function, runs a test function
4731 with no data directory.
4732 (run_data_test): Like above, but takes data directory.
4733 (dbus_internal_do_not_use_run_tests): Take
4734 specific test argument. Replace lots of cut n' paste code
4735 with run_test and run_data_test.
4737 * dbus/dbus-test.h: Update prototype for
4738 dbus_internal_do_not_use_run_tests.
4740 2005-02-20 Havoc Pennington <hp@redhat.com>
4742 Fix bugs reported by Daniel P. Berrange
4744 * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4745 (protected_change_watch): new function
4746 (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4747 (_dbus_server_add_watch): change to work like the
4748 dbus-connection.c equivalents; like those, probably kind of
4749 busted, but should at least mostly work for now
4750 (dbus_server_disconnect): drop the lock if we were already
4751 disconnected, patch from Daniel P. Berrange
4753 * dbus/dbus-server.c (_dbus_server_toggle_timeout)
4754 (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4757 * doc/TODO: todo about unscrewing this mess
4759 2005-02-19 Colin Walters <walters@verbum.org>
4761 * glib/dbus-binding-tool-glib.c
4762 (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4764 * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4765 as errno.h and sys/stat.h.
4766 (lose): New function, prints error with
4768 (lose_gerror): Similar, but takes GError for message.
4769 (main): Add --output argument to specify output file to write to,
4770 instead of always printing to stdout. In this mode, determine
4771 timestamps on source files to see whether any are newer than the
4772 target file. If not, exit. Also convert a number of error
4773 messages to use lose (since it's shorter), and switch to using
4774 g_io_channel_shutdown.
4776 2005-02-19 Havoc Pennington <hp@redhat.com>
4778 * glib/dbus-gobject.c
4779 (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4781 * glib/dbus-glib.c: fix doxygen warnings
4783 * glib/dbus-gparser.c (parse_annotation): error if an annotation
4784 is found on an <arg>
4786 2005-02-17 Colin Walters <walters@verbum.org>
4788 * glib/dbus-gobject.h: Don't export
4789 _dbus_glib_marshal_dbus_message_to_gvalue_array.
4791 * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4792 (invoke_object_method): Handle it.
4794 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4797 2005-02-17 Colin Walters <walters@verbum.org>
4799 * bus/.cvsignore, doc/.cvsignore
4800 * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4803 2005-02-17 Colin Walters <walters@verbum.org>
4805 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4806 Rename to DBUS_SERVICE_DBUS.
4807 (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4808 (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4809 Change the value from "org.freedesktop.Local"
4810 to "org.freedesktop.DBus.Local".
4811 (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4812 (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4813 DBUS_INTERFACE_INTROSPECTABLE.
4814 Change the value from "org.freedesktop.Introspectable"
4815 to "org.freedesktop.DBus.Introspectable".
4816 (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4817 DBUS_INTERFACE_PROPERTIES.
4818 Change the value from "org.freedesktop.Properties"
4819 to "org.freedesktop.DBus.Properties".
4820 (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4821 DBUS_INTERFACE_PEER.
4822 Change the value from "org.freedesktop.Peer"
4823 to "org.freedesktop.DBus.Peer".
4824 (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL):
4825 DBUS_INTERFACE_LOCAL.
4826 Change the value from "org.freedesktop.Local"
4827 to "org.freedesktop.DBus.Local".
4829 All other users of those constants have been changed.
4831 * bus/driver.c (bus_driver_handle_introspect): Use constants.
4833 * glib/dbus-gobject.c (handle_introspect): Use constants.
4835 * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4837 2005-02-17 Colin Walters <walters@verbum.org>
4839 * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4840 (parse_node, parse_interface, parse_method, parse_signal)
4841 (parse_property, parse_annotation): Lose if we're currently in an
4843 (parse_annotation): New function.
4844 (parser_start_element, parser_end_element): Handle annotation.
4845 (parse_method, parse_interface): Remove support for c_name attribute,
4846 switch to annotations.
4848 * glib/dbus-gidl.h (interface_info_get_binding_names)
4849 (method_info_get_binding_names)
4850 (interface_info_get_binding_name, method_info_get_binding_name)
4851 (interface_info_set_binding_name, method_info_set_binding_name):
4853 (interface_info_get_annotations, method_info_get_annotations)
4854 (interface_info_get_annotation, method_info_get_annotation)
4855 (interface_info_add_annotation, method_info_add_annotation):
4858 * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4860 (struct MethodInfo): Ditto.
4861 Straightfoward conversion of binding methods into annotation methods
4864 * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4866 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4868 * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4869 Use new annotation API.
4871 * doc/introspect.dtd: Fix a number of DTD syntax errors. Add
4874 * doc/dbus-specification.xml: Discuss introspection annotations,
4875 include list of well-known annotations.
4877 * test/glib/test-service-glib.xml: Make validate against new DTD.
4879 2005-02-17 Colin Walters <walters@verbum.org>
4881 This patch is based on initial work from
4882 Paul Kuliniewicz <kuliniew@purdue.edu>.
4884 * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4885 initialization of GValue from dbus type to here.
4886 (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4887 for the "glib-genmarshal" program from a DBus type.
4888 (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4889 into the C name for it we use in the glib bindings.
4890 (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4891 glib C type (not GValue).
4892 (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4894 * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4895 from dbus-gobject.c.
4897 * glib/dbus-gutils.h: Prototype it.
4899 * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4900 (marshal_dbus_message_to_g_marshaller): Use new shared function
4901 dbus_glib_marshal_dbus_message_to_gvalue_array.
4903 * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4904 Will be changed once we have annotations.
4906 * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4907 GStaticRWLock. Callers updated.
4908 (wincaps_to_uscore): Move to dbus-gutils.c. Callers updated.
4909 (string_table_next): New function for iterating over zero-terminated
4911 (string_table_lookup): New function; retrieves specific entry in
4913 (get_method_data): New function; look up method data in object data chunk.
4914 (object_error_domain_prefix_from_object_info)
4915 (object_error_code_from_object_info): New functions, but not implemented yet.
4916 (method_interface_from_object_info): New function; retrieve interface name.
4917 (method_name_from_object_info): New function; retrieve method name.
4918 (method_arg_info_from_object_info): New function; retrieve argument data.
4919 (arg_iterate): New function; iterates over serialized argument data.
4920 (method_dir_signature_from_object_info): New function; returns a
4921 GString holding type signature for arguments for just one
4922 direction (input or output).
4923 (method_input_signature_from_object_info)
4924 (method_output_signature_from_object_info): New functions.
4925 (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4926 converts dbus message arguments into a GValue array. Used for both
4927 signal handling and method invocation.
4928 (struct DBusGlibWriteIterfaceData): New utility structure.
4929 (write_interface): New function; generate introspection XML for
4931 (introspect_interfaces): New function; gathers all interface->methods,
4932 generates introspection XML for them.
4933 (handle_introspect): Invoke introspect_interfaces.
4934 (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4935 (lookup_object_and_method): New function; examines an incoming message
4936 and attempts to match it up (via interface, method name, and argument
4937 signature) with a known object and method.
4938 (gerror_domaincode_to_dbus_error_name): New function; converts a
4939 GError domain and code into a DBus error name. Needs GError data
4940 added to object introspection to work well.
4941 (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4943 (invoke_object_method): New function to invoke an object method
4944 looked up via lookup_object_and_method. Parses the incoming
4945 message, turns it into a GValue array, then invokes the marshaller
4946 specified in the DBusGMethodInfo. Creates a new message with
4947 either return values or error message as appropriate.
4948 (gobject_message_function): Invoke lookup_object_and_method and
4949 invoke_object_method.
4951 * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4952 (enum DBusBindingOutputMode): New enum for binding output modes.
4953 (pretty_print): Print binding names.
4954 (dbus_binding_tool_error_quark): GError bits.
4955 (version): Fix typo.
4956 (main): Create GIOChannel for output. Parse new --mode argument,
4957 possible values are "pretty-print", "glib-server", "glib-client".
4958 Use mode to invoke appropriate function.
4960 * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4962 * glib/dbus-glib-tool.h: New header, just includes GError bits
4965 * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4966 maps binding style to name.
4967 (struct MethodInfo): Ditto.
4968 (get_hash_keys, get_hash_key): Utility function, returns keys for
4970 (interface_info_new, method_info_new): Initialize bindings.
4971 (interface_info_unref, method_info_unref): Destroy bindings.
4972 (method_info_get_binding_names, method_info_get_binding_name)
4973 (interface_info_get_binding_names, interface_info_get_binding_name):
4974 Functions for retrieving binding names.
4975 (method_info_set_binding_name, interface_info_set_binding_name):
4976 Functions for setting binding names.
4978 * glib/dbus-binding-tool-glib.h: New file, has prototypes
4979 for glib binding generation.
4981 * glib/dbus-binding-tool-glib.c: New file, implements server-side
4982 and client-side glib glue generation.
4984 * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4985 dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4988 * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4989 of using GClosureMarshal directly.
4990 (struct DBusGObjectInfo): Add n_infos member.
4992 * test/glib/test-service-glib.xml: New file; contains introspection data
4993 for MyTestObject used in test-service-glib.c.
4995 * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4996 (my_object_do_nothing, my_object_increment, my_object_throw_error)
4997 (my_object_uppercase, my_object_many_args): New test methods.
4998 (main): Use dbus_g_object_class_install_info to include generated object
5001 * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5002 as well as client-side bindings.
5004 * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5005 (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5006 using both the dbus_gproxy stuff directly as well as the generated bindings.
5008 2005-02-15 Havoc Pennington <hp@redhat.com>
5010 * dbus/dbus-connection.c (dbus_connection_dispatch): always
5011 complete a pending call, don't run filters first.
5013 * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5014 dbus_pending_call_steal_reply
5016 * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5017 _dbus_connection_block_pending_call
5018 (dbus_pending_call_get_reply): change to steal_reply and return a
5021 * dbus/dbus-connection.c
5022 (dbus_connection_send_with_reply_and_block): port to work in terms
5024 (_dbus_connection_block_pending_call): replace block_for_reply
5027 2005-02-14 Havoc Pennington <hp@redhat.com>
5029 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5030 properly handle looking up group information by name; fix
5033 2005-02-13 Havoc Pennington <hp@redhat.com>
5035 * dbus/dbus-connection.c (dbus_connection_return_message)
5036 (dbus_connection_borrow_message): hold dispatch lock while message
5038 (_dbus_connection_block_for_reply): hold dispatch lock while we
5039 block for the reply, so nobody steals our reply
5040 (dbus_connection_pop_message): hold the dispatch lock while we
5043 2005-02-13 Havoc Pennington <hp@redhat.com>
5045 * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5046 (_dbus_connection_release_dispatch)
5047 (_dbus_connection_acquire_io_path)
5048 (_dbus_connection_release_io_path): make the mutex and condvar
5049 control access to the "acquired" flag. Drop the connection lock
5050 while waiting on the condvar. Hopefully these are baby steps in
5051 roughly the right direction.
5053 2005-02-13 Havoc Pennington <hp@redhat.com>
5055 * dbus/dbus-connection.c: use separate mutexes for the condition
5056 variables; this is some kind of baseline for sanity, but the
5057 condition variables still aren't used correctly afaict
5059 2005-02-13 Havoc Pennington <hp@redhat.com>
5061 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5064 * dbus/dbus-connection.c
5065 (_dbus_connection_detach_pending_call_unlocked): add this
5067 Initial semi-correct pass through to fix thread locking; there are
5068 still some issues with the condition variable paths I'm pretty
5071 * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5074 * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5075 rename to add _unlocked
5076 (struct DBusConnection): move "dispatch_acquired" and
5077 "io_path_acquired" to use only one bit each.
5078 (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5079 (dbus_connection_set_watch_functions): hacky fix to reentrancy
5080 (_dbus_connection_add_watch, _dbus_connection_remove_watch)
5081 (_dbus_connection_toggle_watch, _dbus_connection_add_timeout)
5082 (_dbus_connection_remove_timeout)
5083 (_dbus_connection_toggle_timeout): drop lock when calling out to
5084 user functions; done in a hacky/bad way.
5085 (_dbus_connection_send_and_unlock): add a missing unlock
5086 (_dbus_connection_block_for_reply): add a missing unlock
5088 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5089 drop lock in a hacky probably unsafe way to call out to user
5092 2005-02-12 Havoc Pennington <hp@redhat.com>
5094 * tools/dbus-tree-view.c (info_set_func_text): display more
5097 * bus/driver.c (bus_driver_handle_list_services): list the bus
5100 * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
5102 * glib/dbus-gidl.c (signal_info_get_n_args): new function
5103 (method_info_get_n_args): new function
5105 2005-02-12 Havoc Pennington <hp@redhat.com>
5107 * bus/driver.c (bus_driver_handle_introspect): add introspection
5110 2005-02-12 Havoc Pennington <hp@redhat.com>
5112 * bus/driver.c: put the signature of each bus driver method in the
5113 table of handlers and check it on incoming calls; this isn't
5114 really useful, but going to add introspect support in a minute.
5116 2005-02-11 Joe Shaw <joeshaw@novell.com>
5118 * mono/Connection.cs: The unpredictability of finalizers in mono
5119 prevents us from deterministically disconnecting the filters from
5120 the Service class's finalizer, so move tracking of filters and
5121 matches here. Add API for that.
5123 * mono/Service.cs: Remove the code, add code which calls the
5124 methods now on the Connection class.
5126 2005-02-11 John (J5) Palmieri <johnp@redhat.com>
5128 * python/dbus.py (class Sender): added to support dbus signals better
5129 (Bus::add_signal_receiver): added expand_args parameter which defaults
5130 to True. When expand args is True the signal handler will pass the
5131 message arguments as parameters to the signal handler. If False
5132 revert to previous behavior where the signal handler must get the
5133 argument list from the message. This is to help port applications
5134 like HAL that have a tendancy to send variable length argument lists.
5135 self._match_rule_to_receivers is now a dict of dicts.
5136 (Bus::remove_signal_receiver): pop handler off the dict intead of
5137 removing it from a list
5138 (Bus::_signal_func): change signal handlers so that interface,
5139 signal_name, service, path and message are packed into a Sender
5140 object and that is passed to the handler. If expand_args is True
5141 extract the args list from the message and append it to the parameter
5144 * python/dbus_bindings.pyx.in (class Signature): added to support
5146 (MessageIter::__init__): changed iteration limit to match D-BUS
5147 (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY,
5148 STRUCT and VARIENT type support
5149 (MessageIter::python_value_to_dbus_sig): made recursive to support
5151 (MessageIter::append*): added Signature, dict, tuple
5154 * python/examples/example-client.py: added examples of getting tuples
5157 * python/examples/example-service.py: added examples of sending tuples
5160 * python/examples/example-signal-recipient.py: Fixed to handle new
5161 signal callback format
5163 2005-02-10 Havoc Pennington <hp@redhat.com>
5165 * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5166 (call dbus_g_proxy_add_signal)
5168 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5170 (_dbus_server_new_for_domain_socket): escape the path
5172 * dbus/dbus-address.c (dbus_address_escape_value): new
5173 (dbus_address_unescape_value): new
5174 (dbus_parse_address): unescape values
5176 * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5178 * doc/dbus-specification.xml: explain how to escape values in
5181 2005-02-10 Havoc Pennington <hp@redhat.com>
5183 * dbus/dbus-message-factory.c (generate_special): modify test to
5184 avoid using a non-basic dict key
5186 * dbus/dbus-marshal-validate-util.c: add test for the below
5188 * doc/dbus-specification.xml: require that dict keys are a basic
5191 * dbus/dbus-marshal-validate.c
5192 (_dbus_validate_signature_with_reason): require that dict key is a
5195 2005-02-10 Havoc Pennington <hp@redhat.com>
5197 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5198 change to be _and_unlock instead of _unlocked
5200 * dbus/dbus-connection.c
5201 (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5202 have no_update so we can find this bug quickly in future
5204 2005-02-10 Havoc Pennington <hp@redhat.com>
5206 * dbus/dbus-message-util.c (verify_test_message): tests for string
5209 * dbus/dbus-message.c (dbus_message_append_args_valist): add
5210 support for arrays of string/signature/path
5212 2005-02-10 Joe Shaw <joeshaw@novell.com>
5214 * dbus/dbus-connection.c
5215 (_dbus_connection_queue_received_message_link,
5216 _dbus_connection_message_sent): Add the path to
5218 (_dbus_connection_send_preallocated_and_unlock): Added. Calls
5219 _dbus_connection_send_preallocated_unlocked(), updated the
5220 dispatch status, and unlocks. Fixes a bug where certain
5221 situations (like a broken pipe) could cause a Disconnect message
5222 to not be sent, tricking the bus into thinking a service was still
5223 there when the process had quit.
5224 (_dbus_connection_send_preallocated): Call
5225 _dbus_connection_send_preallocated_and_unlock().
5226 (_dbus_connection_send_and_unlock): Added. Calls
5227 _dbus_connection_send_preallocated_and_unlock().
5228 (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5229 (dbus_connection_send_with_reply): Update the dispatch status and
5232 * mono/Service.cs (~Service): Added. Removes the filter so that
5233 we don't get unmanaged code calling back into a GCed delegate.
5234 (RemoveFilter); Added.
5236 2005-02-09 John (J5) Palmieri <johnp@redhat.com>
5238 * dbus/dbus-message.c (dbus_message_iter_open_container):
5239 - Removed check for iterator type being an array because
5240 get_arg_type does not work with writer iterators
5241 - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5243 2005-02-07 Havoc Pennington <hp@redhat.com>
5245 * doc/dbus-specification.xml: some more language cleanups; add
5246 stuff about how to deal with invalid protocol and extension
5247 points; add _ to allowed chars in auth commands; add EXTENSION_
5250 2005-02-06 Havoc Pennington <hp@redhat.com>
5252 * s/expected/required/ in a couple places for clarity
5254 2005-02-07 Colin Walters <walters@verbum.org>
5256 * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5257 sender or proposed_recipient.
5259 2005-02-06 Havoc Pennington <hp@redhat.com>
5261 * dbus/dbus-message-factory.c (generate_special): more tests
5263 * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5264 array length that exceeds the maximum
5266 2005-02-05 Havoc Pennington <hp@redhat.com>
5268 * dbus/dbus-message-factory.c (generate_special): more test cases,
5271 * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5272 reason why a signature was invalid
5274 * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5275 skip the length of the string before we look at it in validation
5277 * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5280 * dbus/dbus-message.c (_dbus_message_loader_new): default
5281 max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5283 2005-02-05 Havoc Pennington <hp@redhat.com>
5285 * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5286 if the signature of a variant was empty
5287 (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5288 struct with no element type)
5290 * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5291 mangled messages to break things
5293 2005-02-04 Havoc Pennington <hp@redhat.com>
5295 * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5296 g_quark_try_string() so it actually can return 0
5297 (dbus_g_proxy_connect_signal): ditto
5299 2005-02-04 Havoc Pennington <hp@redhat.com>
5301 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5303 (tristring_from_message): assert cleanly on null path/interface
5304 (should not be possible though I decided later)
5305 (dbus_g_proxy_dispose): move proxy manager unregistration here
5306 (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5307 g_return_if_fail() checks
5309 2005-02-04 Havoc Pennington <hp@redhat.com>
5311 * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5313 * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5314 (with some minor changes)
5316 * doc/dbus-specification.xml: add deprecated attribute to
5317 introspection format
5319 2005-01-31 Havoc Pennington <hp@redhat.com>
5321 * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5322 think it's sort of right
5324 2005-01-30 Havoc Pennington <hp@redhat.com>
5326 * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5328 2005-01-30 Havoc Pennington <hp@redhat.com>
5330 * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5332 * autogen.sh: change to autotools 1.9
5334 * glib/dbus-gproxy.c: completely change how signals work
5335 (dbus_g_proxy_add_signal): new function to specify signature of a
5337 (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5338 and g_warning if the incoming message has the wrong signature.
5340 2005-01-30 Havoc Pennington <hp@redhat.com>
5342 * tools/dbus-names-model.c (have_names_notify): fix this
5344 * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5345 up the string array handling a bit
5347 2005-01-30 Havoc Pennington <hp@redhat.com>
5349 * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5350 (dbus_g_pending_call_cancel): new function
5352 * dbus/dbus-glib.h: move GType decls for connection/message here;
5353 * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5354 here, just kind of rationalizing how we handle all that
5356 * tools/dbus-names-model.c: new file for a tree model listing the
5359 * tools/dbus-tree-view.c (model_new): use proper typing on the
5362 2005-01-30 Havoc Pennington <hp@redhat.com>
5364 * glib/dbus-gmain.c: add a custom GSource back that just checks
5365 whether the message queue has anything in it; otherwise, there are
5366 cases where we won't see messages in the queue since there was no
5367 IO visible to the glib main loop
5369 * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5370 increase default message timeout to 25 seconds
5372 2005-01-30 Havoc Pennington <hp@redhat.com>
5374 * test/glib/test-profile.c (no_bus_stop_server): remove the
5375 warning about the g_warning that I just fixed
5377 * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5378 custom source, seems to be a lot easier to understand and work
5381 2005-01-30 Havoc Pennington <hp@redhat.com>
5383 I think this main loop thing is conceptually broken, but here are
5384 some band aids. I'll maybe rewrite it in a minute.
5386 * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5387 custom GSource, so don't pass it in; confusing
5388 (gsource_server_finalize, gsource_connection_finalize): add
5389 finalize handlers that remove all the watches.
5391 2005-01-30 Havoc Pennington <hp@redhat.com>
5393 * glib/dbus-gobject.c (introspect_properties): fix the XML
5396 * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5397 which effectively detects the use of freed messages
5399 * glib/dbus-gobject.c (handle_introspect): modify and return the
5400 reply message instead of the incoming message
5402 * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5403 gee, maybe it should SEND THE XML instead of just making a string
5404 and freeing it again ;-)
5406 * tools/dbus-print-message.c (print_message): improve printing of
5409 * configure.in: add debug-glib.service to the output
5411 2005-01-30 Havoc Pennington <hp@redhat.com>
5413 dbus-viewer introspected and displayed the bus driver
5415 * dbus/dbus-object-tree.c
5416 (object_tree_test_iteration): add tests for a handler registered on "/"
5418 * dbus/dbus-object-tree.c
5419 (_dbus_decompose_path): fix to handle path "/" properly
5420 (run_decompose_tests): add tests for path decomposition
5422 * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5425 * glib/dbus-gobject.c (handle_introspect): fix quotes
5427 * test/glib/run-test.sh: support launching the bus, then running
5430 * test/glib/test-service-glib.c (main): put in a trivial gobject
5431 subclass and register it on the connection
5433 * bus/driver.c (bus_driver_handle_introspect): implement
5434 introspection of the bus driver service
5436 * dbus/dbus-protocol.h: add #defines for the XML namespace,
5437 identifiers, doctype decl
5439 * bus/driver.c (bus_driver_handle_get_service_owner): handle
5440 attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by
5441 returning the service unchanged.
5442 (bus_driver_handle_message): remove old check for reply_serial in
5443 method calls, now the message type deals with that
5444 (bus_driver_handle_message): handle NULL interface
5446 * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5448 * glib/dbus-gloader-expat.c (description_load_from_string): allow
5451 * tools/dbus-viewer.c: add support for introspecting a service on
5454 * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5455 (dbus_g_pending_call_unref): add
5457 2005-01-29 Havoc Pennington <hp@redhat.com>
5459 * tools/dbus-tree-view.c: add support for displaying properties.
5460 (run dbus-viewer with an introspect xml file as arg, then resize
5461 the window so the tree elements show up, not sure what that is)
5463 * glib/dbus-gobject.c (handle_introspect): return
5464 org.freedesktop.Properties and org.freedesktop.Introspectable
5465 interfaces when we are introspected.
5467 * doc/dbus-specification.xml: allow empty interface name when
5470 2005-01-29 Havoc Pennington <hp@redhat.com>
5472 * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5473 though it uses glib, it could be extended for any binding in
5476 * glib/dbus-gobject.c (gobject_message_function): change to the
5477 new way properties work
5479 * dbus/dbus-protocol.h: add the new interfaces
5481 * doc/dbus-specification.xml: document the introspection format,
5482 Introspectable interface, and add an org.freedesktop.Properties
5485 * glib/dbus-gparser.c: add support for a <property> element
5487 * glib/dbus-gidl.c: add PropertyInfo
5489 * glib/dbus-gobject.c (handle_introspect): put the outermost
5490 <node> outside the signal and property descriptions.
5491 (introspect_properties): export properties as <property> rather
5492 than as method calls
5494 2005-01-28 Havoc Pennington <hp@redhat.com>
5496 * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5497 related to authentication protocol
5499 2005-01-28 John (J5) Palmieri <johnp@redhat.com>
5501 * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5502 - BUS_ACTIVATION -> BUS_STARTER
5503 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5504 - class MessageIter (__init__): Added recursion checking
5505 so we throw a nice error instead of just disconnecting from the
5507 (get): Added arg_type parameter for recursion.
5508 Removed the nil type
5509 Added signiture type placeholder (not implemented)
5510 Added struct type placeholder (not implemented)
5511 Added varient type placeholder (not implemented)
5512 Commented out dict type for now
5513 (get_element_type): renamed from get_array_type
5514 (get_*): changed to use the dbus_message_iter_get_basic API
5515 (get_*_array): removed in favor of recursive get_array method
5516 (get_array): new recursive method which calls get to marshal
5517 the elements of the array
5518 (value_to_dbus_sig): New method returns the corrasponding
5519 dbus signiture to a python value
5520 (append): Comment out dict handling for now
5521 Handle lists with the new recursive API
5522 Comment out None handling for now
5523 (append_nil): removed
5524 (append_*): changed to use dbus_message_iter_append_basic API
5525 (append_*_array): removed in favor of recursive append_array
5527 (__str__): Make it easier to print out recursive iterators
5529 - class Message (__str__): moved type inspection to the
5530 MessageIter class' __str__ method
5531 (get_iter): Added an append parameter wich defaults to False
5532 If True use the new API's to create an append iterator
5534 * python/dbus.py: Update to use new bindings API
5535 - TYPE_ACTIVATION -> TYPE_STARTER
5536 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5537 - class ActivationBus -> class StarterBus
5538 - class RemoteObject (__call__): get an append iterator
5539 - (_dispatch_dbus_method_call): get an append iterator
5540 - class Object (emit_signal): get an append iterator
5542 * python/examples/: Fixed up the examples to work with the new API
5544 2005-01-28 Joe Shaw <joeshaw@novell.com>
5546 * configure.in: Bump version up to 0.30.
5548 * HACKING: Add a release item to bump the version number up after
5551 2005-01-28 Havoc Pennington <hp@redhat.com>
5553 * doc/dbus-specification.xml: update to describe 16-bit types and
5556 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5559 * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5562 * dbus/dbus-marshal-recursive.c: implement
5564 2005-01-27 Havoc Pennington <hp@redhat.com>
5566 * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5568 * configure.in: find the right type for 16 and 32 bit ints as well
5571 * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5572 the 16-bit types so people don't have to stuff them in 32-bit or
5575 2005-01-27 Havoc Pennington <hp@redhat.com>
5577 * dbus/dbus-message.c: byteswap the message if you init an
5578 iterator to read/write from it
5580 * dbus/dbus-marshal-byteswap.c: new file implementing
5581 _dbus_marshal_byteswap()
5583 * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5585 2005-01-26 Havoc Pennington <hp@redhat.com>
5587 * dbus/dbus-marshal-validate-util.c: break this out (and fix
5588 build, apparently - nobody noticed?)
5590 2005-01-26 Havoc Pennington <hp@redhat.com>
5592 * dbus/dbus-marshal-recursive.h: remove todo comment
5594 2005-01-25 Joe Shaw <joeshaw@novell.com>
5596 * Land the mono binding changes to conform to the new APIs.
5598 * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5599 DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5601 * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus
5602 type code as a string.
5603 (InitAppending): Rename dbus_message_append_iter_init() to
5604 dbus_message_iter_init_append().
5606 * mono/BusDriver.cs: Rename ServiceEventHandler to
5607 NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner.
5608 Rename ServiceOwnerChanged to NameOwnerChanged.
5610 * mono/Connection.cs: Rename BaseService to UniqueName, and the
5613 * mono/Custom.cs: Removed. The CUSTOM type has been removed.
5615 * mono/Service.cs: Rename Exists to HasOwner, internally rename
5616 dbus_bus_acquire_service() to dbus_bus_request_name().
5618 * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5619 of Type.UnderlyingSystemType to get the correct element type for
5621 (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5622 dbus_message_get_{element|arg}_type() instead of
5623 dbus_message_iter_init_array_iterator().
5624 (Append): Replace dbus_message_iter_append_array() with
5625 dbus_message_iter_open_container() and
5626 dbus_message_iter_close_container().
5628 * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These
5629 types have been removed.
5631 * mono/DBusType/*.cs: Replace calls of
5632 dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5633 but specify the type in the DllImport extern declaration. Ditto
5634 for dbus_message_iter_append_[type]() ->
5635 dbus_message_iter_append_basic().
5637 * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5638 NameOwnerChangedHandler.
5640 2005-01-25 John (J5) Palmieri <johnp@redhat.com>
5642 * python/dbus_bindings.pyx.in: Rename of methods and bindings
5643 - get_base_service -> get_unique_name
5644 - bus_get_base_service -> bus_get_unique_name
5645 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5646 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS
5647 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5648 - bus_activate_service -> bus_start_service_by_name
5649 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5650 - bus_acquire_service -> bus_request_name
5651 - dbus_bus_acquire_service -> dbus_bus_request_name
5652 - bus_service_exists -> bus_name_has_owner
5653 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5655 * python/dbus.py: Rename of methods
5656 - activate_service -> start_service_by_name
5657 - bus_acquire_service -> bus_request_name
5658 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS
5659 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5662 2005-01-24 Joe Shaw <joeshaw@novell.com>
5664 * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5665 signature for the method that can't be found.
5667 * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5668 the message has any arguments, we need to call
5669 _dbus_type_reader_get_current_type(), not
5670 _dbus_type_reader_has_next().
5672 2005-01-24 Havoc Pennington <hp@redhat.com>
5674 * dbus/dbus-message-factory.c: more testing of message validation
5676 * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5679 2005-01-23 Havoc Pennington <hp@redhat.com>
5681 * dbus/dbus-message-factory.c, dbus/dbus-message-util.c:
5682 get this all working, not many tests in the framework yet though
5684 2005-01-22 Havoc Pennington <hp@redhat.com>
5686 * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5687 tutorial, based on work from David Wheeler.
5689 2005-01-21 Havoc Pennington <hp@redhat.com>
5691 * dbus/dbus-bus.c: add more return_if_fail checks
5693 * dbus/dbus-message.c (load_message): have the "no validation"
5694 mode (have to edit the code to toggle the mode for now though)
5696 * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5697 skips all validation; I want to use this at least for benchmark
5698 baseline, I'm not sure if it should be a publicly-available switch.
5700 2005-01-21 Havoc Pennington <hp@redhat.com>
5702 * glib/dbus-gmain.c: don't put the GLib bindings in the same
5703 toplevel doxygen group as the low-level API stuff
5705 * dbus/dbus.h: note that libdbus is the low-level API
5707 2005-01-20 Havoc Pennington <hp@redhat.com>
5709 * update-dbus-docs.sh: script to update docs on the web site, only
5710 works for me though. neener.
5712 2005-01-20 Havoc Pennington <hp@redhat.com>
5714 * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5715 code can reveal bugs in it
5717 2005-01-20 Havoc Pennington <hp@redhat.com>
5719 * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5720 select() version, patches from Tor Lillqvist
5722 2005-01-20 Havoc Pennington <hp@redhat.com>
5724 * doc/dbus-tutorial.xml: replace > with >
5726 * bus/services.c (bus_registry_acquire_service): validate the name
5727 and return a better error if it's no good.
5729 * doc/dbus-specification.xml: note NO_AUTO_START change
5731 * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5732 from AUTO_START, we're toggling the default
5734 * bus/dispatch.c: adapt the tests to change of auto-start default
5736 2005-01-18 Havoc Pennington <hp@redhat.com>
5738 * rename dbus-daemon-1 to dbus-daemon throughout
5740 2005-01-18 Havoc Pennington <hp@redhat.com>
5742 * Throughout, grand renaming to strip out the use of "service",
5743 just say "name" instead (or "bus name" when ambiguous). Did not
5744 change the internal code of the message bus itself, only the
5745 programmer-facing API and messages.
5747 * doc/dbus-specification.xml: further update the message bus section
5749 * bus/config-parser.c (all_are_equiv): fix bug using freed string
5752 2005-01-17 Havoc Pennington <hp@redhat.com>
5754 * dbus/dbus-types.h: remove 16-bit types since we don't use them
5757 * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5758 "invalid name character" not only non-ASCII
5760 * doc/dbus-specification.xml: further update spec, message bus
5761 parts are still out-of-date but the marshaling etc. stuff is now
5764 2005-01-17 Havoc Pennington <hp@redhat.com>
5766 * doc/dbus-specification.xml: partially update spec
5768 2005-01-17 Havoc Pennington <hp@redhat.com>
5770 * Throughout, align variant bodies according to the contained
5771 type, rather than always to 8. Should save a fair bit of space in
5774 * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5775 fix handling of case where p == end
5777 * doc/TODO: remove the dbus_bool_t item and variant alignment items
5779 2005-01-17 Havoc Pennington <hp@redhat.com>
5781 * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5783 * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5784 of an 8-bit type. Now dbus_bool_t is the type to use whenever you
5785 are marshaling/unmarshaling a boolean.
5787 2005-01-16 Havoc Pennington <hp@redhat.com>
5789 This is about it on what can be disabled/deleted from libdbus
5790 easily, back below 150K anyhow. Deeper cuts are more work than
5791 just turning the code off as I've done here.
5793 * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5794 signed int convenience funcs
5796 * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5799 * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5800 things out of libdbus
5802 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5804 * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5805 tests-enabled-only, though it should probably be deleted)
5807 * dbus/dbus-message-util.c: same stuff
5809 * dbus/dbus-auth-util.c: same stuff
5811 2005-01-16 Havoc Pennington <hp@redhat.com>
5813 * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5815 * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5816 way for stripping down dbus-userdb.c stuff included in libdbus.
5817 Rename _dbus_parse_uid for consistency.
5819 2005-01-16 Havoc Pennington <hp@redhat.com>
5821 * dbus/dbus-internals.c (_dbus_real_assert): print the function
5822 name the assertion failed in
5824 * dbus/dbus-internals.h (_dbus_return_if_fail)
5825 (_dbus_return_val_if_fail): assert that the name of the function
5826 containing the check doesn't start with '_', since we only want to
5827 use checks on public functions
5829 * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5830 checks to assertions
5832 * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5833 change checks to asserts for private function
5835 * dbus/dbus-message.c (_dbus_message_set_serial): checks
5836 to asserts for private function
5838 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5839 broken assertion that was breaking make check
5840 (_dbus_type_reader_array_is_empty): remove this rather than fix
5841 it, was only used in assertions
5843 2005-01-16 Havoc Pennington <hp@redhat.com>
5845 * test/unused-code-gc.py: hacky script to find code that's used
5846 only by the bus (not libdbus) or used only by tests or not used at
5847 all. It has some false alarms, but looks like we can clean up a
5848 lot of size from libdbus.
5850 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5851 dbus/Makefile.am: initially move 10K of binary size out of libdbus
5853 2005-01-16 Havoc Pennington <hp@redhat.com>
5855 * Add and fix docs according to Doxygen warnings throughout
5858 * dbus/dbus-marshal-recursive.c
5859 (_dbus_type_reader_array_is_empty): change this to just call
5860 array_reader_get_array_len() and make it static
5862 * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5864 (dbus_message_iter_init_append): rename from append_iter_init
5866 * dbus/dbus-marshal-recursive.c
5867 (_dbus_type_reader_get_element_type): rename from
5868 _dbus_type_reader_get_array_type
5870 2005-01-15 Havoc Pennington <hp@redhat.com>
5872 * test/glib/test-profile.c (with_bus_server_filter): fix crash
5874 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5875 when DBUS_DISABLE_ASSERT
5876 (_dbus_marshal_set_basic): be sure we align for the string length
5878 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5881 * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5882 inline macro version
5883 (_dbus_string_set_byte): provide inline macro version
5885 2005-01-15 Havoc Pennington <hp@redhat.com>
5887 * Land the new message args API and type system.
5889 This patch is huge, but the public API change is not
5890 really large. The set of D-BUS types has changed somewhat,
5891 and the arg "getters" are more geared toward language bindings;
5892 they don't make a copy, etc.
5894 There are also some known issues. See these emails for details
5896 http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5897 http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5899 * dbus/dbus-marshal-*: all the new stuff
5901 * dbus/dbus-message.c: basically rewritten
5903 * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5904 freed blocks to be all non-nul bytes so using freed memory is less
5905 likely to work right
5907 * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5908 DBUS_FAIL_MALLOC=N environment variable, so you can do
5909 DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5910 DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5913 * qt/message.cpp: port to the new message args API
5914 (operator<<): use str.utf8() rather than str.unicode()
5915 (pretty sure this is right from the Qt docs?)
5917 * glib/dbus-gvalue.c: port to the new message args API
5919 * bus/dispatch.c, bus/driver.c: port to the new message args API
5921 * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5922 "locked" flag to TRUE and align_offset to 0; I guess we never
5923 looked at these anyhow, but seems cleaner.
5925 * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5926 move allocation padding macro to this header; use it to implement
5927 (_DBUS_STRING_STATIC): ability to declare a static string.
5929 * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5930 change to return TRUE if the interface is not set.
5932 * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5933 to dbus-marshal-validate.[hc]
5935 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5938 * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5939 to dbus-marshal-*.[hc]
5941 * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5942 function here from dbus-marshal.c
5944 2005-01-12 Joe Shaw <joeshaw@novell.com>
5946 * NEWS: Update for 0.23.
5948 * configure.in: Release 0.23.
5950 2005-01-12 Joe Shaw <joeshaw@novell.com>
5952 * mono/Makefile.am, mono/example/Makefile.am: Always build the
5953 dbus DLL with --debug. Clean up after the .mdb files this leaves
5956 * mono/doc/Makefile.am: Need to uninstall the docs on "make
5959 * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5960 is an enum, get the enum's underlying type. Another mono
5963 2005-01-11 Joe Shaw <joeshaw@novell.com>
5965 Patch from Sjoerd Simons <sjoerd@luon.net>
5967 * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5968 DESTDIR. It breaks stuff.
5970 2005-01-11 Joe Shaw <joeshaw@novell.com>
5972 Patch from Tambet Ingo <tambet@ximian.com>
5974 * mono/DBusType/Array.cs (Get): Get the underlying element type by
5975 calling type.GetElementType(). The code previously depended on
5976 broken Mono behavior, which was fixed in Mono 1.1.3.
5978 * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5979 Activator.CreateInstance() so that the class's constructor is
5980 called with the right parameters.
5982 2005-01-11 Joe Shaw <joeshaw@novell.com>
5984 Patch from Timo Teräs <ext-timo.teras@nokia.com>
5986 * dbus/dbus-connection.c
5987 (_dbus_connection_queue_received_message_link): Call
5988 _dbus_connection_remove_timeout() instead of the _locked()
5989 variant, since it's always called from
5990 _dbus_connection_handle_watch(), which handles the locking.
5991 Removed the _locked() variant since it's no longer used.
5993 2005-01-03 Havoc Pennington <hp@redhat.com>
5995 * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5998 2004-12-26 Havoc Pennington <hp@redhat.com>
6000 * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6002 2005-01-03 Havoc Pennington <hp@redhat.com>
6004 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6007 * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6009 2005-01-02 Havoc Pennington <hp@redhat.com>
6011 * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6013 2005-01-01 Havoc Pennington <hp@redhat.com>
6015 * configure.in: add -Wfloat-equal
6017 2005-01-01 Havoc Pennington <hp@redhat.com>
6019 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro,
6020 for a variety of reasons '==' doesn't do this.
6022 2004-12-31 Havoc Pennington <hp@redhat.com>
6024 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6025 I keep wishing I had
6027 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
6029 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6031 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
6033 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6034 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6035 dbus-protocol.h. Because they are defines and not enums they are not
6038 2004-12-26 John (J5) Palmieri <johnp@redhat.com>
6040 * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6041 dbus_bus_activate_service
6043 * python/dbus.py (Bus.activate_service): activate a service on the
6046 2004-12-24 Havoc Pennington <hp@redhat.com>
6048 * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6049 file format has also changed and I haven't adapted to that yet
6051 * Makefile.am: load .gcno files from latest gcc
6053 2004-12-23 John (J5) Palmieri <johnp@redhat.com>
6054 * Patch from Rob Taylor <robtaylor@fastmail.fm>
6056 * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6059 * python/dbus.py (get_unix_user): Added binding to
6060 call dbus_bindings.bus_get_unix_user
6062 * python/extract.py: Modified the proto_pat regex to
6063 handle unsigned long
6065 2004-12-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
6067 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6068 better POSIX compliance.
6070 2004-12-19 Havoc Pennington <hp@redhat.com>
6072 * dbus/dbus-string.c (_dbus_string_insert_4_aligned)
6073 (_dbus_string_insert_8_aligned): new functions
6075 * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6077 2004-12-18 Havoc Pennington <hp@redhat.com>
6079 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6082 * dbus/dbus-message.c: fix a comment, and add a still-unused
6083 not-implemented function
6085 * dbus/dbus-marshal.h: fix comment
6087 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
6089 2004-12-17 Joe Shaw <joeshaw@novell.com>
6091 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
6092 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
6093 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
6094 Type.UnderlyingSystemType to get the actual system type
6095 underneath. This code previously depended on the broken Mono
6096 behavior, which was fixed in 1.1.3.
6098 2004-11-27 Havoc Pennington <hp@redhat.com>
6100 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
6102 (_dbus_string_get_const_data): inline when asserts are disabled
6104 * dbus/dbus-message.c: record the _dbus_current_generation of
6105 creation so we can complain if dbus_shutdown() is used improperly.
6106 Do this only if checks are enabled.
6108 * dbus/dbus-connection.c: ditto
6110 2004-11-26 Havoc Pennington <hp@redhat.com>
6112 * test/glib/test-profile.c: add with_bus mode to profile echoes
6113 that go through the bus.
6115 * test/glib/run-test.sh: add ability to run test-profile
6117 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6120 2004-11-26 Havoc Pennington <hp@redhat.com>
6122 * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6123 thing was implemented
6125 2004-11-26 Havoc Pennington <hp@redhat.com>
6127 * test/glib/test-profile.c: tweak a bit, add support for some
6128 made-up minimal malloc overhead with plain sockets, since in
6129 real life some sort of buffers are unavoidable thus we could
6130 count them in the theoretical best case
6132 2004-11-26 Havoc Pennington <hp@redhat.com>
6134 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6135 where I was trying to cache one too many messages
6137 2004-11-26 Havoc Pennington <hp@redhat.com>
6139 * dbus/dbus-message.c: reimplement message cache as an array which
6140 makes the cache about twice as fast and saves maybe 1.5% overall
6142 2004-11-26 Havoc Pennington <hp@redhat.com>
6144 * dbus/dbus-threads.c (init_global_locks): forgot to put the
6145 message cache lock here
6147 2004-11-26 Havoc Pennington <hp@redhat.com>
6149 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6150 the "char byte_order" next to each other to save 4 bytes
6151 (dbus_message_new_empty_header): reduce preallocation, since the
6152 message cache should achieve a similar effect
6153 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6154 message cache that keeps a few DBusMessage around in a pool,
6155 another 8% speedup or so.
6157 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6159 2004-11-25 Havoc Pennington <hp@redhat.com>
6161 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6162 to write, without reading or blocking, try it before the poll()
6163 and skip the poll() if nothing remains to write. This is about a
6164 3% speedup in the echo client/server
6166 2004-11-25 Havoc Pennington <hp@redhat.com>
6168 The primary change here is to always write() once before adding
6169 the write watch, which gives us about a 10% performance increase.
6171 * dbus/dbus-transport-unix.c: a number of modifications to cope
6172 with removing messages_pending
6173 (check_write_watch): properly handle
6174 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6175 messages_pending stuff
6176 (check_read_watch): properly handle WAITING_FOR_MEMORY and
6178 (unix_handle_watch): after writing, see if the write watch can be
6180 (unix_do_iteration): assert that write_watch/read_watch are
6181 non-NULL rather than testing that they aren't, since they
6182 aren't allowed to be NULL. check_write_watch() at the end so
6183 we add the watch if we did not finish writing (e.g. got EAGAIN)
6185 * dbus/dbus-transport-protected.h: remove messages_pending call,
6186 since it resulted in too much inefficient watch adding/removing;
6187 instead we now require that the transport user does an iteration
6188 after queueing outgoing messages, and after trying the first
6189 write() we add a write watch if we got EAGAIN or exceeded our
6190 max bytes to write per iteration setting
6192 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6195 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6196 freed and then accessed, valgrind flagged this bug, fix it
6198 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6199 as the last valid field plus 1, where really it is equal to the
6200 last valid field. Corrects some message corruption issues.
6202 * dbus/dbus-mainloop.c: verbosity changes
6204 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6205 instead of aborting in one of the test codepaths
6207 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6208 caused not printing the pid ever again if a verbose was missing
6209 the newline at the end
6210 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6212 * dbus/dbus-connection.c: verbosity changes;
6213 (dbus_connection_has_messages_to_send): new function
6214 (_dbus_connection_message_sent): no longer call transport->messages_pending
6215 (_dbus_connection_send_preallocated_unlocked): do one iteration to
6216 try to write() immediately, so we can avoid the write watch. This
6217 is the core purpose of this patchset
6218 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6219 dump the outgoing message queue, so nobody will get confused
6220 trying to send them or thinking stuff is pending to be sent
6222 * bus/test.c: verbosity changes
6224 * bus/driver.c: verbosity/assertion changes
6226 * bus/dispatch.c: a bunch of little tweaks to get it working again
6227 because this patchset changes when/where you need to block.
6229 2004-11-23 Havoc Pennington <hp@redhat.com>
6231 * test/glib/test-profile.c: modify to accept a plain_sockets
6232 argument in which case it will bench plain sockets instead of
6233 libdbus, for comparison purposes.
6235 2004-11-22 Havoc Pennington <hp@redhat.com>
6237 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6238 threads for more time, so sysprof can get a grip on it.
6240 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6243 2004-11-13 Havoc Pennington <hp@redhat.com>
6245 * test/glib/test-profile.c: fix this thing up a bit
6247 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6248 preallocation sizes by a fair bit; not sure if this will be an
6249 overall performance win or not, but it does reduce reallocs.
6251 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6252 the test hack that forced constant realloc if asserts are
6253 disabled, so we can profile sanely. Sprinkle in some
6254 _DBUS_UNLIKELY() which are probably pointless, but before I
6255 noticed the real performance problem I put them in.
6256 (_dbus_string_validate_utf8): micro-optimize this thing a little
6257 bit, though callgrind says it didn't help; then special-case
6258 ascii, which did help a lot; then be sure we detect nul bytes as
6259 invalid, which is a bugfix.
6260 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6261 superstition; use memset to nul the padding instead of a manual
6263 (_dbus_string_get_length): inline this as a
6264 macro; it showed up in the profile because it's used for loop
6267 2004-11-10 Colin Walters <walters@verbum.org>
6269 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6272 2004-11-09 Colin Walters <walters@verbum.org>
6274 * dbus/dbus-string.c (_dbus_string_get_length): New
6275 function, writes DBusString to C buffer.
6277 * dbus/dbus-string.h: Prototype it.
6279 * dbus/dbus-message.c (dbus_message_type_to_string): New
6280 function, converts message type into C string.
6282 * dbus/dbus-message.h: Prototype it.
6284 * bus/selinux.c (bus_selinux_check): Take source pid,
6285 target pid, and audit data. Pass audit data to
6287 (log_audit_callback): New function, appends extra
6289 (bus_selinux_allows_acquire_service): Also take
6290 service name, add it to audit data.
6291 (bus_selinux_allows_send): Also take message
6292 type, interface, method member, error name,
6293 and destination, and add them to audit data.
6294 (log_cb): Initialize func_audit.
6296 * bus/selinux.h (bus_selinux_allows_acquire_service)
6297 (bus_selinux_allows_send): Update prototypes
6299 * bus/services.c (bus_registry_acquire_service): Pass
6300 service name to bus_selinux_allows_acquire_service.
6302 * bus/bus.c (bus_context_check_security_policy): Pass
6303 additional audit data. Move assignment of dest
6306 2004-11-07 Colin Walters <walters@verbum.org>
6308 * dbus/dbus-transport-unix.c (do_authentication): Always
6309 initialize auth_completed.
6311 2004-11-07 Colin Walters <walters@verbum.org>
6313 * bus/bus.c (load_config): Break into three
6314 separate functions: process_config_first_time_only,
6315 process_config_every_time, and process_config_postinit.
6316 (process_config_every_time): Move call of
6317 bus_registry_set_service_context_table into
6318 process_config_postinit.
6319 (process_config_postinit): New function, does
6320 any processing that needs to happen late
6321 in initialization (and also on reload).
6322 (bus_context_new): Instead of calling load_config,
6323 open config parser here and call process_config_first_time_only
6324 and process_config_every_time directly. Later, after
6325 we have forked but before changing UID,
6326 invoke bus_selinux_full_init, and then call
6327 process_config_postinit.
6328 (bus_context_reload_config): As in bus_context_new,
6329 load parse file inside here, and call process_config_every_time
6330 and process_config_postinit.
6332 * bus/services.h, bus/services.c
6333 (bus_registry_set_service_context_table): Rename
6334 from bus_registry_set_sid_table. Take string hash from config
6335 parser, and convert them here into SIDs.
6337 * bus/config-parser.c (struct BusConfigParser): Have
6338 config parser only store a mapping of service->context
6340 (merge_service_context_hash): New function.
6341 (merge_included): Merge context string hashes instead
6342 of using bus_selinux_id_table_union.
6343 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6344 simply create a new string hash.
6345 (bus_config_parser_unref): Unref it.
6346 (start_selinux_child): Simply insert strings into hash,
6347 don't call bus_selinux_id_table_copy_over.
6349 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6350 (bus_selinux_id_table_copy_over): Delete.
6352 2004-11-03 Colin Walters <walters@verbum.org>
6354 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6357 2004-11-03 Colin Walters <walters@verbum.org>
6359 * bus/test-main.c (test_pre_hook): Fix test logic,
6360 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6362 2004-11-02 Colin Walters <walters@redhat.com>
6364 * bus/selinux.c (bus_selinux_init): Split into two functions,
6365 bus_selinux_pre_init and bus_selinux_post_init.
6366 (bus_selinux_pre_init): Just determine whether SELinux is
6368 (bus_selinux_post_init): Do everything else.
6370 * bus/main.c (main): Call bus_selinux_pre_init before parsing
6371 config file, and bus_selinux_post_init after. This ensures that
6372 we don't lose the policyreload notification thread that
6373 bus_selinux_init created before forking previously.
6375 * bus/test-main.c (test_pre_hook): Update for split.
6377 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
6379 Patch from Johan Fischer <linux@fischaz.com>
6381 * mono/doc/Makefile.am (install-data-local): Added directory
6384 2004-10-29 Colin Walters <walters@redhat.com>
6386 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6387 parameter for fd to write pid to.
6389 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6391 * bus/bus.c (bus_context_new): Pass print_pid_fd
6392 to _dbus_become_daemon (bug #1720)
6394 2004-10-29 Colin Walters <walters@redhat.com>
6396 Patch from Ed Catmur <ed@catmur.co.uk>
6398 * mono/doc/Makefile.am (install-data-local): Handle
6401 2004-10-29 Colin Walters <walters@redhat.com>
6403 * bus/.cvsignore, qt/.cvsignore: Update.
6405 2004-10-29 Colin Walters <walters@redhat.com>
6407 Patch from Kristof Vansant <de_lupus@pandora.be>
6409 * configure.in: Detect Slackware.
6410 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6411 * bus/rc.messagebus.in: New file.
6413 2004-10-29 Colin Walters <walters@redhat.com>
6415 * tools/dbus-monitor.c (filter_func): Return
6416 DBUS_HANDLER_RESULT_HANDLED in filter function
6418 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6420 2004-10-29 Colin Walters <walters@redhat.com>
6422 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6424 * bus/services.c (bus_registry_acquire_service):
6425 Correctly retrieve service name from DBusString
6428 2004-10-29 Colin Walters <walters@redhat.com>
6430 * dbus/dbus-glib.h: Update documentation to not
6431 refer to internal APIs.
6433 2004-10-27 Joe Shaw <joeshaw@novell.com>
6435 * mono/Arguments.cs (GetDBusTypeConstructor):
6436 type.UnderlyingSystemType will return "System.Byte" if you do it
6437 on "byte[]", which is not what we want. So check the type.IsArray
6438 property and use System.Array instead.
6440 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
6442 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6443 the DBusUserInfo structure since this is passed into the function.
6444 This would cause a double free when the function that allocated
6445 the structure would try to free it when an error occured.
6447 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6448 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6449 for service activation to avoid 32bit/64bit parallel install issues
6451 2004-10-21 Colin Walters <walters@verbum.org>
6453 * AUTHORS: Fix my email address, the @gnu.org one
6454 has been bouncing for some time. Also add J5.
6456 2004-10-21 Colin Walters <walters@verbum.org>
6458 * dbus/dbus-transport-unix.c (do_authentication): Return
6459 authentication status to callers.
6460 (unix_handle_watch): If we completed authentication this round,
6461 don't do another read. Instead wait until the next iteration,
6462 after we've read any pending data in the auth buffer.
6463 (unix_do_iteration): Ditto.
6464 (unix_handle_watch): Updated for new do_authentication prototype.
6466 2004-10-18 Colin Walters <walters@verbum.org>
6468 * bus/selinux.c (bus_selinux_enabled): Handle
6469 --disable-selinux case.
6471 2004-10-18 Colin Walters <walters@verbum.org>
6473 * bus/selinux.h: Add bus_selinux_enabled.
6475 * bus/selinux.c (bus_selinux_enabled): Implement it.
6477 * bus/config-parser.c (struct include): Add
6478 if_selinux_enabled member.
6479 (start_busconfig_child): Parse if_selinux_enabled
6480 attribute for include.
6481 (bus_config_parser_content): Handle it.
6483 * bus/session.conf.in, bus/system.conf.in: Add
6484 inclusion of context mapping to default config files;
6485 conditional on SELinux being enabled.
6487 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6489 * test/data/invalid-config-files/badselinux-1.conf,
6490 test/data/invalid-config-files/badselinux-2.conf:
6491 Test files for bad syntax.
6493 2004-10-17 Colin Walters <walters@verbum.org>
6495 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6496 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6497 format specifier mismatches.
6499 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
6501 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6504 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6505 pointer (bug #1540, Leonardo Boiko).
6507 2004-09-28 Jon Trowbridge <trow@ximian.com>
6509 * mono/BusDriver.cs: Changed BusDriver struct to remove
6510 the ServiceCreated and ServiceDeleted events and replace them
6511 with the new ServiceOwnerChanged event.
6513 * mono/example/BusListener.cs: Added a new example program,
6514 which listens for and reports any ServiceOwnerChanged events
6517 * mono/example/Makefile.am (DESTDIR): Build changes for the
6518 new BusListener.cs example.
6520 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
6522 * bus/signals.c (bus_match_rule_parse): validate the components of
6523 match rules (bug #1439).
6525 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6527 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
6529 * doc/dbus-specification.xml: document ServiceOwnerChanged
6532 * bus/driver.c, bus/driver.h, bus/services.c: Use
6533 ServiceOwnerChanged signal instead of ServiceCreated and
6536 * bus/dispatch.c: update testcase for the new signal.
6538 2004-09-20 Jon Trowbridge <trow@ximian.com>
6540 Patch from Nat Friedman <nat@novell.com>
6542 * mono/Makefile.am: A number of small build fixes to allow "make
6543 distcheck" to succeed.
6545 * mono/example/Makefile.am: "make distcheck" fixes.
6547 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6550 * test/Makefile.am: "make distcheck" fixes.
6552 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
6554 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6556 * doc/busconfig.dtd: update the DTD for the at_console attribute.
6558 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6559 messages after the first one (bug #1389).
6561 * bus/dispatch.c (check_double_hello_message): add a test case for
6562 the double hello message bug.
6563 (check_existent_service_activation): fix check of spawning error.
6565 2004-09-16 David Zeuthen <david@fubar.dk>
6567 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6569 2004-09-12 David Zeuthen <david@fubar.dk>
6571 Patch from Kay Sievers <kay.sievers@vrfy.org>
6573 * bus/bus.c (bus_context_new):
6575 * bus/main.c (usage)
6577 Add commandline option --nofork to override configuration file
6580 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
6582 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6583 compilers don't like it (bug #974).
6585 2004-09-04 Harald Fernengel <harry@kdevelop.org>
6587 * qt/connection.*: Applied patch by Jérôme Lodewyck
6588 <lodewyck@clipper.ens.fr> to integrate an existing
6589 connection into the Qt eventloop
6591 2004-08-30 Jon Trowbridge <trow@ximian.com>
6593 * mono/BusDriver.cs: Added. This is a class for interacting with
6594 the org.freedesktop.DBus service.
6596 * mono/Message.cs: Added a mechanism to expose the message that is
6597 currently being dispatched via the static Message.Current
6598 property. Added Message.Sender and Message.Destination
6601 * mono/Handler.cs: Expose the dispatched message via
6602 Message.Current when handling method calls.
6604 * mono/Service.cs: Expose the dispatched message via
6605 Message.Current when handling signal emissions.
6607 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6608 Connection.BaseService property.
6610 2004-08-28 Havoc Pennington <hp@redhat.com>
6612 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6614 More fixes from Steve Grubb
6616 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6617 (_dbus_listen_tcp_socket): fix fd leak
6619 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6620 EINTR to a bit lower in the code
6622 2004-08-26 Jon Trowbridge <trow@ximian.com>
6624 * bus/driver.c (bus_driver_handle_service_exists): Respond with
6625 TRUE if we are inquiring about the existence of the built-in
6626 org.freedesktop.DBus service.
6628 2004-08-25 John Palmieri <johnp@redhat.com>
6629 * bus/config-parser.c:
6630 (struct PolicyType): Add POLICY_CONSOLE
6631 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6632 (start_busconfig_child): Sets up console element when
6633 <policy at_console=""> is encountered in a policy file
6634 (append_rule_from_element): Convert console elements to console
6638 (bus_policy_create_client_policy): Add console rules to the client
6639 policy based on if the client is at the console
6640 (bus_policy_append_console_rule): New function for adding a
6641 console rule to a policy
6642 (bus_policy_merge): Handle console rule merging
6644 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6645 where we check for console user files
6647 * dbus/dbus-sysdeps.c:
6648 (_dbus_file_exists): New function which checks if the given
6650 (_dbus_user_at_console): New function which does the system
6651 specific process of checking if the user is at the console
6653 * dbus/dbus-userdb.c:
6654 (_dbus_is_console_user): New function converts a UID to user name
6655 and then calls the system specific _dbus_user_at_console to
6656 see if the user is at the console and therefor a console user
6658 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
6660 * bus/config-parser.c (set_limit):
6661 * bus/dbus-daemon-1.1.in:
6662 * test/data/valid-config-files/many-rules.conf: set the
6663 max_match_rules_per_connection limt from the config file.
6665 * doc/busconfig.dtd: update the DTD.
6667 * bus/driver.c: remove some unused variables.
6669 2004-08-24 Mikael Hallendal <micke@imendio.com>
6671 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
6672 it's been replaced by dbus_g_bus_get
6674 2004-08-23 Colin Walters <walters@redhat.com>
6676 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6678 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6680 * bus/selinux.c: Create a thread for policy reload notification.
6681 (bus_selinux_get_policy_root): Implement.
6683 * bus/config-parser.c (start_busconfig_child)
6684 (bus_config_parser_content): Support SELinux-root relative
6687 * configure.in <HAVE_SELINUX>: Add -lpthread.
6689 * bus/test-main.c (test_pre_hook, test_post_hook): New.
6690 (test_post_hook): Move memory checking into here.
6691 (test_pre_hook, test_post_hook): Move SELinux checks in
6692 here, but conditional on a DBUS_TEST_SELINUX environment
6693 variable. Unfortunately we can't run the SELinux checks
6694 as a normal user, since they won't have any permissions
6695 for /selinux. So this will have to be tested manually
6696 for now, until we have virtualization for most of
6699 2004-08-23 Havoc Pennington <hp@redhat.com>
6701 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6702 drop supplementary groups, suggested by Steve Grubb
6704 2004-08-20 Colin Walters <walters@redhat.com>
6706 * bus/config-parser.c (start_busconfig_child): Remove some unused
6709 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6712 2004-08-17 Joe Shaw <joeshaw@novell.com>
6714 * configure.in: If --enable-mono is passed in, if we can't find
6717 * mono/Makefile.am: Use /gacutil to install assemblies into the
6720 2004-08-12 Havoc Pennington <hp@redhat.com>
6722 * NEWS: update for 0.22
6724 * configure.in: release 0.22
6726 2004-08-11 Colin Walters <walters@redhat.com>
6728 * tools/dbus-send.c (main, usage): Add --reply-timeout
6731 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
6733 * bus/bus.c (process_config_first_time_only): get rid of an unused
6734 DBusError that was causing a memoy leak (bug #989).
6736 * dbus/dbus-keyring.c, dbus/dbus-message.c:
6737 fix compilation on Solaris/Forte C (bug #974)
6739 * bus/main.c (main): plug two minuscule memleaks.
6741 2004-08-10 Havoc Pennington <hp@redhat.com>
6743 * doc/dbus-tutorial.xml: add some more info on GLib bindings
6745 2004-08-09 Havoc Pennington <hp@redhat.com>
6747 * COPYING: switch to Academic Free License version 2.1 instead of
6748 2.0, to resolve complaints about patent termination clause.
6750 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
6752 * README: added documentation for the --enable-python
6755 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
6757 * bus/config-parser.c (bus_config_parser_new): fix an invalid
6758 _unref in the SELinux support.
6760 * doc/busconfig.dtd: update DTD for SELinux support.
6762 * bus/config-loader-libxml.c: fix error handler and parser
6763 initialisation/cleanup. OOM test now works with libxml2 HEAD.
6765 * configure.in: remove the warning about libxml2.
6767 * dbus/dbus-bus.c: silence doxygen warning.
6769 2004-07-31 Colin Walters <walters@redhat.com>
6771 * configure.in: Move #error in SELinux check to its own line.
6773 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
6775 * dbus/dbus-internals.h (_DBUS_SET_OOM):
6776 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6779 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6780 broken by the change in the _SET_OOM macros.
6782 2004-07-31 Colin Walters <walters@redhat.com>
6784 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6787 2004-07-31 Colin Walters <walters@redhat.com>
6789 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6790 to correctly detect DBUS__ACQUIRE_SVC. Also add an
6793 2004-07-24 Havoc Pennington <hp@redhat.com>
6795 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6797 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6800 * configure.in: add --enable-selinux
6802 * bus/policy.c (bus_policy_merge): add FIXME to a comment
6804 * bus/main.c (main): initialize and shut down selinux
6806 * bus/connection.c: store SELinux ID on each connection, to avoid
6807 repeated getting of the string context and converting it into
6810 * bus/bus.c (bus_context_get_policy): new accessor, though it
6812 (bus_context_check_security_policy): check whether the security
6813 context of sender connection can send to the security context of
6814 recipient connection
6816 * bus/config-parser.c: add parsing for <selinux> and <associate>
6818 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6819 implement dbus_connection_get_unix_fd()
6821 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6822 function, used by the selinux stuff
6824 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
6826 * bus/config-loader-libxml.c: complete the implementation of
6827 libxml backend for config file loader. Doesn't work with full OOM
6830 * configure.in: change error when selecting libxml into a warning.
6832 * test/data/invalid-config-files: add two non-well-formed XML
6835 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6837 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6838 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6839 be necessary to read all the buffer. (bug #894)
6841 * bus/activation.c (bus_activation_activate_service): fix a
6842 potential assertion failure (bug #896). Small optimization in the
6843 case of auto-activation messages.
6845 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6846 add test case for byte-through-vararg bug (#901). patch by Kimmo
6849 2004-07-28 Anders Carlsson <andersca@gnome.org>
6852 * python/dbus_bindings.pyx.in:
6853 Add dbus.init_gthreads (), allow emit_signal to pass
6854 arguments to the signal.
6856 2004-07-24 Havoc Pennington <hp@redhat.com>
6858 * AUTHORS: add some people, not really comprehensively, let me
6859 know if I missed you
6861 2004-07-24 Havoc Pennington <hp@redhat.com>
6863 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6866 * test/Makefile.am (DIST_SUBDIRS): here also
6868 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
6870 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6871 breaking build on Solaris, reported by Farhad Saberi on the ML.
6873 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6874 va_arg invocation to account for integer promotion in the case of
6875 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6877 * bus/services.c (bus_service_remove_owner): fix bug #902, use
6878 _dbus_list_get_first_link, not _dbus_list_get_first.
6880 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6882 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6883 handler functions so that the asserts in _dbus_object_subtree_unref
6886 * dbus/dbus-transport-unix.c (do_reading):
6887 _dbus_transport_queue_messages return value is of type
6888 dbus_bool_t, not DBusDispatchStatus.
6890 2004-07-19 David Zeuthen <david@fubar.dk>
6892 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6895 (check_get_connection_unix_user): Debug says GetProperty; but the
6896 method is called GetConnectionUnixUser
6897 (check_get_connection_unix_process_id): New function
6898 (bus_dispatch_test): Actually call check_get_connection_unix_user();
6899 also call check_get_connection_unix_process_id()
6902 (bus_driver_handle_get_connection_unix_process_id): New function,
6903 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6907 (handle_server_data_external_mech): Set pid from the credentials
6908 obtained from the socket
6910 * dbus/dbus-connection.c:
6911 (dbus_connection_get_unix_process_id): New function
6913 * dbus/dbus-connection.h:
6914 Add prototype for dbus_connection_get_unix_process_id
6916 * dbus/dbus-transport.c:
6917 (_dbus_transport_get_unix_process_id): New function
6919 * dbus/dbus-transport.h:
6920 Add prototype for _dbus_transport_get_unix_process_id
6922 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
6924 * dbus/dbus-message.c: Message counter fix, patch by Christian
6925 Hammond <chipx86@gnupdate.org>
6927 2004-07-18 Seth Nickell <seth@gnome.org>
6930 * python/dbus_bindings.pyx.in:
6931 * python/tests/test-client.py:
6933 Add dbus.ByteArray and dbus_bindings.ByteArray
6934 types so that byte streams can be passed back.
6936 Give jdahlin the heaps of credit that are so
6939 2004-07-12 Seth Nickell <seth@gnome.org>
6943 Add message argument to the default object_method_handler
6946 * python/dbus_bindings.pyx.in:
6948 Automatically return NIL when passed an empty list
6949 (we can't pass back a list since lists are typed
6950 and we don't have any idea what type the the client
6951 intended the list to be... :-( )
6953 2004-07-10 Seth Nickell <seth@gnome.org>
6955 * python/examples/Makefile.am:
6957 Fix distcheck breakage caused by new examples.
6959 2004-07-10 Seth Nickell <seth@gnome.org>
6963 Add "message" argument to service-side dbus.Object
6964 methods. This will break existing services written
6965 using the python bindings, but will allow extraction
6966 of all the message information (e.g. who its from).
6968 Add improved "object oriented" signal handling/emission.
6970 * python/examples/example-service.py:
6974 * python/examples/example-signal-emitter.py:
6975 * python/examples/example-signal-recipient.py:
6977 Two new examples that show how to emit and receive
6978 signals using the new APIs.
6980 * python/examples/example-signals.py:
6981 * python/examples/gconf-proxy-service.py:
6982 * python/examples/gconf-proxy-service2.py:
6984 Add "message" argument to service methods.
6986 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
6988 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6989 * dbus/bus.c (dbus_bus_get_unix_user)
6990 * doc/dbus-specification.xml: implement GetConnectionUnixUser
6991 method of org.freedesktop.DBus interface.
6993 * bus/dispatch.c: test case
6995 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
6997 * python/Makefile.am: switched include directory from glib/ to dbus/
6998 since dbus-glib.h moved
7000 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
7002 * configure.in: prevent building the gcj stuff and libxml loader
7003 since they are broken.
7005 2004-06-20 Havoc Pennington <hp@redhat.com>
7007 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
7008 codes from the dbus error names
7010 * glib/dbus-glib.h: move to subdir dbus/ since it's included
7011 as dbus/dbus-glib.h and that breakage is now visible due to
7012 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7014 * glib/dbus-glib.h: s/gproxy/g_proxy/
7016 * dbus/dbus-shared.h: new header to hold stuff shared with
7019 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7022 * glib/dbus-glib.h (dbus_set_g_error): move to
7023 dbus-glib-lowlevel.h
7025 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7026 of stuff to enable this
7028 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7030 * a bunch of other changes with the same basic "separate glib
7031 bindings from dbus.h" theme
7033 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
7035 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7037 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7039 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
7041 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7042 the reply value of the ServiceExists message.
7044 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
7046 * python/dbus_bindings.pyx.in: No longer need to parse path
7047 elements and pass them as arrays of strings. The C API now
7048 accepts plain path strings.
7049 (_build_parsed_path): removed
7051 2004-06-07 Havoc Pennington <hp@redhat.com>
7053 * doc/TODO: remove auto-activation item since it's done; sort
7054 items by importance/milestone
7056 2004-06-07 Havoc Pennington <hp@redhat.com>
7058 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7059 random signature when using REQUIRED_FIELDS (this hack won't work
7062 * dbus/dbus-message.c: change the signature to be a header field,
7063 instead of message->signature special-case string. Incremental
7064 step forward. Then we can fix up code to send the signature in the
7065 message, then fix up code to validate said signature, then fix up
7066 code to not put the typecodes inline, etc.
7067 (load_one_message): don't make up the signature after the fact
7068 (decode_header_data): require signature field for the known
7071 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7073 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7075 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
7077 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7079 * mono/Handler.cs: Updated to follow new path argument for
7080 (un-)registering objects.
7082 * mono/example/Makefile.am:
7084 * configure.in: Bumped required version for mono and use new -pkg
7087 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
7089 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
7090 registration functions take the path argument as char* instead of
7093 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
7094 split off the path decompostion part of
7095 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
7098 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
7100 2004-06-02 Kristian Høgsberg <krh@redhat.com>
7102 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
7103 machine approach. A state is implemented as a function that
7104 handles incoming events as specified for that state.
7106 * doc/dbus-specification.xml: Update auth protocol state machine
7107 specification to match implementation. Remove some leftover
7110 2004-06-02 Kristian Høgsberg <krh@redhat.com>
7112 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7113 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7116 * Doxyfile.in: remove deprecated options.
7118 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7119 glib/test-thread.h, glib/test-thread-client.c,
7120 glib/test-thread-server.c, glib/test-profile.c,
7121 glib/test-dbus-glib.c: remove these unused files.
7123 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
7125 * dbus/dbus-object-tree.c
7126 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7127 non-fallback handlers (bug #684).
7128 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7129 (find_subtree_recurse): report wether the returned subtree is an
7130 exact match or a "fallback" match higher up in the tree.
7131 (object_tree_test_iteration): update test case.
7133 2004-06-01 Seth Nickell <seth@gnome.org>
7135 * python/dbus_bindings.pyx.in:
7136 * python/tests/test-client.py:
7138 Round off basic type support. Add dicts (yay!), and
7139 remaining array types.
7141 Make MessageIter more general so it works for dicts too.
7143 Mark all loop variables as C integers.
7145 2004-05-31 Havoc Pennington <hp@redhat.com>
7147 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7150 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7152 * glib/dbus-glib-tool.c (main): set up to have a --self-test
7153 option that runs the tests, and start filling in some code
7154 including for starters just dumping the interfaces to stdout
7156 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7158 * test/data/valid-introspection-files/lots-of-types.xml: test of
7159 an example introspection file
7161 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7164 2004-05-31 Seth Nickell <seth@gnome.org>
7166 * python/dbus_bindings.pyx.in:
7167 * python/tests/test-client.py:
7172 Fix string array memory trashing bug... oops...
7174 2004-05-30 Seth Nickell <seth@gnome.org>
7178 Add a nicer-but-less-flexible alternate API for handling
7179 calls to virtual objects in dbus.ObjectTree.
7181 Screw up the argument order to the dbus.Object constructor
7182 for consistency with dbus.ObjectTree (and to make dbus_methods
7183 optional for future extension)
7185 * python/examples/Makefile.am:
7186 * python/examples/gconf-proxy-service.py:
7187 * python/examples/gconf-proxy-service2.py:
7189 Alternate implementation of gconf-proxy-service using the
7190 nicer dbus.ObjectTree API.
7192 * python/examples/example-service.py:
7193 * python/tests/test-server.py
7195 Reverse the argument order to deal with dbus.Object constructor
7198 2004-05-30 Seth Nickell <seth@gnome.org>
7200 * python/examples/example-client.py:
7201 * python/examples/example-service.py:
7203 Take it back. Lists seem to work but they're broken
7204 in the test suite. Make the base examples use
7207 2004-05-30 Seth Nickell <seth@gnome.org>
7209 * python/dbus_bindings.pyx.in:
7210 * python/tests/test-client.py:
7212 Add some more tests and fix errors that crop up.
7213 Unfortunately, currently it seems like marshalling
7214 and unmarshalling of lists is completely broken :-(
7216 2004-05-30 Seth Nickell <seth@gnome.org>
7218 * python/dbus_bindings.pyx.in:
7220 Add support for ObjectPath type.
7224 Refactor message handling code to a common function.
7226 * python/tests/test-client.py:
7227 * python/tests/test-server.py:
7229 Add tests that check to make sure values of all types
7230 can be echoed from a service w/o mangling.
7232 2004-05-29 Seth Nickell <seth@gnome.org>
7236 Add ObjectTree class which allows implementation
7237 of trees of "virtual" objects. Basically the python
7238 wrapper for "register_fallback".
7240 * python/examples/Makefile.am
7241 * python/examples/gconf-proxy-client.py:
7242 * python/examples/gconf-proxy-service.py:
7244 Implement a simple GConf proxy service that supports
7245 get/set on string and int GConf keys using the ObjectTree.
7247 2004-05-29 Seth Nickell <seth@gnome.org>
7250 * python/examples/example-client.py:
7251 * python/examples/example-service.py:
7252 * python/examples/list-system-services.py:
7254 Add SessionBus, SystemBus and ActivationBus classes
7255 so you don't need to know the special little BUS_TYPE
7258 2004-05-29 Havoc Pennington <hp@redhat.com>
7260 * bus/config-parser.c (process_test_valid_subdir): temporarily
7261 stop testing config parser OOM handling, since expat has issues
7262 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7264 * bus/dbus-daemon-1.1.in: change requested_reply to
7265 send_requested_reply/receive_requested_reply so we can send the
7266 replies, not just receive them.
7268 * bus/config-parser.c: parse the new
7269 send_requested_reply/receive_requested_reply
7271 * bus/policy.c (bus_client_policy_check_can_send): add
7272 requested_reply argument and use it
7274 * bus/bus.c (bus_context_check_security_policy): pass through
7275 requested_reply status to message send check
7277 * bus/system.conf.in: adapt to requested_reply change
7279 2004-05-28 Havoc Pennington <hp@redhat.com>
7281 * test/glib/test-service-glib.c (main): remove unused variable
7283 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7285 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7286 from the enum, no longer in use.
7288 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7291 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7292 whether error_name passed in is a valid error name.
7294 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
7296 * dbus/dbus-message.c (dbus_message_get_args): Added support for
7297 OBJECT_PATH and OBJECT_PATH_ARRAY
7299 2004-05-28 Seth Nickell <seth@gnome.org>
7301 * python/examples/Makefile.am:
7303 Forget to add Makefile.am. Do not pass go.
7305 2004-05-28 Michael Meeks <michael@ximian.com>
7307 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
7310 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7312 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7313 (_dbus_message_iter_get_basic_type_array): impl.
7314 drastically simplify ~all relevant _get methods to use these.
7315 (_dbus_message_iter_append_basic_array),
7316 (dbus_message_iter_append_basic): impl
7317 drastically simplify ~all relevant _append methods to use these.
7319 * dbus/dbus-message-builder.c (parse_basic_type)
7320 (parse_basic_array, lookup_basic_type): impl.
7321 (_dbus_message_data_load): prune scads of duplicate /
7324 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
7325 (_dbus_demarshal_basic_type): implement,
7326 (demarshal_and_validate_len/arg): beef up debug.
7327 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7329 2004-05-27 Seth Nickell <seth@gnome.org>
7332 * python/Makefile.am:
7334 Include the example python apps in the tarball.
7336 * python/examples/list-system-services.py
7338 Add a python new example that fetches the list of services
7339 from the system bus.
7341 2004-05-27 Seth Nickell <seth@gnome.org>
7344 * python/dbus_bindings.pyx.in:
7346 Fix failure to notify that a signal was not handled,
7347 resulted in hung functions.
7349 2004-05-25 Colin Walters <walters@redhat.com>
7351 * tools/dbus-monitor.c (main): Monitor all types of messages.
7353 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
7355 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7356 which unregisters the object path and disposes the handler.
7358 2004-05-23 Kristian Høgsberg <krh@redhat.com>
7360 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7362 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7363 operands to && so we call dbus_message_iter_next () for the last
7366 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
7368 * dbus/dbus-object-tree.c
7369 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7370 children even if the requested path isn't registered.
7371 (object_tree_test_iteration): test object_tree_list_registered.
7373 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7376 2004-05-20 Kristian Høgsberg <krh@redhat.com>
7378 * doc/TODO: Remove resolved items.
7380 * bus/expirelist.h (struct BusExpireList): remove unused n_items
7383 * bus/connection.c (bus_connections_expect_reply): Enforce the
7384 per-connection limit on pending replies.
7386 Patch from Jon Trowbridge <trow@ximian.com>:
7388 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
7389 up a watch that triggers a config reload when one end of the pipe
7391 (signal_handler): Instead of doing the config reload in our SIGHUP
7392 handler, just write to the reload pipe and let the associated
7393 watch handle the reload when control returns to the main loop.
7395 * bus/driver.c (bus_driver_handle_reload_config): Added.
7396 Implements a ReloadConfig method for requesting a configuration
7397 file reload via the bus driver.
7399 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
7401 * HACKING: Updated release instructions concerning the wiki page.
7403 2004-05-18 Kristian Høgsberg <krh@redhat.com>
7405 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7406 filter against auth->allowed_mechs; we only add allowed mechs in
7407 record_mechanisms().
7409 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7410 ALLOWED_MECHS to auth-script format so we can set the list of
7413 * data/auth/client-out-of-mechanisms.auth-script: New test to
7414 check client disconnects when it is out of mechanisms to try.
7416 * dbus/dbus-auth.c (process_command): Remove check for lines
7417 longer that 1 MB; we only buffer up maximum 16 kB.
7419 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7420 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7421 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7422 assume there might be unused bytes.
7424 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7425 client-out-of-mechs, it is handled in process_reject(). Move check
7426 for max failures to send_rejected(), as it's a server-only thing.
7428 * dbus/dbus-auth.c: Factor out protocol reply code into functions
7429 send_auth(), send_data(), send_rejected(), send_error(),
7430 send_ok(), send_begin() and send_cancel().
7432 2004-05-17 Kristian Høgsberg <krh@redhat.com>
7434 Remove base64 encoding, replace with hex encoding. Original patch
7435 from trow@ximian.com, added error handling.
7437 * dbus/dbus-string.c (_dbus_string_base64_encode)
7438 (_dbus_string_base64_decode): Remove.
7439 (_dbus_string_hex_decode): Add end_return argument so we can
7440 distinguish between OOM and invalid hex encoding.
7441 (_dbus_string_test): Remove base64 tests and add test case for
7444 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7445 Replace base64 with hex.
7447 * test/data/auth/invalid-hex-encoding.auth-script: New test case
7448 for invalid hex encoded data in auth protocol.
7450 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
7452 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7455 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
7457 * mono/dbus-sharp.dll.config.in: Added for GAC
7458 * mono/dbus-sharp.snk: Added for GAC
7459 * mono/Assembly.cs.in: Added for GAC
7460 * mono/Makefile.am: Changes for GAC installation
7461 * configure.in: Added refs for dbus-sharp.dll.config.in and
7462 Assembly.cs.in. More fixes for mono testing
7463 * mono/example/Makefile.am: Changed var to CSC
7464 * Makefile.am: Changed flag name to DBUS_USE_CSC
7466 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
7468 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7469 * mono/doc/*: Added documentation framework
7470 * configure.in: Added monodoc check
7471 * README: Added description of mono configure flags
7473 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
7475 * doc/dbus-specification.xml: Added a "Required" column to the
7476 header fields table and changed the "zero or more" verbage in
7477 the above paragraph to read "The header must contain the required
7478 named header fields and zero or more of the optional named header
7480 * test/data/invalid-messages/*.message: Added the required PATH
7481 named header field to the tests so that they don't fail on
7482 'Missing path field'
7484 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
7486 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7487 the stack by implicitly defining variable and parameter types and
7488 removing the hack of defining C pointers as python objects and later
7491 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
7493 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7495 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
7497 * mono/DBusType/Dict.cs: Handle empty dicts
7498 * mono/DBusType/Array.cs: Handle empty arrays
7499 * mono/Arguments.cs: Handle empty arguments
7501 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
7503 * dbus-sharp.pc.in: Modified to include include Libs and Requires
7506 2004-04-25 Kristian Høgsberg <krh@redhat.com>
7508 * test/data/valid-messages/standard-*.message: Update message
7509 test scripts to new header field names.
7511 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
7513 * test/break-loader.c (randomly_do_n_things): tracked down buffer
7514 overflow to times_we_did_each_thing array which would chop off the
7515 first character of the failure_dir string. Increased the size of
7516 the array to 7 to reflect the number of random mutation functions
7519 2004-04-21 Kristian Høgsberg <krh@redhat.com>
7521 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7522 unix_server->watch here, it is unreffed in disconnect.
7523 (_dbus_server_new_for_tcp_socket): convert NULL host to
7524 "localhost" here so we don't append NULL to address.
7526 * dbus/dbus-server.c (_dbus_server_test): Add test case for
7527 various addresses, including tcp with no explicit host.
7529 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
7531 * dbus/dbus-message.c (decode_header_data, decode_string_field):
7532 fix incorrect setting of .name_offset in the HeaderField (it was
7533 off by two bytes, positioned right after the name and typecode)
7535 * bus/bus.c (bus_context_new, bus_context_unref): test before
7536 calling dbus_server_free_data_slot and _dbus_user_database_unref
7537 in case of an error.
7539 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7542 2004-04-19 Kristian Høgsberg <krh@redhat.com>
7544 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7545 _dbus_poll() instead of select().
7547 2004-04-15 Jon Trowbridge <trow@ximian.com>
7549 * bus/main.c (signal_handler): Reload the configuration files
7551 (main): Set up our SIGHUP handler.
7553 * bus/bus.c (struct BusContext): Store the config file, user and
7554 fork flag in the BusContext.
7555 (process_config_first_time_only): Added. Contains the code
7556 (previously in bus_context_new) for setting up the BusContext from
7557 the BusConfigParser that should only be run the first time the
7558 config files are read.
7559 (process_config_every_time): Added. Contains the code (previously
7560 in bus_context_new) for setting up the BusContext from the
7561 BusConfigParser that should be run every time the config files are
7563 (load_config): Added. Builds a BusConfigParser from the config
7564 files and passes the resulting structure off to
7565 process_config_first_time_only (assuming this is the first time)
7566 and process_config_every_time.
7567 (bus_context_new): All of the config-related code has been moved
7568 to process_config_first_time_only and process_config_every_time.
7569 Now this function just does the non-config-related initializations
7570 and calls load_config.
7571 (bus_context_reload_config): Added.
7573 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
7575 * bus/driver.c (bus_driver_handle_get_service_owner):
7576 implement a GetServiceOwner method.
7577 * doc/dbus-specification.xml: document it.
7578 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7580 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7581 implement, using the bus GetServiceOwner method.
7583 * test/glib/test-dbus-glib.c:
7584 use dbus_gproxy_new_for_service_owner so that we can receive the
7587 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
7589 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7590 dbus/dbus-message.c, dbus/dbus-protocol.h
7591 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7593 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7594 dbus/dbus-message.c, dbus/dbus-protocol.h
7595 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7597 * dbus/dbus-internals.c (_dbus_header_field_to_string):
7598 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7599 DBUS_HEADER_FIELD_SENDER resolves to "sender"
7601 * doc/dbus-specification.xml (Header Fields Table):
7602 s/SERVICE/DESTINATION
7603 s/SENDER_SERVICE/SENDER
7606 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
7608 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7611 2004-04-13 Michael Meeks <michael@ximian.com>
7613 * glib/dbus-gobject.c (handle_introspect): split out
7614 (introspect_properties): this.
7615 (handle_introspect): implement this.
7617 * test/glib/Makefile.am: use the absolute path so the bus
7618 daemon's chdir ("/") doesn't kill us dead.
7620 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7622 2004-04-12 Jon Trowbridge <trow@ximian.com>
7624 * bus/config-parser.c (struct BusConfigParser): Added
7625 included_files field.
7626 (seen_include): Added. Checks whether or not a file has already
7627 been included by any parent BusConfigParser.
7628 (bus_config_parser_new): Copy the parent's included_files.
7629 (include_file): Track which files have been included, and fail on
7630 circular inclusions.
7631 (process_test_valid_subdir): Changed printf to report if we are
7632 testing valid or invalid conf files.
7633 (all_are_equiv): Changed printf to be a bit clearer about
7634 what we are actually doing.
7635 (bus_config_parser_test): Test invalid configuration files.
7637 2004-04-09 Jon Trowbridge <trow@ximian.com>
7639 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7640 argument. If non-null, the newly-constructed BusConfigParser will
7641 be initialized with the parent's BusLimits instead of the default
7643 (include_file): When including a config file, pass in
7644 the current parser as the parent and then copy the BusLimits
7645 from the included BusConfigParser pack to the current parser.
7646 (process_test_valid_subdir): Renamed from process_test_subdir.
7647 (process_test_equiv_subdir): Added. Walks through a directory,
7648 descending into each subdirectory and loading the config files
7649 it finds there. If any subdirectory contains two config files
7650 that don't produce identical BusConfigParser structs, fail.
7651 For now, the BusConfigParser's BusPolicies are not compared.
7652 (bus_config_parser_test): Call both process_test_valid_subdir and
7653 process_test_equiv_subdir.
7655 * bus/config-loader-libxml.c (bus_config_load): Take a parent
7656 argument and pass it along to the call to bus_config_parser_new.
7657 Also made a few small changes to allow this code to compile.
7659 * bus/config-loader-expat.c (bus_config_load): Take a parent
7660 argument and pass it along to the call to bus_config_parser_new.
7662 * bus/bus.c (bus_context_new): Load the config file
7663 with a NULL parent argument.
7665 2004-03-29 Michael Meeks <michael@ximian.com>
7667 * glib/dbus-gobject.c (introspect_properties): split
7668 out, fix mangled 'while' flow control.
7669 (introspect_signals): implement.
7670 (handle_introspect): update.
7672 2004-03-29 Michael Meeks <michael@ximian.com>
7674 * glib/dbus-gobject.c (set_object_property): split out /
7675 re-work, use the property type, and not the message type(!)
7676 (get_object_property): ditto.
7678 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7679 (dbus_gvalue_marshal): make this code re-usable, needed
7680 for signals too, also on both proxy and server side.
7681 Re-write for more efficiency / readability.
7683 2004-03-29 Michael Meeks <michael@ximian.com>
7685 * dbus/dbus-message.c
7686 (dbus_message_new_error_printf): impl.
7688 * dbus/dbus-connection.c
7689 (dbus_connection_unregister_object_path): fix warning.
7691 * configure.in: fix no-mono-installed situation.
7693 2004-03-27 Havoc Pennington <hp@redhat.com>
7695 Patch from Timo Teräs:
7697 * tools/dbus-send.c (main): if --print-reply, assume type is
7698 method call; support boolean type args
7700 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7701 bunch of memleak and logic bugs
7703 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
7705 * mono/Arguments.cs:
7706 * mono/Introspector.cs:
7708 * mono/InterfaceProxy.cs:
7710 * mono/ProxyBuilder.cs:
7712 Added InterfaceProxy class to avoid building proxies for every
7716 * dbus-message.c (dbus_message_append_args_valist)
7717 (dbus_message_iter_get_object_path)
7718 (dbus_message_iter_get_object_path_array)
7719 (dbus_message_iter_append_object_path)
7720 (dbus_message_iter_append_object_path_array):
7721 Added object_path iter functions to handle OBJECT_PATH arguments
7723 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
7725 First checkin of mono bindings.
7728 Build stuff for the bindings
7729 * dbus-sharp.pc.in: Added for pkgconfig
7731 2004-03-21 Havoc Pennington <hp@redhat.com>
7733 * test/test-service.c (main): remove debug spew
7735 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
7737 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7740 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7741 (dbus_message_iter_init_array_iterator)
7742 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7743 indicate whether the iterator is empty
7745 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7748 2004-03-19 Havoc Pennington <hp@redhat.com>
7750 * NEWS: 0.21 updates
7752 * configure.in: 0.21
7754 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7756 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7757 you don't need pyrex to make dist
7759 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7762 2004-03-18 Richard Hult <richard@imendio.com>
7764 * dbus/dbus-message.c (dbus_message_get_auto_activation)
7765 (dbus_message_set_auto_activation): Add doxygen docs.
7767 2004-03-16 Richard Hult <richard@imendio.com>
7769 * bus/activation.c: (bus_activation_service_created),
7770 (bus_activation_send_pending_auto_activation_messages),
7771 (bus_activation_activate_service):
7773 * bus/dispatch.c: (bus_dispatch),
7774 (check_nonexistent_service_auto_activation),
7775 (check_service_auto_activated),
7776 (check_segfault_service_auto_activation),
7777 (check_existent_service_auto_activation), (bus_dispatch_test):
7778 * bus/driver.c: (bus_driver_handle_activate_service):
7779 * bus/services.c: (bus_registry_acquire_service):
7780 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7781 (dbus_message_get_auto_activation):
7782 * dbus/dbus-message.h:
7783 * dbus/dbus-protocol.h: Implement auto-activation.
7785 * doc/dbus-specification.xml: Add auto-activation to the spec.
7787 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
7789 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7790 fix a bug with CUSTOM types.
7792 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7793 a unit test for this bug (used to fail).
7795 2004-03-12 Mikael Hallendal <micke@imendio.com>
7798 (babysitter_watch_callback): notify all pending activations waiting for
7799 the same exec that the activation failed.
7800 (bus_activation_activate_service): shortcut the activation if we
7801 already waiting for the same executable to start up.
7803 2004-03-12 Mikael Hallendal <micke@imendio.com>
7806 - Added service file reloading.
7807 Each service files directory is kept in an hash table in
7808 BusActivation and each BusActivationEntry knows what .service-file it
7809 was read from. So when you try to activate a service the bus will
7810 check if it's been updated, removed or if new .service-files has
7812 - Test code at the bottom for the service file reloading.
7813 * bus/test-main.c: (main):
7815 - added service reloading test.
7816 * dbus/dbus-sysdeps.c:
7817 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7819 2004-03-08 Michael Meeks <michael@ximian.com>
7821 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
7822 bail immediately if disconnected, to avoid busy loop.
7824 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7825 cleanup cut/paste/inefficiency.
7827 2004-03-01 David Zeuthen <david@fubar.dk>
7829 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7830 bug where args were used twice. This bug resulted in a segfault
7831 on a Debian/PPC system when starting the messagebus daemon. Include
7832 dbus-sysdeps.h for DBUS_VA_COPY
7834 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7836 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7837 appropriate va_copy implementation. From GLib
7839 2004-02-24 Joe Shaw <joe@ximian.com>
7841 * bus/services.c (bus_registry_acquire_service): We need to pass
7842 in the service name to dbus_set_error() to prevent a crash.
7844 2003-12-26 Anders Carlsson <andersca@gnome.org>
7846 * AUTHORS: Reveal my True identity.
7848 2003-12-17 Mikael Hallendal <micke@imendio.com>
7850 * dbus/dbus-message.c: (dbus_message_append_args_valist):
7851 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7853 2003-12-13 Mikael Hallendal <micke@imendio.com>
7855 * doc/TODO: Added not about better error check of configuration files.
7857 2003-12-02 Richard Hult <richard@imendio.com>
7859 * Update AFL version to 2.0 throughout the source files to reflect
7860 the update that was done a while ago.
7862 2003-12-02 Richard Hult <richard@imendio.com>
7864 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7865 wrote_dict_key to FALSE on the iter that the dict is appended to,
7866 just like when appending other types. Fixes a bug where a dict
7867 couldn't be put inside a dict.
7868 (dbus_message_iter_append_dict_key): Fix typo in warning message.
7869 (message_iter_test, _dbus_message_test): Add test case for dict
7872 2003-12-01 David Zeuthen <david@fubar.dk>
7874 * python/dbus.py: Add the actual message when calling the reciever
7875 of a signal such that parameters can be inspected. Add the method
7876 remove_signal_receiver
7878 2003-11-26 Mikael Hallendal <micke@imendio.com>
7882 * glib/*.[ch]: Made ref functions return the pointer
7884 2003-11-25 Zack Rusin <zack@kde.org>
7886 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7888 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
7891 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
7892 the Integrator and to better fit with the server,
7894 2003-11-24 Zack Rusin <zack@kde.org>
7896 * qt/connection.h, qt/connection.cpp: removing initDbus method since
7897 the integrator handles it now
7899 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7900 since QTimer wasn't really meant to be used the way DBusTimeout is
7902 2003-11-24 Zack Rusin <zack@kde.org>
7904 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
7905 Integrator class which integrates D-BUS with the Qt event loop,
7907 * qt/connection.h, qt/connection.cpp: Move all the code which
7908 was dealing with D-BUS integration to the Integrator class,
7909 and start using Integrator,
7911 2003-11-23 Zack Rusin <zack@kde.org>
7913 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
7916 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7917 switching namespaces to DBusQt, reworking the class,
7919 * Makefile.cvs: switching dependencies so that it matches KDE
7922 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
7925 2003-11-19 Havoc Pennington <hp@redhat.com>
7929 * configure.in: bump version to 0.20
7931 * configure.in (have_qt): add yet another place to look for qt
7932 (someone hand trolltech a .pc file...)
7934 2003-11-01 Havoc Pennington <hp@redhat.com>
7936 * doc/dbus-specification.xml: add state machine docs on the auth
7937 protocol; just a first draft, I'm sure it's wrong.
7939 2003-10-28 David Zeuthen <david@fubar.dk>
7941 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7942 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7944 2003-10-28 Havoc Pennington <hp@redhat.com>
7946 * dbus/dbus-message.c (get_next_field): delete unused function
7948 2003-10-28 Havoc Pennington <hp@redhat.com>
7950 * bus/expirelist.c (do_expiration_with_current_time): detect
7951 failure of the expire_func due to OOM
7953 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7955 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7956 NoReply error that's now created by the bus when the service exits
7958 2003-10-28 Havoc Pennington <hp@redhat.com>
7960 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7961 tests for set_path, set_interface, set_member, etc.
7963 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7965 * dbus/dbus-message.c (set_string_field): always just delete and
7966 re-append the field; accept NULL for deletion
7967 (re_align_fields_recurse): reimplement
7969 2003-10-26 Havoc Pennington <hp@redhat.com>
7971 * dbus/dbus-connection.c: fix docs to properly describe the
7972 disconnected message
7973 (_dbus_connection_notify_disconnected): remove this function;
7974 we can't synchronously add the disconnected message, we have to
7975 do it after we've queued any remaining real messages
7976 (_dbus_connection_get_dispatch_status_unlocked): queue the
7977 disconnect message only if the transport has finished queueing all
7978 its real messages and is disconnected.
7979 (dbus_connection_disconnect): update the dispatch status here
7981 2003-10-22 Havoc Pennington <hp@redhat.com>
7983 * bus/bus.c (bus_context_check_security_policy): fix up assertion
7985 * bus/connection.c (bus_transaction_send_from_driver): set the
7986 destination to the connection's base service
7988 2003-10-20 Havoc Pennington <hp@redhat.com>
7990 hmm, make check is currently not passing.
7992 * doc/dbus-specification.xml: add requirement that custom type
7993 names follow the same rules as interface names.
7995 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7996 duplication and allow 'c' to be 'custom'; dict is now 'm' for
7999 * doc/dbus-specification.xml: update type codes to match
8000 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8001 CUSTOM. Add type OBJECT_PATH to the spec.
8003 2003-10-17 Havoc Pennington <hp@redhat.com>
8005 * bus/driver.c (create_unique_client_name): use "." as separator
8006 in base service names instead of '-'
8008 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8009 byte at the end of the string
8011 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8012 optimization macros since string validation seems to be a slow
8015 * doc/dbus-specification.xml: restrict valid
8016 service/interface/member/error names. Add test suite code for the
8019 * dbus/dbus-string.c: limit service/interface/member/error names
8022 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8023 format arg to verbose spew
8025 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8026 memory, return instead of g_error
8028 * test/test-service.c (path_message_func): support emitting a
8031 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8032 activation bus type if DBUS_BUS_ACTIVATION was set; default to
8033 assuming the activation bus was the session bus so that services
8034 started manually will still register.
8035 (init_connections_unlocked): fix so that in OOM situation we get
8036 the same semantics when retrying the function
8038 * test/test-service.c (main): change to use path registration, to
8039 test those codepaths; register with DBUS_BUS_ACTIVATION rather
8040 than DBUS_BUS_SESSION
8042 2003-10-16 Havoc Pennington <hp@redhat.com>
8044 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8046 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8047 coverage of the tests
8048 (coverage-report.txt): don't move the .da and .bbg files around
8050 2003-10-16 Havoc Pennington <hp@redhat.com>
8052 * bus/bus.c (struct BusContext): remove struct field I didn't mean
8055 2003-10-16 Havoc Pennington <hp@redhat.com>
8057 * bus/connection.c (bus_pending_reply_expired): either cancel or
8059 (bus_connections_check_reply): use unlink, not remove_link, as we
8060 don't want to free the link; fixes double free mess
8062 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8063 where no reply was received
8065 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8068 * bus/signals.c (match_rule_matches): add special cases for the
8069 bus driver, so you can match on sender/destination for it.
8071 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8072 DBUS_PRINT_BACKTRACE is set
8074 * dbus/dbus-internals.c: add pid to assertion failure messages
8076 * dbus/dbus-connection.c: add message type code to the debug spew
8078 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8079 sender=foo not service=foo
8081 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8082 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
8083 DBUS_ACTIVATION_ADDRESS instead
8085 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
8086 DBUS_SYSTEM_BUS_ADDRESS if appropriate
8088 * bus/bus.c (bus_context_new): handle OOM copying bus type into
8091 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
8092 (dbus_message_iter_get_object_path_array): new function (half
8093 finished, disabled for the moment)
8095 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
8096 DBUS_MESSAGE_TYPE_ERROR
8098 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
8099 avoid redirecting stderr to /dev/null
8100 (babysit): close stdin if not doing the "exit_with_session" thing
8102 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
8103 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
8104 stdout/stdin, so things don't get confused
8106 * bus/system.conf.in: fix to allow replies, I modified .conf
8107 instead of .conf.in again.
8109 2003-10-14 David Zeuthen <david@fubar.dk>
8111 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
8112 argtype to arg_type when raising unknown arg type exception.
8113 Changed type list to reflect the changes in dbus-protocol.h so
8114 the bindings actually work.
8116 2003-10-14 Havoc Pennington <hp@redhat.com>
8118 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8119 to have a bug keeping it from outputting the .da files sometimes
8120 (string_get_string): don't append garbage nul bytes to the string.
8122 2003-10-15 Seth Nickell <seth@gnome.org>
8124 * python/Makefile.am:
8126 Include dbus_h_wrapper.h in the dist tarball.
8128 2003-10-14 Havoc Pennington <hp@redhat.com>
8130 * bus/bus.c (bus_context_check_security_policy): revamp this to
8131 work more sanely with new policy-based requested reply setup
8133 * bus/connection.c (bus_transaction_send_from_driver): set bus
8134 driver messages as no reply
8136 * bus/policy.c (bus_client_policy_check_can_receive): handle a
8137 requested_reply attribute on allow/deny rules
8139 * bus/system.conf: add <allow requested_reply="true"/>
8141 * bus/driver.c (bus_driver_handle_message): fix check for replies
8142 sent to the bus driver, which was backward. How did this ever work
8143 at all though? I think I'm missing something.
8145 * dbus/dbus-message.c (decode_header_data): require error and
8146 method return messages to have a reply serial field to be valid
8147 (_dbus_message_loader_queue_messages): break up this function;
8148 validate that reply serial and plain serial are nonzero;
8149 clean up the OOM/error handling.
8150 (get_uint_field): don't return -1 from this
8151 (dbus_message_create_header): fix signed/unsigned bug
8153 * bus/connection.c (bus_connections_expect_reply): save serial of
8154 the incoming message, not reply serial
8156 2003-10-14 Havoc Pennington <hp@redhat.com>
8158 * bus/connection.c: implement pending reply tracking using
8161 * bus/bus.c (bus_context_check_security_policy): verify that a
8162 reply is pending in order to allow a reply to be sent. Deny
8163 messages of unknown type.
8165 * bus/dbus-daemon-1.1.in: update to mention new resource limits
8167 * bus/bus.c (bus_context_get_max_replies_per_connection): new
8168 (bus_context_get_reply_timeout): new
8170 2003-10-13 Seth Nickell <seth@gnome.org>
8172 * python/Makefile.am:
8174 Pass "make distcheck": remove a couple files from DIST_FILES
8175 that weren't included in the final version.
8177 2003-10-12 Havoc Pennington <hp@pobox.com>
8179 Added test code that 1) starts an actual bus daemon and 2) uses
8180 DBusGProxy; fixed bugs that were revealed by the test. Lots
8181 more testing possible, but this is the basic framework.
8183 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8184 empty proxy lists from the proxy list hash
8186 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8187 couple of return_if_fail checks
8189 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8190 to allocate, so everything is cleared to NULL as it should be.
8192 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8193 source as data to dbus_connection_set_timeout_functions() as the
8194 timeout functions expected
8196 * test/glib/run-test.sh: add a little script to start up a message
8197 bus and run tests using it
8199 * tools/dbus-launch.1: updates
8201 * tools/dbus-launch.c (main): add --config-file option
8203 * tools/dbus-launch.c (main): remove confusing else if (runprog)
8204 that could never be reached.
8206 * dbus/dbus-message.c (dbus_message_new_method_return)
8207 (dbus_message_new_error, dbus_message_new_signal): set the
8208 no-reply-expected flag on all these. Redundant, but may
8209 as well be consistent.
8211 2003-10-11 Havoc Pennington <hp@pobox.com>
8213 * test/decode-gcov.c (function_solve_graph): make broken block
8214 graph a nonfatal error since it seems to be broken. Need to debug
8217 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8218 can't just check type > INVALID < LAST anymore
8220 * dbus/dbus-message.c (dbus_message_get_signature): new function
8221 (dbus_message_has_signature): new function
8222 (struct DBusMessage): add signature field (right now it isn't sent
8223 over the wire, just generated on the fly)
8224 (dbus_message_copy): copy the signature, and init strings to
8225 proper length to avoid some reallocs
8226 (dbus_message_iter_init_array_iterator): return void, since it
8228 (dbus_message_iter_init_dict_iterator): return void since it can't fail
8229 (_dbus_message_loader_queue_messages): add silly temporary hack to
8230 fill in message->signature on load
8232 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8233 characters, so they are relatively human-readable.
8235 2003-10-11 Havoc Pennington <hp@pobox.com>
8237 * dbus/dbus-message.c (_dbus_message_test): add more test
8238 coverage, but #if 0 for now since they uncover a bug
8239 not fixed yet; I think in re_align_field_recurse()
8240 (re_align_field_recurse): add FIXME about broken assertion
8242 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8244 * bus/connection.c: share a couple code bits with expirelist.c
8246 * bus/expirelist.h, bus/expirelist.c: implement a generic
8247 expire-items-after-N-seconds facility, was going to share between
8248 expiring connections and replies, decided not to use for expiring
8249 connections for now.
8251 * COPYING: include AFL 2.0 (still need to change all the file headers)
8253 2003-10-09 Havoc Pennington <hp@redhat.com>
8255 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8256 gcc 3.3. Not that we do anything about it yet.
8258 * bus/signals.c (bus_match_rule_parse): impose max length on the
8261 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8263 2003-10-09 Havoc Pennington <hp@redhat.com>
8265 Make matching rules theoretically work (add parser).
8267 * bus/bus.c (bus_context_check_security_policy): fix up to handle
8268 the case where destination is explicitly specified as bus driver
8269 and someone else is eavesdropping.
8271 * bus/policy.c (bus_client_policy_check_can_receive): fix up
8272 definition of eavesdropping and assertion
8274 * tools/dbus-send.c (main): use dbus_message_type_from_string
8276 * bus/signals.c (bus_match_rule_parse): implement
8278 * dbus/dbus-message.c (dbus_message_type_from_string): new
8280 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8282 2003-10-02 Havoc Pennington <hp@pobox.com>
8284 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8285 dbus_gproxy_oneway_call
8287 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
8288 (dbus_server_setup_with_g_main): fix to allow calling them more
8289 than once on the same args
8290 (dbus_bus_get_with_g_main): new function
8292 2003-10-02 Havoc Pennington <hp@redhat.com>
8294 * doc/dbus-tutorial.xml: write some stuff
8296 2003-09-29 Havoc Pennington <hp@pobox.com>
8298 * configure.in: split checks for Doxygen from XML docs, check for
8301 * doc/Makefile.am: XML-ify all the docs, and add a blank
8304 2003-09-29 Havoc Pennington <hp@pobox.com>
8306 * Merge dbus-object-names branch. To see the entire patch
8307 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8308 it's huuuuge though.
8309 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8311 2003-09-28 Havoc Pennington <hp@pobox.com>
8313 * HACKING: update to reflect new server
8315 2003-09-26 Seth Nickell <seth@gnome.org>
8318 * python/examples/example-signals.py:
8320 Start implementing some notions of signals. The API
8321 is really terrible, but they sort of work (with the
8322 exception of being able to filter by service, and to
8323 transmit signals *as* a particular service). Need to
8324 figure out how to make messages come from the service
8327 * python/dbus_bindings.pyx.in:
8329 Removed duplicate message_handler callbacks.
8331 2003-09-25 Havoc Pennington <hp@redhat.com>
8333 * bus/session.conf.in: fix my mess
8335 2003-09-25 Havoc Pennington <hp@pobox.com>
8337 * bus/session.conf.in: fix security policy, reported by Seth Nickell
8339 2003-09-25 Seth Nickell <seth@gnome.org>
8341 * python/examples/example-service.py:
8343 Johan notices complete wrong code in example-service, but
8344 completely wrong in a way that works exactly the same (!).
8345 Johan is confused, how could this possibly work? Example
8346 code fails to serve purpose of making things clear.
8349 2003-09-25 Mark McLoughlin <mark@skynet.ie>
8351 * doc/dbus-specification.sgml: don't require header fields
8352 to be 4-byte aligned and specify that fields should be
8353 distinguished from padding by the fact that zero is not
8356 * doc/TODO: remove re-alignment item and add item to doc
8357 the OBJECT_PATH type.
8359 * dbus/dbus-message.c:
8360 (HeaderField): rename the original member to value_offset
8361 and introduce a name_offset member to keep track of where
8362 the field actually begins.
8363 (adjust_field_offsets): remove.
8364 (append_int_field), (append_uint_field),
8365 (append_string_field): don't align the start of the header
8366 field to a 4-byte boundary.
8367 (get_next_field): impl finding the next marhsalled field
8368 after a given field.
8369 (re_align_field_recurse): impl re-aligning a number of
8370 already marshalled fields.
8371 (delete_field): impl deleting a field of any type and
8372 re-aligning any following fields.
8373 (delete_int_or_uint_field), (delete_string_field): remove.
8374 (set_int_field), (set_uint_field): no need to re-check
8375 that we have the correct type for the field.
8376 (set_string_field): ditto and impl re-aligning any
8378 (decode_header_data): update to take into account that
8379 the fields aren't 4-byte aligned any more and the new
8380 way to distinguish padding from header fields. Also,
8381 don't exit when there is too much header padding.
8382 (process_test_subdir): print the directory.
8383 (_dbus_message_test): add test to make sure a following
8384 field is re-aligned correctly after field deletion.
8386 * dbus/dbus-string.[ch]:
8387 (_dbus_string_insert_bytes): rename from insert_byte and
8388 allow the insert of multiple bytes.
8389 (_dbus_string_test): test inserting multiple bytes.
8391 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8392 warning note to docs about having to re-align any
8393 marshalled values following the string.
8395 * dbus/dbus-message-builder.c:
8396 (append_string_field), (_dbus_message_data_load):
8397 don't align the header field.
8399 * dbus/dbus-auth.c: (process_test_subdir): print the
8402 * test/break-loader.c: (randomly_add_one_byte): upd. for
8405 * test/data/invalid-messages/bad-header-field-alignment.message:
8408 * test/data/valid-messages/unknown-header-field.message: shove
8409 a dict in the unknown field.
8411 2003-09-25 Seth Nickell <seth@gnome.org>
8414 * python/dbus_bindings.pyx.in:
8416 Handle return values.
8418 * python/examples/example-client.py:
8419 * python/examples/example-service.py:
8421 Pass back return values from the service to the client.
8423 2003-09-24 Seth Nickell <seth@gnome.org>
8427 Connect Object methods (when you are sharing an object) up... pass
8428 in a list of methods to be shared. Sharing all the methods just
8429 worked out too weird. You can now create nice Services over the
8432 * python/dbus_bindings.pyx.in:
8434 Keep references to user_data tuples passed into C functions so
8435 Python doesn't garbage collect on us.
8437 Implement MethodReturn and Error subclasses of Message for creating
8438 DBusMessage's of those types.
8440 * python/examples/example-client.py:
8441 * python/examples/example-service.py:
8443 Simple example code showing both how create DBus services and objects,
8444 and how to use them.
8446 2003-09-23 Havoc Pennington <hp@pobox.com>
8448 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8450 2003-09-23 Havoc Pennington <hp@redhat.com>
8452 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8453 (dbus_gproxy_disconnect_signal): implement
8454 (dbus_gproxy_manager_remove_signal_match): implement
8455 (dbus_gproxy_manager_add_signal_match): implement
8456 (dbus_gproxy_oneway_call): implement
8458 2003-09-23 Havoc Pennington <hp@pobox.com>
8460 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8461 subclass. This means dropping the transparent thread safety of the
8462 proxy; you now need a separate proxy per-thread, or your own
8463 locking on the proxy. Probably right anyway.
8464 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8466 2003-09-22 Havoc Pennington <hp@redhat.com>
8468 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8470 2003-09-21 Seth Nickell <seth@gnome.org>
8472 First checkin of the Python bindings.
8474 * python/.cvsignore:
8475 * python/Makefile.am:
8476 * python/dbus_bindings.pyx.in:
8477 * python/dbus_h_wrapper.h:
8479 Pieces for Pyrex to operate on, building a dbus_bindings.so
8480 python module for low-level access to the DBus APIs.
8484 High-level Python module for accessing DBus objects.
8489 Build stuff for the python bindings.
8493 Extra macro needed for finding the Python C header files.
8495 2003-09-21 Havoc Pennington <hp@pobox.com>
8497 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8498 implementing the proxy manager, didn't get very far.
8500 * dbus/dbus-bus.c (dbus_bus_add_match): new
8501 (dbus_bus_remove_match): new
8503 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8504 path_name argument; adjust the other not-yet-implemented
8505 gproxy constructors to be what I think they should be.
8507 2003-09-21 Havoc Pennington <hp@pobox.com>
8509 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8510 by default for message bus connections.
8512 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8513 exit_on_disconnect flag is set and we process the disconnected
8515 (dbus_connection_set_exit_on_disconnect): new function
8517 2003-09-21 Havoc Pennington <hp@pobox.com>
8519 Get matching rules mostly working in the bus; only actually
8520 parsing the rule text remains. However, the client side of
8521 "signal connections" hasn't been started, this patch is only the
8524 * dbus/dispatch.c: fix for the matching rules changes
8526 * bus/driver.c (bus_driver_handle_remove_match)
8527 (bus_driver_handle_add_match): send an ack reply from these
8530 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8531 arguments, reported by Seth Nickell
8533 * bus/config-parser.c (append_rule_from_element): support
8534 eavesdrop=true|false attribute on policies so match rules
8535 can be prevented from snooping on the system bus.
8537 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8538 and "destination" in attribute names; fix some docs bugs;
8539 add eavesdrop=true|false attribute
8541 * bus/driver.c (bus_driver_handle_add_match)
8542 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8545 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8546 rid of broadcast service concept, signals are just always broadcast
8548 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8549 mostly implement matching rules stuff (currently only exposed as signal
8552 2003-09-21 Mark McLoughlin <mark@skynet.ie>
8554 * doc/dbus-specification.sgml: Change the header field name
8555 to be an enum and update the rest of the spec to reference
8556 the fields using the conventinal name.
8558 * dbus/dbus-protocol.h: update to reflect the spec.
8560 * doc/TODO: add item to remove the 4 byte alignment requirement.
8562 * dbus/dbus-message.c: Remove the code to generalise the
8563 header/body length and serial number header fields as named
8564 header fields so we can reference field names using the
8566 (append_int_field), (append_uint_field), (append_string_field):
8567 Append the field name as a byte rather than four chars.
8568 (delete_int_or_uint_field), (delete_string_field): reflect the
8569 fact that the field name and typecode now occupy 4 bytes instead
8571 (decode_string_field), (decode_header_data): update to reflect
8572 protocol changes and move the field specific encoding from
8573 decode_string_field() back into decode_header_data().
8575 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8576 Add utility to aid debugging.
8578 * dbus/dbus-message-builder.c:
8579 (append_string_field), (_dbus_message_data_load): Update to
8580 reflect protocol changes; Change the FIELD_NAME directive
8581 to HEADER_FIELD and allow it to take the field's conventional
8582 name rather than the actual value.
8584 * test/data/*/*.message: Update to use HEADER_FIELD instead
8585 of FIELD_NAME; Always align the header on an 8 byte boundary
8586 *before* updating the header length.
8588 2003-09-15 Havoc Pennington <hp@pobox.com>
8590 * dbus/dbus-pending-call.c: add the get/set object data
8591 boilerplate as for DBusConnection, etc. Use generic object data
8592 for the notify callback.
8594 * glib/dbus-gparser.c (parse_node): parse child nodes
8596 * tools/dbus-viewer.c: more hacking on the dbus-viewer
8598 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8599 contain functions shared between the convenience lib and the
8602 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8603 -export-symbols-regex to the GLib library
8605 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8606 fix the locking in here, and add a default handler for
8607 Introspect() that just returns sub-nodes.
8609 2003-09-14 Havoc Pennington <hp@pobox.com>
8611 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8612 rather than gfoo consistent
8614 * glib/dbus-gproxy.h: delete for now, move contents to
8615 dbus-glib.h, because the include files don't work right since we
8616 aren't in the dbus/ subdir.
8618 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8619 (dbus_gproxy_end_call): finish
8620 (dbus_gproxy_begin_call): finish
8622 * glib/dbus-gmain.c (dbus_set_g_error): new
8624 * glib/dbus-gobject.c (handle_introspect): include information
8625 about child nodes in the introspection
8627 * dbus/dbus-connection.c (dbus_connection_list_registered): new
8628 function to help in implementation of introspection
8630 * dbus/dbus-object-tree.c
8631 (_dbus_object_tree_list_registered_and_unlock): new function
8633 2003-09-12 Havoc Pennington <hp@pobox.com>
8635 * glib/dbus-gidl.h: add common base class for all the foo_info
8638 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8641 * test/Makefile.am: try test srcdir -ef . in addition to test
8642 srcdir = ., one of them should work (yeah lame)
8644 * glib/Makefile.am: build the "idl" parser stuff as a convenience
8647 * glib/dbus-gparser.h: make description_load routines return
8648 NodeInfo* not Parser*
8650 * Makefile.am (SUBDIRS): build test dir after all library dirs
8652 * configure.in: add GTK+ detection
8654 2003-09-07 Havoc Pennington <hp@pobox.com>
8656 * Make Doxygen contented.
8658 2003-09-07 Havoc Pennington <hp@pobox.com>
8660 * doc/dbus-specification.sgml: more updates
8662 2003-09-06 Havoc Pennington <hp@pobox.com>
8664 * doc/dbus-specification.sgml: partial updates
8666 * bus/dbus-daemon-1.1.in: fix the config file docs for the
8667 zillionth time; hopefully I edited the right file this time.
8669 * bus/config-parser.c (append_rule_from_element): support
8670 send_type, send_path, receive_type, receive_path
8672 * bus/policy.c: add message type and path to the list of things
8673 that can be "firewalled"
8675 2003-09-06 Havoc Pennington <hp@pobox.com>
8677 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8678 (dbus_connection_register_object_path): make this not handle
8679 messages to paths below the given path
8681 2003-09-03 Havoc Pennington <hp@pobox.com>
8683 * test/glib/Makefile.am: add this with random glib-linked test
8686 * glib/Makefile.am: remove the random test programs from here,
8687 leave only the unit tests
8689 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
8690 uscore/javacaps conversion, and fix
8691 (get_object_property, set_object_property): change to .NET
8692 convention for mapping props to methods, set_FooBar/get_FooBar,
8693 since one language has such a convention we may as well copy it.
8694 Plus real methods in either getFooBar or get_foo_bar style won't
8695 collide with this convention.
8697 2003-09-01 Havoc Pennington <hp@pobox.com>
8699 * glib/dbus-gparser.c: implement
8701 * glib/dbus-gobject.c: start implementing skeletons support
8703 * configure.in: when disabling checks/assert, also define
8704 G_DISABLE_ASSERT and G_DISABLE_CHECKS
8706 2003-09-01 Havoc Pennington <hp@pobox.com>
8708 * glib/Makefile.am: rearrange a bunch of files and get "make
8709 check" framework set up
8711 2003-08-31 Havoc Pennington <hp@pobox.com>
8713 * fix build with --disable-tests
8715 2003-08-30 Havoc Pennington <hp@pobox.com>
8717 * dbus/dbus-connection.c: purge DBusMessageHandler
8719 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
8720 use callbacks everywhere
8722 2003-08-30 Havoc Pennington <hp@pobox.com>
8724 * test/data/valid-config-files/system.d/test.conf: change to
8725 root for the user so warnings don't get printed
8727 * dbus/dbus-message.c: add dbus_message_get_path,
8728 dbus_message_set_path
8730 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8731 dispatching to a path
8733 * dbus/dbus-string.c (_dbus_string_validate_path): add
8735 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8736 (_dbus_marshal_object_path): implement
8738 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
8739 to contain the path to the target object
8740 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8741 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8743 2003-08-30 Havoc Pennington <hp@pobox.com>
8745 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8747 2003-08-29 Havoc Pennington <hp@pobox.com>
8749 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8751 (struct DBusObjectSubtree): shrink this
8752 a lot, since we may have a lot of them
8753 (_dbus_object_tree_free_all_unlocked): implement
8754 (_dbus_object_tree_dispatch_and_unlock): implement
8756 2003-08-29 Havoc Pennington <hp@pobox.com>
8758 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8760 2003-08-28 Havoc Pennington <hp@pobox.com>
8764 * dbus/dbus-connection.c: port to no ObjectID, create a
8765 DBusObjectTree, rename ObjectTree to ObjectPath in public API
8767 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
8768 everything except UnregisterFunction and MessageFunction
8770 * dbus/dbus-marshal.c: port away from DBusObjectID,
8771 add DBUS_TYPE_OBJECT_PATH
8773 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
8774 dbus/dbus-objectid.[hc]: remove these, we are moving to
8775 path-based object IDs
8777 2003-08-25 Havoc Pennington <hp@pobox.com>
8779 Just noticed that dbus_message_test is hosed, I wonder when I
8780 broke that. I thought make check was passing earlier...
8782 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
8783 container tree, will replace most of dbus-object-registry
8785 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8788 2003-08-19 Havoc Pennington <hp@pobox.com>
8790 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8791 (dbus_message_is_error): fix this function
8793 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8796 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8797 reflect clarified man page
8798 (bus_client_policy_check_can_send): ditto
8800 * bus/session.conf.in: fixup
8802 * bus/system.conf.in: fixup
8804 2003-08-18 Havoc Pennington <hp@redhat.com>
8806 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8808 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8809 dumb bug created earlier (wrong order of args to
8810 decode_header_data())
8812 * tools/dbus-send.c: port
8814 * tools/dbus-print-message.c (print_message): port
8816 * test/data/*messages: port all messages over
8818 * dbus/dbus-message-builder.c: support including
8821 * bus/driver.c: port over
8823 * bus/dispatch.c: port over to new stuff
8825 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8826 rename disconnect signal to "Disconnected"
8828 2003-08-17 Havoc Pennington <hp@pobox.com>
8830 This doesn't compile yet, but syncing up so I can hack on it from
8831 work. What are branches for if not broken code? ;-)
8833 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8834 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8835 DBUS_HEADER_FIELD_ERROR_NAME
8837 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8838 for the interface+member pairs
8839 (string_hash): change to use g_str_hash algorithm
8840 (find_direct_function, find_string_function): refactor these to
8843 * dbus/dbus-message.c: port all of this over to support
8844 interface/member fields instead of name field
8846 * dbus/dbus-object-registry.c: port over
8848 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8849 from _dbus_string_validate_name
8851 * bus/dbus-daemon-1.1: change file format for the
8852 <deny>/<allow> stuff to match new message naming scheme
8854 * bus/policy.c: port over
8856 * bus/config-parser.c: parse new format
8858 2003-08-16 Havoc Pennington <hp@pobox.com>
8860 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8863 * glib/dbus-gproxy.c: some hacking
8865 2003-08-15 Havoc Pennington <hp@redhat.com>
8867 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8869 * dbus/dbus-connection.c
8870 (dbus_connection_send_with_reply_and_block): factor out internals;
8871 change to convert any error replies to DBusError instead of
8872 returning them as a message
8874 2003-08-15 Havoc Pennington <hp@pobox.com>
8876 * dbus/dbus-connection.c,
8877 dbus/dbus-pending-call.c: Finish the pending call stuff
8879 2003-08-14 Havoc Pennington <hp@redhat.com>
8881 * dbus/dbus-pending-call.c: start on new object that will replace
8882 DBusMessageHandler and ReplyHandlerData for tracking outstanding
8885 * dbus/dbus-gproxy.c: start on proxy object used to communicate
8886 with remote interfaces
8888 * dbus/dbus-gidl.c: do the boring boilerplate in here
8890 2003-08-12 Havoc Pennington <hp@pobox.com>
8892 * bus/dispatch.c (bus_dispatch): make this return proper
8893 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8895 * dbus/dbus-errors.c (dbus_set_error): use
8896 _dbus_string_append_printf_valist
8898 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8899 (_dbus_string_append_printf): new
8901 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8904 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8905 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8906 message is unhandled.
8908 2003-08-11 Havoc Pennington <hp@pobox.com>
8910 * bus/test.c (client_disconnect_handler): change to return
8911 HANDLED (would have been REMOVE_MESSAGE)
8913 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8914 HANDLED/NOT_YET_HANDLED instead of
8915 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
8918 2003-08-10 Havoc Pennington <hp@pobox.com>
8920 * tools/dbus-send.c (main): add --type argument, for now
8921 supporting only method_call and signal types.
8923 * tools/dbus-print-message.c: print message type
8925 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8926 init connection->objects
8928 * doc/dbus-specification.sgml: fix sgml
8930 * bus/*.c: port over to object-instance API changes
8932 * test/test-service.c: ditto
8934 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8935 name, we will have to fix up the rest of the code to also handle
8937 (dbus_message_new): generic message-creation call
8938 (set_string_field): allow appending name field
8940 2003-08-06 Havoc Pennington <hp@pobox.com>
8942 * dbus/dbus-object-registry.c: implement signal connection
8945 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8947 * dbus/dbus-internals.c (_dbus_memdup): new function
8949 2003-08-02 Havoc Pennington <hp@pobox.com>
8951 * dbus/dbus-message.c (dbus_message_get_no_reply)
8952 (dbus_message_set_no_reply): add these and remove
8953 set_is_error/get_is_error
8955 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
8956 remove the ERROR flag, since there's now an ERROR type
8958 2003-08-01 Havoc Pennington <hp@pobox.com>
8960 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8963 * dbus/dbus-message.c (dbus_message_get_type): new function
8965 * doc/dbus-specification.sgml: add "type" byte to messages
8967 2003-08-01 Havoc Pennington <hp@pobox.com>
8969 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8970 a message type enum to distinguish kinds of message
8971 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
8972 that need not be replied to
8974 2003-08-01 Havoc Pennington <hp@pobox.com>
8976 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8977 (unpack_8_octets): fix no-64-bit-int bug
8979 * dbus/dbus-object-registry.c (validate_id): validate the
8980 connection ID bits, not just the instance ID.
8982 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8983 the connection-global 33 bits of the object ID
8985 * dbus/dbus-object-registry.c (info_from_entry): fill in
8986 object ID in the new way
8988 * dbus/dbus-objectid.h: rather than high/low bits, specifically
8989 define server/client/instance bits.
8991 2003-07-30 Havoc Pennington <hp@pobox.com>
8993 * dbus/dbus-connection.c (dbus_connection_register_object): fix
8996 2003-07-13 Havoc Pennington <hp@pobox.com>
8998 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8999 fields to DBusObjectVTable and DBusObjectInfo
9001 2003-07-12 Havoc Pennington <hp@pobox.com>
9003 * dbus/dbus-object-registry.c: implement unit test,
9004 fix bugs discovered in process
9006 * dbus/dbus-connection.c: remove handler_table and
9007 register_handler(), add DBusObjectRegistry usage
9009 * dbus/dbus-objectid.c (dbus_object_id_is_null)
9010 (dbus_object_id_set_null): new functions
9012 2003-07-08 Havoc Pennington <hp@pobox.com>
9014 * dbus/dbus-object.c: implement some of this
9016 * dbus/dbus-object-registry.c
9017 (_dbus_object_registry_add_and_unlock): fill in the object_id out
9019 (_dbus_object_registry_new): handle OOM
9021 2003-07-08 Havoc Pennington <hp@pobox.com>
9023 * dbus/dbus-object.h: sketch out an API for registering objects
9024 with a connection, that allows us to use as little as 24 bytes
9025 per object and lets application code represent an object in
9026 any conceivable way.
9028 * dbus/dbus-object-registry.c: implement the hard bits of the
9029 DBusConnection aspect of object API. Not yet wired up.
9031 2003-07-06 Havoc Pennington <hp@pobox.com>
9033 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9034 (_dbus_marshal_object_id): new
9035 (_dbus_demarshal_object_id): new
9036 (_dbus_marshal_get_arg_end_pos): support object ID type, and
9037 consolidate identical switch cases. Don't conditionalize handling
9038 of DBUS_TYPE_UINT64, need to handle the type always.
9039 (_dbus_marshal_validate_arg): consolidate identical cases, and
9040 handle DBUS_TYPE_OBJECT_ID
9042 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9044 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9046 2003-09-28 Havoc Pennington <hp@pobox.com>
9050 2003-09-28 Havoc Pennington <hp@pobox.com>
9052 * doc/Makefile.am (dbus-specification.html): testing a funky hack
9053 to work with Debian db2html
9055 2003-09-28 Havoc Pennington <hp@pobox.com>
9057 * configure.in: 0.13
9059 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9060 stylesheet-images for benefit of Debian
9062 Change back to using filesystem-linked sockets for the system
9063 bus, so only root can create the default system bus address.
9065 * bus/system.conf.in: change to use
9066 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9068 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9071 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9072 here, and AC_DEFINE DBUS_SYSTEM_PATH
9074 2003-08-09 Anders Carlsson <andersca@codefactory.se>
9077 * doc/busconfig.dtd:
9080 2003-08-09 Anders Carlsson <andersca@codefactory.se>
9082 * doc/dbus-specification.sgml:
9083 Add activation reply values.
9085 2003-08-05 Havoc Pennington <hp@redhat.com>
9087 * configure.in: 0.12
9089 2003-08-05 Anders Carlsson <andersca@codefactory.se>
9091 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
9092 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
9093 (add_watch), (remove_watch), (create_source):
9094 Refcount fds, fixes some reentrancy issues.
9096 2003-07-30 Havoc Pennington <hp@redhat.com>
9098 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
9099 bus address to be abstract if we have abstract sockets
9103 2003-07-28 Havoc Pennington <hp@redhat.com>
9105 * bus/messagebus.in: fix to avoid processname/servicename
9106 confusion, from Michael Kearey
9107 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
9109 2003-07-23 Havoc Pennington <hp@pobox.com>
9111 * dbus/dbus-message.c (dbus_message_iter_get_named):
9112 fix from Andy Hanton to remove broken "+1"
9114 2003-07-16 Havoc Pennington <hp@pobox.com>
9116 * tools/dbus-launch.c (babysit): close stdout/stderr in the
9117 babysitter process, as suggested by Thomas Leonard, so
9118 an "eval `dbus-launch --exit-with-session`" will actually
9121 2003-07-16 Havoc Pennington <hp@pobox.com>
9123 * configure.in: print out EXPANDED_* variables in the summary at
9124 the end; clean up the code that computes EXPANDED_ variables and
9125 get the ones using exec_prefix right. Should make things work
9126 when you build without --prefix
9128 2003-06-29 Havoc Pennington <hp@pobox.com>
9130 * mono/Test.cs (class Test): fire up a main loop and run it
9132 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9133 done once, the app has to do it
9135 2003-06-26 Havoc Pennington <hp@pobox.com>
9137 * mono/Connection.cs: set up connection with the glib main loop
9139 2003-07-01 Havoc Pennington <hp@redhat.com>
9141 * doc/dbus-specification.sgml: clarify the format of a type code,
9142 change suggested by Jim Blandy
9144 2003-06-29 Miloslav Trmac <mitr@volny.cz>
9147 * tools/Makefile.am: Don't assume srcdir == builddir.
9149 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9150 the allocated block.
9151 (_dbus_memory_test): New function.
9152 * dbus/dbus-test.h: Add _dbus_memory_test ().
9153 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9155 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9157 (dbus_message_new): Remove obsolete @todo.
9159 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9160 (_dbus_marshal_set_uint64): Fix comment.
9162 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9163 hardcode FIELD_REPLY_SERIAL.
9165 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9166 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9168 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9169 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9171 2003-06-24 Havoc Pennington <hp@pobox.com>
9173 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9175 2003-06-23 Anders Carlsson <andersca@codefactory.se>
9181 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9182 * gcj/org/.cvsignore:
9183 * gcj/org/Makefile.am:
9184 * gcj/org/freedesktop/.cvsignore:
9185 * gcj/org/freedesktop/Makefile.am:
9186 * gcj/org/freedesktop/dbus/.cvsignore:
9187 * gcj/org/freedesktop/dbus/Makefile.am:
9188 * gcj/org/freedesktop/dbus/Message.java: (Message),
9190 * gcj/org/freedesktop/dbus/natMessage.cc:
9191 Fix the build system.
9193 2003-06-22 Havoc Pennington <hp@pobox.com>
9195 * mono/Connection.cs: add more bindings
9197 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9200 2003-06-22 Havoc Pennington <hp@pobox.com>
9202 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9203 Start wrapping more stuff.
9205 2003-06-22 Havoc Pennington <hp@pobox.com>
9207 * mono/Message.cs: implement Message.Wrap() that ensures we only
9208 have a single C# wrapper per DBusMessage, assuming it works which
9209 it probably doesn't.
9211 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9212 (dbus_message_free_data_slot): new
9213 (dbus_message_set_data): new
9214 (dbus_message_get_data): new
9216 2003-06-22 Havoc Pennington <hp@pobox.com>
9218 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9219 (_dbus_data_slot_allocator_alloc): rework these to keep a
9220 reference count on each slot and automatically manage a global
9221 slot ID variable passed in by address
9223 * bus/bus.c: convert to new dataslot API
9225 * dbus/dbus-bus.c: convert to new dataslot API
9227 * dbus/dbus-connection.c: convert to new dataslot API
9229 * dbus/dbus-server.c: convert to new dataslot API
9231 * glib/dbus-gmain.c: ditto
9235 * bus/connection.c: ditto
9237 2003-06-22 Anders Carlsson <andersca@codefactory.se>
9239 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9240 after the gcj checks so that the correct configuration tags
9241 will be added to libtool.
9243 * dbus-glib-1.pc.in: No need to specify any includes since
9244 dbus-1.pc.in has those.
9246 2003-06-22 Havoc Pennington <hp@pobox.com>
9248 * mono/*, gcj/*, configure.in, Makefile.am:
9249 Check in makefiles and subdirs for mono and gcj bindings.
9250 Neither binding actually exists, just trying to get through
9251 all the build and other boring bits.
9253 2003-06-21 Philip Blundell <philb@gnu.org>
9255 * tools/dbus-monitor.1: Updated.
9257 * tools/dbus-send.1: Likewise.
9259 2003-06-20 Anders Carlsson <andersca@codefactory.se>
9261 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9262 for hangup and error after checking read so we won't discard
9263 pending data if both hangup and read are set.
9265 2003-06-19 Philip Blundell <philb@gnu.org>
9267 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9269 * tools/dbus-send.c: Accept both --system and --session.
9271 * tools/dbus-monitor.c: Same here.
9273 2003-06-19 Anders Carlsson <andersca@codefactory.se>
9275 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9276 from C++ (Patch by Miloslav Trmac).
9278 2003-06-15 Joe Shaw <joe@assbarn.com>
9280 * configure.in: Check for socklen_t.
9282 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9284 * test/test-segfault.c: Add #include <sys/time.h>
9286 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9287 dbus-launch needs it.
9289 2003-06-09 Havoc Pennington <hp@redhat.com>
9291 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9292 SUN_LEN, it breaks abstract socket usage
9294 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9297 2003-06-04 Havoc Pennington <hp@pobox.com>
9299 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9300 using unix:abstract=/foo, and when listening in a tmpdir
9301 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9303 * dbus/dbus-transport.c (_dbus_transport_open): support
9306 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9307 support abstract sockets
9309 * dbus/dbus-transport-unix.c
9310 (_dbus_transport_new_for_domain_socket): support abstract sockets
9312 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9313 toggle as an argument, implement abstract namespace support
9314 (_dbus_listen_unix_socket): ditto
9316 * configure.in: add --enable-abstract-sockets and implement
9317 a configure check for autodetection of the right value.
9319 2003-06-01 Havoc Pennington <hp@pobox.com>
9321 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9322 in /tmp (though on Linux this will end up being useless,
9323 when we add abstract namespace support)
9325 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9328 2003-05-28 Colin Walters <walters@verbum.org>
9330 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9332 2003-05-18 Anders Carlsson <andersca@codefactory.se>
9334 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9336 2003-05-17 Colin Walters <walters@gnu.org>
9338 * tools/dbus-send.c: Don't exit with an error code if --help was
9339 passed. Default to using the session bus instead of the system
9342 * tools/dbus-launch.c: Ditto.
9344 * tools/dbus-monitor.c: Ditto.
9346 * tools/dbus-send.1: Update with new arguments.
9348 * tools/dbus-launch.c: Emit code to export variables. New
9349 arguments -s and -c to specify shell syntax, and a bit of code to
9350 autodetect syntax. Also, allow specifying a program to run.
9352 * tools/dbus-launch.1: Update with new arguments.
9354 * tools/dbus-send.1: Ditto.
9356 * tools/dbus-monitor.1: Ditto.
9358 2003-05-17 Havoc Pennington <hp@pobox.com>
9360 * bus/config-parser.c (merge_included): merge in policies from
9361 child configuration file.
9363 * bus/policy.c (bus_policy_merge): function to merge two policies
9366 2003-05-16 Havoc Pennington <hp@redhat.com>
9368 * dbus/dbus-connection.c: disable verbose lock spew
9370 * tools/dbus-send.c: add --print-reply command line option
9372 * tools/dbus-print-message.h (print_message): new util function
9373 shared by dbus-send and dbus-monitor
9375 * tools/dbus-monitor.c (handler_func): exit on disconnect
9377 * dbus/dbus-transport-unix.c (do_reading): if the transport is
9378 disconnected, don't try to use the read_watch
9380 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9381 so we can find this bug more easily
9383 2003-05-16 Havoc Pennington <hp@redhat.com>
9385 * bus/policy.c (free_rule_list_func): avoid a crash when passed
9386 NULL as DBusHashTable is annoyingly likely to do.
9388 2003-05-16 Colin Walters <walters@verbum.org>
9390 * tools/dbus-monitor.c: Add --session argument and usage()
9393 * tools/dbus-monitor.1: Update with new --session arg.
9395 * bus/Makefile.am (install-data-hook): Create
9396 $(libdir)/dbus-1.0/services so that the session bus is happy.
9398 2003-05-15 Havoc Pennington <hp@redhat.com>
9400 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9401 on non-x86. ifdef's are evil.
9403 2003-05-15 Havoc Pennington <hp@redhat.com>
9405 * configure.in: 0.11
9409 * bus/Makefile.am (initddir): apparently we are supposed to put
9410 init scripts in /etc/rc.d/init.d not /etc/init.d
9412 * bus/Makefile.am: remove the "you must --enable-tests to make
9413 check" as it broke distcheck
9415 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9417 2003-05-13 James Willcox <jwillcox@gnome.org>
9420 * bus/activation.c: (bus_activation_service_created),
9421 (bus_activation_activate_service):
9422 * bus/driver.c: (bus_driver_send_service_deleted),
9423 (bus_driver_send_service_created), (bus_driver_send_service_lost),
9424 (bus_driver_send_service_acquired),
9425 (bus_driver_send_welcome_message),
9426 (bus_driver_handle_list_services):
9427 * bus/session.conf.in:
9428 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9429 (dbus_bus_service_exists), (dbus_bus_activate_service):
9432 Add some convenience API which lets you activate a service, and did a
9433 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9434 and dbus_message_get_args()
9436 2003-05-11 Havoc Pennington <hp@pobox.com>
9438 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9439 calling _dbus_marshal_validate_arg() for every byte in a byte
9442 * dbus/dbus-message-handler.c: use atomic reference counting to
9443 reduce number of locks slightly; the global lock in here sucks
9445 * dbus/dbus-connection.c
9446 (_dbus_connection_update_dispatch_status_and_unlock): variant of
9447 update_dispatch_status that can be called with lock held; then use
9448 in a couple places to reduce locking/unlocking
9449 (dbus_connection_send): hold the lock over the whole function
9450 instead of acquiring it twice.
9452 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9454 * bus/connection.c (bus_connections_setup_connection): fix access
9455 to already-freed memory.
9457 * dbus/dbus-connection.c: keep a little cache of linked list
9458 nodes, to avoid using the global linked list alloc lock in the
9459 normal send-message case. Instead we just use the connection lock
9460 that we already have to take.
9462 * dbus/dbus-list.c (_dbus_list_find_last): new function
9464 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9465 change to use a struct for the atomic type; fix docs,
9466 they return value before increment, not after increment.
9468 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9469 (_dbus_string_append_8_aligned): new functions to try to
9470 microoptimize this operation.
9471 (reallocate_for_length): break this out of set_length(), to
9472 improve profile info, and also so we can consider inlining the
9475 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9476 strings with some preallocation, cuts down on our calls to realloc
9477 a fair bit. Though if we can get the "move entire string to empty
9478 string" optimization below to kick in here, it would be better.
9480 * dbus/dbus-string.c (_dbus_string_move): just call
9481 _dbus_string_move_len
9482 (_dbus_string_move_len): add a special case for moving
9483 an entire string into an empty string; we can just
9484 swap the string data instead of doing any reallocs.
9485 (_dbus_string_init_preallocated): new function
9487 2003-05-11 Havoc Pennington <hp@pobox.com>
9489 Write a "test-profile" that does echo client-server with threads;
9490 profile reveals lock contention, memcpy/realloc of buffers, and
9491 UTF-8 validation as hot spots. 20% of lock contention eliminated
9492 with dbus_atomic_inc/dec implementation on x86. Much remaining
9493 contention is global mempool locks for GList and DBusList.
9495 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9498 * dbus/dbus-connection.c (struct DBusConnection): use
9499 dbus_atomic_t for the reference count
9501 * dbus/dbus-message.c (struct DBusMessage): declare
9502 dbus_atomic_t values as volatile
9504 * configure.in: code to detect ability to use atomic integer
9505 operations in assembly, from GLib patch
9507 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9508 time, tired of it being wrong in threads and forked processes
9510 * glib/test-profile.c: a little program to bounce messages back
9511 and forth between threads and eat CPU
9513 * dbus/dbus-connection.c: add debug spew macros for debugging
9514 thread locks; include config.h at top; fix deadlock in
9515 dbus_connection_flush()
9517 2003-05-08 Havoc Pennington <hp@pobox.com>
9519 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9520 data from getting written, and there wasn't a good reason to
9523 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9524 dbus_verbose lines in test coverage
9525 (main): add list of functions sorted by # of untested blocks
9526 to the coverage report
9528 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9530 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9532 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9533 extend test coverage
9535 * test/data/auth/cancel.auth-script: test canceling an
9538 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9539 aren't used. in CVS history if we end up needing them.
9541 2003-05-04 Havoc Pennington <hp@pobox.com>
9543 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9546 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9547 function, which assumed length was in # of strings, not bytes
9549 * dbus/dbus-message.c (_dbus_message_test): add tests for some
9552 * dbus/dbus-connection.c
9553 (_dbus_connection_queue_received_message): disable function for
9554 now, we are only using it in test mode
9556 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9557 remove a mistaken FIXME
9559 2003-05-04 Havoc Pennington <hp@pobox.com>
9561 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9562 unlock mutex on successful return, patch from Anders Gustafsson
9564 2003-05-04 Havoc Pennington <hp@pobox.com>
9566 * dbus-glib-1.pc.in (Requires): fix dependencies, from
9569 2003-05-04 Havoc Pennington <hp@pobox.com>
9571 * tools/dbus-launch.c: implement
9573 * bus/main.c (main), bus/bus.c (bus_context_new):
9574 implement --print-pid and --fork
9576 2003-05-03 Havoc Pennington <hp@redhat.com>
9578 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9579 the address had no value, and add to test suite. Fix and
9580 regression test from Miloslav Trmac
9582 2003-05-03 Havoc Pennington <hp@pobox.com>
9584 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9585 watch is invalid when handled
9587 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9588 dbus-launch utility to launch the bus from a shell script. Didn't
9589 actually implement dbus-launch yet, it's just a placeholder still.
9591 2003-05-03 Havoc Pennington <hp@pobox.com>
9593 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9594 daemon; also documents daemon config file, so replaces
9595 doc/config-file.txt. Corrected some stuff from config-file.txt in
9596 the process of moving it.
9598 2003-05-03 Havoc Pennington <hp@pobox.com>
9600 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9603 2003-05-03 Colin Walters <walters@verbum.org>
9605 * dbus/dbus-sysdeps.c (fill_user_info): Test against
9606 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9608 * Makefile.am: Update to use new .pc versioning scheme.
9610 2003-05-02 Havoc Pennington <hp@redhat.com>
9612 * bus/system.conf.in: allow send/receive to/from message bus
9615 2003-04-30 Havoc Pennington <hp@redhat.com>
9617 * configure.in: print a note when building with unit tests and
9620 2003-04-30 Havoc Pennington <hp@redhat.com>
9622 * Makefile.am: add a check-local that complains if you didn't
9623 configure with --enable-tests
9625 2003-04-29 Havoc Pennington <hp@redhat.com>
9627 * glib/dbus-gmain.c: docs cleanups
9629 * dbus/dbus-types.h: add docs on int64 types
9631 * dbus/dbus-memory.c: fix docs to avoid putting private API in
9632 public API docs section
9634 2003-04-29 Havoc Pennington <hp@redhat.com>
9636 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9637 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9638 parallel install API version, not with the D-BUS package version.
9640 * HACKING: move some of README over here
9642 * README: updates, and document API/ABI policy
9644 * configure.in: reindentation
9646 2003-04-29 Havoc Pennington <hp@redhat.com>
9648 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9649 to use this library" to be sure people have the right
9652 2003-04-28 Havoc Pennington <hp@redhat.com>
9654 * configure.in: add --enable-docs which by default is auto yes if
9655 doxygen and db2html found, no otherwise; but can be forced on/off
9657 * doc/Makefile.am: conditionalize whether to build docs on
9660 2003-04-28 Havoc Pennington <hp@redhat.com>
9662 * configure.in: 0.10
9666 * bus/system.conf.in: add <includedir>system.d</includedir>
9668 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9669 username was provided but not uid
9671 * bus/config-parser.c (struct BusConfigParser): keep track of
9672 whether the parser is toplevel or was included; change some
9673 of the error handling if it's included.
9675 2003-04-27 Havoc Pennington <hp@pobox.com>
9679 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9680 report correct status if we finish processing authentication
9681 inside this function.
9683 * bus/activation.c (try_send_activation_failure): use
9684 bus_transaction_send_error_reply
9686 * bus/connection.c (bus_connection_get_groups): return an error
9687 explaining the problem
9689 * bus/bus.c (bus_context_check_security_policy): implement
9690 restriction here that inactive connections can only send the
9691 hello message. Also, allow bus driver to send anything to
9694 * bus/connection.c (bus_connection_complete): create the
9695 BusClientPolicy here instead of on-demand.
9696 (bus_connection_get_policy): don't return an error
9698 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9699 sender field in message being replied to
9701 * bus/bus.c (bus_context_check_security_policy): fix silly typo
9702 causing it to return FALSE always
9704 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9705 we checked sender rather than destination
9707 2003-04-25 Havoc Pennington <hp@redhat.com>
9709 test suite is slightly hosed at the moment, will fix soon
9711 * bus/connection.c (bus_connections_expire_incomplete): fix to
9712 properly disable the timeout when required
9713 (bus_connection_set_name): check whether we can remove incomplete
9714 connections timeout after we complete each connection.
9716 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9717 probably still broken.
9719 * bus/services.c (bus_registry_acquire_service): implement max
9720 number of services owned, and honor allow/deny rules on which
9721 services a connection can own.
9723 * bus/connection.c (bus_connection_get_policy): report errors here
9725 * bus/activation.c: implement limit on number of pending
9728 2003-04-25 Havoc Pennington <hp@redhat.com>
9730 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9731 where we used >= 0 instead of != DBUS_UID_UNSET.
9733 2003-04-25 Havoc Pennington <hp@redhat.com>
9735 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9736 were toggled without add/remove, fix from Anders Gustafsson
9738 2003-04-24 Havoc Pennington <hp@redhat.com>
9740 * test/data/valid-config-files/basic.conf: add <limit> tags to
9743 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9744 <limit> tag in configuration file.
9746 2003-04-24 Havoc Pennington <hp@redhat.com>
9748 * bus/dispatch.c: somehow missed some name_is
9750 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9751 (_dbus_timeout_set_interval): new
9753 * bus/connection.c (bus_connections_setup_connection): record time
9754 when each connection is first set up, and expire them after the
9755 auth timeout passes.
9757 2003-04-24 Havoc Pennington <hp@redhat.com>
9759 * dbus/dbus-message.c (dbus_message_name_is): rename
9760 (dbus_message_service_is): rename
9761 (dbus_message_sender_is): rename
9762 (dbus_message_get_service): rename
9764 2003-04-24 Havoc Pennington <hp@redhat.com>
9766 * configure.in: add --enable-checks
9768 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9770 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9771 to use thread locks.
9772 (_dbus_connection_handler_destroyed_locked): move some private
9773 functions into proper docs group
9775 * dbus/dbus-internals.h: add _dbus_return_if_fail,
9776 _dbus_return_val_if_fail
9778 Throughout: use dbus_return_if_fail
9780 2003-04-23 James Willcox <jwillcox@gnome.org>
9783 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9784 (dbus_connection_setup_with_g_main),
9785 (dbus_server_setup_with_g_main):
9786 * glib/test-dbus-glib.c: (main):
9787 * glib/test-thread-client.c: (main):
9788 * glib/test-thread-server.c: (new_connection_callback), (main):
9789 * tools/dbus-monitor.c: (main):
9791 Added a GMainContext argument to dbus_connection_setup_with_g_main()
9792 and dbus_server_setup_with_g_main().
9794 2003-04-20 Havoc Pennington <hp@pobox.com>
9796 * doc/dbus-specification.sgml: document the restrictions on
9797 message and service names
9799 2003-04-22 Havoc Pennington <hp@redhat.com>
9801 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9802 support, and do some code cleanups to share more code and
9803 speed up array marshal/demarshal.
9805 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9807 * configure.in: generate dbus-arch-deps.h
9809 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9812 2003-04-22 Havoc Pennington <hp@redhat.com>
9814 * test/data/valid-messages/opposite-endian.message: fix test
9815 to use proper type for rply field
9817 * test/data/invalid-messages: add tests for below validation
9819 * dbus/dbus-message.c (decode_header_data): validate field types,
9820 and validate that named fields are valid names
9821 (decode_name_field): consider messages in the
9822 org.freedesktop.Local. namespace to be invalid.
9824 * dbus/dbus-string.c (_dbus_string_validate_name): new
9826 2003-04-19 Havoc Pennington <hp@pobox.com>
9828 * bus/driver.c (bus_driver_handle_hello): check limits and
9829 return an error if they are exceeded.
9831 * bus/connection.c: maintain separate lists of active and inactive
9832 connections, and a count of each. Maintain count of completed
9833 connections per user. Implement code to check connection limits.
9835 * dbus/dbus-list.c (_dbus_list_unlink): export
9837 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9838 number of bytes in the message queue for a connection
9840 2003-04-18 Havoc Pennington <hp@pobox.com>
9842 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9844 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9847 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9848 on realloc be sure to update the pointer in the keyring
9850 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9851 offset to avoid writing to unallocated memory
9853 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9854 try the next mechanism, so we properly handle OOM
9856 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9858 (_dbus_keyring_new): fix OOM bug
9859 (_dbus_keyring_new_homedir): always set error; impose a maximum
9860 number of keys we'll load from the file, mostly to speed up the
9861 test suite and make its OOM checks more useful, but also for
9864 * dbus/dbus-auth.c (process_error_server): reject authentication
9865 if we get an error from the client
9866 (process_cancel): on cancel, send REJECTED, per the spec
9867 (process_error_client): send CANCEL if we get an error from the
9870 2003-04-18 Havoc Pennington <hp@pobox.com>
9872 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9875 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9878 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9879 about DBUS_TEST_HOMEDIR once
9881 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9884 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9885 config file so we test the right thing
9887 Throughout: assorted docs improvements
9889 2003-04-18 Havoc Pennington <hp@pobox.com>
9891 * glib/dbus-gmain.c: adapt to watch changes
9893 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9895 * dbus/dbus-server.h: remove dbus_server_handle_watch
9897 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9899 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9900 like DBusTimeout, so we don't need dbus_connection_handle_watch
9903 2003-04-17 Havoc Pennington <hp@redhat.com>
9905 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9906 database usage so it all goes via the DBusUserDatabase cache.
9908 2003-04-17 Havoc Pennington <hp@redhat.com>
9910 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9911 there was an OOM watch we skipped, we always return TRUE so we
9912 iterate again to have a look at it again. Fixes test suite hang.
9913 Code rearrangement also lets us lose some memset and only iterate
9914 over callbacks once.
9916 * bus/driver.c (bus_driver_handle_message): sense of test for
9919 2003-04-16 Havoc Pennington <hp@pobox.com>
9921 * doc/dbus-specification.sgml: make spec say serials are unsigned
9923 * dbus/dbus-message.h: change message serials to unsigned
9925 * dbus/dbus-connection.c: adapt to message serials being unsigned
9927 2003-04-15 Havoc Pennington <hp@pobox.com>
9929 * bus/bus.c: create and keep around a shared DBusUserDatabase
9932 * bus/connection.c (bus_connection_get_groups): don't cache
9933 groups for user in the connection object, since user database
9934 object now does that.
9936 2003-04-16 Havoc Pennington <hp@redhat.com>
9938 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9939 list of size counters
9940 (_dbus_message_loader_putback_message_link): put back a popped link
9942 * dbus/dbus-connection.c
9943 (dbus_connection_set_max_live_messages_size): rename
9945 (dbus_connection_get_outgoing_size): get size of outgoing
9947 (_dbus_connection_set_connection_counter): remove this cruft
9949 2003-04-14 Havoc Pennington <hp@redhat.com>
9951 * dbus/dbus-userdb.c: user database abstraction, mostly to get
9952 caching, but at some point we might want to be able to use a
9955 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9956 SHA1 conf file to test the sha1 auth mechanism, since the regular
9957 test always uses EXTERNAL when available.
9960 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9961 add conf file that requires use of sha1 auth
9963 2003-04-13 Havoc Pennington <hp@pobox.com>
9965 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9966 from Philip Blundell to send messages and monitor them.
9968 2003-04-13 Havoc Pennington <hp@pobox.com>
9970 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9973 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9976 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9977 fix to only recover unused bytes if we're already authenticated
9978 (_dbus_transport_get_is_authenticated): fix to still mark us
9979 authenticated if there are unused bytes.
9981 * bus/dispatch.c: implement security policy checking
9983 * bus/connection.c (bus_transaction_send_from_driver): new
9985 * bus/bus.c (bus_context_check_security_policy): new
9987 * bus/dispatch.c (send_service_nonexistent_error): delete this,
9988 now we just set the DBusError and it gets converted to an error
9991 * bus/connection.c (allow_user_function): enable code using actual
9992 data from the config file
9994 * bus/policy.c (list_allows_user): handle wildcard rules for
9995 user/group connection perms
9997 2003-04-13 Havoc Pennington <hp@pobox.com>
9999 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10001 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10003 * bus/policy.c (bus_policy_append_mandatory_rule)
10004 (bus_policy_append_default_rule, bus_policy_append_user_rule)
10005 (bus_policy_append_group_rule): new functions
10007 2003-04-12 Havoc Pennington <hp@pobox.com>
10009 * bus/config-parser.c (bus_config_parser_new): fix a memleak
10011 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10012 the pid/gid/uid, just for paranoia.
10014 * test/break-loader.c (randomly_do_n_things): find a byte
10015 containing a type code, and randomly change it to a different
10018 2003-04-12 Havoc Pennington <hp@pobox.com>
10020 * bus/policy.h: change BusPolicy to be the thing from the config
10021 file, and rename old BusPolicy to BusClientPolicy
10023 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10024 match change in how policy works
10026 * dbus/dbus-internals.h: mark assert_not_reached as
10027 __attribute((noreturn))__
10029 2003-04-11 Havoc Pennington <hp@redhat.com>
10031 * doc/dbus-specification.sgml: fix a spot with the wrong name for
10032 the broadcast service. Use boolean return for ServiceExists.
10034 2003-04-11 Havoc Pennington <hp@redhat.com>
10036 * configure.in: add another directory to look for qt in.
10038 2003-04-11 Havoc Pennington <hp@redhat.com>
10040 * AUTHORS: add Colin Walters
10042 2003-04-11 Havoc Pennington <hp@redhat.com>
10046 * configure.in: 0.9
10048 2003-04-11 Havoc Pennington <hp@redhat.com>
10050 * bus/messagebus.in: remove pid file when stopping the
10051 message bus, since the bus won't have privileges to remove it
10054 2003-04-11 Havoc Pennington <hp@redhat.com>
10056 * bus/bus.c (bus_context_new): move credentials change after
10059 2003-04-11 Havoc Pennington <hp@pobox.com>
10061 * test/decode-gcov.c: add "below average functions" to the
10062 coverage report, and change how some of the code works.
10064 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10065 not in the coverage stats.
10067 * test/test-service.c (main): use _dbus_verbose not fprintf in a
10068 couple places so running the test suite doesn't result in megaspam.
10070 2003-04-11 Havoc Pennington <hp@pobox.com>
10072 * bus/dispatch.c (check_existent_service_activation): accept a no
10073 memory error in a place we didn't before
10075 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10076 in case the first one failed," since the test suite is less
10079 2003-04-10 Havoc Pennington <hp@pobox.com>
10081 * bus/dispatch.c (check_segfault_service_activation): add test
10082 for launching an executable that just crashes.
10084 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10085 don't leave a million cores. We'll see how portable this is.
10087 2003-04-10 Havoc Pennington <hp@pobox.com>
10089 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
10090 the possible parent failures before we fork, so that we don't
10091 fail to create a babysitter after creating the child.
10093 * bus/activation.c (bus_activation_activate_service): kill child
10094 if we don't successfully complete the activation.
10096 2003-04-10 Havoc Pennington <hp@redhat.com>
10098 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
10099 the connection if it's disconnected
10101 * bus/activation.c (bus_activation_service_created): use new
10102 transaction features to roll back removal of pending activation if
10103 we don't successfully create the service after all. Don't remove
10104 pending activation if the function fails.
10106 * dbus/dbus-list.c (_dbus_list_insert_before_link)
10107 (_dbus_list_insert_after_link): new code to facilitate
10110 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
10111 new functionality, so we can preallocate the ability to insert
10114 * bus/connection.c (bus_transaction_add_cancel_hook): new function
10115 allowing us to put custom hooks in a transaction to be used for
10116 cancelling said transaction
10118 * doc/dbus-specification.sgml: add some discussion of secondary
10119 service owners, and disallow zero-length service names
10121 * bus/services.c (bus_registry_acquire_service): new function,
10122 splits out part of bus_driver_handle_acquire_service() and fixes
10123 a bug where we didn't remove the service doing the acquiring
10124 from the secondary queue if we failed to remove the current owner
10125 from the front of the queue.
10127 2003-04-10 Alexander Larsson <alexl@redhat.com>
10129 * doc/dbus-specification.sgml:
10130 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10132 2003-04-10 Alexander Larsson <alexl@redhat.com>
10137 Added files to cvsignore
10139 * dbus/dbus-message.h:
10140 * dbus/dbus-message.c: (dbus_message_iter_get_named):
10141 Make get_named() take two out argument and return a boolean.
10142 (dbus_message_iter_get_args_valist):
10143 Update usage of get_named().
10144 (dbus_message_iter_append_byte):
10146 (dbus_message_iter_append_named)
10148 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10151 2003-04-10 Alexander Larsson <alexl@redhat.com>
10153 * dbus/dbus-marshal.[ch]:
10154 Add array_type_pos argument to _dbus_marshal_validate_arg.
10155 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10157 * dbus/dbus-message.[ch]:
10158 Multi-dimensional arrays have full type specification in the
10159 outermost array. Iter code re-arranged to handle this.
10160 Added some more iter tests.
10162 * doc/dbus-specification.sgml:
10165 Update new array encoding description.
10166 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10168 * test/data/invalid-messages/array-with-mixed-types.message:
10169 * test/data/valid-messages/array-of-array-of-uint32.message:
10170 Change to the new array format.
10172 * test/data/invalid-messages/too-short-dict.message:
10175 * test/data/valid-messages/recursive-types.message:
10176 Fix up and extend test.
10178 2003-04-10 Havoc Pennington <hp@pobox.com>
10180 * bus/dispatch.c: lots of fixes
10182 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10183 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10184 that was crack, broke the test service.
10186 * dbus/dbus-transport.c (_dbus_transport_open): fix error
10187 handling to avoid piling up errors if we get a failure on the
10190 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10191 pid in assertion failures.
10193 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10194 to some fixed size of file descriptor array. Don't return TRUE
10195 anytime a timeout exists, that led to lots of busy loop silliness
10198 2003-04-09 Havoc Pennington <hp@redhat.com>
10200 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10201 I'd checked this in earlier but hadn't.
10203 2003-04-09 Havoc Pennington <hp@redhat.com>
10205 * bus/dispatch.c (bus_dispatch_test): get a bit further through
10206 the activation test (man this is getting old!)
10208 2003-04-09 Havoc Pennington <hp@redhat.com>
10210 * test/test-utils.c: use dispatch status function to fix this up
10212 * bus/connection.c (connection_watch_callback): don't dispatch
10214 (connection_timeout_callback): don't dispatch from here
10215 (bus_connections_setup_connection): set the dispatch status function
10216 (bus_connection_disconnected): unset it
10218 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10219 used to add a connection to be dispatched
10220 (_dbus_loop_iterate): do the dispatching at the end of each
10223 * dbus/dbus-connection.c
10224 (dbus_connection_set_dispatch_status_function): new function
10225 allowing us to fix up main loop usage
10226 (_dbus_connection_last_unref): free all the various function
10228 (dbus_connection_dispatch): call the DispatchStatusFunction
10229 whenever this function returns
10230 (dbus_connection_handle_watch): call DispatchStatusFunction
10231 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10232 (reply_handler_timeout): call DispatchStatusFunction
10233 (dbus_connection_flush): call DispatchStatusFunction
10235 2003-04-09 Havoc Pennington <hp@redhat.com>
10237 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10240 * bus/dispatch.c (check_service_activated): fix bug in test
10242 * dbus/dbus-mainloop.c (check_timeout): fix this up
10244 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10245 verbose output so we can sort out output from different processes,
10246 e.g. in the activation case.
10248 2003-04-08 Colin Walters <walters@gnu.org>
10250 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10252 (bus_context_new): Set it.
10253 (bus_context_unref): Use it to delete the pid file.
10255 2003-04-08 Havoc Pennington <hp@redhat.com>
10257 * test/data/invalid-messages/array-with-mixed-types.message:
10258 regression test that fails for the moment
10260 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10261 tests for convenience
10263 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10264 array of nil, it broke things.
10266 * test/data/invalid-messages/array-of-nil.message: regression test
10268 * test/data/valid-messages/array-of-array-of-uint32.message:
10269 happened to write this so added it to suite
10271 2003-04-08 Havoc Pennington <hp@redhat.com>
10273 * bus/driver.c (bus_driver_handle_acquire_service): init
10274 retval/reply before checking name
10276 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10277 recursion depth argument
10279 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10280 in the public struct for future extension
10282 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10285 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10288 * doc/dbus-specification.sgml: fix typo
10290 2003-04-08 Alexander Larsson <alexl@redhat.com>
10292 Implemented recursive types, named types and new-style iters
10295 * glib/test-thread-client.c: (thread_func):
10296 * glib/test-thread-server.c: (handle_test_message):
10297 * test/test-service.c: (handle_echo):
10300 * dbus/Makefile.am:
10301 * dbus/dbus-dict.c:
10302 * dbus/dbus-dict.h:
10306 * dbus/dbus-internals.c: (_dbus_type_to_string):
10307 Update for new types.
10309 * dbus/dbus-marshal.[ch]:
10310 Implement recursive types and the new marshalling format.
10311 Remove hardcoded dict marshalling.
10312 Marshal named types.
10314 * dbus/dbus-message-builder.c:
10316 Remove references to old types
10318 * dbus/dbus-message.[ch]:
10319 New non-refcounted iter API that supports recursive iters.
10320 Use iters for appending, including support for recursive
10322 Add byte and named type support.
10323 Update everything to new marshalling formats.
10324 Add tests for new API.
10326 * dbus/dbus-protocol.h:
10327 Remove old array types.
10328 Add types: BYTE, ARRAY, DICT, NAMED
10330 * dbus/dbus-string.c:
10331 * dbus/dbus-sysdeps.c:
10332 Make parse_double locale safe.
10334 * dbus/dbus-test-main.c:
10337 * dbus/dbus-test.c:
10340 * doc/dbus-specification.sgml:
10343 * test/data/incomplete-messages/missing-body.message:
10344 * test/data/invalid-messages/bad-boolean.message:
10345 * test/data/invalid-messages/bad-boolean-array.message:
10346 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10347 * test/data/invalid-messages/boolean-has-no-value.message-raw:
10348 * test/data/invalid-messages/too-short-dict.message:
10349 * test/data/valid-messages/dict-simple.message:
10350 * test/data/valid-messages/dict.message:
10351 * test/data/valid-messages/emptiness.message:
10352 * test/data/valid-messages/lots-of-arguments.message:
10353 * test/data/valid-messages/no-padding.message:
10354 * test/data/valid-messages/recursive-types.message:
10355 Add missing NAME fields
10356 Fix up dicts & arrays
10358 * test/data/invalid-messages/dict-with-nil-value.message:
10359 Removed, this is not invalid anymore.
10361 * test/data/valid-messages/recursive-types.message:
10362 Add new test for deeply recursive types.
10364 2003-04-07 Havoc Pennington <hp@pobox.com>
10366 * bus/driver.c (bus_driver_handle_acquire_service): return an
10367 error if you try to acquire a service that starts with ':'
10369 2003-04-07 Havoc Pennington <hp@redhat.com>
10371 * doc/dbus-specification.sgml: require that base service names
10372 start with ':' and that the base service is created/deleted
10373 as first and last things a connection does on the bus
10375 * bus/dispatch.c (check_existent_service_activation): lots more
10376 work on the activation test; it doesn't fully pass yet...
10378 * test/test-service.c (main): fix so we don't memleak the
10379 connection to the message bus
10380 (filter_func): accept a message asking us to exit
10382 2003-04-06 Havoc Pennington <hp@pobox.com>
10384 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10387 * configure.in: fixes to Qt detection from Colin Walters
10389 * doc/Makefile.am: Only remove generated docbook dirs if they
10390 exist, from Colin Walters
10392 * dbus/dbus-bus.c: change how we set well-known connections to
10393 NULL, so that it works if a single connection is stored in
10394 two well-known array slots.
10396 * test/Makefile.am: remove a lot of stuff that isn't immediately
10397 useful, it's in CVS history if we want it.
10399 * test/test-service.c: use dbus-mainloop instead of that
10402 2003-04-06 Havoc Pennington <hp@pobox.com>
10404 * dbus/Makefile.am: split lists of sources into stuff that goes in
10405 the library, util functions that go in the lib and are also used
10406 elsewhere, and util functions that are used in tests/daemon but
10407 don't go in the lib.
10409 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10410 here so it can be used in test binaries also
10412 2003-04-06 Havoc Pennington <hp@pobox.com>
10414 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10415 here in the parent process, so we can return an error if it
10416 fails. Also, move some of the code into the child so the parent
10417 is less hosed if we fail midway through.
10419 * bus/bus.c (bus_context_new): move pidfile detection further up
10420 in the function, before we start overwriting sockets and such.
10422 * bus/messagebus.in: adjust this a bit, not sure if it will work.
10424 * configure.in: add --with-system-pid-file and --with-system-socket
10426 2003-04-06 Colin Walters <walters@verbum.org>
10428 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10430 * bus/system.conf.in: Declare a pidfile.
10432 * bus/bus.c (bus_context_new): Test for an existing pid file, and
10433 create one (if appropriate).
10435 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10436 (struct BusConfigParser) [pidfile]: New.
10437 (element_type_to_name, merge_included, start_busconfig_child)
10438 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10439 (bus_config_parser_unref): Free it.
10440 (bus_config_parser_get_pidfile): New function.
10442 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10444 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10446 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10448 * dbus/dbus-sysdeps.h: Prototype it.
10450 2003-04-06 Havoc Pennington <hp@pobox.com>
10452 * bus/bus.c (bus_context_new): print the address in here, rather
10453 than in main(), because we need to do it before forking the daemon
10455 * bus/dispatch.c (send_service_nonexistent_error): set the sender
10456 on the service nonexistent error
10458 * bus/driver.c (bus_driver_handle_acquire_service): set the
10459 sender on the AcquireService reply
10461 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10462 server also listen on a UNIX socket so services can connect to it.
10464 2003-04-06 Havoc Pennington <hp@pobox.com>
10466 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10467 so it detects deadlocks and also we actually init threads when
10470 2003-04-06 Havoc Pennington <hp@pobox.com>
10472 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10473 save the domain socket name, and unlink it when we disconnect the
10474 server. Means that at least when we exit normally, we won't leave
10475 a bunch of junk in /tmp
10477 * dbus/dbus-transport-unix.c
10478 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10479 memory management). (I was making a real change here but then
10482 2003-04-06 Havoc Pennington <hp@pobox.com>
10484 * bus/bus.c (bus_context_new): fix wrong handling of
10485 server_data_slot_unref() in the error case.
10487 * dbus/dbus-internals.h (_dbus_assert): change so it passes
10488 "(condition) != 0" to _dbus_real_assert so that
10489 "_dbus_assert (pointer)" doesn't cause a warning
10491 * bus/main.c (main): accept --print-address option to print out
10492 the message bus address
10494 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10496 * dbus/dbus-transport.c (_dbus_transport_open): special error for
10497 "tmpdir" option to unix: address on client side
10499 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10502 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10503 we can use to create sockets in the test suite.
10505 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10506 cleanly. To be used for testing.
10508 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10510 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10512 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10513 handle trying to call this when there's no servers active
10515 2003-04-05 Havoc Pennington <hp@pobox.com>
10519 * configure.in: 0.8
10521 2003-04-05 Havoc Pennington <hp@pobox.com>
10523 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10524 crash on startup. Need to get "try starting the daemon"
10525 in the test suite I guess. ;-)
10527 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10528 tracked the number of open connections; it's better done in
10529 application-specific code as you want it to span all servers etc.
10531 2003-04-05 Havoc Pennington <hp@pobox.com>
10533 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10534 patch from Colin Walters
10536 2003-04-05 Havoc Pennington <hp@pobox.com>
10538 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10539 reality; in fact multiple mechanisms are allowed.
10541 * dbus/dbus-internals.c (_dbus_real_assert)
10542 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10543 _dbus_assert_not_reached() into functions, so that they don't show
10544 up in basic block counts for test coverage, and don't use up as
10545 much disk space. Does mean slower execution speed though, so
10546 assumes --disable-asserts is the normal production case.
10548 2003-04-05 Havoc Pennington <hp@pobox.com>
10550 * test/Makefile.am (dist-hook): also dist *.in files
10554 * configure.in: 0.7
10556 2003-04-05 Havoc Pennington <hp@pobox.com>
10558 * dbus/dbus-string.c: docs warning
10560 * dbus/dbus-spawn.c: missing docs
10562 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10564 2003-04-05 Havoc Pennington <hp@pobox.com>
10566 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10569 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10570 to -1 once we've reaped the babysitter
10571 (_dbus_babysitter_handle_watch): do as much work as we can, not
10574 * bus/activation.c: add code using DBusBabysitter so that we
10575 handle it when a service fails to start up properly.
10576 (bus_activation_service_created): don't remove the activation
10577 entries as we go, just let them get removed when we free the pending
10578 activation. Unref reply messages after sending them.
10580 2003-04-05 Havoc Pennington <hp@pobox.com>
10582 * test/decode-gcov.c (main): print per-directory stats in the report
10584 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10586 2003-04-05 Havoc Pennington <hp@pobox.com>
10588 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10590 * test/decode-gcov.c: hack up a little program to suck data
10591 out of gcov files. Yes this is sort of silly.
10593 * configure.in: define something in config.h and do an
10594 AM_CONDITIONAL when gcov is enabled
10596 2003-04-04 Havoc Pennington <hp@redhat.com>
10598 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10599 return a "babysitter" object that is used to monitor the status of
10600 the spawned process and reap it when required.
10602 * test/test-segfault.c, test/test-exit.c,
10603 test/test-sleep-forever.c: binaries that do various lame things,
10604 used in the test suite.
10606 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10608 2003-04-03 Havoc Pennington <hp@pobox.com>
10610 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10611 in preparation for modifying it, dbus-sysdeps is getting
10612 a bit unmanageable.
10614 2003-04-03 Havoc Pennington <hp@redhat.com>
10616 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10619 * bus/*.[hc]: adapt to mainloop change
10621 2003-04-03 Havoc Pennington <hp@redhat.com>
10623 * bus/activation.c (load_directory): fix up memleaks
10624 (bus_activation_entry_free): free the entry
10626 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10627 we get one from the message bus; fix memleaks.
10629 * dbus/dbus-message.c (dbus_set_error_from_message): new function
10631 2003-04-03 Havoc Pennington <hp@pobox.com>
10633 * bus/config-parser.c (bus_config_parser_unref): free
10634 list of mechanisms, bug discovered by test suite enhancements
10635 (putting system.conf and session.conf into suite)
10637 * test/Makefile.am, test/test-service.c: add placeholder for a
10638 test service that we'll activate as part of test suite. Doesn't
10641 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10642 setting NULL value, and use system malloc not dbus_malloc()
10643 when we have unavoidable memleakage.
10645 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10646 didn't work, and support DBUS_BUS_ACTIVATION.
10648 * bus/activation.c (child_setup): pass our well-known bus type to
10651 * bus/config-parser.c: support <type> to specify well-known type
10653 * doc/dbus-specification.sgml: document the env variables to
10654 locate well-known buses and find service activator
10656 2003-04-02 Havoc Pennington <hp@redhat.com>
10658 * test/Makefile.am (all-local): add a rule to copy tests to
10659 builddir, so we can have generated tests. Use this to remove the
10660 silly hack for testing system.conf and session.conf. Will use this
10661 shortly to generate .service files pointing to test binaries.
10663 2003-04-02 Havoc Pennington <hp@redhat.com>
10665 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10666 current alloc and needed new length, not max of the doubled
10667 allocation and needed new length. Also, when building tests,
10668 don't do the double-allocation stuff, just realloc every time.
10670 2003-04-02 Havoc Pennington <hp@redhat.com>
10672 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10674 (_dbus_string_get_dirname): new
10675 (_dbus_sysdeps_test): new
10676 (_dbus_directory_open): include dirnames in error messages
10678 * bus/config-parser.c: interpret <include> and <includedir> and
10679 <servicedir> relative to config file location if the given
10680 filename is not absolute.
10682 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10684 2003-04-02 Havoc Pennington <hp@redhat.com>
10686 * bus/connection.c (bus_transaction_send_error_reply): set sender
10687 service for the error, and unref the reply on success
10689 * bus/activation.c: convert to use BusTransaction so OOM can be
10691 (bus_activation_service_created): set sender of the message
10693 2003-04-01 Havoc Pennington <hp@redhat.com>
10695 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10696 <includedir> (at least mostly)
10698 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10699 first, then the user ID
10701 2003-04-01 Havoc Pennington <hp@pobox.com>
10703 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10706 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10708 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10710 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10711 socket 0777, and unlink any existing socket.
10713 * bus/bus.c (bus_context_new): change our UID/GID and fork if
10714 the configuration file so specifies; set up auth mechanism
10717 * bus/config-parser.c (bus_config_parser_content): add support
10718 for <fork> option and fill in code for <auth>
10720 * bus/system.conf.in: add <fork/> to default configuration,
10721 and limit auth mechanisms to EXTERNAL
10723 * doc/config-file.txt (Elements): add <fork>
10725 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10726 (_dbus_change_identity): new function
10728 2003-03-31 Havoc Pennington <hp@redhat.com>
10730 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10731 (_dbus_listen_unix_socket): fix off-by-one error in null
10732 termination spotted by Nalin
10734 2003-03-31 Havoc Pennington <hp@redhat.com>
10736 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10737 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10738 having a real home directory available.
10740 2003-03-31 Havoc Pennington <hp@redhat.com>
10742 * bus/Makefile.am (install-data-hook): create /var/run/dbus
10744 * bus/messagebus.in: add init script for Red Hat /etc/init.d
10746 * configure.in: add support for specifying a style of init script
10749 2003-03-31 Havoc Pennington <hp@redhat.com>
10751 Fix some annoying DBusString API and fix all affected code.
10753 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10754 max_length argument
10755 (_dbus_string_get_data): change to return string instead of using
10757 (_dbus_string_get_const_data): ditto
10758 (_dbus_string_get_data_len): ditto
10759 (_dbus_string_get_const_data_len): ditto
10761 2003-03-31 Havoc Pennington <hp@redhat.com>
10763 * bus/main.c (main): fix up the command line arguments to be nicer
10765 2003-03-31 Havoc Pennington <hp@redhat.com>
10767 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10768 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10769 final location that lands in the config file
10771 * bus/config-loader-expat.c (bus_config_load): fix type of
10772 XML_Parser variable
10774 * doc/TODO: remove TODO item for dbus_bus_get()
10776 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10778 2003-03-31 Havoc Pennington <hp@pobox.com>
10780 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10781 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10782 argument since they are always client side
10784 * dbus/dbus-server.c (dbus_server_get_address): new function
10786 * bus/main.c (main): take the configuration file as an argument.
10788 * test/data/valid-config-files/debug-allow-all.conf: new file to
10789 use with dispatch.c tests for example
10791 * bus/test-main.c (main): require test data dir
10793 * bus/bus.c (bus_context_new): change this to take a
10794 configuration file name as argument
10796 * doc/config-file.txt (Elements): add <servicedir>
10798 * bus/system.conf, bus/session.conf: new files
10800 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10801 well-known socket if none set
10803 * configure.in: create system.conf and session.conf
10805 2003-03-30 Havoc Pennington <hp@pobox.com>
10807 * bus/config-parser.c: hacking
10809 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10810 to shut down, since it could cause weirdness with the DBusList
10813 * dbus/dbus-list.c (_dbus_list_test): add tests for the
10814 link-oriented stack routines
10815 (alloc_link): free the mempool if the first alloc from it fails
10817 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10819 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10821 (_dbus_string_skip_white): new
10823 * doc/config-file.txt (Elements): add <includedir>
10825 2003-03-28 Havoc Pennington <hp@pobox.com>
10827 * dbus/dbus-string.c (_dbus_string_copy_data_len)
10828 (_dbus_string_copy_data): new functions
10830 2003-03-28 Anders Carlsson <andersca@codefactory.se>
10832 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10836 * dbus/dbus-memory.c:
10839 2003-03-28 Havoc Pennington <hp@pobox.com>
10841 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10842 I think it may have just been superstition. Not sure.
10844 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10845 failures that were not being handled.
10847 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10849 * dbus/dbus-memory.c: add ability to set number of mallocs in a
10850 row that will fail on out-of-memory.
10852 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10853 function for testing out-of-memory handling.
10855 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10856 allocation functions, they do map exactly to the expat ones.
10858 2003-03-27 Havoc Pennington <hp@redhat.com>
10860 * bus/config-loader-libxml.c (bus_config_load): add another error
10863 2003-03-26 Anders Carlsson <andersca@codefactory.se>
10866 Add note about automatic service activation.
10868 * doc/dbus-specification.sgml:
10869 Rename the specification and clarify a few things.
10871 2003-03-26 Anders Carlsson <andersca@codefactory.se>
10874 * dbus/dbus-address.c:
10875 * dbus/dbus-dict.c:
10876 * dbus/dbus-marshal.c:
10877 * dbus/dbus-server-debug-pipe.c:
10878 * dbus/dbus-transport-unix.c:
10879 Fix documentation warnings.
10881 2003-03-26 Havoc Pennington <hp@pobox.com>
10883 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10884 after every test so it's quick and easy to see which leaked, and
10885 so we test multiple dbus_shutdown() calls
10887 * configure.in: change configure.in XML stuff to also support
10890 * config-loader-libxml.c: some hacking
10892 * config-loader-expat.c: some hacking
10894 * config-parser.c: some hacking, plus tests
10896 2003-03-25 Havoc Pennington <hp@redhat.com>
10898 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10900 * configure.in: add --with-xml option to specify XML library,
10901 right now only libxml is supported.
10903 * bus/config-loader-libxml.c, config-parser.c: sync some minor
10904 nonworking code between home and work, still just stubs
10906 2003-03-24 Havoc Pennington <hp@redhat.com>
10908 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10911 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10912 NULL argument for "message" if the error is a well-known one,
10913 fill in a generic message in this case.
10915 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10918 * bus/test.c (bus_test_flush_bus): add
10920 * bus/policy.c (bus_policy_test): test code stub
10922 2003-03-24 Havoc Pennington <hp@pobox.com>
10924 * bus/connection.c (bus_connections_setup_connection): set up
10925 the "can this user connect" function, but it always returns
10926 TRUE until we have a config file parser so we can have a config
10927 file that allows connections.
10929 2003-03-23 Havoc Pennington <hp@pobox.com>
10931 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10932 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10933 the mutex, so we can check for proper memory management
10936 * dbus/dbus-dataslot.c: remove the mutex from
10937 DBusDataSlotAllocator and lock it manually when using it,
10938 to simplify fitting it into the global slots framework.
10940 * dbus/dbus-threads.c (init_static_locks): rework how we're
10941 handling global locks so they are easily shut down.
10943 * bus/policy.c (bus_policy_append_rule): fix
10945 * bus/test-main.c (main): check for memleaks
10947 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10948 test suite check for memleaks
10950 * dbus/dbus-memory.c: add support in test mode for tracking
10951 number of outstanding blocks
10953 2003-03-23 Havoc Pennington <hp@pobox.com>
10955 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10958 * dbus/dbus-hash.h: add ULONG hash keys
10960 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10961 (_dbus_get_group_id): new function
10963 2003-03-20 Havoc Pennington <hp@redhat.com>
10965 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10967 (dbus_connection_get_unix_user): new function
10969 2003-03-20 Havoc Pennington <hp@pobox.com>
10971 * bus/connection.c (bus_connection_send_oom_error): assert that
10972 message has a sender
10973 (connection_execute_transaction): ditto
10974 (bus_connection_preallocate_oom_error): fix to set the sender, and
10975 set recipient to the destination service, not the bus driver
10977 * bus/policy.c: hacking
10979 * dbus/dbus-message.c (dbus_message_service_is): new function
10980 (dbus_message_sender_is): new
10982 2003-03-19 Havoc Pennington <hp@redhat.com>
10984 * bus/policy.c: start sketching code for policy restrictions on
10985 what connections can do.
10987 2003-03-18 Havoc Pennington <hp@redhat.com>
10989 * doc/TODO: some notes on high-level todo items. Little nitpick
10990 stuff is all in @todo, so no need to add it here.
10992 * doc/config-file.txt: some notes on how config file might look
10994 2003-03-18 Anders Carlsson <andersca@codefactory.se>
10996 * configure.in: 0.6
11000 2003-03-17 Havoc Pennington <hp@redhat.com>
11002 * dbus/dbus-internals.h: add gcc attributes so that
11003 our printf-style functions warn on bad arguments to
11006 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11009 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11012 2003-03-17 Havoc Pennington <hp@redhat.com>
11014 * bus/test-main.c (main): make it print something as it runs
11015 so make check doesn't look stuck
11017 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11018 from CVS, now obsolete
11020 2003-03-17 Anders Carlsson <andersca@codefactory.se>
11022 * bus/dispatch.c: (bus_dispatch):
11023 Refetch the service name since it may have been reallocated
11024 when dbus_message_set_sender was called.
11026 * dbus/dbus-sysdeps.c: (_dbus_accept):
11027 Add address and address length variables and use them to stop
11028 valgrind from complaining.
11030 2003-03-17 Havoc Pennington <hp@pobox.com>
11032 All tests pass, no memleaks, no valgrind complaints.
11034 * bus/test.c: refcount handler_slot
11036 * bus/connection.c (bus_connections_new): refcount
11037 connection_data_slot
11039 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11040 bytes so that auth scripts pass.
11042 * bus/dispatch.c: init message_handler_slot so it gets allocated
11045 * bus/dispatch.c (message_handler_slot_ref): fix memleak
11047 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11048 dealloc server_pipe_hash when no longer used for benefit of
11051 * dbus/dbus-auth.c (process_command): memleak fix
11053 * bus/dispatch.c (check_hello_message): memleak fix
11055 2003-03-16 Havoc Pennington <hp@pobox.com>
11057 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11059 2003-03-17 Anders Carlsson <andersca@codefactory.se>
11061 * bus/activation.c (bus_activation_activate_service): Append
11062 the pending activation entry to the list of pending activations.
11064 2003-03-16 Havoc Pennington <hp@pobox.com>
11066 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11069 * dbus/dbus-address.c (create_entry): fix OOM handling when
11070 failing to alloc entry->method
11072 2003-03-16 Havoc Pennington <hp@pobox.com>
11074 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11077 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11078 add some missing dbus_set_result
11080 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11081 alloc the DBusMessageHandler
11083 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11084 the transport here, since we call this from the finalizer; it
11085 resulted in a double-finalize.
11087 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
11088 where we tried to use transport->connection that was NULL,
11089 happened when transport was disconnected early on due to OOM
11091 * bus/*.c: adapt to handle OOM for watches/timeouts
11093 * dbus/dbus-transport-unix.c: port to handle OOM during
11096 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
11097 reference to unused bytes instead of a copy
11099 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
11102 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
11105 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
11108 2003-03-16 Anders Carlsson <andersca@codefactory.se>
11110 * doc/dbus-specification.sgml:
11111 Document reply message for ActivateService.
11113 2003-03-16 Anders Carlsson <andersca@codefactory.se>
11115 * bus/activation.c: (bus_pending_activation_entry_free),
11116 (bus_pending_activation_free), (bus_activation_new),
11117 (bus_activation_unref), (bus_activation_service_created),
11118 (bus_activation_activate_service):
11119 * bus/activation.h:
11120 * bus/bus.c: (bus_context_new):
11121 * bus/desktop-file.c: (new_section):
11122 * bus/driver.c: (bus_driver_send_service_deleted),
11123 (bus_driver_handle_activate_service):
11124 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11126 * dbus/dbus-connection.c:
11127 (dbus_connection_send_with_reply_and_block):
11128 * dbus/dbus-message.c: (dbus_message_append_args_valist):
11129 * dbus/dbus-protocol.h:
11130 Make activation work better. Now pending activations will be queued
11131 and the daemon won't try to activate services that are already registered.
11133 2003-03-16 Havoc Pennington <hp@pobox.com>
11135 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11138 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11139 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11141 2003-03-16 Havoc Pennington <hp@pobox.com>
11143 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11144 this. always run the test suite before commit...
11146 * bus/*: adapt to DBusConnection API changes
11148 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11149 requires renaming stuff to avoid dbus_connection_dispatch name
11152 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11155 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11156 separate from _dbus_message_loader_return_buffer()
11158 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11159 this, because it's now always broken to use; the number of
11160 messages in queue vs. the number still buffered by the message
11161 loader is undefined/meaningless. Should use
11162 dbus_connection_get_dispatch_state().
11163 (dbus_connection_dispatch): rename from
11164 dbus_connection_dispatch_message
11166 2003-03-16 Havoc Pennington <hp@pobox.com>
11168 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11171 2003-03-16 Anders Carlsson <andersca@codefactory.se>
11173 * dbus/dbus-connection.c:
11174 (dbus_connection_send_with_reply_and_block):
11175 Decrease connection->n_incoming when removing an entry
11177 * dbus/dbus-dict.c: (dbus_dict_entry_free),
11178 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11179 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11180 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11181 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11182 (dbus_dict_get_byte_array):
11183 Handle NULL arrays and strings. Also add support for byte arrays.
11185 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11186 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11187 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11188 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11189 (_dbus_demarshal_dict), (demarshal_and_validate_len),
11190 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11191 * dbus/dbus-marshal.h:
11192 Add support for marshalling and demarshalling empty arrays and strings.
11194 * dbus/dbus-message.c: (dbus_message_append_args_valist),
11195 (dbus_message_append_string_array),
11196 (dbus_message_iter_get_boolean),
11197 (dbus_message_iter_get_boolean_array),
11198 (dbus_message_iter_get_int32_array),
11199 (dbus_message_iter_get_uint32_array),
11200 (dbus_message_iter_get_double_array),
11201 (dbus_message_iter_get_byte_array),
11202 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11203 (check_message_handling):
11204 Add support for getting empty arrays and dicts.
11206 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11207 Don't do any validation at all for now, that's better than just checking
11210 * test/data/valid-messages/emptiness.message:
11211 New test message with lots of empty arrays.
11213 2003-03-16 Havoc Pennington <hp@pobox.com>
11215 * dbus/dbus-connection.c
11216 (_dbus_connection_queue_received_message_link): new function that
11217 can't fail due to OOM
11219 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11220 new function pops a message together with a list link
11223 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11224 message queuing functions to avoid needing to alloc memory
11226 2003-03-16 Havoc Pennington <hp@pobox.com>
11228 Oops - test code was only testing failure of around 30 of the
11229 mallocs in the test path, but it turns out there are 500+
11230 mallocs. I believe this was due to misguided linking setup such
11231 that there was one copy of dbus_malloc etc. in the daemon and one
11232 in the shared lib, and only daemon mallocs were tested. In any
11233 case, the test case now tests all 500+ mallocs, and doesn't pass
11234 yet, though there are lots of fixes in this patch.
11236 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11237 this so that it doesn't need to allocate memory, since it
11238 has no way of indicating failure due to OOM (and would be
11239 annoying if it did).
11241 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11243 * bus/Makefile.am: rearrange to create two self-contained
11244 libraries, to avoid having libraries with overlapping symbols.
11245 that was resulting in weirdness, e.g. I'm pretty sure there
11246 were two copies of global static variables.
11248 * dbus/dbus-internals.c: move the malloc debug stuff to
11251 * dbus/dbus-list.c (free_link): free list mempool if it becomes
11254 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11256 * dbus/dbus-address.c (dbus_parse_address): free list nodes
11259 * bus/dispatch.c (bus_dispatch_add_connection): free
11260 message_handler_slot when no longer using it, so
11261 memory leak checkers are happy for the test suite.
11263 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11265 * bus/bus.c (new_connection_callback): disconnect in here if
11266 bus_connections_setup_connection fails.
11268 * bus/connection.c (bus_connections_unref): fix to free the
11270 (bus_connections_setup_connection): if this fails, don't
11271 disconnect the connection, just be sure there are no side
11274 * dbus/dbus-string.c (undo_alignment): unbreak this
11276 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11278 (_dbus_auth_new): fix the order in which we free strings
11281 * bus/connection.c (bus_connection_disconnected): fix to
11282 not send ServiceDeleted multiple times in case of memory
11285 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11286 get the base service name
11287 (dbus_bus_register_client): don't return base service name,
11288 instead store it on the DBusConnection and have an accessor
11290 (dbus_bus_register_client): rename dbus_bus_register()
11292 * bus/dispatch.c (check_hello_message): verify that other
11293 connections on the bus also got the correct results, not
11294 just the one sending hello
11296 2003-03-15 Havoc Pennington <hp@pobox.com>
11298 Make it pass the Hello handling test including all OOM codepaths.
11299 Now to do other messages...
11301 * bus/services.c (bus_service_remove_owner): fix crash when
11302 removing owner from an empty list of owners
11303 (bus_registry_ensure): don't leave service in the list of
11304 a connection's owned services if we fail to put the service
11307 * bus/connection.c (bus_connection_preallocate_oom_error): set
11308 error flag on the OOM error.
11310 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11311 handle _dbus_transport_set_connection failure
11313 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11314 to create watches up front and simply enable/disable them as
11316 (unix_connection_set): this can now fail on OOM
11318 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11319 of enabling/disabling a watch or timeout.
11321 * bus/loop.c (bus_loop_iterate): don't touch disabled
11324 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11326 2003-03-15 Havoc Pennington <hp@pobox.com>
11328 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11329 write useful test code, after all that futzing around ;-)
11331 Test does not yet pass because we can't handle OOM in
11332 _dbus_transport_messages_pending (basically,
11333 dbus_connection_preallocate_send() does not prealloc the write
11334 watch). To fix this, I think we need to add new stuff to
11335 set_watch_functions, namely a SetEnabled function so we can alloc
11336 the watch earlier, then enable it later.
11338 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11339 dbus-memory.c to the convenience lib
11341 * bus/test.c: rename some static functions to keep them clearly
11342 distinct from stuff in connection.c. Handle client disconnection.
11344 2003-03-14 Havoc Pennington <hp@pobox.com>
11346 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11347 transport, tests more of the real codepath. Set up clients
11348 with bus_setup_debug_client.
11350 * bus/test.c (bus_setup_debug_client): function to set up debug
11351 "clients" on the main loop
11353 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11356 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11359 * dbus/dbus-server-debug.c: support a debug server based on pipes
11361 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11362 (_dbus_close): new function
11364 * configure.in: check for socketpair
11366 2003-03-14 Havoc Pennington <hp@redhat.com>
11368 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11371 * dbus/dbus-transport-debug.c: rework this a good bit to be
11372 less complicated. hopefully still works.
11374 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11377 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11380 * dbus/dbus-message.c (dbus_message_copy): rename from
11381 dbus_message_new_from_message, fix it up to copy
11382 all the message fields, add test case
11384 * bus/dispatch.c (bus_dispatch_test): add some more test code,
11385 not quite passing yet
11387 2003-03-14 Havoc Pennington <hp@pobox.com>
11389 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11390 until no work remains" in test code. (the large diff here
11391 is just code movement, no actual changes)
11393 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11394 1, no point waiting around for test code.
11395 (_dbus_server_debug_accept_transport): unref the timeout
11396 after adding it (right?)
11398 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11400 2003-03-13 Havoc Pennington <hp@redhat.com>
11402 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11405 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11408 * dbus/dbus-connection.h: Make AddWatchFunction and
11409 AddTimeoutFunction return a bool so they can fail on out-of-memory
11411 * bus/bus.c (bus_context_new): set up timeout handlers
11413 * bus/connection.c (bus_connections_setup_connection): set up
11416 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11419 * bus/bus.c (bus_context_new): adapt to changes
11421 * bus/connection.c: adapt to changes
11423 * test/watch.c: adapt to DBusWatch changes
11425 * bus/dispatch.c (bus_dispatch_test): started adding this but
11428 2003-03-14 Anders Carlsson <andersca@codefactory.se>
11430 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11432 2003-03-13 Havoc Pennington <hp@pobox.com>
11434 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11435 set up a test framework as for the library
11437 2003-03-12 Havoc Pennington <hp@pobox.com>
11439 Throughout: purge global variables, introduce BusActivation,
11440 BusConnections, BusRegistry, etc. objects instead.
11442 * bus/bus.h, bus/bus.c: introduce BusContext as a global
11445 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11446 going to redo this a bit differently I think
11448 2003-03-12 Havoc Pennington <hp@redhat.com>
11450 Mega-patch that gets the message bus daemon initially handling
11451 out-of-memory. Work still needed. Also lots of random
11452 moving stuff to DBusError instead of ResultCode.
11454 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11456 * dbus/dbus-connection.c
11457 (dbus_connection_send_with_reply_and_block): use DBusError
11459 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11462 * dbus/dbus-connection.c (dbus_connection_send): drop the result
11463 code here, as the only failure possible is OOM.
11465 * bus/connection.c (bus_connection_disconnect):
11466 rename bus_connection_disconnected as it's a notification only
11468 * bus/driver.c (bus_driver_handle_acquire_service): don't free
11469 "name" on get_args failure, should be done by get_args;
11470 don't disconnect client for bad args, just return an error.
11471 (bus_driver_handle_service_exists): ditto
11473 * bus/services.c (bus_services_list): NULL-terminate returned array
11475 * bus/driver.c (bus_driver_send_service_lost)
11476 (bus_driver_send_service_acquired): send messages from driver to a
11477 specific client to the client's unique name, not to the broadcast
11480 * dbus/dbus-message.c (decode_header_data): reject messages that
11481 contain no name field
11482 (_dbus_message_get_client_serial): rename to
11483 dbus_message_get_serial and make public
11484 (_dbus_message_set_serial): rename from set_client_serial
11485 (_dbus_message_set_reply_serial): make public
11486 (_dbus_message_get_reply_serial): make public
11488 * bus/connection.c (bus_connection_foreach): allow stopping
11489 iteration by returning FALSE from foreach function.
11491 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11492 (dbus_connection_free_preallocated_send)
11493 (dbus_connection_preallocate_send): new API for sending a message
11494 without possibility of malloc failure.
11495 (dbus_connection_send_message): rename to just
11496 dbus_connection_send (and same for whole function family)
11498 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11500 * dbus/dbus-sysdeps.c (_dbus_exit): new function
11502 * bus/activation.c: handle/return errors
11504 * dbus/dbus-errors.h: add more DBUS_ERROR #define
11506 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11507 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11508 (_dbus_result_from_errno): move to this file
11510 2003-03-10 Anders Carlsson <andersca@codefactory.se>
11512 * dbus/dbus-marshal.c:
11513 (_dbus_marshal_set_string):
11514 Take a length argument so we can marshal the correct string
11517 (_dbus_marshal_dict), (_dbus_demarshal_dict),
11518 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11519 (_dbus_marshal_test):
11520 * dbus/dbus-marshal.h:
11521 Add support for marshalling and demarshalling dicts.
11523 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11524 Add support for TYPE DICT.
11526 * dbus/dbus-message.c: (set_string_field):
11527 Adjust header padding.
11529 (dbus_message_append_args_valist), (dbus_message_append_dict),
11530 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11531 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11532 (check_message_handling), (check_have_valid_message):
11533 * dbus/dbus-message.h:
11534 Add functions for setting and getting dicts.
11536 * dbus/dbus-protocol.h:
11537 Add DBUS_TYPE_DICT.
11542 * doc/dbus-specification.sgml:
11543 Add information about how dicts are marshalled.
11545 * test/data/invalid-messages/dict-with-nil-value.message:
11546 * test/data/invalid-messages/too-short-dict.message:
11547 * test/data/valid-messages/dict-simple.message:
11548 * test/data/valid-messages/dict.message:
11549 Add sample messages containing dicts.
11551 2003-03-08 Anders Carlsson <andersca@codefactory.se>
11553 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11555 2003-03-07 Anders Carlsson <andersca@codefactory.se>
11557 * dbus/Makefile.am:
11558 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11559 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11560 (dbus_dict_set_int32), (dbus_dict_set_uint32),
11561 (dbus_dict_set_double), (dbus_dict_set_string),
11562 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11563 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11564 (dbus_dict_set_string_array), (_dbus_dict_test):
11565 * dbus/dbus-dict.h:
11566 Fix according to comments from Havoc.
11568 2003-03-06 Michael Meeks <michael@server.home>
11570 * configure.in: if we don't have kde-config, disable have_qt.
11572 2003-03-07 Anders Carlsson <andersca@codefactory.se>
11574 * dbus/Makefile.am:
11577 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11578 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11579 (dbus_dict_remove), (dbus_dict_get_value_type),
11580 (dbus_dict_get_keys), (dbus_dict_put_boolean),
11581 (dbus_dict_put_int32), (dbus_dict_put_uint32),
11582 (dbus_dict_put_double), (dbus_dict_put_string),
11583 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11584 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11585 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11586 (dbus_dict_get_int32), (dbus_dict_get_uint32),
11587 (dbus_dict_get_double), (dbus_dict_get_string),
11588 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11589 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11590 (dbus_dict_get_string_array), (_dbus_dict_test):
11591 * dbus/dbus-dict.h:
11592 Add DBusDict implementation
11594 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11595 * dbus/dbus-test.h:
11596 Add _dbus_dict_test
11598 2003-03-04 Havoc Pennington <hp@pobox.com>
11600 * test/data/auth/*: adapt to changes
11602 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11603 USERID_BASE64 and change USERNAME_BASE64 to put in username not
11606 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11607 more stuff from being in a context name, to make the protocol
11608 simpler to deal with
11610 * dbus/dbus-errors.c (dbus_error_has_name): new function
11611 (dbus_error_is_set): new function
11613 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11614 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11616 * dbus/dbus-connection.c (dbus_connection_flush): also read
11617 messages during a flush operation
11619 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11621 2003-03-05 Anders Carlsson <andersca@codefactory.se>
11623 * configure.in: Check for gethostbyname on Solaris.
11625 * dbus/dbus-transport.c: (_dbus_transport_open):
11626 Remove duplicate "tcp" entry.
11628 * doc/dbus-specification.sgml:
11629 Clarify some things.
11631 2003-03-05 Anders Carlsson <andersca@codefactory.se>
11633 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11634 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11635 (_dbus_keyring_test):
11636 * dbus/dbus-md5.c: (_dbus_md5_compute):
11637 * dbus/dbus-sha.c: (_dbus_sha_compute):
11640 2003-03-05 Anders Carlsson <andersca@codefactory.se>
11642 * README: Add some things.
11644 2003-03-04 Anders Carlsson <andersca@codefactory.se>
11646 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11647 after case DBUS_TYPE_BOOELAN.
11649 2003-03-02 Havoc Pennington <hp@pobox.com>
11651 * test/break-loader.c (randomly_set_extreme_ints): add test that
11652 sets really huge and small integers
11654 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11655 that length of boolean array fits in the string, and that
11656 string has room for boolean value in single-bool case.
11658 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11659 optional value to "ALIGN" command which is what to fill the
11662 * test/data/valid-messages/no-padding.message: add regression
11663 test for the message padding problem
11665 2003-03-02 Havoc Pennington <hp@pobox.com>
11667 * dbus/dbus-message.c (decode_header_data): fix to always init
11668 message_padding, from Benjamin Dauvergne
11670 2003-03-02 Havoc Pennington <hp@pobox.com>
11672 * configure.in: 0.5
11676 2003-03-01 Joe Shaw <joe@assbarn.com>
11678 * configure.in: Check for "struct cmsgcred" and try to access its
11679 members for BSD-like unices.
11681 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11682 _dbus_read_credentials_unix_socket().
11683 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11684 read() for reading the credential byte off the unix socket. Use
11685 struct cmsgcred on systems that support it.
11687 2003-02-27 Alexander Larsson <alexl@redhat.com>
11689 * glib/Makefile.am:
11691 Make gthreads-2.0 dependency optional. Don't build thread test if
11694 2003-02-27 Havoc Pennington <hp@pobox.com>
11696 * dbus/dbus-connection.c
11697 (dbus_connection_send_message_with_reply_and_block): fix doh!
11698 doh! doh! bug that resulted in never removing a reply from the
11699 queue, no wonder we called get_reply_serial so much ;-)
11701 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11702 and client serial instead of demarshaling them every time
11704 2003-02-27 Havoc Pennington <hp@pobox.com>
11706 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11707 more inlined, using dbus-string-private.h, speeds things up
11710 * dbus/dbus-string.c (_dbus_string_free): apply align offset
11711 when freeing the string
11712 (_dbus_string_steal_data): fix for align offset
11713 (undo_alignment): new function
11715 2003-02-26 Havoc Pennington <hp@redhat.com>
11717 All kinds of audit fixes from Owen, plus initial attempt to
11718 handle unaligned memory returned from malloc.
11720 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11721 leave room for align_offset and nul byte
11722 (fixup_alignment): function to track an align_offset and
11723 ensure real->str is aligned
11724 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11725 to allow a nul byte plus align offset
11726 (_dbus_string_lock): fix overflow issue
11727 (_dbus_string_init_const_len): add assertions on sanity of len,
11728 assign allocated to be ALLOCATION_PADDING larger than len
11729 (set_length): fixup the overflow handling
11730 (_dbus_string_get_data_len): fix overflow in assertion
11731 (open_gap): detect overflow in size of gap to be opened
11732 (_dbus_string_lengthen): add overflow check
11733 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11734 (_dbus_string_append): add overflow check
11735 (_dbus_string_append_unichar): overflow
11736 (_dbus_string_delete): fix overflow in assertion
11737 (_dbus_string_copy_len): overflow in assertion
11738 (_dbus_string_replace_len): overflows in assertions
11739 (_dbus_string_find): change to implement in terms of
11740 _dbus_string_find_to
11741 (_dbus_string_find_to): assorted fixage
11742 (_dbus_string_equal_c_str): assert c_str != NULL,
11743 fix logic so the function works
11744 (_dbus_string_ends_with_c_str): fix overflow thingy
11745 (_dbus_string_base64_encode): overflow fix
11746 (_dbus_string_validate_ascii): overflow
11747 (_dbus_string_validate_nul): overflow
11749 2003-02-26 Havoc Pennington <hp@redhat.com>
11751 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11753 2003-02-26 Alexander Larsson <alexl@redhat.com>
11756 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11758 * dbus/dbus-connection.c:
11759 * dbus/dbus-connection.h:
11760 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11761 Add dbus_connection_set_wakeup_main_function and use it when queueing
11762 incoming and outgoing messages.
11765 * dbus/dbus-dataslot.c:
11766 Threadsafe usage of DBusDataSlotAllocator
11768 * dbus/dbus-message.c: (dbus_message_get_args_iter):
11771 * dbus/dbus-server-unix.c:
11774 * glib/dbus-gmain.c:
11775 Implement the new wakeup functions for glib.
11777 * glib/Makefile.am:
11778 * glib/test-thread-client.c:
11779 * glib/test-thread-server.c:
11780 * glib/test-thread.h:
11781 Initial cut at some thread test code. Not really done yet.
11783 2003-02-26 Havoc Pennington <hp@pobox.com>
11785 * dbus/dbus-connection.c
11786 (dbus_connection_send_message_with_reply_and_block): fix crash
11787 where we ref'd the outgoing message instead of the returned reply
11789 * dbus/dbus-transport-unix.c (do_authentication): check read watch
11790 at the end of this function, so if we didn't need to read for
11791 authentication, we reinstall it for receiving messages
11793 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11794 a NULL sender for peer-to-peer case
11796 * dbus/dbus-transport-unix.c (check_read_watch): handle
11797 !authenticated case correctly
11799 * glib/dbus-gmain.c: add support for DBusServer
11801 * dbus/dbus-server.c: add data slot support
11803 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11804 return values and handle errors
11806 * dbus/dbus-dataslot.c: factor out the data slot stuff from
11809 * Doxyfile.in (INPUT): add glib subdir
11811 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11812 setup_with_g_main instead of hookup_with_g_main; write docs
11814 2003-02-24 Anders Carlsson <andersca@codefactory.se>
11816 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11817 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11818 * dbus/dbus-message.c: (dbus_message_append_boolean),
11819 (dbus_message_append_boolean_array),
11820 (dbus_message_get_args_valist), (_dbus_message_test):
11821 * dbus/dbus-message.h:
11822 * doc/dbus-specification.sgml:
11823 Various fixes as pointed out by Havoc.
11825 * test/data/invalid-messages/bad-boolean-array.message:
11826 * test/data/invalid-messages/bad-boolean.message:
11827 Add invalid boolean value test cases.
11829 2003-02-24 Anders Carlsson <andersca@codefactory.se>
11831 * dbus/dbus-internals.c: (_dbus_type_to_string):
11832 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11833 (_dbus_marshal_validate_arg):
11834 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11835 * dbus/dbus-message.c: (dbus_message_append_args_valist),
11836 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11837 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11838 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11839 (dbus_message_iter_get_double),
11840 (dbus_message_iter_get_boolean_array), (message_iter_test):
11841 * dbus/dbus-message.h:
11842 * dbus/dbus-protocol.h:
11843 * doc/dbus-specification.sgml:
11844 * test/data/valid-messages/lots-of-arguments.message:
11845 Add support for boolean and boolean array types.
11847 2003-02-23 Havoc Pennington <hp@pobox.com>
11849 * dbus/dbus-keyring.c: finish most of this implementation and
11852 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11853 these barf if the error isn't cleared to NULL
11855 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11856 (_dbus_create_directory): new function
11858 * dbus/dbus-errors.c (dbus_set_error): fix warning
11860 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11861 (_dbus_string_hex_decode): new function
11862 (test_hex_roundtrip): test code
11864 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11866 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11868 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11869 the save-to-temp/rename trick to atomically write the new file
11870 (_dbus_string_parse_uint): new function
11872 2003-02-22 Havoc Pennington <hp@pobox.com>
11874 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11876 2003-02-22 Havoc Pennington <hp@pobox.com>
11878 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11879 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11881 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11883 * dbus/test/data/sha-1: add US government test suite for SHA-1
11885 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11887 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11888 Make string arrays NULL-terminated.
11890 * dbus/dbus-memory.c: (dbus_free_string_array):
11891 * dbus/dbus-memory.h:
11892 New function for freeing NULL-terminated string arrays.
11894 * dbus/dbus-message-builder.c: (append_quoted_string),
11895 (_dbus_message_data_load):
11896 Add support for array types.
11898 * dbus/dbus-message.c: (check_message_handling):
11899 Add more types as test cases.
11901 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11902 (_dbus_string_parse_double):
11903 Add the start offset to the end offset.
11905 * test/data/valid-messages/lots-of-arguments.message:
11906 New test message with lots of arguments.
11908 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11910 * dbus/dbus-message.c: (dbus_message_append_nil),
11911 (dbus_message_append_int32), (dbus_message_append_uint32),
11912 (dbus_message_append_double), (dbus_message_append_string),
11913 (dbus_message_append_int32_array),
11914 (dbus_message_append_uint32_array),
11915 (dbus_message_append_double_array),
11916 (dbus_message_append_byte_array),
11917 (dbus_message_append_string_array):
11918 Fix all out-of-memory handling in these functions.
11920 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11922 * dbus/dbus-message.c: (dbus_message_append_nil):
11925 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11927 * dbus/dbus-message.c: (dbus_message_append_args_valist),
11928 (dbus_message_append_nil), (dbus_message_append_int32_array),
11929 (dbus_message_append_uint32_array),
11930 (dbus_message_append_double_array),
11931 (dbus_message_append_byte_array),
11932 (dbus_message_append_string_array), (dbus_message_get_args_valist),
11933 (dbus_message_iter_get_int32_array),
11934 (dbus_message_iter_get_uint32_array),
11935 (dbus_message_iter_get_double_array),
11936 (dbus_message_iter_get_byte_array),
11937 (dbus_message_iter_get_string_array):
11939 * dbus/dbus-message.h:
11940 Add functions for appending and getting arrays.
11942 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11944 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11945 element size at least 8 bytes, fixes mempool tests on
11948 2003-02-20 Alexander Larsson <alexl@redhat.com>
11950 * dbus/dbus-transport-unix.c (unix_do_iteration):
11951 Unlock the connection mutex during a blocking select call.
11952 Add todo about how we need a way to wake up the select.
11954 * dbus/dbus-connection-internal.h:
11955 * dbus/dbus-connection.c:
11956 Add _dbus_connection_lock and _dbus_connection_unlock.
11958 2003-02-19 Havoc Pennington <hp@pobox.com>
11960 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11961 Doxyfile.in, not Doxyfile
11963 * dbus/dbus-keyring.c: do some hacking on this
11965 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11967 * dbus/dbus-errors.c (dbus_set_error_const): do not call
11969 (dbus_set_error): remove dbus_error_init, check for message ==
11970 NULL *before* we sprintf into it, and add @todo about including
11971 system headers in this file
11973 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11975 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11977 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11978 get various bits of user information based on either username
11980 (_dbus_homedir_from_username): new function
11982 2003-02-19 Anders Carlsson <andersca@codefactory.se>
11985 Add check for nonposix getpwnam_r
11987 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11988 Align the pool element size to a sizeof (void *) boundary.
11990 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11991 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11992 General Solaris fixes.
11994 * test/data/valid-messages/simplest-manual.message:
11995 Explicitly state that we want little-endian packing.
11997 2003-02-19 Mikael Hallendal <micke@codefactory.se>
11999 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12001 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12002 Added to create a transport connecting using a tcp/ip socket.
12004 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12005 to a tcp socket at given host and port.
12006 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12009 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12011 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12012 Added to create a server listening on a TCP/IP socket.
12014 2003-02-19 Havoc Pennington <hp@pobox.com>
12016 Throughout: mop up all the Doxygen warnings and undocumented
12019 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12020 to search any paths.
12022 * dbus/dbus-threads.c: move global mutex initializers to
12023 dbus-internals.h, multiple prototypes was confusing doxygen
12024 besides being kind of ugly
12026 * Doxyfile (PREDEFINED): have Doxygen define
12027 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12028 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12029 (do not abuse the feature! it's for stuff like the autogenerated
12030 macros in dbus-md5.c, not just for things you don't feel like
12033 2003-02-18 Havoc Pennington <hp@pobox.com>
12035 * dbus/dbus-string.c (_dbus_string_zero): new function
12037 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12038 wrap it in some dbus-friendly API
12040 * dbus/dbus-types.h: add 16-bit types
12042 2003-02-18 Joe Shaw <joe@assbarn.com>
12044 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12045 credentials from our currently running process.
12046 (get_word): Fix a buglet where we were copying the entire length
12047 instead of relative to our position.
12049 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12050 keys on the stack... it's 640k of data.
12052 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12053 read the credentials byte off the socket, even if we don't have
12055 (_dbus_poll): Implement poll() using select() for systems which
12058 * glib/test-dbus-glib.c (main): Print out an error if no
12059 parameters are given.
12061 * test/data/auth/fallback.auth-script: Added. Tests that a client
12062 can fallback to a secondary auth mechanism if the first fails.
12064 2003-02-18 Havoc Pennington <hp@pobox.com>
12066 * AUTHORS: add Alex
12068 2003-02-17 Havoc Pennington <hp@pobox.com>
12070 * doc/dbus-specification.sgml: lots of cosmetic
12071 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12072 env variable to DBUS_BUS_ADDRESS, s/client/application/,
12073 s/server/bus/ (except in authentication section). Add a section
12074 "Message Bus Message Routing"
12076 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
12082 2003-02-17 Anders Carlsson <andersca@codefactory.se>
12084 * doc/dbus-specification.sgml:
12085 Specification updates.
12087 2003-02-17 Anders Carlsson <andersca@codefactory.se>
12089 * bus/activation.c: (bus_activation_init), (child_setup),
12090 (bus_activation_activate_service):
12091 * bus/activation.h:
12092 * bus/main.c: (main):
12093 Set DBUS_ADDRESS environment variable.
12095 * dbus/dbus-errors.c: (dbus_set_error):
12096 Don't use va_copy since that's a C99 feature.
12098 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
12099 (_dbus_spawn_async):
12100 * dbus/dbus-sysdeps.h:
12101 Add child_setup_func to _dbus_spawn_async.
12103 * doc/dbus-specification.sgml:
12104 Update specification.
12106 * test/spawn-test.c: (setup_func), (main):
12109 2003-02-17 Alexander Larsson <alexl@redhat.com>
12111 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
12114 2003-02-17 Anders Carlsson <andersca@codefactory.se>
12118 * doc/dbus-test-plan.sgml:
12119 Add test plan document.
12121 * test/Makefile.am:
12124 2003-02-17 Anders Carlsson <andersca@codefactory.se>
12126 * dbus/dbus-message.c: (decode_header_data),
12127 (_dbus_message_loader_return_buffer):
12128 Set the header padding amount when loading a message.
12130 2003-02-16 Anders Carlsson <andersca@codefactory.se>
12132 * bus/dispatch.c: (send_one_message):
12133 Only send broadcast messages to registered connections.
12135 * dbus/dbus-message.c: (dbus_message_name_is):
12136 * dbus/dbus-message.h:
12137 New convenience function.
12139 * dbus/dbus-transport-debug.c: (do_reading):
12140 Only dispatch one message per run.
12142 * test/Makefile.am:
12143 * test/bus-test.c: (new_connection_callback), (die),
12144 (test_hello_client1_handler), (test_hello_client2_handler),
12145 (test_hello_replies), (main):
12147 * test/bus-test-loop.[ch]:
12150 2003-02-16 Havoc Pennington <hp@pobox.com>
12152 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12153 backward conditional
12155 2003-02-16 Alexander Larsson <alexl@redhat.com>
12157 * dbus/dbus-connection.c:
12158 Implement sent_message_with_reply. (with_reply_and block is still
12160 Made dispatch_message not lose message if OOM.
12162 * dbus/dbus-errors.h:
12163 Add NoReply error (for reply timeouts).
12165 2003-02-16 Alexander Larsson <alexl@redhat.com>
12167 * dbus/dbus-hash.c (_dbus_hash_table_unref):
12168 Actually free keys and values when destroying hashtable.
12170 2003-02-16 Anders Carlsson <andersca@codefactory.se>
12172 * dbus/dbus-auth.c: (client_try_next_mechanism):
12175 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12176 Return TRUE if there's no thread implementation around.
12178 * glib/dbus-gmain.c: (free_source),
12179 (dbus_connection_hookup_with_g_main):
12180 Make sure to remove the GSource when the connection is finalized.
12182 2003-02-16 Anders Carlsson <andersca@codefactory.se>
12184 * bus/dispatch.c: (bus_dispatch_message_handler):
12185 * dbus/dbus-errors.h:
12186 Return an error if someone tries to send a message to a service
12187 that doesn't exist.
12189 2003-02-16 Anders Carlsson <andersca@codefactory.se>
12191 * bus/activation.c: (load_directory), (bus_activation_init),
12192 (bus_activation_activate_service):
12193 * bus/activation.h:
12195 (bus_driver_handle_activate_service), (bus_driver_handle_message):
12196 More work on the activation handling.
12198 * dbus/dbus-errors.h:
12199 Add some error messages
12201 * dbus/dbus-message.c: (dbus_message_new_error_reply):
12202 * dbus/dbus-message.h:
12203 New function that creates an error message.
12205 * dbus/dbus-protocol.h:
12206 Add ACTIVATE_SERVER message.
12208 * dbus/dbus-server-unix.c: (unix_handle_watch),
12209 (_dbus_server_new_for_domain_socket):
12210 Call _dbus_fd_set_close_on_exec.
12212 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12213 (_dbus_spawn_async), (_dbus_disable_sigpipe),
12214 (_dbus_fd_set_close_on_exec):
12215 * dbus/dbus-sysdeps.h:
12216 Add _dbus_fd_set_close_on exec function. Also add function that checks
12217 that all open fds are set to close-on-exec and warns otherwise.
12219 * dbus/dbus-transport-unix.c:
12220 (_dbus_transport_new_for_domain_socket):
12221 Call _dbus_fd_set_close_on_exec.
12223 2003-02-16 Havoc Pennington <hp@pobox.com>
12225 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12226 allow people to avoid setting SIGPIPE to SIG_IGN
12227 (_dbus_connection_new_for_transport): disable SIGPIPE unless
12228 we've been asked not to
12230 2003-02-15 Anders Carlsson <andersca@codefactory.se>
12232 * dbus/dbus-list.c: (_dbus_list_append_link),
12233 (_dbus_list_prepend_link):
12234 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12238 2003-02-15 Anders Carlsson <andersca@codefactory.se>
12241 * bus/activation.c: (bus_activation_entry_free),
12242 (add_desktop_file_entry), (load_directory), (bus_activation_init):
12243 * bus/activation.h:
12244 * bus/main.c: (main):
12245 Add simple activation support, doesn't work yet though.
12247 2003-02-15 Zack Rusin <zack@kde.org>
12249 * qt/dbus-qthread.cpp: small casting fix
12251 2003-02-15 Anders Carlsson <andersca@codefactory.se>
12253 * dbus/dbus-errors.c: (dbus_set_error):
12254 * dbus/dbus-errors.h:
12255 Add a few errors and make dbus_set_error void.
12257 * dbus/dbus-sysdeps.c:
12258 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12259 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12260 * dbus/dbus-sysdeps.h:
12261 Add _dbus_spawn_async.
12263 * test/spawn-test.c: (main):
12264 Test for _dbus_spawn_async.
12266 2003-02-15 Anders Carlsson <andersca@codefactory.se>
12268 * dbus/dbus-internals.h:
12269 Fix build without tests.
12271 * dbus/dbus-list.c: (alloc_link):
12272 Fix a segfault when a malloc fails.
12274 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12275 (dbus_malloc0), (dbus_realloc):
12276 Add support for malloc debugging.
12278 2003-02-15 Alexander Larsson <alexl@redhat.com>
12280 * dbus/dbus-threads.c:
12281 * dbus/dbus-threads.h:
12282 Add condvars. Remove static mutext from API.
12283 Implement static mutexes by initializing them from threads_init.
12285 * glib/dbus-gthread.c:
12286 * qt/dbus-qthread.cpp:
12287 Update with the thread api changes.
12290 * dbus/dbus-list.c:
12291 * dbus/dbus-list.h:
12292 Turn StaticMutex into normal mutex + init function.
12293 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12294 _dbus_list_append_link, _dbus_list_prepend_link
12297 * dbus/dbus-sysdeps.c:
12298 * dbus/dbus-sysdeps.h:
12299 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12300 _dbus_atomic_dec. Only slow fallback implementation at the moment.
12302 * dbus/dbus-protocol.h:
12303 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12305 * dbus/dbus-message.c:
12306 Make ref/unref atomic.
12309 * dbus/dbus-connection-internal.h:
12310 * dbus/dbus-connection.c:
12311 * dbus/dbus-connection.h:
12313 Change _peek to _borrow,_return & _steal_borrowed.
12314 Change disconnect callback to event.
12315 Make dbus_connection_dispatch_messages reentrant.
12317 * dbus/dbus-transport.c:
12318 Don't ref the connection on calls to the transport
12321 * dbus/dbus-message-handler.c:
12324 * glib/dbus-gmain.c:
12325 Don't use peek_message anymore
12327 * test/Makefile.am:
12328 * test/debug-thread.c:
12329 * test/debug-thread.h:
12330 Simple thread implementation that asserts() on deadlocks in
12331 single-threaded code.
12334 (main) Call debug_threads_init.
12337 Use disconnect message instead of disconnect callback.
12339 * bus/connection.c:
12340 * bus/connection.h:
12341 Don't call dbus_connection_set_disconnect_function. Instead export
12342 bus_connection_disconnect.
12345 Call bus_connection_disconnect when we get a disconnected message.
12347 2003-02-15 Havoc Pennington <hp@pobox.com>
12349 * dbus/dbus-message.c (dbus_message_new): fool around with the
12352 2003-02-14 Havoc Pennington <hp@pobox.com>
12354 * dbus/dbus-mempool.c: fail if the debug functions so indicate
12356 * dbus/dbus-memory.c: fail if the debug functions indicate we
12359 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12360 (_dbus_decrement_fail_alloc_counter): debug functions to
12361 simulate memory allocation failures
12363 2003-02-14 Havoc Pennington <hp@pobox.com>
12365 * dbus/dbus-errors.h (struct DBusError): add a word of padding
12368 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12370 * bus/driver.c: (bus_driver_handle_hello):
12372 * bus/services.c: (bus_service_lookup):
12373 Reorder message sending so we get a more sane order.
12375 * test/bus-test.c: (message_handler):
12378 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12380 * bus/driver.c: (bus_driver_send_service_deleted),
12381 (bus_driver_send_service_created), (bus_driver_send_service_lost),
12382 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12383 (bus_driver_send_welcome_message),
12384 (bus_driver_handle_list_services),
12385 (bus_driver_handle_acquire_service),
12386 (bus_driver_handle_service_exists):
12387 * dbus/dbus-bus.c: (dbus_bus_register_client),
12388 (dbus_bus_acquire_service), (dbus_bus_service_exists):
12389 * dbus/dbus-errors.c: (dbus_result_to_string):
12390 * dbus/dbus-errors.h:
12391 * dbus/dbus-message.c: (dbus_message_append_args),
12392 (dbus_message_append_args_valist), (dbus_message_get_args),
12393 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12394 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12395 (dbus_message_iter_get_byte_array),
12396 (dbus_message_iter_get_string_array), (message_iter_test),
12397 (check_message_handling), (_dbus_message_test):
12398 * dbus/dbus-message.h:
12399 * test/bus-test.c: (main):
12400 Change fields to arguments in messages, so that they won't be
12401 confused with header fields.
12403 * glib/test-dbus-glib.c: (main):
12404 Remove append_fields from hello message.
12406 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12408 * dbus/dbus-errors.c:
12409 * dbus/dbus-message.c:
12410 * dbus/dbus-string.c:
12411 Documentation fixes.
12413 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12415 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12417 Implement support for timeouts in dbus-glib.
12419 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12421 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12422 * dbus/dbus-message.c: (process_test_subdir):
12423 * test/break-loader.c: (find_breaks_based_on):
12424 Plug some memory leaks.
12426 2003-02-13 Richard Hult <rhult@codefactory.se>
12428 * bus/main.c: Fix build.
12430 * dbus/dbus-errors.h:
12431 * dbus/dbus-errors.c: Fix copyright for Anders.
12433 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12438 * bus/connection.c: (bus_connection_foreach):
12441 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12442 (unescape_string), (new_section), (parse_section_start),
12443 (parse_key_value), (report_error), (bus_desktop_file_load),
12444 (bus_desktop_file_get_string):
12445 * bus/desktop-file.h:
12446 Use DBusError for error reporting.
12448 * bus/dispatch.c: (send_one_message),
12449 (bus_dispatch_message_handler):
12450 * bus/driver.c: (bus_driver_send_service_deleted),
12451 (bus_driver_send_service_created), (bus_driver_send_service_lost),
12452 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12453 (bus_driver_send_welcome_message),
12454 (bus_driver_handle_list_services),
12455 (bus_driver_handle_acquire_service),
12456 (bus_driver_handle_service_exists):
12457 * bus/loop.c: (bus_loop_run):
12459 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12461 * bus/utils.c: (bus_wait_for_memory):
12463 New files with general utility functions.
12465 * dbus/dbus-internals.h:
12466 Remove _DBUS_HANDLE_OOM.
12468 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12470 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12471 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12472 * dbus/dbus-errors.h:
12473 Add DBusError structure.
12475 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12477 * test/data/valid-messages/standard-acquire-service.message:
12478 * test/data/valid-messages/standard-hello.message:
12479 * test/data/valid-messages/standard-list-services.message:
12480 * test/data/valid-messages/standard-service-exists.message:
12481 Add some standard messages.
12483 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12485 * bus/driver.c: (bus_driver_send_welcome_message),
12486 (bus_driver_handle_list_services),
12487 (bus_driver_handle_acquire_service),
12488 (bus_driver_handle_service_exists), (bus_driver_handle_message):
12489 Update for API changes in libdbus.
12491 * dbus/dbus-message.c: (dbus_message_new_reply):
12492 * dbus/dbus-message.h:
12493 Remove the name argument. The spec states that replies shouldn't
12496 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12498 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12499 (report_error), (bus_desktop_file_load), (lookup_section),
12500 (lookup_line), (bus_desktop_file_get_raw),
12501 (bus_desktop_file_get_string):
12502 * bus/desktop-file.h:
12503 Some fixes, and new functions for getting a key value from a section.
12505 2003-02-13 Havoc Pennington <hp@pobox.com>
12507 * test/data/auth/fail-after-n-attempts.auth-script: new test
12509 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12512 2003-02-13 Havoc Pennington <hp@pobox.com>
12514 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12515 dbus_credentials_match were backward
12517 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12518 NO_CREDENTIALS and ROOT_CREDENTIALS
12520 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12521 into here. Never process more commands after we've reached an
12522 end state; store further data as unused bytes.
12524 * test/data/auth/*: add more auth tests
12526 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12527 command to match exact string and EXPECT_UNUSED to match unused
12530 * test/Makefile.am (dist-hook): fix to dist all the test stuff
12532 2003-02-12 Havoc Pennington <hp@pobox.com>
12534 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12535 \r off of popped lines
12537 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12540 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12543 2003-02-12 Havoc Pennington <hp@pobox.com>
12545 * dbus/Makefile.am: remove break-loader from the build, since it
12548 * configure.in: add --enable-gcov to turn on coverage profiling
12549 flags and disable optimization
12551 2003-02-10 Havoc Pennington <hp@pobox.com>
12553 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12554 initial cut at test framework for DBusAuth from laptop.
12555 Doesn't quite work yet but it compiles and I need to get
12556 it off the 266mhz laptop. ;-)
12558 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12559 fix a memleak in error case
12561 2003-02-12 Anders Carlsson <andersca@codefactory.se>
12564 * bus/desktop-file.c:
12565 * bus/desktop-file.h:
12566 Add a desktop file parser.
12568 2003-02-11 Zack Rusin <zack@kde.org>
12570 * qt/message.[h|cpp]: sample implementation
12571 of the KDE wrapper for DBusMessage
12573 2003-02-09 Zack Rusin <zack@kde.org>
12575 * test/bus-test.c: make_it_compile
12576 * doc/dbus-specification.sgml: minimal semantic fix
12578 2003-02-06 Anders Carlsson <andersca@codefactory.se>
12584 2003-02-06 Anders Carlsson <andersca@codefactory.se>
12586 * dbus/Makefile.am:
12587 * dbus/dbus-break-loader.c:
12588 * test/Makefile.am:
12589 * test/break-loader.c:
12590 Move dbus-break-loader to test/ and rename it to break-loader.
12592 2003-02-02 Havoc Pennington <hp@pobox.com>
12594 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12595 for code to manage cookies in your home directory
12597 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12599 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12600 to authenticate, then disconnect the client.
12602 2003-02-03 Alexander Larsson <alexl@redhat.com>
12604 * dbus/dbus-message.c (dbus_message_append_fields):
12607 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12609 * doc/dbus-specification.sgml:
12610 Update address format section.
12612 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12614 * test/Makefile.am:
12615 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12616 (message_handler), (new_connection_callback), (loop_quit),
12617 (loop_run), (main):
12620 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12622 * bus/driver.c: (bus_driver_handle_service_exists):
12623 Simplify the code a bit.
12625 * dbus/dbus-bus.c: (dbus_bus_service_exists):
12628 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12631 Add libdbus-daemon.la and link to it.
12633 2003-02-01 James Willcox <jwillcox@gnome.org>
12635 * bus/driver.c: (bus_driver_handle_own_service):
12636 Actually include the service reply code in the message.
12638 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12640 * bus/driver.c: (bus_driver_handle_service_exists):
12641 Don't unref the incoming message.
12643 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12645 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12647 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12649 * dbus/dbus-server.c: (dbus_server_listen):
12650 * dbus/dbus-transport.c: (_dbus_transport_open):
12651 ifdef out the calls to the debug transport and server.
12653 2003-02-02 Alexander Larsson <alexl@redhat.com>
12655 * dbus/dbus-watch.c (dbus_watch_get_flags):
12656 Add note in the docs that ERROR or HANGUP won't be returned
12657 and are assumed always on.
12659 * glib/dbus-gmain.c (add_watch):
12660 Always add IO_ERR | IO_HUP
12662 * dbus/dbus-message.h:
12663 Add semicolon after dbus_message_iter_get_string_array().
12664 Makes qt code build again
12666 2003-02-01 Anders Carlsson <andersca@codefactory.se>
12668 * bus/driver.c: (create_unique_client_name),
12669 (bus_driver_handle_hello):
12670 Don't take a name, just use a numeric id to identify
12673 * dbus/Makefile.am:
12674 * dbus/dbus-bus.c: (dbus_bus_register_client),
12675 (dbus_bus_acquire_service), (dbus_bus_service_exists):
12677 Add new convenience functions for communicating with the bus.
12679 * dbus/dbus-message.h:
12681 * dbus/dbus-protocol.h:
12684 2003-02-01 Alexander Larsson <alexl@redhat.com>
12686 * dbus/dbus-message.c (dbus_message_append_fields):
12687 Add some more doc comments.
12689 2003-02-01 Havoc Pennington <hp@pobox.com>
12691 * dbus/dbus-break-loader.c (randomly_modify_length): change
12692 a 4-byte value in the message as if it were a length
12694 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12695 execute bit on saved files
12697 2003-02-01 Havoc Pennington <hp@pobox.com>
12699 * dbus/dbus-break-loader.c (main): new program to find messages
12700 that break the loader.
12702 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12703 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12705 * dbus/dbus-string.c (_dbus_string_set_byte): new
12707 2003-01-31 Havoc Pennington <hp@pobox.com>
12709 * dbus/dbus-message.c: refactor the test code to be more general,
12710 in preparation for writing a "randomly permute test cases to
12711 try to break the loader" program.
12713 2003-01-31 Havoc Pennington <hp@pobox.com>
12715 * doc/dbus-specification.sgml: work on the specification
12717 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12718 the protocol version of the message.
12720 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12721 no longer specifies that.
12722 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12725 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12726 "break" for DBUS_TYPE_NIL, remove @todo
12728 2003-01-31 Havoc Pennington <hp@pobox.com>
12730 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12731 just set_is_error/get_is_error as this is a commonly-used
12732 function, and write docs.
12734 2003-01-31 Anders Carlsson <andersca@codefactory.se>
12736 * dbus/dbus-address.c: (dbus_address_entry_free):
12737 Free key and value lists.
12739 * dbus/dbus-internals.c: (_dbus_type_to_string):
12740 Add the types we didn't have.
12742 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12743 (_dbus_marshal_validate_arg):
12746 * dbus/dbus-message.c: (dbus_message_set_sender):
12747 Remove todo about being able to set sender to NULL.
12749 (dbus_message_set_is_error_reply),
12750 (dbus_message_get_is_error_reply):
12751 * dbus/dbus-message.h:
12754 * dbus/dbus-protocol.h:
12755 Add error reply flag.
12757 * test/data/valid-messages/opposite-endian.message:
12758 Add NIL type to test.
12760 2003-01-31 Havoc Pennington <hp@pobox.com>
12762 * doc/dbus-specification.sgml: fully specify the header. Add
12763 flags and major protocol version, and change header/body len to
12766 * dbus/dbus-message-builder.c (append_saved_length): append length
12769 * dbus/dbus-message.c (dbus_message_create_header): change header
12770 length and body length to unsigned. Add the new fields from the
12772 (_dbus_message_loader_return_buffer): unsigned header/body len
12774 2003-01-30 Havoc Pennington <hp@pobox.com>
12776 * dbus/dbus-auth.c: rework to use only REJECTED, no
12779 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12780 use REJECTED, suggested by Mark McLoughlin
12782 2003-01-30 Havoc Pennington <hp@pobox.com>
12784 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12785 a better way to report errors here. e.g. "unix address lacks
12786 path" or something. also "no such file" when the path doesn't
12789 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12791 (dbus_parse_address): add @todo about documenting address format,
12792 and allowing , and ; to be escaped
12794 2003-01-30 Anders Carlsson <andersca@codefactory.se>
12796 * dbus/Makefile.am:
12797 Add dbus-address.[ch]
12799 * dbus/dbus-address.c: (dbus_address_entry_free),
12800 (dbus_address_entries_free), (create_entry),
12801 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12802 (dbus_parse_address), (_dbus_address_test):
12803 * dbus/dbus-address.h:
12804 New files for dealing with address parsing.
12806 * dbus/dbus-connection.c:
12807 Document timeout functions.
12809 * dbus/dbus-message.c:
12810 Document dbus_message_new_from_message.
12812 * dbus/dbus-server-debug.c:
12815 * dbus/dbus-server.c: (dbus_server_listen):
12816 Parse address and use correct server implementation.
12818 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12819 * dbus/dbus-string.h:
12820 New function with test.
12822 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12823 * dbus/dbus-test.h:
12826 * dbus/dbus-transport-debug.c:
12829 * dbus/dbus-transport.c: (_dbus_transport_open):
12830 Parse address and use correct transport implementation.
12832 2003-01-30 Havoc Pennington <hp@pobox.com>
12834 * dbus/dbus-message.c: use message->byte_order instead of
12835 DBUS_COMPILER_BYTE_ORDER throughout.
12836 (dbus_message_create_header): pad header to align the
12837 start of the body of the message to 8-byte boundary
12839 * dbus/dbus-marshal.h: make all the demarshalers take const
12840 DBusString arguments.
12842 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12843 validate message args here, so we don't have to do slow validation
12844 later, and so we catch bad messages as they are incoming. Also add
12845 better checks on header_len and body_len. Also fill in
12846 message->byte_order
12848 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12849 implemented properly)
12850 (_dbus_string_validate_nul): new function to check all-nul
12852 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12853 get_arg_end_pos and remove all validation
12854 (_dbus_marshal_validate_arg): actually do validation here.
12856 2003-01-29 Havoc Pennington <hp@pobox.com>
12858 * dbus/dbus-message.c (check_message_handling): fix assertion
12859 failure on set_client_serial
12861 2003-01-28 Havoc Pennington <hp@pobox.com>
12863 * dbus/dbus-server-debug.c: Add doc section comments
12865 * dbus/dbus-transport-debug.c: add doc section comments
12867 2003-01-28 Havoc Pennington <hp@redhat.com>
12869 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12870 the reverse order from how I had it
12871 (_dbus_string_base64_encode): reverse encoding order. I was
12872 basically byteswapping everything during encoding.
12874 2003-01-28 Anders Carlsson <andersca@codefactory.se>
12876 * dbus/dbus-connection-internal.h:
12877 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12878 (_dbus_connection_remove_timeout):
12879 Add functions for adding and removing timeouts.
12881 * dbus/dbus-message.c: (dbus_message_new_from_message):
12882 Add new function that takes a message and creates an exact
12883 copy of it, but with the refcount set to 1.
12884 (check_message_handling):
12887 * dbus/dbus-server-protected.h:
12888 * dbus/dbus-server.c: (_dbus_server_init_base),
12889 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12890 (dbus_server_set_timeout_functions):
12891 (_dbus_server_remove_timeout):
12892 New functions so that a server can add and remove timeouts.
12894 (dbus_server_listen):
12895 Add commented out call to dbus_server_debug_new.
12897 * dbus/dbus-timeout.c: (_dbus_timeout_new):
12898 Actually set the handler, doh.
12900 * dbus/dbus-transport.c: (_dbus_transport_open):
12901 Add commented out call to dbus_transport_debug_client_new.
12903 * dbus/Makefile.am:
12904 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12906 2003-01-28 Havoc Pennington <hp@pobox.com>
12908 * dbus/dbus-message.c (check_message_handling): function to check
12909 on the loaded message, iterates over it etc.
12911 2003-01-28 Havoc Pennington <hp@pobox.com>
12913 * test/Makefile.am (dist-hook): fix make distdir
12915 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12917 2003-01-27 Havoc Pennington <hp@pobox.com>
12919 * dbus/dbus-mempool.c (time_for_size): replace printf with
12922 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12923 empty lines; fix the SAVE_LENGTH stuff to be
12924 START_LENGTH/END_LENGTH so it actually works; couple other
12927 * test/Makefile.am (dist-hook): add dist-hook for .message files
12929 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12930 can be constant or locked.
12931 (_dbus_string_free): allow freeing a const string as
12932 documented/intended
12934 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12936 * dbus/dbus-test-main.c (main): take an argument which is the
12937 directory containing test data
12939 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12940 argument to this and load all the messages in test/data/
12941 checking that they can be loaded or not loaded as appropriate.
12943 2003-01-27 Anders Carlsson <andersca@codefactory.se>
12945 * bus/dispatch.c: (bus_dispatch_message_handler):
12946 Dispatch messages sent to services.
12948 * bus/driver.c: (bus_driver_send_service_deleted),
12949 (bus_driver_send_service_created), (bus_driver_send_service_lost),
12950 (bus_driver_send_service_acquired):
12951 Add helper functions for sending service related messages.
12953 (bus_driver_send_welcome_message):
12954 Send HELLO_REPLY instead of WELCOME.
12956 (bus_driver_handle_list_services):
12957 Send LIST_SERVICES_REPLY instead of SERVICES.
12959 (bus_driver_handle_own_service),
12960 (bus_driver_handle_service_exists):
12961 New message handlers.
12963 (bus_driver_handle_message):
12964 Invoke new message handlers.
12966 (bus_driver_remove_connection):
12967 Don't remove any services here since that's done automatically
12968 by bus_service_remove_owner now.
12971 New function signatures.
12973 * bus/services.c: (bus_service_add_owner):
12974 Send ServiceAcquired message if we're the only primary owner.
12976 (bus_service_remove_owner):
12977 Send ServiceAcquired/ServiceLost messages.
12979 (bus_service_set_prohibit_replacement),
12980 (bus_service_get_prohibit_replacement):
12981 Functions for setting prohibit replacement.
12983 (bus_service_has_owner):
12984 New function that checks if a connection is in the owner queue of
12988 Add new function signatures.
12990 * dbus/dbus-list.c: (_dbus_list_test):
12991 Add tests for _dbus_list_remove_last and traversing the list backwards.
12993 * dbus/dbus-list.h:
12994 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12995 go any further, so return NULL then.
12997 * dbus/dbus-protocol.h:
12998 Add new messages, service flags and service replies.
13000 2003-01-26 Havoc Pennington <hp@pobox.com>
13002 * dbus/dbus-message-builder.c: implement, completely untested.
13004 * test/data/*: add data to be used in testing.
13005 ".message" files are our simple loadable text format.
13006 ".message-raw" will be binary dumps of messages.
13008 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13010 2003-01-26 Havoc Pennington <hp@pobox.com>
13012 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13014 * dbus/dbus-errors.c (dbus_result_to_string): add
13017 * dbus/dbus-message-builder.c: new file, will contain code to load
13018 up messages from files. Not implemented yet.
13020 2003-01-26 Havoc Pennington <hp@pobox.com>
13022 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13023 the sender by setting to NULL
13025 2003-01-26 Havoc Pennington <hp@pobox.com>
13027 The unit tests pass, but otherwise untested. If it breaks, the
13028 tests should have been better. ;-)
13030 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13033 * dbus/dbus-message.c: redo everything so we maintain
13034 message->header as the only copy of the various fields.
13035 This avoids the possibility of out-of-memory in some cases,
13036 for example dbus_message_lock() can't run out of memory anymore,
13037 and avoids extra copying. Figured I may as well go ahead and do
13038 this since it was busted for dbus_message_lock to not return
13039 failure on OOM, and dbus_message_write_header was totally
13040 unchecked for OOM. Also fixed some random other bugs.
13042 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13043 that strings are nul-terminated. Also, end_pos can be equal
13044 to string length just not greater than, I think.
13045 (_dbus_marshal_set_int32): new function
13046 (_dbus_marshal_set_uint32): new function
13047 (_dbus_marshal_set_string): new function
13049 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13050 a warning, init timeout_list to NULL
13051 (dbus_connection_send_message): don't use uninitialized variable
13054 * dbus/dbus-string.c (_dbus_string_replace_len): new function
13056 2003-01-26 Anders Carlsson <andersca@codefactory.se>
13058 * bus/driver.c: (bus_driver_handle_hello),
13059 (bus_driver_send_welcome_message):
13062 2003-01-26 Anders Carlsson <andersca@codefactory.se>
13064 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13065 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13066 (dbus_connection_unref):
13067 * dbus/dbus-marshal.c: (_dbus_marshal_test):
13068 * dbus/dbus-message.c: (dbus_message_unref),
13071 (dbus_message_get_fields):
13072 Remove debugging printout.
13074 (_dbus_message_loader_return_buffer):
13075 Don't store the header string.
13077 (_dbus_message_test):
13080 2003-01-26 Richard Hult <rhult@codefactory.se>
13082 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13083 the file descriptor list, since it can change under us.
13085 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13087 * glib/dbus-gmain.c: (dbus_connection_prepare),
13088 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
13089 (remove_watch), (dbus_connection_hookup_with_g_main):
13090 Rewrite the glib handling to use its own GSource instead of a
13091 GIOChannel so we can catch messages put in the queue while waiting
13094 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13097 * bus/connection.c: (connection_disconnect_handler),
13098 (connection_watch_callback), (bus_connection_setup):
13099 * bus/dispatch.c: (send_one_message),
13100 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
13101 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
13103 * bus/driver.c: (bus_driver_send_service_deleted),
13104 (bus_driver_send_service_created), (bus_driver_handle_hello),
13105 (bus_driver_send_welcome_message),
13106 (bus_driver_handle_list_services), (bus_driver_remove_connection),
13107 (bus_driver_handle_message):
13109 Refactor code, put the message dispatching in its own file. Use
13110 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
13113 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13115 * dbus/dbus-internals.h:
13116 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13118 * dbus/dbus-message.c: (dbus_message_get_sender):
13119 * dbus/dbus-message.h:
13120 Implement dbus_message_get_sender.
13122 * dbus/dbus-protocol.h:
13123 Add message and service defines.
13125 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13127 * dbus/dbus-connection.c: (dbus_connection_send_message):
13128 * dbus/dbus-message-internal.h:
13129 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13130 (dbus_message_write_header):
13131 Remove _dbus_messag_unlock and don't set the client serial on a
13132 message if one already exists.
13134 2003-01-24 Havoc Pennington <hp@pobox.com>
13136 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13139 * bus/driver.c (bus_driver_handle_list_services): fix a leak
13142 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13144 * dbus/dbus-list.c: (alloc_link), (free_link):
13145 Use a memory pool for the links.
13147 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13149 * bus/connection.c: (bus_connection_foreach):
13150 * bus/connection.h:
13151 Add new bus_connection_foreach function.
13153 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13154 Add function that broadcasts a message to all clients.
13156 (bus_driver_send_service_created), (bus_driver_handle_hello),
13157 (bus_driver_send_welcome_message),
13158 (bus_driver_handle_list_services), (bus_driver_message_handler):
13159 Implement functions that take care of listing services, and notifying
13160 clients when new services are created.
13162 * bus/services.c: (bus_services_list):
13164 Add new function that returns an array of strings with the currently
13165 registered services.
13167 * glib/dbus-glib.h:
13168 * glib/dbus-gmain.c:
13169 Update copyright year.
13171 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13173 * dbus/dbus-connection.c: (dbus_connection_send_message):
13174 Unlock the message in case it was sent earlier.
13176 (dbus_connection_send_message_with_reply_and_block):
13177 Remove the reply message from the list.
13179 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13180 Set array_len and new_pos correctly.
13182 (_dbus_marshal_test):
13183 Remove debug output.
13185 * dbus/dbus-message-internal.h:
13186 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13187 New function that returns the reply serial.
13189 (_dbus_message_unlock):
13190 New function that unlocks a message and resets its header.
13192 (dbus_message_append_string_array),
13193 (dbus_message_get_fields_valist),
13194 (dbus_message_iter_get_field_type),
13195 (dbus_message_iter_get_string_array),
13196 (dbus_message_get_fields),
13197 (dbus_message_append_fields_valist):
13198 Handle string arrays.
13200 (dbus_message_set_sender):
13201 Make this function public since the bus daemon needs it.
13203 (decode_header_data):
13204 Set the reply serial to -1 initially.
13206 * dbus/dbus-message.h:
13207 Add dbus_message_set_sender.
13209 2003-01-24 Havoc Pennington <hp@pobox.com>
13211 * doc/dbus-specification.sgml: add some stuff
13213 2003-01-22 Havoc Pennington <hp@pobox.com>
13215 * doc/dbus-specification.sgml: Start to document the protocol.
13217 2003-01-22 Havoc Pennington <hp@pobox.com>
13219 * dbus/dbus-connection.c
13220 (dbus_connection_send_message_with_reply_and_block): add some @todo
13222 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13224 2003-01-21 Havoc Pennington <hp@pobox.com>
13226 (patch untested because can't compile)
13228 * bus/driver.c (create_unique_client_name): make this function
13229 never recycle client names. Also, caller should initialize
13232 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13234 2003-01-21 Anders Carlsson <andersca@codefactory.se>
13236 * dbus/dbus-marshal.c: (_dbus_marshal_double),
13237 (_dbus_marshal_int32), (_dbus_marshal_uint32),
13238 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13239 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13240 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13241 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13242 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13243 * dbus/dbus-marshal.h:
13244 * dbus/dbus-protocol.h:
13245 Add support for marshalling and demarshalling integer, double
13248 2003-01-21 Anders Carlsson <andersca@codefactory.se>
13253 * bus/connection.c: (connection_disconnect_handler):
13254 Remove the connection from the bus driver's list.
13256 (connection_watch_callback): Dispatch messages.
13258 (free_connection_data): Free connection name.
13260 (bus_connection_setup): Add connection to the bus driver's list.
13261 (bus_connection_remove_owned_service):
13262 (bus_connection_set_name), (bus_connection_get_name):
13263 Add functions for setting and getting the connection's name.
13265 * bus/connection.h:
13266 Add function headers.
13268 * bus/driver.c: (create_unique_client_name),
13269 (bus_driver_handle_hello_message),
13270 (bus_driver_send_welcome_message), (bus_driver_message_handler),
13271 (bus_driver_add_connection), (bus_driver_remove_connection):
13274 * bus/services.c: (bus_service_free):
13276 New file that handles communication and registreation with the bus
13279 2003-01-21 Anders Carlsson <andersca@codefactory.se>
13281 * dbus/dbus-connection.c: (dbus_connection_send_message):
13282 Add a new client_serial parameter.
13284 (dbus_connection_send_message_with_reply):
13285 Remove a @todo since we've implemented the blocking function.
13287 (dbus_connection_send_message_with_reply_and_block):
13288 New function that sends a message and waits for a reply and
13289 then returns the reply.
13291 * dbus/dbus-connection.h:
13294 * dbus/dbus-errors.c: (dbus_result_to_string):
13295 * dbus/dbus-errors.h:
13296 Add new DBUS_RESULT.
13298 * dbus/dbus-message-internal.h:
13299 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13300 (_dbus_message_set_sender), (dbus_message_write_header),
13301 (dbus_message_new_reply), (decode_header_data),
13302 (_dbus_message_loader_return_buffer), (_dbus_message_test):
13303 * dbus/dbus-message.h:
13304 Add new functions that set the reply serial and sender.
13305 Also marshal and demarshal them correctly and add test.
13307 * dbus/dbus-protocol.h:
13308 Add new DBUS_MESSAGE_TYPE_SENDER.
13310 * glib/dbus-glib.h:
13311 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13312 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13313 (dbus_connection_hookup_with_g_main):
13314 * glib/test-dbus-glib.c: (main):
13315 Rewrite to use GIOChannel and remove the GSource crack.
13317 * test/echo-client.c: (main):
13318 * test/watch.c: (check_messages):
13319 Update for changed APIs
13321 2003-01-19 Anders Carlsson <andersca@codefactory.se>
13323 * dbus/Makefile.am: Add dbus-timeout.[cħ]
13325 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13326 Create a DBusTimeoutList.
13327 (dbus_connection_set_timeout_functions): Add new function to
13328 set timeout callbacks
13330 * dbus/dbus-connection.h: Add public DBusTimeout API.
13332 * dbus/dbus-message.c: (dbus_message_get_service):
13333 * dbus/dbus-message.h: New function.
13335 * dbus/dbus-server.c: Fix small doc typo.
13337 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13339 2003-01-19 Anders Carlsson <andersca@codefactory.se>
13341 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13342 of the string, just as long as specified.
13344 2003-01-19 Havoc Pennington <hp@pobox.com>
13346 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13349 * dbus/dbus-server.c (dbus_server_set_max_connections)
13350 (dbus_server_get_max_connections, dbus_server_get_n_connections):
13351 keep track of current number of connections, and add API for
13352 setting a max (but haven't implemented enforcing the max yet)
13354 2003-01-18 Havoc Pennington <hp@pobox.com>
13356 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13357 reading/writing if read_watch != NULL or write_watch != NULL.
13359 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13360 the message loader code to actually load message->header and
13361 message->body into the newly-created message.
13363 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13366 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13367 (dbus_connection_get_max_message_size)
13368 (dbus_connection_set_max_live_messages_size)
13369 (dbus_connection_get_max_live_messages_size): implement some
13370 resource limitation functions
13372 * dbus/dbus-resources.c: new file implementing some of the
13373 resource limits stuff
13375 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13376 missing docs, add @todo to handle OOM etc.
13378 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13381 2003-01-18 Havoc Pennington <hp@pobox.com>
13383 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13384 connection if it hasn't been already.
13386 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13387 replace with DisconnectFunction.
13389 2003-01-18 Havoc Pennington <hp@pobox.com>
13391 Building --disable-verbose-mode --disable-asserts --disable-tests
13392 cuts the library from 112K to 45K or so
13394 * configure.in: check for varargs macro support,
13395 add --enable-verbose-mode, --enable-asserts.
13397 * dbus/dbus-internals.h (_dbus_assert): support
13398 DBUS_DISABLE_ASSERT
13399 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13401 2003-01-18 Havoc Pennington <hp@pobox.com>
13403 * dbus/dbus-test.c: include config.h so that tests actually run
13405 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13406 so the failure mode when that assumption fails will be plenty
13409 2003-01-18 Havoc Pennington <hp@pobox.com>
13411 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13413 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13416 * test/Makefile.am: don't use special variable "TESTS" for echo-*
13417 since we don't want to use those in make check
13419 2003-01-15 Havoc Pennington <hp@redhat.com>
13425 2003-01-15 Havoc Pennington <hp@redhat.com>
13427 * test/Makefile.am: fix so that test source code ends up in the
13428 distribution on make distcheck
13430 2003-01-15 Havoc Pennington <hp@redhat.com>
13436 2003-01-15 Havoc Pennington <hp@redhat.com>
13438 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13439 fix build when --disable-tests
13441 * Makefile.am (EXTRA_DIST): put HACKING in here
13443 * HACKING: document procedure for making a tarball release.
13445 2003-01-14 Anders Carlsson <andersca@codefactory.se>
13447 * bus/connection.c: (connection_error_handler),
13448 (bus_connection_setup):
13449 * bus/main.c: (main):
13450 Make sure that the DBusConnectionData struct is NULLed
13451 out to prevent a segfault.
13453 * dbus/dbus-errors.c: (dbus_result_to_string):
13454 * dbus/dbus-errors.h:
13455 * dbus/dbus-message.c: (dbus_message_get_fields),
13456 (dbus_message_get_fields_valist), (_dbus_message_test):
13457 * dbus/dbus-message.h:
13458 Make dbus_message_get_fields return a result code so we can
13459 track invalid fields as well as oom.
13461 2003-01-11 Havoc Pennington <hp@pobox.com>
13463 * configure.in: change --enable-test/--enable-ansi action-if-given
13464 to enable_foo=$enableval instead of enable_foo=yes
13466 2003-01-08 Havoc Pennington <hp@pobox.com>
13468 * dbus/dbus-string.c (_dbus_string_align_length): new function
13470 * dbus/dbus-test-main.c: move main() for test app here
13472 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13473 symbol to run tests, because dbus-test isn't in the main
13476 Code review nitpicks.
13478 * dbus/dbus-message.c (dbus_message_write_header): add newlines
13479 for people with narrow emacs ;-). Assert client_serial was filled
13480 in. Assert message->name != NULL.
13481 (dbus_message_append_fields): have "first_field_type" arg separate
13482 from va list, needed for C++ binding that also uses varargs IIRC
13483 and helps with type safety
13484 (dbus_message_new): add @todo about using DBusString to store
13485 service/name internally
13486 (dbus_message_new): don't leak ->service and ->name on OOM later
13488 (dbus_message_unref): free the service name
13489 (dbus_message_get_fields): same change to varargs
13490 i.e. first_field_type
13491 (_dbus_message_loader_return_buffer): assert that the message data
13492 is aligned (if not it's a bug in our code). Put in verbose griping
13493 about why we set corrupted = TRUE.
13494 (decode_header_data): add FIXME that char* is evil. Was going to
13495 add FIXME about evil locale-specific string.h strncmp, but just
13496 switched to wacky string-as-uint32 optimization. Move check for
13497 "no room for field name" above get_const_data_len() to avoid
13498 assertion failure in get_const_data_len if we have trailing 2
13499 bytes or the like. Check for service and name fields being
13500 provided twice. Don't leak service/name on error. Require field
13501 names to be aligned to 4 bytes.
13503 * dbus/dbus-marshal.c: move byte swap stuff to header
13504 (_dbus_pack_int32): uscore-prefix
13505 (_dbus_unpack_int32): uscore-prefix
13506 (_dbus_unpack_uint32): export
13507 (_dbus_demarshal_string): add @todo complaining about use of
13509 (_dbus_marshal_get_field_end_pos): add @todo about bad error
13510 handling allowing corrupt data to go unchecked
13512 2003-01-08 Havoc Pennington <hp@redhat.com>
13514 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13515 to the select() as needed for authentication. (should be using
13516 _dbus_poll() not select, but for another day)
13518 * dbus/dbus.h: include dbus/dbus-protocol.h
13520 2003-01-08 Anders Carlsson <andersca@codefactory.se>
13522 * dbus/Makefile.am (dbusinclude_HEADERS): Install
13525 2003-01-08 Anders Carlsson <andersca@codefactory.se>
13527 * dbus/dbus-internals.c: (_dbus_type_to_string):
13528 New function that returns a string describing a type.
13530 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13531 * dbus/dbus-marshal.h:
13532 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13533 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13534 (dbus_message_iter_get_byte_array):
13535 * dbus/dbus-message.h:
13536 Add new convenience functions for appending and getting message fields.
13537 Also add demarshalling routines for byte arrays.
13539 2003-01-07 Anders Carlsson <andersca@codefactory.se>
13541 * dbus/dbus-connection-internal.h:
13542 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13543 (_dbus_connection_get_next_client_serial),
13544 (dbus_connection_send_message):
13545 * dbus/dbus-internals.h:
13546 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13547 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13548 (_dbus_marshal_uint32), (_dbus_demarshal_double),
13549 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13550 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13551 (_dbus_verbose_bytes), (_dbus_marshal_test):
13552 * dbus/dbus-marshal.h:
13553 * dbus/dbus-message-internal.h:
13554 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13555 (dbus_message_write_header), (_dbus_message_lock),
13556 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13557 (dbus_message_get_name), (dbus_message_append_int32),
13558 (dbus_message_append_uint32), (dbus_message_append_double),
13559 (dbus_message_append_string), (dbus_message_append_byte_array),
13560 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13561 (dbus_message_iter_unref), (dbus_message_iter_has_next),
13562 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13563 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13564 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13565 (decode_header_data), (_dbus_message_loader_return_buffer),
13566 (message_iter_test), (_dbus_message_test):
13567 * dbus/dbus-message.h:
13568 * dbus/dbus-protocol.h:
13569 * dbus/dbus-test.c: (main):
13570 * dbus/dbus-test.h:
13571 * glib/test-dbus-glib.c: (message_handler), (main):
13572 * test/echo-client.c: (main):
13573 * test/watch.c: (check_messages):
13574 Make messages sendable and receivable for real.
13576 2003-01-07 Anders Carlsson <andersca@codefactory.se>
13578 * dbus/dbus-marshal.c: (_dbus_marshal_double),
13579 (_dbus_marshal_string), (_dbus_marshal_byte_array):
13580 * dbus/dbus-message.c: (dbus_message_append_int32),
13581 (dbus_message_append_uint32), (dbus_message_append_double),
13582 (dbus_message_append_string), (dbus_message_append_byte_array):
13583 Handle OOM restoration.
13585 2003-01-07 Anders Carlsson <andersca@codefactory.se>
13587 * dbus/dbus-marshal.c: (_dbus_marshal_string),
13588 (_dbus_demarshal_string), (_dbus_marshal_test):
13589 * dbus/dbus-marshal.h:
13590 * dbus/dbus-message.c: (dbus_message_get_name),
13591 Document these functions.
13593 (dbus_message_append_int32), (dbus_message_append_uint32),
13594 (dbus_message_append_double), (dbus_message_append_string),
13595 (dbus_message_append_byte_array):
13596 * dbus/dbus-message.h:
13597 Add functions for adding message fields of different types.
13599 * dbus/dbus-protocol.h:
13600 Add the different types.
13602 2003-01-05 Havoc Pennington <hp@pobox.com>
13604 * bus/connection.c: implement routines for handling connections,
13605 first thing is keeping a list of owned services on each connection
13606 and setting up watches etc.
13608 * bus/services.c: implement a mapping from service names to lists
13611 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13613 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13614 to use static mutexes for global data
13616 * dbus/dbus-connection.c (dbus_connection_set_data): add new
13617 collection of functions to set/get application-specific data
13618 on the DBusConnection.
13620 2003-01-04 Havoc Pennington <hp@pobox.com>
13622 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13623 (_dbus_poll): new function
13625 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13628 * bus/loop.c: initial code for the daemon main loop
13630 2003-01-04 Havoc Pennington <hp@pobox.com>
13632 * test/watch.c (error_handler): make it safe if the error handler
13633 is called multiple times (if we s/error handler/disconnect
13634 handler/ we should just guarantee it's called only once)
13636 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13637 error handler on disconnect (it's quite possible we should
13638 just change the error handler to a "disconnect handler," I'm
13639 not sure we have any other meaningful errors)
13641 * configure.in: check for getpwnam_r
13643 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13644 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13645 mechanism as in SASL spec, using socket credentials
13647 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13648 (_dbus_send_credentials_unix_socket): new function
13650 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13652 (_dbus_write): only check errno if <0 returned
13653 (_dbus_write_two): ditto
13655 2003-01-02 Anders Carlsson <andersca@codefactory.se>
13657 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13658 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13659 (_dbus_marshal_test):
13660 * dbus/dbus-marshal.h:
13661 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13662 to _dbus_marshal_utf8_string. Also fix some tests.
13664 2002-12-28 Harri Porten <porten@kde.org>
13666 * configure.in: added check for C++ compiler and a very cheesy
13667 check for the Qt integration
13669 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13671 * qt/Makefile.am: added
13673 * qt/.cvsignore: added
13675 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13676 latter, added #ifdef QT_THREAD_SUPPORT guard.
13678 * dbus/Makefile.am: added missing headers for make dist
13680 2002-12-28 Kristian Rietveld <kris@gtk.org>
13682 * dbus/Makefile.am: fixup export-symbols-regex.
13684 2002-12-27 Anders Carlsson <andersca@codefactory.se>
13686 * acinclude.m4: Add this file and put the
13687 PKG_CHECK_MODULE macro in it.
13689 2002-12-27 Anders Carlsson <andersca@codefactory.se>
13691 * dbus/dbus-marshal.c: (_dbus_marshal_string),
13692 (_dbus_demarshal_double), (_dbus_demarshal_int32),
13693 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13694 (_dbus_marshal_test):
13695 Make the demarshalling routines align the pos argument.
13696 Add string marshalling tests and fix the obvious bugs
13699 2002-12-26 Havoc Pennington <hp@pobox.com>
13701 * dbus/dbus-auth.c: fixes fixes fixes
13703 * dbus/dbus-transport-unix.c: wire up support for
13704 encoding/decoding data on the wire
13706 * dbus/dbus-auth.c (_dbus_auth_encode_data)
13707 (_dbus_auth_decode_data): append to target string
13708 instead of nuking it.
13710 2002-12-26 Havoc Pennington <hp@pobox.com>
13712 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13713 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13716 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13717 avoid swap_bytes() overhead (ignoring possible assembly stuff for
13718 now). Main point is because I wanted unpack_uint32 to implement
13719 _dbus_verbose_bytes
13720 (_dbus_verbose_bytes): new function
13722 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13724 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13725 mechanism to handle a corrupt message stream
13726 (_dbus_message_loader_new): fix preallocation to only prealloc,
13729 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13730 (_dbus_string_test): enhance tests for copy/move and fix the
13733 * dbus/dbus-transport-unix.c: Hold references in more places to
13734 avoid reentrancy problems
13736 * dbus/dbus-transport.c: ditto
13738 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13739 leak reference count in no-message case
13741 * test/watch.c (do_mainloop): handle adding/removing watches
13742 during iteration over the watches. Also, ref the connection/server
13743 stored on a watch, so we don't try to mangle a destroyed one.
13745 * dbus/dbus-transport-unix.c (do_authentication): perform
13748 * dbus/dbus-auth.c (get_state): add a state
13749 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13750 (_dbus_auth_get_unused_bytes): append the unused bytes
13751 to the passed in string, rather than prepend
13753 * dbus/dbus-transport.c (_dbus_transport_init_base): create
13754 the auth conversation DBusAuth
13756 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13757 (_dbus_transport_new_for_domain_socket): when creating a
13758 transport, pass in whether it's a client-side or server-side
13759 transport so we know which DBusAuth to create
13761 2002-12-03 Havoc Pennington <hp@pobox.com>
13763 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13764 _after_ finalizing the derived members
13765 (unix_connection_set): unref watch if we fail to add it
13767 * dbus/dbus-connection.c (dbus_connection_unref): delete the
13768 transport first, so that the connection owned by the
13769 transport will be valid as the transport finalizes.
13771 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13772 if necessary, and remove watches from the connection.
13774 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13776 2002-12-26 Anders Carlsson <andersca@codefactory.se>
13778 * dbus/dbus-marshal.c: (_dbus_marshal_string),
13779 (_dbus_demarshal_double), (_dbus_demarshal_int32),
13780 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13781 (_dbus_marshal_test):
13782 * dbus/dbus-marshal.h:
13783 Add string marshal functions and have the demarshal functions
13784 return the new position.
13786 2002-12-25 Havoc Pennington <hp@pobox.com>
13788 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13789 it is a simple protocol that just maps directly to SASL.
13791 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13792 initial implementation, not actually used yet.
13794 * dbus/dbus-string.c (_dbus_string_find): new function
13795 (_dbus_string_equal): new function
13796 (_dbus_string_base64_encode): new function
13797 (_dbus_string_base64_decode): new function
13799 2002-12-25 Anders Carlsson <andersca@codefactory.se>
13801 * dbus/Makefile.am:
13802 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13803 (_dbus_marshal_int32), (_dbus_marshal_uint32),
13804 (_dbus_demarshal_double), (_dbus_demarshal_int32),
13805 (_dbus_demarshal_uint32), (_dbus_marshal_test):
13806 * dbus/dbus-marshal.h:
13807 * dbus/dbus-protocol.h:
13808 * dbus/dbus-test.c: (main):
13809 * dbus/dbus-test.h:
13810 Add un-optimized marshalling/demarshalling routines.
13812 2002-12-25 Harri Porten <porten@kde.org>
13814 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13816 2002-12-24 Zack Rusin <zack@kde.org>
13818 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13819 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13822 2002-12-24 Havoc Pennington <hp@pobox.com>
13824 * glib/dbus-gthread.c: fix include
13826 * glib/dbus-glib.h: rename DBusMessageHandler for now.
13827 I think glib API needs to change, though, as you don't
13828 want to use DBusMessageFunction, you want to use the
13829 DBusMessageHandler object. Probably
13830 dbus_connection_open_with_g_main_loop()
13831 and dbus_connection_setup_g_main_loop() or something like that
13832 (but think of better names...) that just create a connection
13833 that has watch/timeout functions etc. already set up.
13835 * dbus/dbus-connection.c
13836 (dbus_connection_send_message_with_reply): new function just to
13837 show how the message handler helps us deal with replies.
13839 * dbus/dbus-list.c (_dbus_list_remove_last): new function
13841 * dbus/dbus-string.c (_dbus_string_test): free a string that
13844 * dbus/dbus-hash.c: use memory pools for the hash entries
13845 (rebuild_table): be more paranoid about overflow, and
13846 shrink table when we can
13847 (_dbus_hash_test): reduce number of sprintfs and write
13848 valid C89. Add tests for case where we grow and then
13849 shrink the hash table.
13851 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13853 * dbus/dbus-connection.c (dbus_connection_register_handler)
13854 (dbus_connection_unregister_handler): new functions
13856 * dbus/dbus-message.c (dbus_message_get_name): new
13858 * dbus/dbus-list.c: fix docs typo
13860 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13861 an object representing a handler for messages.
13863 2002-12-16 Anders Carlsson <andersca@codefactory.se>
13865 * glib/dbus-glib.h:
13866 * glib/dbus-gthread.c: (dbus_gthread_init):
13867 Don't use the gdbus prefix for public functions.
13869 2002-12-16 Anders Carlsson <andersca@codefactory.se>
13873 Add GLib checks and fixup .pc files
13875 * glib/Makefile.am:
13876 * glib/dbus-glib.h:
13877 * glib/dbus-gmain.c: (gdbus_connection_prepare),
13878 (gdbus_connection_check), (gdbus_connection_dispatch),
13879 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13880 (dbus_connection_gsource_new):
13881 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13882 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13883 * glib/test-dbus-glib.c: (message_handler), (main):
13886 2002-12-15 Harri Porten <porten@kde.org>
13888 * autogen.sh: check for libtoolize before attempting to use it
13890 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13893 * .cvsignore: ignore more stamp files
13895 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13897 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13898 without make install.
13900 2002-12-15 Havoc Pennington <hp@pobox.com>
13902 * dbus/dbus-threads.c: add thread stubs that a higher library
13903 layer can fill in. e.g. the GLib wrapper might fill them in with
13904 GThread stuff. We still need to use this thread API to
13905 thread-safe-ize the library.
13907 2002-12-12 Havoc Pennington <hp@pobox.com>
13909 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13910 below new interfaces and include fewer system headers.
13912 * dbus/dbus-sysdeps.c (_dbus_read): new function
13913 (_dbus_write): new function
13914 (_dbus_write_two): new function
13915 (_dbus_connect_unix_socket): new function
13916 (_dbus_listen_unix_socket): new function
13918 * dbus/dbus-message-internal.h: change interfaces to use
13921 2002-12-11 Havoc Pennington <hp@pobox.com>
13923 * dbus/dbus-types.h: add dbus_unichar
13925 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13927 * dbus/dbus-connection.c (dbus_connection_send_message): return
13930 * dbus/dbus-transport.c: include dbus-watch.h
13932 * dbus/dbus-connection.c: include dbus-message-internal.h
13934 * HACKING: add file with coding guidelines stuff.
13936 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13937 handling here, for security purposes (as in vsftpd). Not actually
13938 using this class yet.
13940 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13941 system/libc usage here, as in vsftpd, for ease of auditing (and
13942 should also simplify portability). Haven't actually moved all the
13943 system/libc usage into here yet.
13945 2002-11-25 Havoc Pennington <hp@pobox.com>
13947 * dbus/dbus-internals.c (_dbus_verbose): fix to not
13948 always print the first verbose message.
13950 2002-11-24 Havoc Pennington <hp@pobox.com>
13952 * test/echo-client.c, test/echo-server.c: cheesy test
13955 * configure.in (AC_CHECK_FUNCS): check for writev
13957 * dbus/dbus-message.c (_dbus_message_get_network_data): new
13960 * dbus/dbus-list.c (_dbus_list_foreach): new function
13962 * dbus/dbus-internals.c (_dbus_verbose): new function
13964 * dbus/dbus-server.c, dbus/dbus-server.h: public object
13965 representing a server that listens for connections.
13967 * dbus/.cvsignore: create
13969 * dbus/dbus-errors.h, dbus/dbus-errors.c:
13970 public API for reporting errors
13972 * dbus/dbus-connection.h, dbus/dbus-connection.c:
13973 public object representing a connection that
13974 sends/receives messages. (Same object used for
13975 both client and server.)
13977 * dbus/dbus-transport.h, dbus/dbus-transport.c:
13978 Basic abstraction for different kinds of stream
13979 that we might read/write messages from.
13981 2002-11-23 Havoc Pennington <hp@pobox.com>
13983 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13986 * dbus/dbus-test.c (main): add list test, and include
13987 dbus-test.h as intended
13989 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13990 (_dbus_hash_table_remove_int): return value indicates
13991 whether the entry existed to remove
13993 * dbus/dbus-list.c: add linked list utility class,
13994 with docs and tests
13996 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13999 2002-11-23 Havoc Pennington <hp@pobox.com>
14001 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14002 DBUS_END_DECLS to nothing, that should fix this once and for all
14004 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14006 * dbus/dbus-message.c, dbus/dbus-hash.c:
14007 add some missing @brief
14009 2002-11-23 Havoc Pennington <hp@pobox.com>
14011 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14012 to avoid confusing Doxygen
14014 * dbus/dbus-hash.c: @} not }@
14016 * dbus/dbus-message.c (struct DBusMessage): split out
14019 2002-11-23 Havoc Pennington <hp@pobox.com>
14021 * configure.in: pile on more warning flags if using gcc
14023 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14024 to document static functions
14026 * configure.in: add summary to end of configure so it
14027 looks nice and attractive
14029 * dbus/dbus-hash.c: finish implementation and write unit
14032 * configure.in: add --enable-tests to enable unit tests
14034 * dbus/dbus-test.c: test program to run unit tests
14035 for all files in dbus/*, initially runs a test for
14038 * dbus/dbus-internals.h: file to hold some internal utility stuff
14040 2002-11-22 Havoc Pennington <hp@redhat.com>
14042 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14043 "ported" away from Tcl
14045 * dbus/dbus-types.h: header for types such as dbus_bool_t
14047 2002-11-22 Havoc Pennington <hp@redhat.com>
14049 * dbus/dbus.h: fixups for doc warnings
14051 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14053 (QUIET): make it quiet so we can see warnings
14055 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14057 2002-11-22 Havoc Pennington <hp@redhat.com>
14059 * Makefile.am: include "Doxyfile" target in all-local
14061 * configure.in: generate the Doxyfile
14063 * Doxyfile.in: move Doxyfile here, so we can use
14064 configure to generate a Doxyfile with the right
14065 version number etc.
14067 2002-11-22 Havoc Pennington <hp@redhat.com>
14069 * dbus/dbus-message.c: move inline docs into .c file
14071 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14072 so all docs are under doc/
14073 (MAN_EXTENSION): generate man pages. Use extension
14074 ".3dbus" which matches ".3qt" on my system,
14075 I guess this is OK, I don't know really.
14076 (FILE_PATTERNS): look for .c files not .h, makes sense
14077 for plain C I think
14079 2002-11-22 Havoc Pennington <hp@pobox.com>
14081 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14082 because any app can be a server, and any app can be a client,
14083 the bus is a special kind of server.
14085 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
14087 * Doxyfile : adding. Still needs Makefile rules to be generated
14088 automatically (just run "doxygen" in the toplevel dir for now to
14091 * dbus/dbus-message.h : Adding sample docs (javadoc since
14092 resembles gtk-doc a little more)
14094 * dbus/dbus.h : Adding sample docs
14096 2002-11-21 Havoc Pennington <hp@redhat.com>
14098 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
14099 so we can allow ourselves to include files directly,
14100 instead of having to use dbus.h
14102 * dbus/dbus.h: fill in
14104 * dbus/dbus-message.h: sketch out a sample header file.
14105 Include griping if you include it directly instead of
14108 * dbus/dbus-macros.h: new file with macros for extern "C",
14109 TRUE/FALSE, NULL, etc.
14111 * doc/file-boilerplate.c: put include guards in here
14113 2002-11-21 Havoc Pennington <hp@redhat.com>
14115 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14117 * COPYING: include the GPL as well, and license code
14118 under both AFL and GPL.
14120 2002-11-21 Havoc Pennington <hp@redhat.com>
14122 * acconfig.h: get rid of this
14124 * autogen.sh (run_configure): add --no-configure option
14126 * configure.in: remove AC_ARG_PROGRAM to make
14127 autoconf complain less. add AC_PREREQ.
14128 add AC_DEFINE third arg.
14130 2002-11-21 Anders Carlsson <andersca@codefactory.se>
14133 Fix references so we can distcheck.
14135 2002-11-21 Havoc Pennington <hp@redhat.com>
14137 * Initial module creation