1 2006-08-17 Alp Toker <alp@atoker.com>
3 * doc/dbus-specification.xml: Fix some minor typos.
5 2006-08-17 John (J5) Palmieri <johnp@redhat.com>
7 * configure.in: use $with_init_scripts instead of $operating_system
8 to determine where to store the pid since the init scripts manipulate
9 the pid file (patch from Marcelo Ricardo Leitner
10 <marcelo dot leitner at terra dot com dot br>.
12 2006-08-16 John (J5) Palmieri <johnp@redhat.com>
14 * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
15 static DBusList *uninitialized_condvar_list to support new late
16 initialization threading model. In this model threads can be initialized
17 even after the D-Bus API has been used but still needs to be initialized
18 before the second thread has been started. Mutexes and condvar addresses
19 are stored in the two static lists and are replaced with actuall locks
20 when threads are initalized.
21 (_dbus_mutex_new_at_location): New method for creating a mutex and placing
22 the location into the static list
23 (_dbus_mutex_free_at_location): New method for removing a mutex location
24 from the static list and freeing the mutex
25 (_dbus_condvar_new_at_location): New method for creating a conditional
26 variable and placing the location into the static list
27 (_dbus_condvar_free_at_location): New method for removing a conditional
28 variable location from the static list and freeing the conditional variable
29 (init_uninitialized_locks): Atomic method which goes through the static
30 lists of mutex and condvar location and updates them with actuall locks
31 (init_global_locks): changed to init_locks
33 * dbus/dbus-connection.c:
34 (_dbus_connection_test_get_locks): New method for tests to check connections
35 (_dbus_connection_new_for_transport): Use the new at_location mutex and
37 (dbus_connection_allocate_data_slot): Pass in the global lock address
38 to _dbus_data_slot_allocator_alloc
40 * dbus/dbus-dataslot.c:
41 (_dbus_data_slot_allocator_alloc): Use the address of the mutex
42 instead of the mutex itself
44 * dbus/dbus-message.c:
45 (dbus_message_allocate_data_slot): Pass in the global lock address
46 to _dbus_data_slot_allocator_alloc
48 * dbus/dbus-pending-call.c:
49 (dbus_pending_call_allocate_data_slot): Pass in the global lock address
50 to _dbus_data_slot_allocator_alloc
53 (_dbus_server_init_base): Use the new at_location mutex API
54 (dbus_server_allocate_data_slot): Pass in the global lock address
55 to _dbus_data_slot_allocator_alloc
57 * test/name-test/test-threads-init.c: New test case for late thread
60 2006-08-14 John (J5) Palmieri <johnp@redhat.com>
62 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
63 Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
64 causes compile problems when asserts are turned off
65 Keeping _dbus_warn for printing out the message so even if
66 asserts are turned off the user gets the messages that something is
69 2006-08-14 John (J5) Palmieri <johnp@redhat.com>
71 Patches by Kjartan Maraas <kmaraas at gnome dot org>
73 * bus/services.c (bus_service_list_queued_owners):
74 Add a pointer cast to fix compiler warning
76 * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
77 return a NULL instead of FALSE since the return type
78 is not expecting a boolean
80 * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
81 Remove unused variable
83 * dbus/dbus-marshal-recursive-util.c (node_new):
84 return a NULL instead of FALSE since the return type
85 is not expecting a boolean
87 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
88 Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
89 because we are expecting a pointer not a boolean
91 * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir):
92 add void as the parameter so some compilers
95 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
96 _dbus_transport_new_for_tcp_socket):
97 Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
98 because we are expecting a pointer not a boolean
100 * test/shell-test.c (test_command_line):
101 cast the second argument to _dbus_list_append to avoid compiler
104 * test/test-names.c (main): remove unused variable
106 * test/test-service.c (check_hello_from_self_reply):
107 Initialize echo_message and echo_reply to NULL
109 * test/test-shell-service.c (handle_echo):
110 Remove unused variable and cast the third parameter passed to
111 dbus_connection_get_object_path_data to avoid compiler warrnings
113 * test/name-test/test-names.c (clear_message_queue):
114 Remove unused function
116 * test/name-test/test-pending-call-dispatch.c:
117 Fix format string in printf
120 2006-08-14 John (J5) Palmieri <johnp@redhat.com>
123 * test/name-test/test-names.c:
124 Remove test method dbus_bus_connection_get_unique_name because
125 we already have public method dbus_bus_get_unique_name that
126 does the exact same thing
128 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
130 * dbus/dbus-signature.c:
131 fix typos in Julio's previous patch which cause make check to fail
133 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
135 * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.
136 In any case it was wrong since this is a test checking to see if
137 address parsing is correct. There was no need to get the true
140 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
142 * dbus/dbus-macros.h: Revert the addition of stddef.h
143 as we should not be adding it to library headers
145 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
147 * dbus/dbus-signature.c:
148 Fix the unit tests so that they work if assertions are not enabled.
149 (patch from Julio M. Merino Vidal <jmmv at NetBSD dot org>)
151 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
153 * tools/run-with-tmp-session-bus.sh:
154 * test/name-test/run-test.sh:
155 Remove bashisms (patch from Julio M. Merino Vidal
156 <jmmv at NetBSD dot org>)
158 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
160 * configure.in: add a version (>= 2.6.0) check for libxml2
162 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
164 * configure.in: make sure the compiler supports -Wfloat-equal
166 * bus/dir-watch-dnotify.c: move functional code after
167 variable declerations (C99 fix) (patches from Jens Granseuer
168 <jensgr at gmx dot net>
170 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
172 * dbus/dbus-macros.h:
173 add #include <stddef.h> so that Sun compilers don't complain about
176 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
178 * dbus/dbus-sysdeps.c:
179 * dbus/dbus-address.c:
182 don't hardcode tmp directory (patch from Dave Meikle
183 <dmk at davemeikle dot co dot uk>)
185 2006-08-09 John (J5) Palmieri <johnp@redhat.com>
187 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
188 Change an assert to a detailed warning and abort.
189 When allocator->lock != mutex it indicates that the user has failed
190 to initalize threads before using the D-Bus library. This warning
191 helps the user identify the issue and fix their app.
193 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
195 These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
196 with cleanups of bugs found from Coverity reports:
198 * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
199 close the file on error to avoid a leak
201 * bus/expirelist.c (bus_expire_list_test):
202 Check for NULL on dbus_new0
204 * bus/activation.c (update_directory):
207 * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
210 * bus/bus.c (process_config_every_time):
213 * bus/desktop-file.c (parse_key_value):
216 * bus/selinux.c (bus_selinux_id_table_insert):
219 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
221 * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
224 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
226 * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
229 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
231 * Doxyfile.in: fix the INPUT line so we can generate docs
232 when sourcedir != builddir (patch from Cygwin Ports maintainer
233 <yselkowitz at users dot sourceforge dot net>
235 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
237 * dbus/dbus-sysdeps.h:
238 * dbus/dbus-sysdeps.c:
239 * dbus/dbus-string.c:
240 s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
241 GLib's function which does the same thing
245 * bus/dir-watch-default.c:
246 * bus/dir-watch-dnotify.c:
247 * bus/dir-watch-kqueue.c:
248 Add kqueue directory watching for freebsd and split the directory
249 watching code into seperate files per method/arch
250 (patches from Timothy Redaelli <drizzt at gufi dotorg>)
252 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
256 * tools/dbus-launch.c:
258 allow --with-dbus-daemondir switch to be used to make the
259 daemon install to a seperate bindir like /usr/libexec
260 (patch from Brian Cameron <brian dot cameron at sun dot com)
262 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
264 * bus/Makefile.am (install-data-hook): removed the slash after
265 $(DESTDIR) so we don't get the double slash which does not work
266 in windows (patch from Andras Porjesz
267 <andras dot porjesz at siemens dot com>)
269 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
271 * dbus/dbus-sysdeps.h:
272 * dbus/dbus-sysdeps.c:
273 add _dbus_printf_length (patch from Peter Kümmel
274 <syntheticpp at gmx dot net>)
276 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
278 * dbus/dbus-internals.c: unistd.h is not used
279 (_dbus_verbose_real): only enable verbose printing
280 if DBUS_VERBOSE environment var is set to '1'
281 (patch from Peter Kümmel <syntheticpp at gmx dot net>)
283 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
285 * configure.in: add a GCC flag check for -Wdeclaration-after-statement
286 so we still compile on older gcc (patch from Frederic Peters
287 <fpeters at 0d dot be>
289 2006-08-04 Havoc Pennington <hp@redhat.com>
291 * configure.in: add -Wdeclaration-after-statement
293 * dbus/dbus-connection.c: change all the pending call stuff to
294 reflect the fact that pending call operations use the connection
297 * dbus/dbus-pending-call.c: add locking here
299 * dbus/dbus-errors.c (struct DBusRealError): don't make the name
300 field const consistent with how message field is done
302 2006-08-03 John (J5) Palmieri <johnp@redhat.com>
306 2006-08-03 John (J5) Palmieri <johnp@redhat.com>
308 * dbus/dbus-object-tree.c: Patch by Benjamin Otte
309 <in7y118 at public.uni-hamburg dot de> - fix invalid
310 read/write reported by valgrind
312 2006-07-24 John (J5) Palmieri <johnp@redhat.com>
316 2006-07-22 John (J5) Palmieri <johnp@redhat.com>
318 * dbus/dbus-connection.c:
319 (_dbus_connection_attach_pending_call_unlocked):
320 (connection_timeout_and_complete_all_pending_calls_unlocked):
321 Make sure we set timeout_added on pending calls to FALSE when
322 we remove the timeout from the connection
324 2006-07-21 John (J5) Palmieri <johnp@redhat.com>
326 * Removed some extra bindings stuff lingering around (thanks timo)
327 * dbus-pendingcall.c (_dbus_pending_call_new):
328 s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
329 when we tried to take a lock on an already locked connection
331 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
335 2006-07-17 Havoc Pennington <hp@redhat.com>
337 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
338 ints, reported by Owen Taylor
340 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
345 * dbus/dbus-marshal-validate.c:
346 Removed TODO items which were fixed or are no longer relevent
348 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
350 * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
351 Remove stray files from the stripped bindings
353 2006-07-16 Havoc Pennington <hp@redhat.com>
355 * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
356 Improve the error message on reply timeout
358 2006-07-14 John (J5) Palmieri <johnp@redhat.com>
360 * Remove all bindings
362 2006-07-13 John (J5) Palmieri <johnp@redhat.com>
364 * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
365 and set pending_reply out arg to NULL is connection is disconnected
366 (connection_timeout_and_complete_all_pending_calls_unlocked): New
367 static method for cleaning up pending calls on disconnect
368 (_dbus_connection_get_dispatch_status_unlocked): If we have pending
369 calls queued timeouts on disconnect
371 * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
374 2006-07-13 Carlos Garcia Campos <carlosgc@gnome.org>
376 * bus/activation.[ch] (bus_activation_list_services): new function to
377 get the list of services that can be activated
379 * bus/dispatch.c: test coverage for the new bus method
382 * bus/driver.c: new bus method ListActivatableNames to get the list of
383 services that can be activated
385 * doc/dbus-specification.xml: ListActivatableNames method documentation
387 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
388 * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
391 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
392 * dbus/dbus-message-factory.c:
393 Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
395 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
396 * dbus/dbus-connection-internal.h:
397 * dbus/dbus-connection.c:
398 * file dbus/dbus-pending-call.c:
399 * dbus/dbus-pending-call.h:
400 Make DBusPendingCall an opaque type even to D-Bus internals
402 2006-07-07 John (J5) Palmieri <johnp@redhat.com>
404 * dbus/dbus-connection.h: remove connection_disconnect and replace with
407 * dbus/dbus-connection.c: include dbus-bus.h
408 (_dbus_connection_read_write_dispatch): make static
410 2006-07-07 John (J5) Palmieri <johnp@redhat.com>
412 * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
414 (dbus_connection_dispatch): On disconnect unref any shared connections
416 * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
417 for cleaning up shared connections on disconnect
418 (internal_bus_get): get a hard refrence to shared connections when
421 * doc/TODO: Remove items which are no longer relevent or have been fixed
422 Split 1.0 todo items with a 0.90 freeze todo list
424 2006-06-14 Ross Burton <ross@openedhand.com>
426 * glib/dbus-gobject.c:
427 Free a leaking GArray (surely not!) in dbus_g_method_return.
429 2006-06-14 Ross Burton <ross@openedhand.com>
432 * tools/dbus-monitor.c:
433 Don't use the GLib bindings in dbus-monitor (patch from Ralf
436 2006-06-14 Ross Burton <ross@openedhand.com>
438 * tools/dbus-print-message.c:
439 Also print the object path when outputting signals or method calls.
441 2006-06-13 Thiago Macieira <thiago.macieira@trolltech.com>
443 * qt/src/Makefile.am: install the qdbus.h header.
444 This allows people to actually use the installed code.
446 2006-06-12 Ross Burton <ross@openedhand.com>
448 * glib/dbus-gproxy.c:
449 Don't leak a GArray when firing signals (thank Rob Taylor for review).
451 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
455 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
457 * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
458 break pedantic builds. Closes bug 6043 (patch approved by
459 Havoc back in February).
461 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
463 * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
464 that took a QDBusMessage parameter.
465 * qt/src/qdbusbus.h: Add a default flag for RequestName.
466 * qt/tools/dbus.cpp: Don't use automatic call because we might
467 be calling an async method: request a reply.
469 2006-06-11 Thiago Macieira <thiago.macieira@trolltech.com>
471 * test/qt/*: Update the testcases, including testing the new
472 functionality of sending null QByteArray and QString over the
473 bus. Add new headertest test and restore the old
476 2006-06-11 Thiago Macieira <thiago.macieira@trolltech.com>
478 * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
479 * qt/tools/dbusidl2cpp.cpp: Add missing newline.
481 * qt/examples/Makefile.am:
482 * qt/examples/chat.h: Use UI-generated files with the ui_*.h
485 * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
486 QByteArray() (nulls) over the bus.
487 * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
488 the one that has the signature suffix stripped.
489 * qt/src/qdbusreply.h: Make some methods const.
491 2006-06-09 Thiago Macieira <thiago.macieira@trolltech.com>
493 Patch from Timo Hoenig <thoenig@suse.de>.
495 * qt/dbus/Makefile.am: New file. Fix "make dist", add all headers
496 required during build to EXTRA_DIST.
497 * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
498 * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
499 * configure.in: Fix "make dist", take care that the Makefile for
500 qt/dbus is being generated.
502 2006-06-07 John (J5) Palmieri <johnp@redhat.com>
504 * bus/bus.c: Fix eavesdropping on method calls
506 2006-06-07 John (J5) Palmieri <johnp@redhat.com>
509 * dbus/dbus-userdb-util.c:
510 Add Solaris console owner patch from Artem Kachitchkine
512 2006-06-07 Thiago Macieira <thiago.macieira@trolltech.com>
515 * qt/src/Makefile.am: Fix the EXTRA_DIST after the
516 reorganisation. Thanks to Timo Hoenig for pointing this out.
518 2006-06-06 Robert McQueen <robot101@debian.org>
520 * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
521 call to dbus_g_type_get_struct.
523 2006-06-06 Robert McQueen <robot101@debian.org>
525 * glib/dbus-gvalue-utils.c: Fix the failing test where static string
526 pointers were put into a GPtrArray-based specialised collection, and
527 then freed along with the array. GValues which you add into
528 collections or maps which have the NOCOPY flag set are assumed to not
529 belong to the caller, so rather than the existing pointer-stealing
530 semantics, they are copied instead. Given that the main consumers of
531 this abstraction are the bindings themselves, I don't think this is
532 too bad, but others should watch their choice of take vs set_static.
534 2006-06-06 Robert McQueen <robot101@debian.org>
536 * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
537 of g_slist_prepend not being used. Fixed copying of slist-based
538 specialised collections, then wrote a test case and found that it was
539 all broken. Went on to fix iterating and appending too. Good thing
540 nobody uses this code yet.
542 2006-06-06 Robert McQueen <robot101@debian.org>
544 * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
545 the iterators use gvalue_take_ptrarray_value (the GValues themselves
546 are discarded without unsetting, so it makes no difference whether
547 we take or set_static). Remove cases for G_TYPE_POINTER because
548 there really is nothing useful we can do with them in our
549 specialised types - we *need* boxed copy/free functions at the very
552 2006-06-05 Thiago Macieira <thiago.macieira@trolltech.com>
554 * qt/dbus: Add directory. I had forgotten to add this
555 yesterday after the move...
557 * qt/examples/Makefile.am:
558 * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
560 * qt/tools/Makefile.am:
561 * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
562 Added feature to get and set properties.
563 Added validation of service, object path and interface names.
565 * qt/tools/dbusidl2cpp.cpp: Two new features:
566 1) Allow specifying both the header and the source file names,
567 by separating them with a colon.
568 2) Don't write an interface output if the -p switch wasn't
569 given, but the -a was.
571 * qt/src/*: Fix usage of Iterators and ConstIterators.
572 Fix shadowing of variables by other variables (-Wshadow).
573 Fix keyword-cleanliness in headers.
574 Fix ASCII-cast (QLatin1String, QLatin1Char).
575 Fix validation of member names.
576 Add extra checking of introspection data during XML parsing.
579 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
582 * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
585 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
587 * configure.in: Make --disable-qt actually do
588 something. Patch inspired by Zack Rusin.
590 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
592 * qt/: Update to Subversion r548032.
593 This includes a big reorganisation of the files inside the
596 2006-05-30 Sjoerd Simons <sjoerd@luon.net>
598 * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
600 "Failed to connect to socket <host>:<port> <error>" instead of
601 "Failed to connect to socket <host>: <error>:<port>"
603 * dbus/dbus-transport-unix.c: Fix crash when no host option is given
606 2006-05-29 Thiago Macieira <thiago.macieira@trolltech.com>
608 * qt/*: Update the QtDBus bindings up to revision 546310 in
610 This adds the dbuscpp2xml tool, that parses a C++ header and
611 outputs a D-BUS Introspection XML.
613 2006-05-21 Havoc Pennington <hp@redhat.com>
615 * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
616 is not NULL when it shouldn't be. Also a couple of possible fixes
617 for #4637 though I don't understand why the bug happens, to be
618 honest... also the object constructor has an assert name != NULL
619 and the name is only currently NULL for peer-to-peer proxies that
620 I don't think anyone uses? So it should be asserting.
621 Anyway, for now at least see if we get an earlier assertion failure.
623 * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
624 apparently broken code to be sure the tests fail and someone
627 2006-05-07 Thiago Macieira <thiago.macieira@trolltech.com>
629 * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
630 and arrays when they had a single element: has_next returns
631 false, even before you read the element. So, instead, check
634 2006-05-06 Thiago Macieira <thiago.macieira@trolltech.com>
636 * qt/qdbusmessage.cpp:
637 * qt/qdbustypehelper_p.h:
638 * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
639 the list is a const-reference
641 2006-05-03 John (J5) Palmieri <johnp@redhat.com>
643 * Adding old doc patch that never got applied
645 * dbus/bus.c (dbus_bus_add_match): Add documentation
647 * doc/dbus-specification.xml: Add documentation for the match rules
648 and the AddMatch and RemoveMatch methods
650 2006-05-02 Thiago Macieira <thiago.macieira@trolltech.com>
652 * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
655 * qt/dbusidl2cpp.cpp:
656 * qt/qdbusabstractadaptor.cpp:
657 * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
658 sibling of the QDBusAbstractAdaptor objects instead of the
661 * qt/dbusidl2cpp.cpp:
662 * qt/qdbusabstractinterface.cpp:
663 * qt/qdbusabstractinterface.h:
664 * qt/qdbusabstractinterface_p.h:
665 * qt/qdbusinterface.cpp: Make properties in interfaces
666 actually work. The code that was generated would not compile,
667 due to moc calls to functions that did not exist. They now
670 2006-04-30 Thiago Macieira <thiago.macieira@trolltech.com>
674 * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
675 Thanks to Brad Hards for providing the patch
677 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
679 * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
682 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
684 * qt/examples/dbus.cpp: Enhance error messages and use
687 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
689 * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
690 and disable the copy operators. (r533772, r534746)
692 * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
694 * qt/qdbusabstractinterface.cpp:
695 * qt/qdbusabstractinterface.h: Change the default call mode to
696 not use the event loop. Add convenience call() methods that
697 take a CallMode parameter. (r534042)
699 * qt/qdbusconnection.h: Change the default call mode to not
700 use the event loop. (r534042)
702 * qt/qdbusinterface.cpp:
703 * qt/qdbusinterface.h: Add a method to tell us if the
704 interface is valid (since we don't return a null pointer
707 * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
710 * qt/qdbusinternalfilters.cpp: Decouple the introspection
711 function in two so taht we get the chance to introspect
712 without having a QDBusMessage (r534102)
715 * qt/qdbusconnection.cpp:
716 * qt/qdbusconnection_p.h:
717 * qt/qdbusintegrator.cpp: Keep a list of our own names to
718 avoid a round-trip to the server when attempting to introspect
719 one of our own objects. Also make sure the filter functions
720 match the empty interface as well. (r534108)
721 Don't keep the connection names. Instead, trust the unique
722 connection name (r534111)
723 Remove event loop usage (r534112)
725 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
727 * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
730 2006-04-28 Robert McQueen <robot101@debian.org>
732 * glib/dbus-gproxy.c: Fix properties so that they can be given in
733 any order, making it easier for people who inherit from this
736 2006-04-28 Robert McQueen <robot101@debian.org>
738 * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
739 of memory from within pointer arrays and lists. Fixes bug #6300.
741 2006-04-28 Robert McQueen <robot101@debian.org>
743 * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
744 generating struct signatures. Fixes bug #6083.
746 2006-04-28 Robert McQueen <robot101@debian.org>
748 * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
749 to qdbusconnection_p.moc.
751 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
753 * README, INSTALL: Doc fixes
754 Patch from Brad Hards <bradh at frogmouth.net>
756 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
758 * qt/examples/dbus.cpp: Use the new merged-interface mode for
759 the dynamic meta object. No need to guess which interface to
762 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
764 * qt/qdbusconnection_p.h:
765 * qt/qdbusmetaobject.cpp:
766 * qt/qdbusmetaobject_p.h:
767 * qt/qdbusintegrator.cpp: Use the new merged-interface mode
768 for the dynamic meta object. No need to guess which
770 * qt/qdbusabstractinterface_p.h:
771 * qt/qdbusconnection.cpp:
772 * qt/qdbusintegrator.cpp:
773 * qt/qdbusinterface.cpp:
774 * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
775 Add a QDBusRef that looks and behaves like DCOPRef.
777 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
779 * dbus/dbus-connection.c: Interfaces are optional in method
780 calls, so don't give up if the interface parameter is NULL.
781 Patch reviewed by Havoc Pennington.
783 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
785 * qt/qdbusreply.h: Add default constructor and operator=
787 * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
788 in public headers (r532952)
789 * qt/qdbusabstractinterface.cpp:
790 * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
791 make it the default (r532951)
793 2006-04-19 John (J5) Palmieri <johnp@redhat.com>
795 * dbus/dbus-connection.c: Fix asserts
796 Patch from Tim Moloney <t.moloney at verizon.net>
798 2006-04-19 John (J5) Palmieri <johnp@redhat.com>
800 * mono/Connection.cs, mono/Message.cs: Check Target type
801 Patch from Aaron Bockover (abockover at novell.com)
803 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
805 * INSTALL: fine-tune the requirements for the Qt4 binding.
807 2006-04-16 Daniel P. Berrange <dan@berrange.com>
809 * tools/dbus-print-message.c: Added support for printing of all
810 remaining data types. Fixed logic for indentation of compound
813 2006-04-15 Daniel P. Berrange <dan@berrange.com>
815 * INSTALL: fill out content of file providing DBus specific
816 build installations, followed by generic Auto* INSTALL file
819 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
821 * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
822 Patch by Stefan Eilers. (r529537)
824 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
826 * qt/qdbusinternalfilters.cpp: Don't show the parent's
829 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
831 * qt/Makefile.am: fix the dependency for
832 qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
833 not in qdbusconnection.cpp.
834 Thanks to Jakub Stachowski <stachowski@hypair.net> for
837 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
839 * qt/examples/listnames.cpp:
840 * qt/examples/Makefile.am: Three ways to list the names on the
843 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
845 * test/qt/tst_hal.cpp: Remove the waiting, since it's not
846 needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
848 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
850 Merge from Subversion:
851 * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
852 something that exists (r526315)
853 * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
854 slots/signals (r526316)
855 * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
856 also return an unknown-method error if the parameters don't
857 match for org.freedesktop.DBus.Properties. (r526842)
858 * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
859 * qt/qdbusintegrator.cpp: Restore the proper order of
860 delivery: don't make method returns be delivered on priority
863 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
865 * configure.in qt/Makefile.am: add qt/examples
866 * qt/examples: Add QtDBus example programs:
867 - hello: Hello, World
868 - ping: Simple method-calling program
869 - pong: Simple object-exporting program (not using adaptors)
870 - complexping: Interactive method-calling program
871 (also gets and sets properties).
872 - complexpong: Sample program exporting methods, signals and
873 properties, using adaptors.
874 - dbus: Simple implementation of a generic method-calling
875 program, similar to 'dbus-send', but with semantics
877 - chat: Simplistic chat program, implemented using signals
878 and the system bus. Looks like IRC.
880 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
882 * configure.in: Detect QtGui (necessary for one of the
883 example programs). Note: this increases the minimum required
884 version of Qt to 4.1.3.
886 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
888 * test/qt/*: Sync with KDE Subversion revision 523647.
889 Update the testcases to the new API. Remove testcases for
890 classes that are no longer public or have been removed.
892 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
895 * dbus/qdbus.h: Sync with KDE Subversion revision
896 523647. Hopefully, this will be the last of the
897 source-incompatible changes. Documentation has been improved;
898 support for QList<basic-types> has been added; QDBusObject is
899 gone; QDBus(Abstract)Interface is now a QObject with
900 auto-generated meta-object; QDBusIntrospection is marked
901 private, since QMetaObject can be used now; lots of bugfixes.
903 2006-03-16 John (J5) Palmieri <johnp@redhat.com>
905 Patch from Milosz Derezynski <internalerror at gmail.com>
908 Output the service directory in the configure summary
911 Add session_bus_services_dir
913 2006-03-10 Ross Burton <ross@openedhand.com>
915 * tools/dbus-print-message.c:
916 Add support for object paths and signatures.
918 2006-03-06 Sjoerd Simons <sjoerd@luon.net>
920 * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
922 * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
924 * dbus/dbus-hash.c: (_dbus_hash_table_remove_all):
925 * dbus/dbus-hash.h: Add function to remove all entries from a hash table
926 * dbus/dbus-userdb.c: (_dbus_user_database_flush):
927 * dbus/dbus-userdb.h: Add function to flush all user/group information
930 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
932 * qt/dbusidl2cpp.cpp:
933 * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
934 for dcopidl2cpp, found in the KDE installations (or the more
935 modern kalyptus): generate Qt4 C++ code for the input XML
936 introspection. Currently no IDL parsing.
938 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
940 * test/qt/*: Update the self-tests.
942 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
945 * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
946 represents the first feature-complete version of the Qt4
947 bindings since I took ove maintainership.
949 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
951 * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
952 dir. This is C++, so we can't use the DBus ones.
954 2006-03-02 John (J5) Palmieri <johnp@redhat.com>
956 * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
957 (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
959 2006-03-02 John (J5) Palmieri <johnp@redhat.com>
961 * dbus/dbus-connection.c:
962 (_dbus_connection_block_pending_call):
963 Check to see if our data has already been read off the connection
964 by another blocking pending call before we block in poll.
965 (check_for_reply_and_update_dispatch_unlocked):
966 Code taken from _dbus_connection_block_pending_call - checks for
967 an already read reply and updates the dispatch if there is one.
969 * test/name-test/test-pending-call-dispatch.c:
970 New test for making sure we don't get stuck polling a
971 dbus connection which has no data on the socket when
972 blocking out of order on two or more pending calls.
974 2006-02-28 Thiago Macieira <thiago.macieira@trolltech.com>
976 * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
977 make/automake don't detect that we're talking about the same
978 .lo file if I specify the full path to the source files.
980 2006-02-26 Havoc Pennington <hp@redhat.com>
982 * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
984 * dbus/dbus-bus.c (internal_bus_get): in the error message if the
985 session bus variable is unset, suggest "man dbus-launch" and "man
986 dbus-daemon" to figure out how to fix the problem
988 2006-02-25 Havoc Pennington <hp@redhat.com>
990 * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
991 should make this thing use the new glib options parser
993 2006-02-25 Thiago Macieira <thiago.macieira@trolltech.com>
995 * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
996 .lo files taking moc sources.
998 2006-02-25 Havoc Pennington <hp@redhat.com>
1000 * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1001 and install it as a public header
1003 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
1007 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
1009 * proxies.py: Fix the callchain
1011 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
1013 * patch from Sjoerd Simons <sjoerd at debian.org>:
1015 * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to
1018 * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1019 call _dbus_group_info_free_allocated which causes infinite loop,
1020 correctly call _dbus_group_info_free
1022 2006-02-20 Thiago Macieira <thiago.macieira@trolltech.com>
1024 * qt/qdbusinterface_p.h:
1025 * qt/qdbusinterface.cpp: Use the standard
1026 org.freedesktop.DBus.Method.NoReply annotation for the "async"
1027 calls instead of creating one for us.
1029 * qt/qdbusconnection_p.h:
1030 * qt/qdbusintegrator.cpp: Remove debugging code.
1032 * qt/qdbusintegrator.cpp:
1033 * qt/qdbusmessage.cpp:
1034 * qt/qdbusmessage_p.h:
1035 * qt/qdbusmessage.h: Change the behaviour of automatic
1036 reply-sending: now a reply is always sent, unless the caller
1037 didn't request one or if the user slot has already sent one.
1039 2006-02-16 Robert McQueen <robot101@debian.org>
1041 * configure.in: Patch from Debian packages by Sjoerd Simons
1042 <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
1043 arguments so it's possible to build both bindings in the
1046 * qt/Makefile.am: Fix truncated value so that make dist works.
1048 2006-02-16 Robert McQueen <robot101@debian.org>
1050 * acinclude.m4, configure.in: Patch from Brad Hards
1051 <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
1052 improving quoting, re-ordering a few checks, and a few other
1055 2006-02-16 Robert McQueen <robot101@debian.org>
1057 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
1058 Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1059 assertion that the next element to read from the iter is fixed in
1060 size. This is not the case when you are at the end of the iter,
1061 because the next element type is INVALID.
1063 * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1064 a bogus assert which means that you may not initialise a 0-length
1065 string unless you provide a non-NULL pointer. This prevented
1066 you from marshalling messages containing zero-length arrays in
1069 * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1070 from Rob to correct bogus asserts when trying to demarshal an
1071 array and get_fixed_array got you 0 elements. Append nothing to
1072 the GArray in this case.
1074 * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1075 an empty array via the glib bindings. Without all of the above
1076 patches, this new test fails.
1078 2006-02-16 Robert McQueen <robot101@debian.org>
1080 * glib/dbus-gmain.c: Make the previous commit compile.
1082 * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1083 Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1084 specify sender_keyword="foo", path_keyword="bar" when adding
1085 a signal listener, so that you can bind to signals generically
1086 but still do something useful in your callback.
1088 * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1089 chars so that they're not cast to chars and made negative. Thanks
1090 to Jakub Stachowski for reporting this and testing the fix.
1092 2006-02-15 John (J5) Palmieri <johnp@redhat.com>
1095 * glib/dbus-gmain.h:
1096 (dbus_g_connection_open): new method for openning
1097 a connection to an arbitrary address in the glib bindings
1099 * ChangeLog: checkin last entry which doesn't seem to be commited
1101 2006-02-13 John (J5) Palmieri <johnp@redhat.com>
1103 * tools/dbus-launch.c: Fixed sh syntax output
1105 2006-02-13 Robert McQueen <robot101@debian.org>
1107 * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1108 glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1109 glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1110 glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1111 Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1112 missing piece of the glib bindings jigsaw puzzle. This modifies
1113 the existing specialised types to have N type parameters (rather
1114 than the current 1 or 2 for arrays and dictionaries respectively).
1115 You can then use this to get a glib type to represent any arbitrary
1116 D-Bus struct type using dbus_g_type_get_struct. The only
1117 implementation of these types is with GValueArrays as before,
1118 but it's now possible to store these in arrays, emit them in
1121 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
1123 * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1124 deal with nested arrays (Bug #5823) Patch by Thiago Macieira
1125 <thiago.macieira at trolltech.com>
1127 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
1129 * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1130 (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1132 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
1134 * bus/connection.c (bus_connections_expect_reply): Make
1135 pending reply limit not common to all connections (Bug #5416)
1136 Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1138 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
1140 * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1142 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
1144 * gcj/Makefile.am: point to correct jar command (Bug #4529)
1145 patch from Doug Goldstein <cardoe at gentoo.org>
1147 2006-02-09 Joe Shaw <joeshaw@novell.com>
1149 * mono/Arguments.cs: Fix a magic number in the mono bindings
1150 that doesn't work on 64 bit arches. Patch from Peter Johanson.
1152 2006-01-27 Robert McQueen <robot101@debian.org>
1154 * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1155 patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1156 when generating the client-side methods, instead of overloading
1157 CSymbol which broke everything horribly. My apologies.
1159 2006-01-27 Robert McQueen <robot101@debian.org>
1161 * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1162 by me and Rob Taylor to add a simple_free function to D-Bus map
1163 and collection types, which allows those types which can be freed
1164 with a GDestroyNotify (such as GHashTables and GArrays, but not
1165 GPtrArrays) to be stored as the values in hashtables.
1167 * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1168 Patch by Rob Taylor to add nested dicts to the glib tests to check
1169 the above code works, and appears not to leak when called repeatedly.
1171 2006-01-27 Robert McQueen <robot101@debian.org>
1173 * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1174 to free a D-Bus allocated string with dbus_free () instead of
1177 2006-01-27 Iain Holmes <iain@openedhand.com>
1179 * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1180 method from being called multiple times.
1182 2006-01-19 Robert McQueen <robot101@debian.org>
1184 * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1185 <rob.taylor@collabora.co.uk> to add support for generating bindings
1186 to arrays that are represented as GPtrArrays rather than GArrays (ie
1187 size-variable things, such as strings, objects, structs, etc).
1189 2006-01-05 Robert McQueen <robot101@debian.org>
1191 * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1192 <ricardo.kekki@movial.fi> to make it possible to inherit from
1193 DBusGProxy, by splitting the DBusGProxy struct into a public part and
1194 a private part, and moving the setting of the DBusGProxyManager into a
1195 connection property, allowing proper GObject construction.
1197 2006-01-05 Robert McQueen <robot101@debian.org>
1199 * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1200 <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1201 annotations when generating glib client bindings.
1203 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
1205 * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1207 * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1209 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
1211 * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1213 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
1215 * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1217 2005-12-19 Ross Burton <ross@openedhand.com>
1219 * doc/dbus-tutorial.xml:
1220 Document the Glib client-side bindings, and list all possible annotations.
1222 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
1224 * dbus/bus.c (dbus_bus_release_name): Add documentation
1226 2005-12-06 Robert McQueen <robot101@debian.org>
1228 * python/service.py: s/sucessful/successful/ so we're allocating to
1229 and reading from the same variable. Oops.
1231 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1235 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1237 * test/qt/Makefile.am: build from srcdir
1239 * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1240 Note - this code is wrong and needs to be fixed by the Qt binding
1241 developers. The flags should be treated as bitfields and not enums.
1243 * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1245 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1247 * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after,
1248 link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods
1251 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1253 * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1254 method for getting messages off the bus in the absence of a
1255 mainloop. This method is much like
1256 dbus_connection_read_write_dispatch except it does not dispatch
1257 the messages to a registered filter function. Instead it
1258 allows a developer to process messages by directly popping
1261 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1263 * bus/desktop-file.c (parse_key_value): Ignore locales allowing
1264 the parser to continue instead of returning error
1265 (bus_desktop_file_load): Do not free parser data when
1266 parse_section_start or parse_key_value fails because it was
1267 already freed by parser_free (patch from Carlos Garcia Campos
1268 <carlosgc at gnome.org>)
1270 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1272 * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1273 dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1274 glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1275 test/test-segfault.c, test/test-utils.c,
1276 test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1277 tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1278 Various cleanup of dead code and compiler warnings (patch from
1279 Kjartan Maraas <kmaraas at gnome.org>)
1281 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1283 * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1284 (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1286 2005-11-27 Robert McQueen <robot101@debian.org>
1288 * python/dbus_bindings.pyx: Repair my previous commit which reverted
1289 part of the preceding one. Oops. Merge patch by Johan Hedberg
1290 <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1291 on big-endian platforms.
1293 * test/python/test-client.py: Add some 16-bit integers to the test
1296 2005-11-27 Carlos Garcia Campos <carlosgc@gnome.org>
1298 * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1299 method return message for property getters
1301 2005-11-27 Robert McQueen <robot101@debian.org>
1303 * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1304 with type v of an instance of dbus.Variant(foo, type='x') caused
1305 it to be boxed twice before sending over the bus.
1307 * python/dbus_bindings.pyx, python/service.py,
1308 test/python/test-client.py: Update the constants for the new
1309 request_name flags, and update comments/test cases now that queueing
1310 is the default action.
1312 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
1315 - Change version to 0.60 for impending release
1316 - upped the sonames because of ABI and API breakage
1318 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
1320 * configure.in: Add test/name-test/Makefile to the generated
1323 * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1324 New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1325 (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1326 not to queue an ower if it can't be the primary owner
1328 * bus/bus.h: Add new internal BusOwner struct
1330 * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1331 to bus_registry_ensure and don't set the prohibit_replacement flag
1332 since they are now set per BusOwner and not per name.
1333 (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners)
1334 that returns the list of connections in a name's connection queue
1336 * bus/services.c (struct BusService): remove prohibit_replacement field
1337 (struct BusOwner): new struct for keeping track of queued connections
1338 and their associated flags for the queue
1339 (struct BusRegistry): add a BusOwner memory pool
1340 (bus_registry_new): initialize the BusOwner memory pool
1341 (bus_registry_unref): free the BusOwner memory pool
1342 (_bus_service_find_owner_link): new internal method for
1343 searching the queue for a specific connection
1344 (bus_owner_set_flags): new method for adding setting the flags on a
1346 (bus_owner_new): new method that creates a BusOwner object from the
1347 pool and sets its flags
1348 (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1349 (bus_registry_ensure): Add the flags parameter
1350 (bus_registry_acquire_service): Switch from using raw connections to
1351 using the BusOwner struct
1352 Add new state machine for dealing with the new set of flags
1353 (bus_registry_set_service_context_table, struct OwnershipCancelData,
1354 cancel_ownership, free_ownership_cancel_data,
1355 add_cancel_ownership_to_transaction, struct OwnershipRestoreData,
1356 restore_ownership, free_ownership_restore_data,
1357 add_restore_ownership_to_transaction): Switch to using BusOwner
1358 instead of raw connections
1359 (bus_service_add_owner): Add flags parameter
1360 Switch to using BusOwner instead of raw connections
1361 Add state machine for dealing with the new set of flags
1362 (bus_service_swap_owner): Swaps the first and second owners in the
1363 queue. Used to make sure proper signals are sent when a service looses
1364 or gains primary ownership. We never insert an owner at the top of the
1365 queue. Instead we insert it in the second position and then swap.
1366 (bus_service_remove_owner): Remove the owner from the queue sending
1367 out the NameLost and NameOwnerChanged signals if the we were the
1369 (bus_service_get_primary_owners_connection): New method that extracts
1370 the connection from the primary owner
1371 (bus_service_get_primary_owner): Returns the BusOwner instead of the
1373 (bus_service_get_allow_replacement): Changed from the old
1374 bus_service_get_prohibit_replacement method. Checks the flags of the
1375 primary owner and returns if it can be replaced or not
1376 (bus_service_set_prohibit_replacement): removed
1377 (bus_service_has_owner): returns TRUE if and owner with
1378 the specified connection exists in the queue
1380 * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1381 method that only compiles if tests are enabled. Allows us to get the
1382 unique name of a connection so we can check it against the queue when
1383 doing regression tests
1385 * bus/activation.c (bus_activation_send_pending_auto_activate),
1386 bus/dispatch.c (bus_dispatch),
1387 bus/driver.c (bus_driver_handle_get_service_owner,
1388 bus_driver_handle_get_connection_unix_user,
1389 bus_driver_handle_get_connection_unix_process_id,
1390 bus_driver_handle_get_connection_selinux_security_context),
1391 bus/signals.c (connection_is_primary_owner):
1392 use bus_service_get_primary_owners_connection instead of
1393 bus_service_get_primary_owner
1395 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket,
1396 _dbus_listen_unix_socket): Calculate the length of the socket
1397 path and use that instead of using a fixed length which was
1398 causing socket names to contain many trailing Nul bytes.
1400 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1401 (dbus_g_method_get_sender): New method for extracting the sender
1402 from a DBusGMethodInvocation
1403 (dbus_g_method_return_get_reply): changed name to
1404 dbus_g_method_get_reply
1405 (dbus_g_method_return_send_reply): changed name to
1406 dbus_g_method_send reply
1408 * doc/dbus-specification.xml: New docs that describe how the new
1409 queueing system works and talks about the changes to the how
1410 we specify socket names
1412 * glib/examples/example-service.c,
1413 glib/examples/example-signal-emitter.c,
1414 glib/examples/statemachine/statemachine-server.c:
1415 Changed the RequestName flags to the new system
1417 * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1418 regression test suite for testing various states of the new
1421 2005-11-15 Robert McQueen <robot101@debian.org>
1423 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1424 Taylor to add two methods, dbus_g_method_return_get_reply and
1425 dbus_g_method_return_send_reply, to allow you to get the reply
1426 message from a DBusGMethodInvocation, append arbitrary stuff to it,
1427 and send it. The GLib bindings can't marshal a return value of
1428 something like a(s) if the array is empty - ultimately they should be
1429 made to heed the signature of the out arguments as the Python bindings
1430 now can, but this is a workable interim solution which might have
1433 2005-11-15 Robert McQueen <robot101@debian.org>
1435 * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1436 method to org.freedesktop.DBus to release a bus name or give up
1437 waiting in the queue for it.
1439 * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1440 dbus_bus_release_name method to send the ReleaseName method calls.
1441 Add constants for the return values to dbus/dbus-shared.h.
1443 * doc/dbus-specification.xml: Document the new ReleaseName method
1444 in the specification.
1446 * python/dbus_bindings.pyx: Add a low-level python binding for the
1447 release name method.
1449 * python/exceptions.py, python/service.py: Make freeing BusName
1450 objects release the name. Add a NameExistsException, and fix a
1451 bug with creating UnknownMethodException.
1453 * test/python/test-client.py: Add tests for freeing BusName
1454 objects causing names to be released.
1456 2005-11-14 Robert McQueen <robot101@debian.org>
1458 * python/service.py: Include the traceback in the error reply when we
1459 send an exception over the bus. _BEST_ _PATCH_ _EVER_
1461 2005-11-14 David Zeuthen <davidz@redhat.com>
1463 Patch from Timo Hoenig <thoenig@suse.de>.
1465 * bus/bus.c: I've recently investigated why the automatic reload
1466 of configuration files does not work as expected.
1468 Currently, reloading configuration files does only work when
1469 running dbus-daemon with --nodaemon. If we are running as daemon
1470 we're hitting a dnotify bug once we fork the process.
1472 We're initializing the dnotify fds before calling fork(). Once
1473 the child process forked it does still have the fds (and they
1474 still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1475 getting SIGIO as changes are made to the configuration files.
1477 The attached patch moves the initialization of the dnotify fds to
1478 process_config_postinit(). This is safe for all current code
1479 paths and solves the dnotify disfunction. If we're running
1480 dbus-daemon as daemon the fds for dnotify are now being
1481 initialized after fork() for the child process.
1483 * configure.in: The current configure.in check for dnotify probes
1484 'x$target_os' for being 'xlinux-gnu'. I've changed the check to
1485 match for 'xlinux', too. Additionally I have adapted the configure
1486 option's style to match with the others.
1488 2005-11-14 Robert McQueen <robot101@debian.org>
1490 * python/decorators.py, python/service.py: Add a new argument to the
1491 dbus.service.method decorator called sender_keyword, which if set,
1492 specifies the name of an argument which will be provided the bus
1493 name of the method caller.
1495 * test/python/test-client.py, test/python/test-service.py: Add a
1496 method and test to check the sender_keyword functionality.
1498 2005-11-07 John (J5) Palmieri <johnp@redhat.com>
1500 * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an
1501 empty reply so blocking calls don't block forever (Patch from Sjoerd
1502 Simons <sjoerd at luon.net>)
1504 * AUTHORS: Add Robert McQueen for his work on the Python
1505 Bindings and other parts of D-Bus
1507 2005-11-07 Robert McQueen <robot101@debian.org>
1509 * python/decorators.py: Change emit_signal function to use the
1510 signature annotation of the signal when marhsalling the arguments from
1511 the service. Fix a bug where the code checking signature length
1512 against argument length referenced the wrong variable.
1514 * python/introspect_parser.py: Avoid adding the type signature of
1515 signal arguments to any methods which occur after them in the
1516 introspection data (!) by making the parser a little more careful
1517 about its current state.
1519 * python/service.py: Remove debug prints from last commit (again :D).
1521 * test/python/test-client.py, test/python/test-service.py: Add test
1522 signals with signature decorators to test the strict marshalling code
1523 gives errors at the right time. Could do with checking the signals
1524 actually get emitted too, given that the test does nothing with
1525 signals at the moment...
1527 2005-11-07 Robert McQueen <robot101@debian.org>
1529 * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1530 instances to stop madness of creating new instances representing
1531 the same bus connection all the time, rendering any tracking of
1532 match rules and bus names quite meaningless. Caught a bug where
1533 the private argument to SessionBus() and friends was being passed
1534 in as use_default_mainloop by mistake. Still some problems with
1535 multiple dbus_binding.Connection instances representing the same
1536 low-level connection (eg when you use both SessionBus() and
1537 StarterBus() in same process), but it's a lot better now than it
1540 * python/dbus_bindings.pyx: Add constants with the return values
1541 for bus_request_name().
1543 * python/service.py: Store bus name instances in a per-dbus.Bus cache
1544 and retrieve the same instances for the same name, so deletion can be
1545 done with refcounting. Also now throws some kind of error if you
1546 don't actually get the name you requested, unlike previously...
1548 * test/python/test-client.py: Add tests for instance caching of buses
1549 and bus name objects.
1551 2005-11-04 Robert McQueen <robot101@debian.org>
1553 * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1554 marshalling of boolean values. Add some booleans to the values in
1557 * python/decorators.py, python/service.py: Add an 'async_callbacks'
1558 argument to the dbus.service.method decorator, which allows you to
1559 name arguments to take two callback functions for replying with
1560 return values or an exception.
1562 * test/python/test-client.py, test/python/test-service.py: Add test
1563 case using asynchronous method reply functions, both return values and
1564 errors, and from within both the function itself and from a mainloop
1567 * python/decorators.py, python/service.py: Perform checking that the
1568 number of method/signal arguments matches the number of types in the
1569 signature at class loading time, not when you first introspect the
1572 * python/service.py: Remove debug print left by the last commit.
1574 2005-11-03 Robert McQueen <robot101@debian.org>
1576 * python/service.py: Heavy refactoring of method invocation, with
1577 hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1578 in favour of a new _message_cb that uses seperate functions for
1579 looking up the method to call, marshalling the return values, and
1580 sending exceptions as errors, and is easier to follow as a
1581 consequence. Fixes some corner cases about returning things that
1582 don't match your declared out_signature, allows exceptions to define
1583 _dbus_error_name and have it be sent over the bus as the error name,
1584 and paves the way for cool stuff like heeding the message no reply
1585 flag, asynchronous method implementations, informing the method of the
1586 sender, and including backtraces in the error messages.
1588 * test/python/test-client.py: Catch and print exceptions thrown in the
1589 async callback tests, rather than passing them to the low-level
1590 bindings to be ignored in a noisy and frustrating manner.
1592 2005-11-03 Robert McQueen <robot101@debian.org>
1594 * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1595 functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1596 tweak others to be consistent.
1598 * test/python/test-client.py: Tweak output of testInheritance.
1600 2005-10-29 Robert McQueen <robot101@debian.org>
1602 * python/service.py: Major changes to allow multiple inheritance
1603 from classes that define D-Bus interfaces:
1605 1. Create a new Interface class which is the parent class of
1606 Object, and make the ObjectType metaclass into InterfaceType.
1608 2. Patch written with Rob Taylor to replace use of method_vtable
1609 with code that walks the class's __MRO__ (method resolution order)
1610 to behave like Python does when invoking methods and allow
1611 overriding as you'd expect. Code is quite tricky because
1612 we have to find two methods, the one to invoke which has the
1613 right name and isn't decorated with the /wrong/ interface,
1614 and the one to pick up the signatures from which is decorated
1615 with the right interface.
1617 The same caveats apply as to normal multiple inheritance -
1618 this has undefined behaviour if you try and inherit from two
1619 classes that define a method with the same name but are
1620 decorated with different interfaces. You should decorate
1621 your overriding method with the interface you want.
1623 3. Replace grungy introspection XML generation code in the metaclass
1624 with dictionaries that cope correctly with multiple inheritance
1625 and the overriding of methods. This also uses the signature
1626 decorations to provide correct introspection data, including
1627 the debut appearance of the types of your return values. :D
1629 * test/python/test-client.py, test/python/test-service.py: Add a test
1630 case to try invoking an method that overrides one inherited from a
1631 D-Bus interface class.
1633 2005-10-29 Robert McQueen <robot101@debian.org>
1635 * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1636 Add checking for the end of struct character when marshalling a
1637 struct in MessageIter.append_strict.
1639 * python/examples/example-service.py,
1640 python/examples/gconf-proxy-service.py,
1641 python/examples/gconf-proxy-service2.py: Update to use gobject
1642 mainloop directly rather than appearing to depend on gtk.
1644 * python/test/test-client.py, python/test/test-server.py: Remove
1645 obsolete and broken test scripts for old bindings. We have up to date
1646 and working tests in test/python/.
1648 2005-10-29 Robert McQueen <robot101@debian.org>
1650 * python/decorators.py: Add optional arguments to the method and
1651 signal decorators to allow you to specify the signature of arguments
1652 and return values. Preserve the doc strings of signal functions in the
1653 decorated version, for pydoc and friends.
1655 * python/dbus_bindings.pyx, python/proxies.py: Replace the
1656 parse_signature_block function with an iterable dbus.Signature()
1657 type. Fix a bug in MessageIter.append_strict where you could append
1658 anything by claiming it was a string.
1660 * python/service.py: Use the out_signature decoration on methods to
1661 marshal return values, meaning you no longer require dbus.Array()
1662 or dbus.Dictionary() to indicate the type when returning empty
1663 arrays or dictionaries. Fix a bug where exceptions which are defined
1664 in __main__ are not turned into error replies.
1666 * test/python/test-client.py, test/python/test-service.py: Add test
1667 for correct marshalling of return values according to out_signature.
1668 Fix a bug in the async call test where the error_handler is missing a
1671 2005-10-29 Robert McQueen <robot101@debian.org>
1673 * glib/Makefile.am, glib/examples/Makefile.am,
1674 glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1675 Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1677 * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1679 * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1680 from Ubuntu by Daniel Silverstone to allow specifying match rules on
1683 2005-10-27 Ross Burton <ross@openedhand.com>
1685 * dbus/dbus-marshal-header.c:
1688 * glib/dbus-gobject.c:
1689 Stop compiler warning.
1691 2005-10-25 Ross Burton <ross@openedhand.com>
1694 * dbus/dbus-server-unix.c:
1695 * dbus/dbus-transport-unix.c:
1696 * glib/dbus-gmain.c:
1697 * glib/dbus-gobject.c:
1698 Add some const keywords.
1700 2005-10-25 Ross Burton <ross@openedhand.com>
1702 * doc/dbus-specification.xml:
1703 Document the NoReply annotation.
1705 * glib/dbus-binding-tool-glib.h:
1706 * glib/dbus-binding-tool-glib.c:
1707 Respect the NoReply annotation.
1709 2005-10-24 Robert McQueen <robot101@debian.org>
1711 * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1712 derive from unicode instead of str, and encode/decode UTF-8 when
1713 marshalling/unmarshalling bus messages
1715 * python/introspect_parser.py: encode introspection data as UTF-8
1716 before passing the buffer into libxml2
1718 * test/python/test-client.py: add unicode test strings
1720 * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1721 ignore generated python test files
1723 2005-10-17 John (J5) Palmieri <johnp@redhat.com>
1725 * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1726 and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1727 (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1729 * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1730 DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1731 when constructing struct signatures
1733 * python/_dbus.py (Bus): handle private connections using the
1734 private keyword in the constructor. defaults to private=False
1735 (Bus::close): new method to close a connection to the bus
1737 * python/dbus_bindings.pyx (Connection::close): renamed method
1738 was previously called disconnect
1739 (bus_get): now supports getting a private connection
1741 * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1742 keyword is set to True. if it is, execute the method without waiting
1744 (ProxyObject::_introspect_execute_queue): new method for executing
1745 all the pending methods that were waiting for the introspect to
1746 finish. this is called when introspect either succeeds or fails
1747 (ProxyObject::_introspect_error_handler): call queued methods
1749 2005-10-14 John (J5) Palmieri <johnp@redhat.com>
1751 * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1752 STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1754 * python/service.py (Object::_message_cb): handle exceptions correctly
1755 by sending them over the wire to the calling app. This makes sure
1756 the client returns immediately instead of waiting the 15 seconds to
1759 * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect):
1760 Add a test to benchmark how long it takes to introspect a service and
1761 call a method which returns a large element (pretty fast)
1763 * test/python/test-service.py (TestObject::GetComplexArray): new test
1764 method which pushes a lot of data
1766 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
1768 * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):
1769 reclaim memory outside of the loop and use del istead of just setting
1772 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
1774 * python/service.py (ObjectType::_reflect_on_signal): Always close
1775 signal tag even when there are no arguments
1777 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
1779 * configure.in: Set mono, mono-docs and Qt3 to default
1780 to no instead of auto when building. These bindings do not
1781 have full time maintainers and will not be supported for the
1784 2005-10-12 John (J5) Palmieri <johnp@redhat.com>
1786 patches from Michael Krivoruchko <misha at sun.com>:
1788 * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1789 _dbus_connection_message_sent,
1790 _dbus_connection_send_preallocated_unlocked_no_update,
1791 _dbus_connection_pop_message_link_unlocked): handle the case when path
1792 is NULL when calling _dbus_verbose
1794 * configure.in: check for functions getpeerucred and getpeereid
1796 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides
1797 support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+,
1798 OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid).
1799 Patch was only tested on Solaris 10 x86 so it might be issues
1800 with other platforms (i.e. BSDs and MacOSX)
1803 2005-10-05 John (J5) Palmieri <johnp@redhat.com>
1805 * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal
1806 instead of marshal basic so we can handle recursive types in a variant
1808 * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1811 * test/glib/test-service-glib.c, test-service-glib.xml
1812 (my_object_echo_variant [EchoVariant],
1813 my_object_process_variant_of_array_of_ints123
1814 [ProcessVariantOfArrayOfInts123]):
1815 Add two test methods
1817 * python/introspect_parser.py: New module for parsing introspect
1820 * python/dbus_bindings.pyx:
1821 (various places): when throwing errors fix to use errormsg instead
1822 of message local variable because Pyrex can get confused with other
1823 message variables (initial patch by Robert McQueen
1824 <robert.mcqueen at collabora.co.uk>)
1825 (MessageIter::parse_signature_block): new method for getting the next
1826 block in a signiture.
1827 (MessageIter::append_strict): new method for appending values strictly
1828 using the passed in signature instead of guessing at the type
1829 (MessageItter:: append_dict, append_struct, append_array): use
1830 signatures to marshal children if the signature is available
1832 * python/exceptions.py (IntrospectionParserException): new exception
1834 * python/proxies.py (ProxyMethod::__call__): Marshal args with
1835 introspected signatures if available, else we fall back to the
1836 old way of doing things.
1837 (ProxyObject::_introspect_reply_handler ): parse introspection data
1839 * python/service.py (ObjectType::_reflect_on_method): Properly
1840 terminate <method> if there are no args in the reflection data
1842 * test/python/test-client.py: add tests for talking with the GLib
1843 test server. This gives us better coverage for introspection since
1844 python to python will always generate arguments as variants. It also
1845 allows us to test the robustness of the GLib bindings and interlanguage
1849 2005-10-03 John (J5) Palmieri <johnp@redhat.com>
1851 * bus/driver.c (bus_driver_handle_introspect): Add signals
1852 to the introspect data. (patch from Daniel P. Berrange
1853 <dan at berrange.com>)
1855 * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1857 * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1858 _dbus_connection_run_builtin_filters): Changed these to
1859 be unlock_no_update functions and call
1860 _dbus_connection_send_unlocked_no_update instead of
1861 dbus_connection_send to avoid locking errors.
1863 * doc/TODO: Removed the make Ping test TODO
1865 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
1867 * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1868 We now copy the message from a DBusError and then free
1869 the error object befor throwing the error
1871 * glib/dbus-glib-tool.c: removed extra comma at the end of the
1872 DBusBindingOutputMode enum which was causing a warning.
1873 #include <time.h> so using time_t is explicitly defined
1875 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
1877 * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1879 (internal_bus_get): new method that take over the heavy lifting
1880 of dbus_bus_get and adds the ability to get a private connection
1882 (dbus_bus_get): wrapper to internal_bus_get that provides the same
1883 interface as in previous versions
1884 (dbus_bus_get_private): new method that is a wrapper to
1885 internal_bus_get to get a private connection to the bus
1888 (dbus_bus_get_private): add as a public libdbus interface
1890 - dbus-1.pc.in: output system_bus_default_address and
1891 sysconfdir variables so apps can use them when compiling
1893 2005-09-23 Harald Fernengel <harry@kdevelop.org>
1894 * dbus/qt: New Qt bindings
1896 2005-09-12 Waldo Bastian <bastian@kde.org>
1898 * dbus/dbus-marshal-validate.c,
1899 doc/dbus-specification.xml, test/Makefile.am,
1900 test/test-names.c: allow hyphens in bus names.
1902 2005-09-11 Mark McLoughlin <mark@skynet.ie>
1904 * test/data/auth/fallback.auth-script: we don't
1905 retry the EXTERNAL method when we know its going
1908 2005-09-11 Mark McLoughlin <mark@skynet.ie>
1910 * dbus/dbus-connection-internal.h: rename
1911 (add|remove|toggle)_(watch|timeout) to unlocked()
1913 * dbus/dbus-connection.c: ditto.
1915 * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1916 Update some callers for the renaming.
1918 2005-09-10 Mark McLoughlin <mark@skynet.ie>
1920 * dbus/dbus-auth.c: (record_mechanisms): don't
1921 retry the first auth mechanism because we know
1922 we're just going to get rejected again.
1924 * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1925 Fix thinko ... and what a nasty little bugger to
1926 track down you were ...
1928 * dbus/dbus-connection.c:
1929 (_dbus_connection_add_watch),
1930 (_dbus_connection_remove_watch): add note about
1931 these needing the connection to be locked.
1932 (_dbus_connection_get_dispatch_status_unlocked):
1933 set status to DATA_REMAINS when we queue the
1934 disconnected message.
1937 (bus_dispatch): fix warning.
1938 (check_existent_service_no_auto_start):
1939 Expect ChildSignaled error too.
1940 (check_existent_hello_from_self): fix another
1943 2005-09-08 Joe Shaw <joeshaw@novell.com>
1945 Patches from James Willcox <snorp@snorp.net>
1947 * mono/Makefile.am: Add Int16.cs and UInt16.cs
1949 * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1950 support array "out" parameters.
1952 * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1953 for 16-bit int support.
1955 2005-09-06 John (J5) Palmieri <johnp@redhat.com>
1959 * Patch from Steve Grubb:
1960 - bus/activation.c (bus_activation_service_reload_test): clean up
1962 - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional
1963 - dbus/dbus-message-factory.c (generate_special): fix a couple of
1964 buffer overflows in the test suite. This is non critical because
1965 it can not be exploited and this code is only run when doing a
1968 * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1969 - configure.in: Don't check and link against kdecore, only qt headers
1970 - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1971 - gcj/org/freedesktop/dbus/Makefile.am:
1972 add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1973 - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1974 and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1975 - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1976 - tools/Makefile.am: Add platform extentions to binaries
1977 (i.e. .exe on windows)
1980 - Make it so if no suitable version of python is found we only
1981 disable building python instead of exiting the configure script
1982 - Require version 2.4 of glib for glib bindings
1983 - Up version to 0.50
1985 * python/__init__.py: Sync version with libdbus to (0,50,0)
1987 2005-09-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
1989 * dbus/dbus-object-tree.c (find_subtree_recurse):
1990 a couple of optimizations (bug #710):
1991 - do a binary search in the tree
1992 - insert a new child at the right place directly, no need for
1994 - do the "double alloc" thing when allocating children
1996 2005-08-31 John (J5) Palmieri <johnp@redhat.com>
1998 * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2000 * python/dbus_bindings.pyx: Memory management foo
2001 (global): remove hacky _user_data_references global list
2002 (GIL_safe_cunregister_function_handler): userdata now stuffed into
2003 tuples. Unref user_data
2004 (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2005 (Connection::__del__): Remove and replace with __dealloc__ method
2006 (Connection::add_filter): Stuff user_data into a tuple. Use Py_INCREF
2007 to keep tuple from being deallocated instead of the global var hack
2008 (Connection::register_object_path): Stuff user_data into a tuple.
2009 Use Py_INCREF to keep tuple from being deallocated instead of the
2011 (Connection::register_fallback): Stuff user_data into a tuple.
2012 Use Py_INCREF to keep tuple from being deallocated instead of the
2014 (GIL_safe_pending_call_notification): Don't unref the message
2015 because it gets unreffed when going out of scope. Py_XDECREF
2017 (PendingCall::__del__): Remove and replace with __dealloc__ method
2018 (PendingCall::set_notify): ref the pending call because we will
2019 need it to stick around for when the notify callback gets called
2020 (Message::__del__): Remove and replace with __dealloc__ method
2022 * python/dbus_glib_bindings.pyx (init_gthreads): Changed to
2023 gthreads_init to match up with the dbus call
2025 * python/glib.py (init_threads): Changed to threads_init to match
2026 up with gobject.threads_init(). init_threads is kept for backwards
2027 compat but will most likely be deprecated in the future
2029 * test/python/test-client.py:
2030 - revamp to use Python's unittest functionality
2031 - add async call tests
2032 - setup threads in glib and dbus so we make sure locks are working
2034 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
2036 * python/dbus_bindings.pyx
2037 (_pending_call_notification, cunregister_function_handler,
2038 cmessage_function_handler): All callback functions have been rearranged
2039 to workaround a bug in Pyrex when working with the GIL which is Python's
2040 global lock when dealing with threads. They have been split into
2041 a wrapper function (which assumes the name of the old function) and
2042 a _GIL_safe_<function name> function which contains the functionality
2043 of the old function. This ensures that Pyrex does not write code
2044 the lock is released.
2047 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
2049 * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
2050 GIL global lock when calling back into Python
2052 2005-08-29 John (J5) Palmieri <johnp@redhat.com>
2056 * Add Havoc's patch that never got applied to HEAD (Bug #2436):
2058 * bus/policy.c (bus_policy_allow_user): change default "user is
2059 allowed" to be "user has same uid as the bus itself"; any
2060 allow/deny rules will override.
2062 * bus/session.conf.in: don't allow all users, since now by default
2063 the user that ran the bus can connect.
2065 2005-08-26 Colin Walters <walters@verbum.org>
2067 * tools/dbus-print-message.c (print_message): Flush stdout
2068 after printing a message, so that redirecting to a file, then
2069 hitting Ctrl-C works.
2071 2005-08-25 John (J5) Palmieri <johnp@redhat.com>
2073 * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2074 (EmptyMessage): new class that subclasses Message. This is a workaround
2075 to a Pyrex bug that fails to call __del__ when the Message object goes out
2076 of scope. For some reason subclassing Message fixes this bug
2077 (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2078 - s/Message(_create=0)/EmptyMessage everywhere else
2080 * test/python/test-{server|client}.py: add the python/.libs directory
2081 to the lookup path so dbus_bindings and dbus_glib_bindings don't
2082 get picked up from the system
2084 2005-08-25 Colin Walters <walters@verbum.org>
2086 * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2087 to Ryan Lortie for the suggestion.
2089 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
2091 * test/python: Add python regression test
2093 * configure.in: Add test/python/Makefile
2095 * test/Makefile.am: Add the python directory to SUBDIRS
2097 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
2102 (Interface::connect_to_signal): propigate keywords for match on args
2103 (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2105 * python/proxies.py (ProxyObject::connect_to_signal):
2106 propigate keywords for match on args
2108 * Makefile.am: point everything to pyexecdir since python borks
2111 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
2115 2005-08-23 Colin Walters <walters@verbum.org>
2117 * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2119 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
2121 * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2122 to fix some wranings. We now use dbus_bindings.DBusConnection instead
2123 of defining DBusConnection ourselves.
2125 2005-08-18 John (J5) Palmieri <johnp@redhat.com>
2127 * python/dbus.pth: New path file to fix up problems when installing
2128 c libraries to lib64 and python files to lib.
2130 * python/Makefile.am: install dbus.pth in the correct spot
2132 2005-08-17 John (J5) Palmieri <johnp@redhat.com>
2133 * ChangeLog: clean up my last entry a bit
2135 * doc/introspect.xsl: New stylesheet for converting introspection data
2136 into browser renderable xhtml. Contributed by Lennart Poettering.
2138 * doc/introspect.dtd: Fixups in the introspect format from Lennart
2141 * doc/dbus-tutorial.xml:
2142 - Add Colin Walter to the Authors section for authoring the GLib
2144 - Add descriptions of the new signature and type functionality
2145 in the Python complex type mapping section
2146 - Add a sidenote on the new args matching functionality in
2148 - Fixed up some of the examples to use the gobject.MainLoop
2152 (Bus::_create_args_dict): New. Converts a hash of arg matches
2153 to a more useable format
2154 (Bus::add_signal_receiver): add a **keywords parameter for catching
2155 arg match parameters
2156 (Bus::remove_signal_receiver): add a **keywords parameter for catching
2157 arg match parameters
2159 * python/matchrules.py:
2160 (MatchTree::exec_matches): Check for arg matches
2161 (SignalMatchRule::add_args_match): New method
2162 (SignalMatchRule::execute): Added args_list parameter as an optimization
2163 so we don't have to marshal the args more than once
2164 (SignalMatchRule::match_args_from_list): New method that checks to see
2165 if the rule's arg matches match an argument list. Only arguments
2166 set in the rule are checked.
2167 (SignalMatchRule::match_args_from_rule): New method that checks to see
2168 if the rule's arg matches match another rule's. All args have to match
2169 in order for this method to return true. If either rule has more args
2170 then it is not a match.
2171 (SignalMatchRule::is_match): Add args match
2172 (SignalMatchRule::repr): Add args to the final output if they exist
2174 2005-08-17 Ross Burton <ross@burtonini.com>
2176 * glib/dbus-gproxy.c:
2177 (dbus_g_proxy_call_no_reply): unref the message once sent.
2178 (dbus_g_proxy_call): protect against NULL proxy.
2180 2005-08-16 John (J5) Palmieri <johnp@redhat.com>
2182 * python/__init__.py: Version updated (0, 43, 0)
2184 * python/dbus_bindings.pyx:
2185 - Fixed type objects to have self passed into __init__
2186 - Added the Variant type
2187 - Add the ability to specify types or signatures for Array, Variant
2189 (Connection::send_with_reply_handlers): return a PendingCall object
2190 (_pending_call_notification): handle the case when an error is returned
2191 without an error message in the body
2192 (MessageIter::get_boolean): return True or False instead of an integer
2193 (MessageIter::python_value_to_dbus_sig): add direct checking of types
2194 and add checks for objects with embeded signatures or types (Array,
2195 Variant and Dictionary)
2196 (MessageIter::append_byte): handle case when the value is a dbus.Byte
2197 (MessageIter::append_dict): handle embeded types or signatures
2198 (MessageIter::append_array): handle embeded types or signatures
2199 (MessageIter::append_variant): new method
2201 * python/proxies.py:
2202 (DeferedMethod): New. Dummy executable object used when queuing calls
2203 blocking on introspection data
2204 (ProxyMethod::__call__): add the timeout keyword for specifying longer
2205 or shorter timeouts for method calls
2206 (ProxyObject): Add first pass at an introspection state machine
2207 (ProxyObject::__init__): Add introspect keyword for turing off an on
2209 (ProxyObject::_Introspect): Internal Introspect call that bypasses
2210 the usual mechanisms for sending messages. This is to avoid a deadlock
2211 where the Intospect call would be queued waiting for the Introspect
2213 (ProxyObject::_introspect_reply_handler): New. This method is called
2214 when introspection returns with no error
2215 (ProxyObject::_introspect_error_handler): New. This method is called
2216 when introspection encounters an error
2217 (ProxyObject::__getattr__): Code to handle different introspection
2218 states. Queue async calls or block blocking calls if we are
2219 introspecting. Pass through as normal if we are not or are done with
2222 * python/service.py: Import signal and method from decorators.py
2224 * python/types.py: Add Variant type
2226 2005-08-16 Colin Walters <walters@verbum.org>
2228 * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2229 DBusError message is NULL.
2231 2005-08-09 Havoc Pennington <hp@redhat.com>
2233 * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2234 malloc'd copy of the name parameter
2236 2005-08-09 Havoc Pennington <hp@redhat.com>
2238 * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2239 warning if the reply serial is set to 0
2241 2005-08-04 Colin Walters <walters@verbum.org>
2243 * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2244 (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2245 (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2246 (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2247 (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2248 (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2249 (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2250 * glib/dbus-gvalue.h (dbus_g_value_types_init)
2251 (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2252 (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2254 Prefix name with _ to ensure they're not exported. All callers
2257 * glib/dbus-gvalue.c (typecode_to_gtype)
2258 (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2259 (signature_iter_to_g_type_dict)
2260 (signature_iter_to_g_type_array)
2261 (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2262 (dbus_gtypes_from_arg_signature):
2263 Move to dbus-gsignature.c.
2265 * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2266 dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2267 (dbus_binding_tool_output_glib_client): Ditto.
2269 * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2270 and dbus-gsignature.h
2272 * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2275 2005-08-03 Colin Walters <walters@verbum.org>
2277 * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2278 catch any incompatible changes accidentally made.
2280 2005-08-03 Havoc Pennington <hp@redhat.com>
2282 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2283 typo, from Julien Puydt
2285 * bus/connection.c (bus_connection_disconnected): we were always
2286 doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2288 2005-08-01 Colin Walters <walters@verbum.org>
2290 Patch from Joe Markus Clarke:
2292 * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2295 2005-08-01 Colin Walters <walters@verbum.org>
2297 Patch from Joe Markus Clarke:
2299 * tools/dbus-send.c (main):
2301 Don't use C99 style initializers (bug #3933).
2303 2005-08-01 Colin Walters <walters@verbum.org>
2305 Patch from Joe Markus Clarke:
2307 * glib/dbus-gvalue.c (dbus_g_value_types_init):
2308 * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init)
2309 * glib/dbus-gobject.c (write_interface):
2311 Don't use C99 style initializers (bug #3933).
2313 2005-07-31 Havoc Pennington <hp@redhat.com>
2315 * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2316 dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2318 2005-07-30 Havoc Pennington <hp@redhat.com>
2320 * fix a bunch of Doxygen warnings and mistakes
2322 2005-07-30 Havoc Pennington <hp@redhat.com>
2324 * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2325 DBUS_BUILD_TESTS since it's now used in production code
2327 2005-07-29 Havoc Pennington <hp@redhat.com>
2329 * test/glib/test-profile.c (write_junk): initialize the junk
2330 buffer so valgrind doesn't have a breakdown
2332 2005-07-29 Havoc Pennington <hp@redhat.com>
2334 * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2335 (match_rule_matches): remove unused arg
2336 (test_matching): add tests for match_rule_matches()
2338 * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2339 do arg0='foo' arg5='bar' in the match rules
2340 (match_rule_matches): don't match if the arg0='foo' doesn't match.
2342 * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2344 2005-07-29 Ross Burton <ross@openedhand.com>
2346 * dbus/dbus-connection.c:
2347 Don't create a DBusCondVar which is never used.
2349 2005-07-27 Ross Burton <ross@openedhand.com>
2351 * dbus/dbus-message.c:
2352 Reduce the size of the maximum cached message to 10K.
2354 2005-07-25 Ross Burton <ross@openedhand.com>
2356 * glib/dbus-gproxy.c:
2357 Remove matches when all proxies are unregistered.
2359 2005-07-24 Colin Walters <walters@verbum.org>
2361 * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2362 typedata; recursive arrays won't have it.
2364 * test/glib/test-dbus-glib.c:
2365 * test/glib/test-service-glib.c:
2366 * test/glib/test-service-glib.xml: Add recursive arrays tests.
2368 2005-07-20 John (J5) Palmieir <johnp@redhat.com>
2370 * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2371 proxies.py, service.py: Cleanup of code after running it through the
2372 pyflakes code checker mostly dealing with undefined names.
2373 (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2375 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
2377 * NEWS: Update to 0.35.2
2379 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
2381 * python/_dbus.py: Remove import of the dbus.services
2382 module as it no longer exists (patch from Dimitur Kirov)
2384 * python/service.py (Object::__init__): Fixed typo
2385 s/name/bus_name (patch from Dimitur Kirov)
2387 * python/examples/example-signal-emitter.py: import dbus.glib
2388 to get the main loop and use glib mainloop instead of gtk so
2389 X doesn't have to be running.
2391 * python/examples/example-signal-recipient.py: import dbus.glib
2392 to get the main loop and use glib mainloop instead of gtk so
2393 X doesn't have to be running. Import the decorators module
2396 * test/glib/Makefile.am: Added DIST_EXTRA files that distcheck
2397 didn't pick up on but are needed to build
2399 * configure.in: upped version to 0.35.2
2401 * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2402 added Colin Walters' SELinux API rename patch from head
2403 s/unix sercurity context/selinux security context/
2405 2005-07-16 John (J5) Palmieri <johnp@redhat.com>
2407 * python/Makefile.am: dbus_binding.pxd.in should be included
2408 in EXTRA_DIST not dbus_binding.pxd
2409 fix up $(srcdir) hopefully for the last time
2411 * NEWS: Update to 0.35.1
2413 2005-07-16 Colin Walters <walters@verbum.org>
2415 * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2416 from bus_driver_handle_get_connection_unix_security_context. Update for
2418 (message_handlers): Update for renames.
2420 * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2421 _dbus_string_init failure correctly.
2422 (bus_selinux_append_context): Convert SID to context. Append it
2424 (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2427 * bus/selinux.h: Update prototype.
2429 * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2430 from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2432 2005-07-15 Colin Walters <walters@verbum.org>
2434 * doc/TODO: Add note about convenience wrappers.
2436 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2438 * NEWS: Update to 0.35
2440 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2442 * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2443 so distcheck doesn't fail
2445 * glib/examples/Makefile.am: Add example-service.xml and
2446 example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2448 * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2449 statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2451 * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2452 compiler looks in the right places during distcheck
2454 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2456 * glib/example/Makefile.am: Fix a typo which cause make distcheck
2459 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2461 * python/examples/example-service.py,
2462 python/examples/example-signal-emitter.py: Fixed up examples
2465 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2467 * python/__init__.py: Upped to version (0,42,0) because of
2470 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2472 * ChangeLog: fix date in last entry
2474 * configure.in, bus/system.conf.in: add the ability to configure
2475 the system bus user at compiletime with the --with-dbus-user flag
2476 (patch from Kristof Vansant)
2478 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2480 * bus/dispatch.c, test/test-service.c: Add testcase
2481 for sending messages to oneself (TODO item).
2483 * python/service.py (class Object): Swap ordering of bus_name
2484 and object_path parameters to better support inheritance.
2486 * doc/dbus-tutorial.xml: change Python docs to reflect change
2487 in parameter ordering and fix the inheritance section.
2489 * doc/TODO: remove sending message to oneself TODO item
2491 2005-07-15 Ross Burton <ross@openedhand.com>
2493 * glib/dbus-gproxy.c:
2494 Fix a leak when calling methods via the proxy.
2496 2005-07-15 Colin Walters <walters@verbum.org>
2498 * bus/selinux.c (bus_selinux_append_context): Wrap in
2501 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
2503 * python/_dbus.py (Bus::remove_signal_receiver):
2504 don't add a callback to the match if none has been passed in
2506 * python/matchrules.py (SignalMatchTree::remove): if the rule
2507 being matched does not have a callback treat it as a wildcard
2510 * doc/dbus-tutorial.xml: Add Python tutorial
2512 2005-07-14 Colin Walters <walters@verbum.org>
2515 (bus_driver_handle_get_connection_unix_security_context): New function.
2516 (message_handlers): Add.
2518 * bus/selinux.c (bus_selinux_append_context): New function; appends
2519 security context to message.
2521 * bus/selinux.h: Prototype.
2523 * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2525 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
2527 * bus/activation.c: clean up all tabs to be 8 spaces
2528 (bus_activation_activate_service): make sure we clean up
2531 * bus/dispatch.c: clean up all tabs to be 8 spaces
2532 (check_shell_fail_service_auto_start): New function
2533 tests to make sure we get fail properly when trying to auto start a service
2534 with a faulty command line
2535 (check_shell_service_success_auto_start): New function tests to make sure
2536 auto started services get the arguments on the command line
2538 * test/test-shell-service.c: Added service for testing auto-starting with
2539 command line arguments
2541 * test/data/valid-service-files/debug-shell-echo-fail.service.in,
2542 test/data/valid-service-files/debug-shell-echo-success.service.in:
2543 Added service files for testing auto-starting with command line arguments
2545 * */.cvsignore: added a bunch of generated files to various .cvsignore files
2547 2005-07-14 Rodrigo Moya <rodrigo@novell.com>
2549 * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2551 * dbus/Makefile.am: added new files to build.
2553 * bus/activation.c (bus_activation_activate_service): support
2554 activation commands with parameters.
2556 * test/shell-test.c: added test program for the shell parsing
2559 2005-07-13 David Zeuthen <davidz@redhat.com>
2561 * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2562 64 bit signed and unsigned parameters
2564 2005-07-13 John (J5) Palmieri <johnp@redhat.com>
2566 * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2568 * python/service.py (class Name): renamed BusName to make it clearer
2569 what the object is for (a name on the bus)
2571 * python/examples/example-service.py,
2572 python/examples/example-signal-emitter.py: change the Name object to
2575 2005-07-12 Colin Walters <walters@verbum.org>
2577 Patch from Jim Gettys <Jim.Gettys@hp.com>.
2579 * tools/dbus-launch.c: Include sys/select.h.
2581 2005-07-12 John (J5) Palmieri <johnp@redhat.com>
2582 * python/dbus_bindings.pyx.in: removed
2584 * python/dbus_bindings.pyx: Added.
2585 - Fixed some memleaks (patch from
2586 Sean Meiners <sean.meiners@linspireinc.com>)
2587 - Broke out the #include "dbus_h_wrapper.h" and put it in its
2588 own pxd file (Pyrex definition)
2589 - Broke out glib dependancies into its own pyx module
2591 * python/dbus_bindings.pdx: Added.
2592 - Defines C class Connection for exporting to other modules
2594 * python/dbus_glib_bindings.pyx: Added.
2595 - New module to handle lowlevel dbus-glib mainloop integration
2597 * python/glib.py: Added.
2598 - Registers the glib mainloop when you import this module
2600 * python/services.py: Removed (renamed to service.py)
2602 * python/service.py: Added.
2603 - (class Server): renamed Name
2605 * python/__init__.py: Bump ro version (0,41,0)
2606 -don't import the decorators or service module
2607 by default. These now reside in the dbus.service namespace
2609 * python/_dbus.py (Bus::__init__): Add code run the main loop
2610 setup function on creation
2612 * python/examples/example-service.py,
2613 python/examples/example-signal-emitter.py: update examples
2615 * python/examples/gconf-proxy-service.py,
2616 python/examples/gconf-proxy-service2.py: TODO fix these up
2618 * doc/TODO: Addition
2619 - Added a Python Bindings 1.0 section
2620 - added "Add match on args or match on details to match rules"
2623 2005-07-12 Colin Walters <walters@verbum.org>
2625 * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h)
2626 (statemachine-glue.h):
2627 * glib/examples/Makefile.am (example-service-glue.h)
2628 (example-signal-emitter-glue.h):
2629 * glib/Makefile.am (dbus-glib-error-switch.h):
2630 Add libtool --mode=execute so we use the built library instead
2631 of any installed one.
2633 2005-07-11 Colin Walters <walters@verbum.org>
2635 * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2636 (dbus_g_value_types_init): Remove assertion.
2637 (dbus_g_value_get_g_type, dbus_g_value_open)
2638 (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2639 (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2640 functions related to DBusGValue. Now we marshal/demarshal
2641 structures as GValueArray.
2642 (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2644 (signature_iter_to_g_type_array): Don't call
2645 signature_iter_to_g_type_struct.
2646 (signature_iter_to_g_type_struct): Delete.
2647 (dbus_gvalue_to_signature): Delete.
2648 (dbus_gvalue_to_signature): New function with same name as other
2649 one; we can convert structures to signatures.
2650 (demarshal_valuearray): New function.
2651 (get_type_demarshaller): Use it.
2652 (demarshal_recurse): Delete.
2653 (marshal_proxy): New function.
2654 (marshal_map): Warn if we can't determine signature from type.
2655 (marshal_collection_ptrarray): Ditto.
2656 (marshal_collection_array): Ditto.
2657 (get_type_marshaller): Use marshal_valuearray.
2658 (marshal_recurse): Delete.
2659 (_dbus_gvalue_test): Add some tests.
2661 * dbus/dbus-glib.h (struct _DBusGValueIterator):
2662 (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2663 (dbus_g_value_open, dbus_g_value_iterator_get_value)
2664 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2665 (dbus_g_value_free): Remove prototypes.
2667 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2670 * glib/examples/example-service.c:
2671 * glib/examples/example-client.c: Implement GetTuple.
2673 * test/glib/test-dbus-glib.c:
2674 * test/glib/test-service-glib.c:
2675 * test/glib/test-service-glib.xml: Add structure tests.
2677 2005-07-10 Colin Walters <walters@verbum.org>
2679 * doc/TODO: Knock off some GLib items with this patch.
2681 * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error)
2682 (_dbus_gvalue_signals_error): New functions.
2684 * glib/dbus-gvalue-utils.h: Prototype them.
2686 * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2687 and change to not output const/retval flags for input args. All
2689 (invoke_object_method): Refactor to handle return values. Add
2690 some more comments in various places. Remove debug g_print.
2692 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2694 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2696 (compute_gsignature): New function; refactored from code from
2697 compute_marshaller and compute_marshaller_name. Enhance to
2698 handle return values and async ops more cleanly. Update for
2699 async ops returning NONE instead of BOOLEAN.
2700 (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2701 and output appropriate string.
2702 (generate_glue): Handle return value annotation. Also don't dump
2703 constness flag for input arguments.
2705 * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2706 files shared between installed library and utilities.
2707 (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2708 (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2709 binding tool can access gtype utility functions.
2711 * test/glib/test-service-glib.c:
2712 * test/glib/test-service-glib.xml:
2713 * test/glib/test-dbus-glib.c: Add some tests for return values.
2715 2005-07-09 Colin Walters <walters@verbum.org>
2717 * glib/dbus-gparser.c (parse_annotation): Add annotations to
2718 argument if available, not method.
2720 * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2721 (invoke_object_method): First, remove some redundant
2722 GValues (object_value, error_value) in favor of working on
2723 array directly. Second, rework constness to be less buggy.
2724 Now we iterate directly over the argument metadata instead
2725 of parallel iterating over output signature and metadata.
2727 * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2729 * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2730 annotation on input args.
2732 2005-07-09 Colin Walters <walters@verbum.org>
2734 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2737 * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2740 * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2741 (method_dir_signature_from_object_info): Handle arg_iterate change.
2742 (write_interface): Ditto.
2743 (lookup_object_info): Don't barf if format_version is > 0.
2744 (invoke_object_method): Handle arg constness.
2746 * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2747 (arg_info_new): Create.
2748 (arg_info_unref): Destroy.
2749 (arg_info_get_annotations, arg_info_get_annotation)
2750 (arg_info_add_annotation): New functions.
2752 * glib/dbus-gidl.h: Prototype them.
2754 * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2755 args, disallow them in properties.
2756 (parse_annotation): Handle arg annotations.
2758 * test/glib/test-service-glib.xml:
2759 * test/glib/test-service-glib.c: Update to make some methods
2762 2005-07-08 Colin Walters <walters@verbum.org>
2764 * test/glib/test-service-glib.xml:
2765 * test/glib/test-service-glib.c:
2766 * test/glib/test-dbus-glib.c: Test a{sv}.
2768 * glib/examples/statemachine/statemachine.c:
2769 * glib/examples/statemachine/statemachine-server.c:
2770 * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2771 add progress bar, etc.
2773 * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2774 needed anymore due to generic array/map marshalling.
2775 (dbus_g_value_types_init): Don't register basic arrays or the
2777 (dbus_gtype_from_signature_iter): Don't try to recurse into
2779 (dbus_gtype_to_signature): Check collection/map before type
2781 (demarshal_garray_basic): Renamed to demarshal_collection_array.
2782 (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2783 generic map creation/append functions instead of hash table
2785 (get_type_demarshaller): Handle maps.
2786 (demarshal_collection): Dispatch on collection type to either
2787 demarshal_collection_ptrarray or demarshal_collection_array.
2788 (get_type_marshaller): Handle maps.
2789 (marshal_collection): Dispatch collection type to either
2790 marshal_collection_ptrarray or marshal_collection_array.
2791 (_dbus_gvalue_test): New test.
2793 * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2794 (hash_free_from_gtype): Use it to free GValues.
2795 (hashtable_append): New function.
2796 (ptrarray_append): Fix prototype.
2797 (slist_append): Ditto.
2798 (_dbus_gvalue_utils_test): Extend tests.
2800 * glib/dbus-gtype-specialized.c
2801 (dbus_g_type_specialized_init_append): Renamed from
2802 dbus_g_type_specialized_collection_init_append. Remove const from
2803 value, since we steal it.
2804 (dbus_g_type_specialized_map_append): New function.
2806 * glib/dbus-gtype-specialized.h: Update prototypes.
2807 Add DBusGTypeSpecializedMapAppendFunc.
2809 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2812 * glib/dbus-gtest.h: Prototype it.
2814 2005-07-08 Ross Burton <ross@openedhand.com>
2817 Add DBysGAsyncData for the async bindings.
2819 * glib/dbus-binding-tool-glib.c:
2820 Re-enable the async bindings.
2822 * test/glib/test-dbus-glib.c:
2823 Add a test for the generated async bindings.
2825 2005-07-08 Colin Walters <walters@verbum.org>
2827 * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2830 2005-07-08 Colin Walters <walters@verbum.org>
2832 * tools/Makefile.am: Kill of print-introspect in favor of using
2833 dbus-send --print-reply=literal.
2835 * test/glib/test-service-glib.xml:
2836 * test/glib/test-service-glib.c (my_object_get_objs): New test
2839 * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2840 (main): Test GetObjs.
2842 * glib/examples/statemachine/Makefile.am:
2843 * glib/examples/statemachine/sm-marshal.list:
2844 * glib/examples/statemachine/statemachine-client.c:
2845 * glib/examples/statemachine/statemachine-server.c:
2846 * glib/examples/statemachine/statemachine-server.xml:
2847 * glib/examples/statemachine/statemachine.c:
2848 * glib/examples/statemachine/statemachine.h:
2849 * glib/examples/statemachine/statemachine.xml:
2853 * glib/examples/example-service.c (main): Move invocation
2854 of dbus_g_object_type_install_info earlier, to emphasize it
2855 should only be done once.
2857 * glib/examples/example-signal-emitter.c (main): Ditto.
2859 * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2861 * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2862 (dbus_gvalue_marshal): Update prototypes.
2864 * glib/dbus-gvalue.c: Update all marshalling functions to take
2865 const GValue instead of GValue.
2866 (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2868 (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2870 (dbus_gtype_to_signature): Handle generic collecitons and maps.
2871 Return a newly-allocated string.
2872 (demarshal_proxy, demarshal_object_path, demarshal_object)
2873 (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2874 we get the wrong types from message.
2875 (get_type_demarshaller): New function, extracted from
2876 dbus_gvalue_demarshal.
2877 (demarshal_collection): New function, demarshals generic
2879 (dbus_gvalue_demarshal): Just invoke result of
2880 get_type_demarshaller. Throw error if we don't have one.
2881 (marshal_garray_basic): Abort on OOM.
2882 (get_type_marshaller): New function, extracted from
2883 dbus_gvalue_marshal.
2884 (collection_marshal_iterator, marshal_collection): New functions;
2885 implements generic marshalling for an iteratable specialized
2887 (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2889 * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2891 (ptrarray_value_from_gvalue): Ditto.
2892 (ptrarray_append, ptrarray_free): New functions.
2893 (slist_constructor, slist_iterator, slist_copy_elt, slist_copy)
2894 (slist_append, slist_end_append, slist_free): New functions.
2895 (dbus_g_type_specialized_builtins_init): Add append fuctions
2896 for GPtrArray and GSList. Register GSList.
2897 (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2899 * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2901 (dbus_g_type_specialized_collection_init_append)
2902 (dbus_g_type_specialized_collection_append)
2903 (dbus_g_type_specialized_collection_end_append): Prototype.
2904 (DBusGTypeSpecializedCollectionVtable): Add append_func and
2907 * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append)
2908 (dbus_g_type_specialized_collection_append)
2909 (dbus_g_type_specialized_collection_end_append): New functions.
2910 (dbus_g_type_map_value_iterate): Take const GValue.
2911 (dbus_g_type_collection_value_iterate): Ditto.
2913 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2914 _dbus_gvalue_utils_test.
2916 * glib/dbus-gtest.h: Prototype it.
2918 * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2919 using uninitialized owner_list.
2920 (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2922 (dbus_g_proxy_end_call_internal): Update to use error set
2923 from dbus_gvalue_demarshal instead of setting it here.
2924 (dbus_g_proxy_begin_call): Move return_if_fail here.
2926 * glib/dbus-gobject.c (write_interface): Update for
2927 dbus_gtype_to_signature returning new string.
2929 * configure.in: Add glib/examples/statemachine.
2931 2005-07-08 Joe Shaw <joeshaw@novell.com>
2933 * configure.in: Add a configure option, --with-console-auth-dir
2935 * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2936 new setting. Patch from Kay Sievers.
2938 2005-07-06 Colin Walters <walters@verbum.org>
2940 * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2941 (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2942 (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2943 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2944 Delete in favor of dbus_g_proxy_begin_call and
2945 dbus_g_proxy_cancel_call.
2946 (DBusGProxyCall, DBusGProxyCallNotify): New.
2947 (dbus_g_proxy_begin_call): Change prototype to take callback, user
2948 data, and destroy function. This replaces
2949 dbus_g_pending_call_set_notify.
2950 (dbus_g_proxy_cancel_call): Prototype.
2951 (DBusGAsyncData): Delete, shouldn't be needed anymore.
2953 * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2955 (struct _DBusGProxyManager): Add bus_proxy member, which is an
2956 internal proxy for calls to the bus. Remove
2957 pending_nameowner_calls, now the internal proxy keeps track.
2958 (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2959 pending_nameowner_calls.
2960 (got_name_owner_cb): Update prototype, and use
2961 dbus_g_proxy_end_call.
2962 (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2963 (dbus_g_proxy_manager_register): Delete directly libdbus code in
2964 favor of using internal proxy.
2965 (dbus_g_proxy_manager_unregister): Update to use
2966 dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2967 (dbus_g_proxy_init): Initialize pending calls map.
2968 (dbus_g_proxy_constructor): New.
2969 (dbus_g_proxy_class_init): Add get/set property functions,
2970 constructor, and add NAME, PATH, and INTERFACE properties.
2971 (cancel_pending_call): New function.
2972 (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2974 (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2975 (GPendingNotifyClosure): New structure.
2976 (d_pending_call_notify, d_pending_call_free): Moved here from
2978 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2980 (manager_begin_bus_call): New internal function for talking to
2982 (dbus_g_proxy_new): Construct object using GObjet properties.
2983 (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2984 Create closure of same, and insert call into map of pending calls.
2985 (dbus_g_proxy_end_call_internal): Take call id instead of pending
2986 call. Look up pending call in current set. Remove it when we've
2988 (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2989 (dbus_g_proxy_begin_call): Change API to take callback, user data,
2990 and destroy function directly.
2991 (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2992 (dbus_g_proxy_call): Invoke with NULL callback.
2993 (dbus_g_proxy_cancel_call): New function, replaces
2994 dbus_g_pending_call_cancel.
2996 * glib/dbus-gparser.c (validate_signature): Fix call to
2999 * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3000 New quark for attaching metadata to GType.
3001 (info_hash): Delete.
3002 (lookup_object_info): Look up using quark.
3003 (dbus_g_object_type_install_info): Check that a type is classed,
3004 not that it's an object. Also just install type data using quark
3005 instead of using global hash.
3007 * glib/dbus-glib.c (dbus_g_pending_call_ref)
3008 (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3009 (GPendingNotifyClosure): Delete.
3010 (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3011 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3013 * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3014 client method generation until we can fix it...
3016 * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3017 (load_from_service_thread_func): Ditto.
3019 * tools/dbus-names-model.c (struct NamesModel): Hold
3021 (have_names_notify): Update prototype, use
3022 dbus_g_proxy_cancel_call.
3023 (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3025 * tools/dbus-monitor.c (filter_func): Update for print_message
3028 * test/glib/test-dbus-glib.c: Add more tests for async
3029 invocations. Update many begin_call/end_call pairs to just use
3032 * tools/dbus-send.c (main): Add --print-reply=literal mode. This
3033 allows us to dump print-introspect.c.
3035 * tools/dbus-print-message.h (print_message): Add literal argument
3036 to print_message which is intended to allow printing arguments without
3037 metadata like "string=".
3039 * tools/dbus-print-message.c (print_iter): Add literal argument.
3040 (print_message): Allow printing string messages literally.
3042 2005-07-05 Colin Walters <walters@verbum.org>
3044 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3045 Remove value refcount leak, original patch from Jorn Baayen
3046 <jorn@openedhand.com>. Also remove useless extra value in favor
3047 of prepending to value array directly.
3049 2005-07-02 Colin Walters <walters@verbum.org>
3051 * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
3053 2005-07-01 Colin Walters <walters@verbum.org>
3055 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3057 * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
3058 (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3059 G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3060 and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3062 2005-06-30 Colin Walters <walters@verbum.org>
3064 * test/glib/test-dbus-glib.c:
3065 * test/glib/test-service-glib.c:
3066 * test/glib/test-service-glib.xml: Update tests for new error
3067 setting bits, also add async tests (patch from Ross Burton).
3069 * test/glib/Makefile.am (test_service_glib_LDADD): Add
3070 DBUS_GLIB_THREADS_LIBS.
3072 * glib/dbus-gproxy.c (get_name_owner)
3073 (dbus_g_pending_call_end_valist): Ditto.
3075 * glib/dbus-gobject.c (error_metadata): New mapping from GError
3076 domain (GQuark) to DBusGErrorInfo.
3077 (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3078 quark in error_metadata. Take message interface as default
3079 error message interface.
3080 (gerror_to_dbus_error_message): Pass message interface.
3081 (dbus_set_g_error): Resurrected.
3082 (dbus_g_error_info_free): New function.
3083 (dbus_g_object_type_install_info): Use g_type_class_ref instead
3084 of _peek to actually create the object class if it hasn't been
3086 (dbus_g_error_domain_register): New function.
3088 * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3090 * glib/dbus-gparser.c (validate_signature): Ditto.
3092 * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3093 (dbus_g_error_domain_register): Prototype.
3095 * glib/dbus-glib.c (dbus_g_error_set): Delete.
3098 2005-06-29 Colin Walters <walters@verbum.org>
3100 * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY. Add
3101 DBUS_TYPE_G_OBJECT_PATH.
3103 * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3104 for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3105 be handled more generically). Add DBUS_TYPE_G_OBJECT_PATH.
3106 (dbus_g_object_path_get_g_type): New function.
3107 (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3108 to DBUS_TYPE_G_OBJECT_PATH by default.
3109 (demarshal_proxy): Remove unused name variable.
3110 (demarshal_object_path, marshal_object_path): New functions.
3111 (demarshal_proxy_array, marshal_proxy_array): Delete.
3113 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3114 DBUS_TYPE_G_OBJECT_PATH to char *.
3115 (dbus_g_type_get_lookup_function): Map builtin
3116 DBUS_TYPE_G_OBJECT_PATH.
3118 * test/glib/test-dbus-glib.c
3119 * test/glib/test-service-glib.c (my_object_objpath):
3120 Adapt tests to new object path marshalling.
3122 2005-06-29 John (J5) Palmieri <johnp@redhat.com>
3124 * configure.in: force check for Python >= 2.4
3126 2005-06-29 Colin Walters <walters@verbum.org>
3128 Patch from Ross Burton <ross@openedhand.com>
3130 * glib/dbus-gobject.c (invoke_object_method): Unset object
3131 value in all cases, not only in async case.
3133 2005-06-29 Colin Walters <walters@verbum.org>
3135 * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3136 name_call for keeping track of any outgoing GetNameOwner call.
3137 Also add for_owner and associated.
3138 (struct _DBusGProxyManager): Add owner_names, which is hash table
3139 that maps a base name to a list of names it owns (that we're
3140 interested in). Add pending_nameowner_calls which is a list of
3141 all outstanding GetNameOwner; avoids us having to iterate over
3142 every proxy. Add unassociated_proxies which keeps track of name
3143 proxies with no associated name owner.
3144 (dbus_g_proxy_manager_unref): Destroy owner_names.
3145 (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3147 (find_name_in_info, name_owner_foreach)
3148 (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3149 (dbus_g_proxy_manager_monitor_name_owner)
3150 (dbus_g_proxy_manager_unmonitor_name_owner)
3151 (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3152 New functions; they manipulate the owner_names mapping.
3153 (got_name_owner_cb): New function.
3154 (get_name_owner): New function, extracted from
3155 dbus_g_proxy_new_for_name_owner.
3156 (dbus_g_proxy_manager_register): For now we need to keep track of
3157 all NameOwnerChanged. Also if the proxy is for a name, if we
3158 don't already know the name owner, queue a new GetNameOwner
3159 request and add it to our list of unassociated proxies. Otherwise
3161 (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3162 cancel any pending GetNameOwner call, etc.
3163 (dbus_g_proxy_manager_filter): Handle NameOwnerChanged. Also use
3164 the owner_names mapping to look up the current names for the
3165 signal source, and dispatch to any proxies for that name.
3166 (dbus_g_proxy_new): Initialize new members.
3167 (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3168 (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3169 (dbus_g_pending_call_end_valist): New function, extracted from
3170 dbus_g_proxy_end_call_internal. Useful when we don't have a proxy
3171 but want to use the GLib infrastructure. Also note how many
3172 arguments in reply were over.
3173 (dbus_g_pending_call_end): New function, just call
3174 dbus_g_pending_call_end_valist.
3175 (dbus_g_proxy_end_call_internal): Just call
3176 dbus_g_pending_call_end_valist.
3178 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3179 of builtin marshaller for STRING_STRING_STRING.
3181 * test/glib/test-dbus-glib.c:
3182 * test/glib/test-service-glib.c:
3183 * test/glib/test-service-glib.xml:
3184 Extend tests to cover name proxies, destruction of owner proxies,
3187 * glib/examples/example-signal-recipient.c
3188 (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3190 * tools/dbus-send.c (main): Print D-BUS error name in addition
3193 2005-06-28 John (J5) Palmieri <johnp@redhat.com>
3195 * python/dbus_bindings.pyx.in (cunregister_function_handler,
3196 cmessage_function_handler): Patch from
3197 Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3198 by using the Py_GILState_Ensure/Release to synchronize with the
3201 2005-06-28 Ray Strode <rstrode@redhat.com>
3203 * dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3204 babysitter helper process on last unref, bug #2813.
3206 2005-06-27 Colin Walters <walters@verbum.org>
3208 * test/glib/test-dbus-glib.c:
3209 * test/glib/test-service-glib.c:
3210 * test/glib/test-service-glib.xml:
3211 Test hash table signal emitting.
3213 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3214 types to their fundamental basis types, since this is what
3215 marshallers operate on. Also add an entry for VOID__BOXED.
3216 (dbus_g_object_register_marshaller_array): Convert to fundamental.
3218 2005-06-26 Havoc Pennington <hp@redhat.com>
3220 * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3223 2005-06-26 Colin Walters <walters@verbum.org>
3225 * glib/dbus-glib.c (dbus_set_g_error): Delete.
3226 (dbus_g_error_set): New public function from its ashes; used by
3227 both service-side method implementation and GLib bindings
3229 (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3230 (_dbus_glib_test): Add some tests.
3232 * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3234 * test/glib/test-service-glib.c (my_object_throw_error): Use
3237 * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3238 errors thrown by dbus_g_error_set.
3240 * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3242 * glib/dbus-gparser.c (validate_signature): Ditto.
3244 * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner)
3245 (dbus_g_proxy_end_call_internal): Ditto.
3247 * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3248 converts DBUS_ERROR_x to DBUS_GERROR_x.
3249 (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3251 * doc/TODO: Remove error TODO.
3253 * doc/dbus-tutorial.xml: Update with documentation about error
3256 * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3257 sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3258 GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION.
3260 2005-06-22 Colin Walters <walters@verbum.org>
3262 Patch from Ross Burton <ross@openedhand.com>
3264 * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3266 2005-06-20 Colin Walters <walters@verbum.org>
3268 * configure.in: Add glib/examples.
3270 * glib/Makefile.am: Add examples/
3272 * glib/examples/.cvsignore
3273 * glib/examples/Makefile.am
3274 * glib/examples/example-client.c
3275 * glib/examples/example-service.c
3276 * glib/examples/example-service.xml
3277 * glib/examples/example-signal-emitter.c
3278 * glib/examples/example-signal-emitter.xml
3279 * glib/examples/example-signal-recipient.c:
3280 New files; GLib binding examples, ported from
3283 2005-06-20 Colin Walters <walters@verbum.org>
3286 * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3289 * glib/dbus-binding-tool-glib.c:
3290 * doc/dbus-tutorial.xml:
3291 * test/glib/test-dbus-glib.c: Update for rename.
3293 2005-06-20 Colin Walters <walters@verbum.org>
3295 Patch suggested by Ross Burton <ross@openedhand.com>
3297 * glib/dbus-gobject.c (export_signals): Free signal name.
3298 (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3299 memory leak. Add a bit of documentation.
3300 (dbus_g_method_return_error): Free context, and note we do
3303 2005-06-18 Murray Cumming <murrayc@murrayc.com>
3306 * glib/dbus-gobject.c:
3307 * glib/dbus-gproxy.c:
3308 * glib/dbus-gvalue.c: Predeclare structs as
3309 typedef struct _Something Something instead of
3310 typedef struct Something Something, so we can
3311 redeclare the prototypes. Other GNOME libraries
3314 2005-06-17 Colin Walters <walters@verbum.org>
3316 * tools/dbus-names-model.c (have_names_notify): Fix call
3317 to dbus_g_proxy_end_call.
3319 2005-06-17 Colin Walters <walters@verbum.org>
3321 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3322 spew warnings if we get malformed remote signals.
3324 * glib/dbus-gobject.c (propsig_iterate): New function.
3325 (lookup_object_info): New function, extracted from
3326 lookup_object_and_method.
3327 (introspect_properties, introspect_signals): Delete; these
3328 are merged into write_interface.
3329 (write_interface): Write out signals and properties here;
3330 dump the org.gtk.object stuff and use the interface given
3331 in the introspection data blob. Also fix up property XML.
3332 (lookup_values): New function.
3333 (introspect_interfaces): Gather a mapping from interface to a
3334 list of its methods, signals, and properties, then write out
3336 (lookup_object_and_method): Use lookup_object_info.
3337 (struct DBusGSignalClosure): Add interface.
3338 (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3339 we can just use the constant data.
3340 (dbus_g_signal_closure_finalize): Don't free signal name.
3341 (signal_emitter_marshaller): Use interface from signal closure.
3342 (export_signals): Only export signals mentioned in introspection
3344 (dbus_g_connection_register_g_object): Warn if we have no
3345 introspection data for an object.
3346 (funcsig_equal): Remove unused variable.
3347 (dbus_g_object_register_marshaller): Take varargs instead of
3349 (dbus_g_object_register_marshaller_array): New function,
3350 extracted from old dbus_g_object_register_marshaller.
3352 * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3353 signals and property data.
3354 (write_quoted_string): New function, extracted from generate_glue.
3355 (generate_glue): Write signals and properties to introspection
3358 * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3359 exported_signals and exported_properties.
3360 (dbus_g_object_register_marshaller): Update prototype.
3361 (dbus_g_object_register_marshaller_array): Prototype.
3363 * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3365 * test/glib/test-service-glib.c: Add new test signals and method
3368 * test/glib/test-service-glib.xml: Add some test signals.
3370 * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3371 and my-object-marshal.h
3372 (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3373 my-object-marshal.c.
3374 (my-object-marshal.c, my-object-marshal.h): Implement.
3376 * test/glib/.cvsignore: Update.
3378 * doc/TODO: Remove two GLib TODO items fixed by this
3381 2005-06-16 Colin Walters <walters@verbum.org>
3383 * doc/TODO: Update for GLib bindings.
3385 2005-06-16 Colin Walters <walters@verbum.org>
3387 * glib/dbus-binding-tool-glib.c:
3388 * glib/dbus-gobject.c:
3389 * glib/dbus-gproxy.c: Add Nokia copyright; Patch
3390 from Ross Burton, for his GLib bindings work.
3392 2005-06-16 Colin Walters <walters@verbum.org>
3394 * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3395 to iterate instead of walking to G_TYPE_INVALID.
3397 Patch based on a patch from Ryan Gammon.
3399 2005-06-16 Colin Walters <walters@verbum.org>
3401 * bus/bus.c (bus_context_new): Set parser to NULL
3402 after we unref it (Patch from Chris Boscolo, #2174).
3404 2005-06-16 Colin Walters <walters@verbum.org>
3406 * python/dbus_bindings.pyx.in: Import size_t,
3407 __int64_t, __uint64_t, and __signed.
3409 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3410 Define cmsg struct, output it.
3411 (_dbus_read_credentials_unix_socket):
3414 Patch from Joe Markus Clarke for FreeBSD support.
3416 2005-06-16 Colin Walters <walters@verbum.org>
3418 * tools/dbus-send.c (append_array): Use strtok.
3419 (append_dict): New function.
3420 (type_from_name): New function, extracted from main.
3421 (main): Handle sending dicts.
3423 * tools/dbus-print-message.c (print_iter): Print dict
3426 2005-06-16 Colin Walters <walters@verbum.org>
3428 * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3429 values as the empty string (#2948).
3431 2005-06-16 Colin Walters <walters@verbum.org>
3434 * mono/doc/Makefile.am:
3435 * test/glib/Makefile.am:
3437 Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3439 2005-06-16 Colin Walters <walters@verbum.org>
3441 * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3442 header byte order from expected byte order (Patch from Chris Wilson, #3475).
3444 * dbus/dbus-marshal-byteswap.c (byteswap_body_helper):
3445 Increment pointer after swapping fixed array. Add assertion
3448 2005-06-15 Colin Walters <walters@verbum.org>
3450 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3451 Fix call to dbus_set_error. (Patch from Michael Banck, #3461)
3453 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3455 * NEWS: Update to 0.34
3457 2005-06-15 David Zeuthen <davidz@redhat.com>
3459 * configure.in (LT_CURRENT): Revert back to 1 as the library
3460 hasn't changed and we've certainly not committed to protocol
3461 stability yet. All this does is to break ABI. See commit note
3462 from hp@redhat.com 2005-05-05 for details.
3464 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3466 * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method
3467 (_dbus_connection_run_builtin_filters): New method
3468 (dbus_connection_dispatch): Run the builtin filters which in turn
3469 runs the peer filter which handles Ping messages.
3472 - Ping isn't handled: This patch fixes it
3474 - Add a test case for the Ping message: added TODO item
3476 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3478 * dbus/dbus-message.c:
3479 (dbus_message_has_path): New method
3480 (dbus_message_has_interface): New method
3481 (dbus_message_has_member): New method
3483 * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3486 * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that
3487 the keyring directory is private to the user
3490 - The convenience functions in dbus-bus.h should perhaps have
3491 the signatures that they would have if they were autogenerated
3492 stubs. e.g. the acquire service function. We should also evaluate
3493 which of these functions to include, in light of the fact that
3494 GLib/Qt native stubs will probably also exist.: Punted
3496 - add dbus_message_has_path(), maybe has_member/interface:
3499 - in dbus-keyring.c, enforce that the keyring dir is not
3500 world readable/writable: Fixed in this patch
3502 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3504 * dbus/dbus-marshal-validate.h: Added a new validation
3505 error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for
3506 out of memory errors when validating signitures
3508 * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3509 in places where we previously used DBUS_VALID and a FALSE return
3510 value to indicate OOM
3512 * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3513 Use a stack to track the number of elements inside containers. The
3514 stack values are then used to validate that dict entries have only two
3515 elements within them.
3516 (validate_body_helper): check the reason for failure when validating
3519 * dbus/dbus-message.c (load_message): use
3520 DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used
3521 DBUS_VALID and a FALSE return value to indicate OOM
3523 * doc/TODO: remove "- validate dict entry number of fields" as this
3526 2005-06-14 David Zeuthen <davidz@redhat.com>
3528 * bus/bus.c (process_config_every_time): Drop existing conf-dir
3529 watches (if applicable) and add new watches
3531 * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3532 (main): Setup SIGIO signal handler if using D_NOTIFY
3534 * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3536 * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3537 (merge_included): Also merge conf_dirs list
3538 (bus_config_parser_unref): Clear conf_dirs list
3539 (include_dir): Add directory to conf_dirs list
3540 (bus_config_parser_get_conf_dirs): New function
3542 * bus/dir-watch.[ch]: New files
3544 * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3546 * configure.in: Add checks for D_NOTIFY on Linux
3548 2005-06-14 Colin Walters <walters@verbum.org>
3550 * glib/dbus-binding-tool-glib.c:
3551 * glib/dbus-gobject.c:
3552 * glib/dbus-gvalue.c: Fix indentation and brace style.
3554 2005-06-14 Ross Burton <ross@openedhand.com>.
3556 * glib/dbus-glib.h: Make DBusGMethodInvocation
3557 a private structure. Rearrange prototypes a bit.
3559 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3560 documentation for first_arg_type.
3562 * glib/dbus-gobject.c: Move DBusGMethodInvocation
3563 here, add documentation. Move dbus_g_method_return
3564 and dbus_g_method_return_error into public API
3567 2005-06-14 Colin Walters <walters@verbum.org>
3569 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3570 Add missing return statements, noticed by Ross Burton.
3572 2005-06-13 Ross Burton <ross@openedhand.com>.
3574 * glib/dbus-gobject.c: Handle errors on message
3575 demarshalling by sending error message back.
3576 * glib/dbus-gvalue.c: Initialize return variables.
3578 2005-06-13 Colin Walters <walters@verbum.org>
3580 * glib/Makefile.am: Fix thinko in last patch.
3582 2005-06-13 Colin Walters <walters@verbum.org>
3584 * glib/Makefile.am: Move dbus-gtype-specialized.c
3585 and dbus-gtype-specialized.h into a _HEADERS variable,
3588 2005-06-12 Colin Walters <walters@verbum.org>
3590 Async signals and various bugfixes and testing by
3591 Ross Burton <ross@openedhand.com>.
3593 * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3594 (dbus_gvalue_genmarshal_name_from_type)
3595 (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3596 (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3597 (dbus_g_value_types_init, dbus_gtype_from_signature)
3598 (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3599 (dbus_gtypes_from_arg_signature): New function prototypes.
3600 (dbus_gvalue_demarshal): Take context and error arguments.
3601 (dbus_gvalue_demarshal_variant): New function.
3602 (dbus_gvalue_demarshal_message): New function.
3603 (dbus_gvalue_store): Delete.
3605 * glib/dbus-gvalue.c:
3607 File has been almost entirely rewritten; now we special-case
3608 more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3609 hash tables correctly, etc. Full support for recursive values
3610 is not yet complete.
3612 * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3613 argument of signal to G_TYPE_POINTER since we now pass a
3615 (lookup_g_marshaller): Delete in favor of
3616 _dbus_gobject_lookup_marshaller.
3617 (marshal_dbus_message_to_g_marshaller): Use
3618 _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3619 to handle remote signal callbacks.
3620 (dbus_g_proxy_new_from_proxy): New function; creates a new
3621 DBusGProxy by copying an existing one.
3622 (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3623 (dbus_g_proxy_get_path): New functions.
3624 (dbus_g_proxy_marshal_args_to_message): New function;
3625 factored out of existing code.
3626 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3627 from a varargs array.
3628 (dbus_g_proxy_begin_call_internal): New function.
3629 (dbus_g_proxy_end_call_internal): New function.
3630 (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3631 as arguments; simply invoke dbus_g_proxy_begin_call_internal
3632 after collecting args into value array.
3633 (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3634 invoke dbus_g_proxy_end_call_internal.
3635 (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3637 (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3639 (array_free_all): New function.
3640 (dbus_g_proxy_add_signal): Take GTypes.
3642 * glib/dbus-gobject.h:
3643 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3644 (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3647 * glib/dbus-gobject.c: Add a global marshal_table hash which
3648 stores mappings from type signatures to marshallers. Change lots
3649 of invocations of dbus_gtype_to_dbus_type to
3650 dbus_gtype_to_signature.
3651 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3652 (introspect_signals): Fix test for query.return_type.
3653 (set_object_property): Update invocation of dbus_gvalue_demarshal.
3654 (invoke_object_method): Many changes. Handle asynchronous
3655 invocations. Convert arguments with
3656 dbus_gvalue_demarshal_message. Handle errors. Use
3657 DBusSignatureIter instead of strlen on args. Handle all arguments
3658 generically. Special-case variants.
3659 (dbus_g_method_return, dbus_g_method_return_error): New function.
3660 (DBusGSignalClosure): New structure, closes over signal
3662 (dbus_g_signal_closure_new): New function.
3663 (dbus_g_signal_closure_finalize): New function.
3664 (signal_emitter_marshaller): New function; is special marshaller
3665 which emits signals on bus.
3666 (export_signals): New function; introspects object signals and
3668 (dbus_g_object_type_install_info): Take GType instead of
3670 (dbus_g_connection_register_g_object): Invoke export_signals.
3671 (dbus_g_connection_lookup_g_object): New function.
3672 (DBusGFuncSignature) New structure; used for mapping type
3673 signatures to marshallers.
3674 (funcsig_hash): New function; hashes DBusGFuncSignature.
3675 (funcsig_equal): New function; compares DBusGFuncSignature.
3676 (_dbus_gobject_lookup_marshaller): New function.
3677 (dbus_g_object_register_marshaller): New function; used to
3678 register a marshaller at runtime for a particular signature.
3680 * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3682 * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3683 which notes a server method implementation should be
3686 * glib/dbus-binding-tool-glib.c
3687 (dbus_binding_tool_output_glib_server): Call
3688 dbus_g_value_types_init.
3689 (write_formal_parameters): Use dbus_gtype_from_signature. Handle
3691 (dbus_g_type_get_lookup_function): Turn GType into an invocation
3692 of a lookup function.
3693 (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3694 (write_untyped_out_args): New method; write output arguments.
3695 (write_formal_declarations_for_direction): Function for
3697 (write_formal_parameters_for_direction): Function for
3698 writing implementations.
3699 (write_typed_args_for_direction): Function for writing
3700 arguments prefixed with GTypes.
3701 (write_async_method_client): Write out async version
3704 * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3705 (dbus_g_type_get_marshal_name): Move mapping from GType
3706 to marshal name into here.
3707 (dbus_g_type_get_c_name): Move into here.
3708 (compute_marshaller): Convert signature to type with
3709 dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3710 (compute_marshaller_name): Ditto.
3711 (compute_marshaller): Handle async signal annotations.
3712 (gather_marshallers): Return if we don't have a known
3714 (generate_glue): Collect introspection blob here, and
3715 write all of the blob at the end. This allows an object
3716 with multiple interfaces to work.
3717 Mark async methods in introspection blob.
3719 * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3720 dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3721 dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3723 * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3724 avoids people accidentally using DBUS_TYPE_* which should
3725 not be necessary anymore.
3726 Do include dbus-gtype-specialized.h, which are utilities
3727 for GLib container types.
3728 Add various #defines for types such as
3729 DBUS_TYPE_G_BOOLEAN_ARRAY.
3730 (DBusGValueIterator, DBusGValue): Define, not fully used
3732 (dbus_g_value_get_g_type): Type for recursive value.
3733 (dbus_g_value_open, dbus_g_value_iterator_get_value)
3734 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3735 (dbus_g_value_free): Prototypes.
3736 (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3737 (dbus_g_proxy_set_interface): Prototype.
3738 (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3739 (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3741 (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3743 (DBusGAsyncData, DBusGMethodInvocation): Structures for
3744 doing async invocations.
3745 (dbus_g_method_return, dbus_g_method_return_error):
3747 * doc/dbus-tutorial.xml: Update GLib section.
3749 * tools/dbus-viewer.c (load_child_nodes): Update
3750 for new invocation type of dbus_g_proxy_end_call.
3751 (load_from_service_thread_func): Ditto.
3753 * tools/print-introspect.c (main): Ditto.
3755 * tools/dbus-names-model.c (have_names_notify)
3756 (names_model_reload, names_model_set_connection)
3759 * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3760 needed since Python bindings use GLib bindings.
3762 * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3763 Add --prefix argument.
3765 * tools/Makefile.am: Define DBUS_COMPILATION. Remove
3766 unneeded --ignore-unsupported arg.
3768 * test/glib/test-service-glib.c:
3769 * test/glib/test-service-glib.xml:
3770 * test/glib/test-dbus-glib.c: Add many more tests.
3772 2005-06-06 David Zeuthen <davidz@redhat.com>
3774 * doc/TODO: Add item about need to remove deprecated functions.
3776 * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3778 * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3779 to repair the ABI which was broken with the last commit.
3781 2005-06-02 John (J5) Palmieri <johnp@redhat.com>
3783 * dbus/dbus-connection.c, dbus/dbus-connection.h
3784 (dbus_connection_disconnect): renamed to dbus_connection_close
3785 for API symmetry with dbus_connection_open
3786 (_dbus_connection_open_internal):
3787 s/dbus_connection_disconnect/dbus_connection_close
3789 * dbus/dbus-bus.c (dbus_bus_get):
3790 s/dbus_connection_disconnect/dbus_connection_close
3792 * bus/connection.c (bus_connections_unref,
3793 bus_connections_setup_connection, bus_connections_expire_incomplete):
3794 s/dbus_connection_disconnect/dbus_connection_close
3796 * bus/dispatch.c (bus_dispatch, kill_client_connection,
3797 kill_client_connection_unchecked, check_hello_connection):
3798 s/dbus_connection_disconnect/dbus_connection_close
3800 * bus/bus.c (new_connection_callback):
3801 s/dbus_connection_disconnect/dbus_connection_close
3803 * tools/dbus-send.c (main):
3804 s/dbus_connection_disconnect/dbus_connection_close
3806 * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3807 s/dbus_connection_disconnect/dbus_connection_close
3809 * test/test-service.c (path_message_func, filter_func):
3810 s/dbus_connection_disconnect/dbus_connection_close
3812 * doc/TODO: remove connection_open/connection_disconnect lacks symmetry item that was just fixed
3814 2005-05-25 Colin Walters <walters@verbum.org>
3816 * dbus/dbus-protocol.h: Move various bus service #defines such
3817 as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3819 * dbus/dbus-shared.h: Various defines moved here.
3820 * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3822 2005-05-25 John (J5) Palmieri <johnp@redhat.com>
3824 * python/__init__.py: Python bindings deserve a minor version
3825 update. Upped to (0, 40, 2)
3827 2005-05-24 John (J5) Palmieri <johnp@redhat.com>
3829 * python/decorators.py: add explicitly_pass_message decorator
3830 for passing in the dbus message as keyword for edge case signal
3833 * python/matchrules.py (SignalMatchRule.__repr__): fix output
3834 to conform with what dbus expects for match rules
3835 (SignalMatchRule.execute): add the dbus message as a keyword
3836 if the signal handler has requested it
3838 * python/examples/example/signal-recipient.py: added some more
3839 examples on how to hook up to signals
3841 2005-05-23 John (J5) Palmieri <johnp@redhat.com>
3843 * python/decorators.py: import dbus_bindings
3845 * python/matchrules.py (SignalMatchRule, SignalMatchTree,
3846 SignalMatchNode): new classes that implement wildcard signal
3847 callback matching using a tree lookup. Heavily modified from a
3848 patch sent by Celso Pinto (fd.o bug #3241)
3850 * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3851 use new match classes to handle signals.
3853 2005-05-19 John (J5) Palmieri <johnp@redhat.com>
3855 * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3857 2005-05-18 Havoc Pennington <hp@redhat.com>
3859 * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3860 gettext. Not really worth requiring yet perhaps, but any
3861 production quality 1.0 would require it so we should go ahead and
3862 get things set up. We do have a couple token calls to
3863 bindtextdomain in the code already.
3865 2005-05-16 John (J5) Palmieri <johnp@redhat.com>
3867 * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3868 when using recursive g_main_loops
3870 * python/_dbus.py (class Bus): add the ProxyObjectClass
3871 alias for ProxyObject to make it easier for the Twisted
3872 networking framework to integrate dbus.
3874 * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3875 alias for ProxyMethod to make it easier for the Twisted
3876 networking framework to integrate dbus.
3878 2005-05-11 Ross Burton <ross@openedhand.com>
3880 * glib/dbus-glib-tool.c: Add --prefix argument.
3881 * glib/dbus-binding-tool-glib.h: Add prefix argument.
3882 * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3883 Add prefix argument.
3884 (generate_glue): Pass prefix argument down.
3885 (dbus_binding_tool_output_glib_server): Pass prefix to
3888 2005-05-11 Colin Walters <walters@verbum.org>
3890 * tools/dbus-send.c (append_array): New function.
3891 (append_arg): Broken out from main.
3892 (main): Add cheesy hack to send arrays and variants.
3894 * tools/dbus-print-message.c (print_iter): Broken out
3897 2005-05-11 Colin Walters <walters@verbum.org>
3899 * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3900 New function, returns signature string for signature iter.
3901 * dbus/dbus-signature.h: Prototype it.
3902 * dbus/dbus-message.c (dbus_message_iter_get_signature):
3903 New function, returns signature string for message iter.
3904 (dbus_message_iter_get_array_len): New function, returns
3906 (dbus_message_iter_get_fixed_array): Fix assertion; this
3907 function should be used when the iter is pointing to the
3908 contents of an array
3909 * dbus/dbus-message.h: Prototypes.
3910 * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3911 New function; returns length of an array.
3912 * dbus/dbus-marshal-recursive.h: Prototype it.
3914 2005-05-11 Colin Walters <walters@verbum.org>
3916 * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3919 2005-05-08 Havoc Pennington <hp@redhat.com>
3921 * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3922 daemon's pid, not the parent's pid, to the file descriptor.
3923 Reported by Taj Morton.
3925 2005-05-05 Havoc Pennington <hp@redhat.com>
3927 * configure.in (LT_*): add notes on how the libtool versioning
3928 works to save thinking. Increment soname to indicate protocol
3929 breakage (though really the library interface hasn't changed I
3932 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3933 verify the GUID received from server matches what we were
3934 expecting, if we had an expectation
3936 * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3937 (_dbus_auth_get_guid_from_server): new function
3938 (send_begin): parse the OK args
3940 * doc/dbus-specification.xml: add GUID to the auth protocol
3942 2005-05-05 John (J5) Palmieri <johnp@redhat.com>
3944 * Fix my name in previous changelog ;)
3946 * python/proxies.py (ProxyObject.__getattr__): add further patch
3947 from Anthony Baxter to throw an AttributeError when python
3948 __special__ functions are called instead of marshling them over
3949 the bus (Bug#1685 comment 3).
3951 2005-05-04 John (J5) Palmieri <johnp@redhat.com>
3953 * python/Makefile.am: changed to use pyexecdir for the binding
3954 shared libraries (Bug#2494)
3956 * python/exceptions.py: bring exceptions over from the bindings
3957 so they can be used in applications (Bug#2036)
3958 Make all exceptions derive from DBusException
3960 * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3961 of classes so that print obj doesn't throw an exception (Bug #1685)
3963 2005-05-03 Ross Burton <ross@openedhand.com>
3965 * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3966 Return if we get an error during registration. Set up a
3967 weak reference on object to unregister if object is destroyed.
3968 (unregister_gobject): New function.
3970 2005-05-01 John (J5) Palmieri <johnp@redhat.com>
3972 * python/dbus_bindings.pyx.in:
3973 - added new type classes for hinting to the marashaler what type
3974 to send over the wire
3975 - added int16 and uint16 marshalers
3976 - Fixed a bug in the type constants that caused int32 to go out
3977 as uint16 over the wire
3978 * python/dbus.py: split up into different files and renamed _dbus.py
3979 * python/__init__.py, python/_util.py, python/decorators.py,
3980 python/exceptions.py, python/proxies.py, python/services.py,
3981 python/types.py: new files split off from dbus.py
3982 * python/Makefile.am: Add new files, remove dbus.py and
3983 install all python files to <python module dir>/dbus
3984 * python/examples/*: Added #!/usr/bin/env python to the top of
3985 every example. Patch provided by Tatavarty Kalyan
3987 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
3989 * NEWS: Update to 0.33
3991 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
3993 * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3994 method for doing async calls
3995 (_pending_call_notification): New C function for handling pendning call
3997 (set_notify): New method for setting pending call notification
3999 * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4000 Async capabilities added to remote method calls
4001 (Sender): class removed
4002 (RemoteService): class removed
4003 (ObjectTree): class removed for now
4004 (RemoteObject): Renamed to ProxyObject
4005 (RemoteMethod): Renamed to ProxyMethod
4006 (method): Decorator added for decorating python methods as dbus methods
4007 (signal): Decorator added for decorating python methods as signal emitters
4008 (ObjectType): Metaclass added for generating introspection data and the
4009 method callback vtable
4010 (Interface): Wrapper class added to wrap objects in a dbus interface
4011 (Object): Uses ObjectType as its metaclass and exports Introspect
4012 of the org.freedesktop.DBus.Introspectable interface
4013 (ValidationException, UnknownMethodException): new exceptions
4015 * python/examples/*: Modified to fit with the new bindings
4017 2005-04-23 Havoc Pennington <hp@redhat.com>
4019 * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4020 reported by Tony Houghton
4022 * test/test-service.c (main): test
4023 dbus_connection_get_object_path_data()
4025 * dbus/dbus-object-tree.c (find_handler): be sure we always init
4027 (_dbus_object_tree_get_user_data_unlocked): new function used by
4028 dbus_connection_get_object_path_data()
4029 (do_register): add assertion test for get_user_data_unlocked
4030 (object_tree_test_iteration): more tests
4032 * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
4033 new function from Dan Reed to let you get the user data from
4034 dbus_connection_register_object_path()
4036 2005-04-23 John (J5) Palmieri <johnp@redhat.com>
4038 * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
4039 in numerous places that did not account for the NULL terminator
4040 (signature_from_seed): changed the manual string copy loop to
4041 just use strcpy instead
4042 make check should now pass
4044 2005-04-19 John (J5) Palmieri <johnp@redhat.com>
4046 * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
4047 so that it allows messages that are not signals to pass in
4048 NULL as the interface.
4050 2005-04-18 David Zeuthen <davidz@redhat.com>
4052 * glib/dbus-gmain.c (io_handler_destroy_source):
4053 (timeout_handler_destroy_source, connection_setup_free):
4054 Also unref the source to avoid memory leaks.
4056 2005-04-13 David Zeuthen <davidz@redhat.com>
4058 * bus/config-parser.c (bus_config_parser_new): Bump this to a
4059 more reasonable, yet still totally arbitrary, value :-).
4061 2005-04-13 David Zeuthen <davidz@redhat.com>
4063 * doc/TODO: Added an "important for 1.0" item about selinux
4066 2005-04-13 David Zeuthen <davidz@redhat.com>
4068 * bus/selinux.c: Add c-file-style to top of file
4069 (log_audit_callback): Don't free the data here anymore
4070 (bus_selinux_check): Don't take spid and tpid since appending
4071 that to auxdata may OOM.
4072 (bus_selinux_allows_acquire_service): Handle OOM and signal back
4073 to the caller if we are OOM by taking an error object.
4074 (bus_selinux_allows_send): -do-
4076 * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4077 and bus_selinux_allows_send
4079 * bus/bus.c (bus_context_check_security_policy): Pass error and
4080 pass on OOM thrown by bus_selinux_allows_send()
4082 * bus/services.c (bus_registry_acquire_service): Pass error and
4083 pass on OOM thrown by bus_selinux_allows_acquire_service()
4085 2005-04-13 Havoc Pennington <hp@redhat.com>
4087 * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4088 message at a time to avoid monopolizing the main loop, bug
4089 #2953 from Benjamin Otte
4091 2005-04-09 Havoc Pennington <hp@redhat.com>
4093 * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4094 possible overlap, fix from Daniel Reed
4095 (fixup_alignment): fix signedness warnings
4096 (_dbus_string_append_unichar): ditto
4098 2005-04-09 Havoc Pennington <hp@redhat.com>
4100 * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4102 * glib/dbus-glib-tool.c (main): fix warning
4104 * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4106 * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4107 add a new function that can be used in simple applications that
4108 don't have a main loop and are willing to block
4110 2005-04-05 David Zeuthen <davidz@redhat.com>
4112 Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4114 * glib/dbus-gmain.c:
4115 (io_handler_destroy_source): Remove from list of IO handlers
4116 of the ConnectionSetup object
4117 (timeout_handler_destroy_source): -do- for timeout handlers
4118 (io_handler_source_finalized): Don't remove from list since
4119 we now do that in io_handler_destroy_source(). Renamed from
4120 io_handler_source_destroyed
4121 (timeout_handler_source_destroyed): -do- for timeout handlers
4122 (connection_setup_free): It is now safe to iterate over all
4123 IO and timeout handlers as the _destroy_source removes them
4124 from the list synchronously
4126 2005-03-30 Havoc Pennington <hp@redhat.com>
4128 * configure.in: change check to gtk 2.4
4130 * tools/dbus-viewer.c (name_combo_changed_callback): remove
4131 gtk_combo_box_get_active_text() usage to decrement GTK requirement
4134 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
4138 * HACKING: Fixed realease instructions. configure.in should be updated to
4139 the next release by the person who made the last release.
4141 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
4143 * python/lvalue_cast_post_process.py - removed. Patch has been
4144 submitted to Pyrex maintainers that fixes gcc4.0 errors
4146 * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4148 2005-03-24 Daniel Reed <n@ml.org>
4150 * tools/Makefile.am: Make print-introspect and
4151 dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4153 2005-03-22 John (J5) Palmieri <johnp@redhat.com>
4155 * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4157 * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have
4158 had in Red Hat packages for a while but for some reason never
4160 (_dbus_is_a_number): New checks if a string
4161 can be converted to a number and does the conversion if it can
4162 (_dbus_user_database_lookup): Add check to see if the given username
4163 is a udi. This allows udi's to be used instead of usernames in the
4165 (_dbus_user_database_lookup_group): Add check to see if the given groupname
4166 is a gdi. This allows gdi's to be used instead of groupnames in the
4169 2005-03-21 John (J5) Palmieri <johnp@redhat.com>
4171 * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4172 code so that it compiles with gcc4.0
4174 * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4175 run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4176 results back to dbus_binding.c
4178 2005-03-20 Colin Walters <walters@verbum.org>
4180 Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4182 * configure.in: Require GTK+ 2.6.
4184 2005-03-20 Colin Walters <walters@verbum.org>
4186 * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4188 2005-03-17 Tom Parker <palfrey@tevp.net>
4190 * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4191 print DBUS_UID_UNSET; instead print passed username. Also
4192 be sure to actually use gid looked up in cache.
4194 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4195 for DBUS_GID_UNSET and groupname.
4197 2005-03-17 Colin Walters <walters@verbum.org>
4199 * bus/print-introspect.c: Move to tools/.
4200 * bus/run-with-tmp-session-bus.sh: Ditto.
4202 * glib/Makefile.am (dbus-glib-bindings.h): Move
4203 generation to tools/Makefile.am.
4205 * test/glib/run-test.sh: Update to handle move
4206 of run-with-tmp-session-bus.sh.
4208 * test/glib/test-service-glib.c: Update to handle
4209 move of dbus-glib-bindings.h.
4211 * tools/print-introspect.c: Moved here
4212 from bus/, and ported to GLib bindings.
4214 * tools/run-with-tmp-session-bus.sh: Moved here
4217 * tools/Makefile.am: Generate dbus-glib-bindings.h
4218 and dbus-bus-introspect.xml here.
4220 * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4223 2005-03-17 Colin Walters <walters@verbum.org>
4225 * bus/driver.c (write_args_for_direction): Use
4226 _dbus_string_get_const_data to retrieve string;
4227 _dbus_string_get_const_data_len doesn't actually return
4228 a NULL-terminated substring.
4230 * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4231 (main): Change to use org_freedesktop_DBus_request_name
4232 instead of using g_proxy_begin_call/end_call.
4234 2005-03-15 Joe Shaw <joeshaw@novell.com>
4236 * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4237 generating the finalizer. Fixes from Ben Maurer.
4239 2005-03-12 Joe Shaw <joeshaw@novell.com>
4241 * mono/BusDriver.cs: Update method names: ListServices
4242 becomes ListNames; GetOwner becomes GetNameOwner.
4244 * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4245 onto the eval stack when removing the delegate.
4247 2005-03-12 Joe Shaw <joeshaw@novell.com>
4249 * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4250 LT_CURRENT. Set it to the autoconf variable.
4252 * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4253 classes that disconnects the signal handler delegate from the
4254 service object. Fixes a big leak of proxy objects on the
4255 client side of things. Patch from Ben Maurer
4256 <bmaurer@ximian.com>
4258 2005-03-12 Colin Walters <walters@verbum.org>
4260 * bus/driver.c (write_args_for_direction): New function,
4261 parses a type signature into arguments and outputs to
4263 (bus_driver_handle_introspect): Use it instead of
4264 hardcoding XML for certain signatures.
4266 * bus/Makefile.am (dbus-bus-introspect.xml): Add
4267 dependency on dbus-daemon.
4269 * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4270 argument, pass it to dbus_binding_tool_output_glib_client.
4272 * glib/dbus-binding-tool-glib.c
4273 (generate_client_glue): Protect against multiple inclusion.
4274 (dbus_binding_tool_output_glib_client): Add
4275 G_BEGIN_DECLS/G_END_DECLS.
4277 * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4278 Change to just take iface prefix directly.
4279 (write_formal_parameters): Clarify error message.
4280 (check_supported_parameters): New function; checks to see type
4281 signatures of method parameters are supported.
4282 (generate_client_glue): Handle ignore_unsupported flag.
4283 (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4286 * glib/Makefile.am (dbus-glib-bindings.h): Pass
4287 --ignore-unsupported by default until glib bindings
4290 2005-03-11 Colin Walters <walters@verbum.org>
4292 * glib/Makefile.am: Generate dbus-glib-bindings.h and
4295 * bus/print-introspect.c: New file; prints introspection
4296 data for a given name and object path.
4298 * bus/run-with-tmp-session-bus.sh: New file, refactored
4299 from test/glib/run-test.sh. Creates a temporary session
4300 bus and runs another program.
4302 * test/glib/run-test.sh: Refactor to invoke
4303 run-with-tmp-session-bus.sh.
4305 * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4306 introspection format. Also change to use DBUS_TYPE_x_AS_STRING
4307 macros instead of hardcoding.
4309 * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4311 2005-03-11 Joe Shaw <joeshaw@novell.com>
4313 * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4314 this unref; it doesn't match up evenly in some codepaths.
4315 (_dbus_connection_block_pending_call): Unref at every exitpoint;
4316 this evenly matches with the ref near the top of this function.
4318 2005-03-09 Joe Shaw <joeshaw@novell.com>
4320 * dbus/dbus-object-tree.c
4321 (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4322 and we try to unregister a path that's not registered, still go
4323 through the process of unlocking and don't just return.
4325 2005-03-09 Colin Walters <walters@verbum.org>
4327 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4328 to this are generated for client-side wrappers. Invokes a
4329 D-BUS method and returns reply values.
4331 * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4332 function; writes signature string for argument direction.
4333 (write_args_for_direction): Change to pass input values directly
4334 instead of via address, and fix indentation.
4335 (generate_client_glue): Change to invoke dbus_g_proxy_invoke. Also
4336 make generated wrappers inlineable.
4338 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4339 note about using dbus_type_is_fixed.
4341 * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4342 dbus/dbus-signature.c as dbus_type_is_fixed.
4344 All callers updated.
4346 * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4347 from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4349 * dbus/dbus-signature.h: Prototype.
4351 * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4354 * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4355 appropriate instead of just freeing it.
4356 (main): Free returned strings using g_free.
4358 * test/glib/Makefile.am (test-service-glib-glue.h)
4359 (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4361 * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4362 simply maps a simple D-BUS type to GType.
4363 (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4365 (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4366 initialize the value with it.
4367 (dbus_gvalue_binding_type_from_type): Unused, delete.
4368 (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4369 various types instead of unmarshalling to value data directly.
4370 Remove can_convert boolean.
4371 (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4372 returning directly instead of using can_convert boolean.
4373 (dbus_gvalue_store): New function; not related to D-BUS per-se.
4374 Stores a GValue in a pointer to a value of its corresponding C
4377 * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4378 add dbus_gvalue_store.
4380 2005-03-08 Joe Shaw <joeshaw@novell.com>
4382 Fix a bunch of lifecycle and memory management problems
4383 in the mono bindings.
4385 * mono/Arguments.cs (Arguments): Implement IDisposable
4387 * mono/Bus.cs (Bus): Don't allow public instantiation. This is
4388 strictly a static class.
4390 * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4391 delegates into this file.
4392 (Connection): Implement IDisposable.
4393 (Dispose): Disconnect the connection and set the raw connection
4394 pointer to IntPtr.Zero.
4395 (~Connection): Call Dispose().
4396 (RegisterObjectPath): Added. Manages the registration of object
4397 paths so we can cleanly disconnect them at dispose/finalize time.
4398 (UnregisterObjectPath): Ditto.
4399 (set_RawConnection): Unregister all of the object paths when
4400 changing the underlying DBusConnection. Add them back onto the
4401 new connection, if any.
4403 * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4404 more unmanaged resources anymore, so it's not necessary. Move all
4405 the DBusObjectPathVTable stuff out of here.
4406 (Handler): Save references to our delegates so that they don't get
4407 finalized. Call Connection.RegisterObjectPath() instead of
4408 dbus_connection_register_object_path() directly.
4409 (Message_Called): Dispose the message after we're finished with
4412 * mono/Message.cs (Message): Implement IDisposable.
4413 (Dispose): Dispose the Arguments, and set the RawMessage to
4415 (SendWithReplyAndBlock): We own the ref to the reply that comes
4416 back from dbus_connection_send_with_reply_and_block() so add a
4417 comment about that and unref it after we've constructed a managed
4418 MethodReturn class around it. Fixes a big, big leak.
4420 * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4422 (BuildSignalHandler): After we've sent the Signal message, dispose
4424 (BuildMethod): Dispose of the method call and reply messages after
4425 we've sent the message and extracted the data we want from the
4428 * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4430 (Service_FilterCalled): Dispose of the message after we're
4433 2005-03-08 Joe Shaw <joeshaw@novell.com>
4435 * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4436 After we attach our pending call to the connection, unref
4439 * mono/Connection.cs (set_RawConnection): Disconnect our
4440 filter and match callbacks from the old connection and
4441 reconnect them to the new connection, if any.
4443 * mono/DBusType/Array.cs: "Code" is a static member, so
4444 don't use "this" to refer to it. Fix for stricter checking
4447 * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4448 object path that we pass into unmanaged code.
4450 * mono/DBusType/String.cs (Append): Don't leak the string
4451 that we pass into unmanged code.
4453 2005-03-07 John (J5) Palmieri <johnp@redhat.com>
4454 * NEWS: Update for 0.31
4456 * configure.in: Release 0.31
4457 add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4459 * qt/Makefile.am: fixed build
4461 * dbus/Makefile.am: soname bump for libdbus
4463 * glib/Makefile.am: soname bump for libdbus-glib
4465 2005-03-05 Havoc Pennington <hp@redhat.com>
4467 * dbus/dbus-sysdeps.c:
4468 (pseudorandom_generate_random_bytes_buffer): fix to have no return
4470 (_dbus_generate_random_bytes_buffer): fix return value
4472 * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4473 checks actually work, from Tom Parker <fdo@tevp.net>
4475 2005-03-01 Colin Walters <walters@verbum.org>
4477 * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4478 functions copied from dbus-glib-tool.c.
4479 (main): Convert lots of error code to use them.
4480 Also add some testing for introspection bits.
4482 2005-03-01 Colin Walters <walters@verbum.org>
4484 * doc/TODO: Remove introspection signature TODO.
4486 2005-02-27 Colin Walters <walters@verbum.org>
4488 * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4489 Change return value to const char * instead of int so we can do
4491 (struct PropertyInfo, struct ArgInfo): Store char *.
4492 (property_info_new, arg_info_new): Update parameters, strdup.
4493 (property_info_unref, arg_info_unref): Free.
4495 * glib/dbus-gidl.h: Update prototypes.
4497 * glib/dbus-gparser.c (basic_type_from_string): Delete.
4498 (validate_signature): New function, just validates signature and
4500 (parse_property, parse_arg): Invoke validate_signature. Store
4501 signature instead of just type code.
4503 * glib/dbus-gvalue.c (base_type_from_signature): New utility
4504 function to return a primary type for a signature, dropping
4505 information about types in container types.
4506 (dbus_gvalue_genmarshal_name_from_type)
4507 (dbus_gvalue_binding_type_from_type)
4508 (dbus_gvalue_ctype_from_type): Update to take full signature
4509 instead of type code.
4510 (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4512 * glib/dbus-gvalue.h: Update prototypes for above.
4514 * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4515 glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4516 (introspect_properties, introspect_signals, write_interface):
4517 Update to handle signatures, and remove usage of
4518 _dbus_gutils_type_to_string.
4519 (handle_introspect): Print out type codes instead of e.g. "string"
4520 in hardcoded introspection XML; also use x_AS_STRING constants
4521 instead of hardcoding in string.
4523 * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4524 to string. Remove usage of _dbus_gutils_type_to_string.
4526 * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4528 * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4531 * glib/dbus-binding-tool-glib.c (compute_marshaller)
4532 (compute_marshaller_name, generate_glue): Handle signature change
4534 (write_formal_parameters, write_args_for_direction): Ditto, and
4537 * tools/dbus-tree-view.c (type_to_string): Delete.
4538 (info_set_func_text): Update to print full signatures.
4540 * test/glib/test-service-glib.xml: Change types to new
4541 introspection format.
4543 2005-02-26 Havoc Pennington <hp@redhat.com>
4545 * doc/TODO: remove the "guid" item
4547 * test/glib/test-profile.c (no_bus_thread_func): use open_private
4548 (with_bus_thread_func): use open_private
4550 * dbus/dbus-connection.c (dbus_connection_open_private): new
4551 function that works like the old dbus_connection_open()
4552 (dbus_connection_open): now returns an existing connection if
4555 * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4556 through the GUID to the transport
4558 * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4559 GUID in hex-encoded form.
4561 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4562 pass GUID argument in to the transport
4564 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4567 * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4569 * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4571 2005-02-25 Havoc Pennington <hp@redhat.com>
4573 * doc/dbus-specification.xml: document the GUID thing
4575 * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4576 globally unique ID for the server, and put a "guid=hexencoded"
4577 field in the address
4579 * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4581 * dbus/dbus-message.c: ditto
4583 * dbus/dbus-dataslot.c: ditto
4585 * dbus/dbus-list.c: ditto
4587 * dbus/dbus-internals.h: wait, just include
4588 dbus-threads-internal.h here
4590 * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4593 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4595 2005-02-24 Colin Walters <walters@verbum.org>
4597 * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4599 2005-02-24 John (J5) Palmieir <johnp@redhat.com>
4601 * glib/Makefile.am: added dbus-gobject.h to sources list
4602 so distcheck doesn't fail
4604 2005-02-24 Havoc Pennington <hp@redhat.com>
4606 * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4607 you must disconnect before unref, since locking and other things
4608 are screwed up otherwise. Fix assorted other locking stuff.
4610 * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4613 * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4614 into a private header and don't export from the library
4616 * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4618 2005-02-24 Colin Walters <walters@verbum.org>
4620 * dbus/dbus-signature.c: New file; implements various functions
4621 related to type signatures. Includes an interator for parsing,
4622 validation functions.
4623 (dbus_type_is_basic): Moved here from
4624 dbus-marshal-basic.c:_dbus_type_is_basic.
4625 (dbus_type_is_container): Moved here from
4626 dbus-marshal-basic.c:_dbus_type_is_container.
4628 All callers of _dbus_type_is_container and _dbus_type_is_basic
4629 updated, and include dbus-signature.h.
4631 * dbus/dbus-signature.h: New file; prototypes for the above.
4633 * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4636 * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4637 function factored out of _dbus_first_type_in_signature.
4638 (_dbus_first_type_in_signature_c_str): New function; returns first
4639 type code for a type signature character.
4641 * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4642 handle function moves.
4644 * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4646 * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4647 function; skips to next complete type in type signature.
4648 Implemented using previous skip_one_complete_type. Now
4649 skip_one_complete_type just delegates to
4650 _dbus_type_signature_next.
4652 * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4654 (_dbus_type_is_container): Ditto.
4656 * doc/dbus-specification.xml: Update introspection sample to
4657 use real type signatures.
4659 * dbus/dbus-test.h: Prototype signature test.
4661 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4664 * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4666 2005-02-23 John (J5) Palmieri <johnp@redhat.com>
4668 * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4669 s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4671 2005-02-21 Colin Walters <walters@verbum.org>
4673 * dbus/dbus-test-main.c (main): Take optional specific test
4676 * dbus/dbus-test.c (run_test): New function, runs a test function
4677 with no data directory.
4678 (run_data_test): Like above, but takes data directory.
4679 (dbus_internal_do_not_use_run_tests): Take
4680 specific test argument. Replace lots of cut n' paste code
4681 with run_test and run_data_test.
4683 * dbus/dbus-test.h: Update prototype for
4684 dbus_internal_do_not_use_run_tests.
4686 2005-02-20 Havoc Pennington <hp@redhat.com>
4688 Fix bugs reported by Daniel P. Berrange
4690 * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4691 (protected_change_watch): new function
4692 (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4693 (_dbus_server_add_watch): change to work like the
4694 dbus-connection.c equivalents; like those, probably kind of
4695 busted, but should at least mostly work for now
4696 (dbus_server_disconnect): drop the lock if we were already
4697 disconnected, patch from Daniel P. Berrange
4699 * dbus/dbus-server.c (_dbus_server_toggle_timeout)
4700 (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4703 * doc/TODO: todo about unscrewing this mess
4705 2005-02-19 Colin Walters <walters@verbum.org>
4707 * glib/dbus-binding-tool-glib.c
4708 (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4710 * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4711 as errno.h and sys/stat.h.
4712 (lose): New function, prints error with
4714 (lose_gerror): Similar, but takes GError for message.
4715 (main): Add --output argument to specify output file to write to,
4716 instead of always printing to stdout. In this mode, determine
4717 timestamps on source files to see whether any are newer than the
4718 target file. If not, exit. Also convert a number of error
4719 messages to use lose (since it's shorter), and switch to using
4720 g_io_channel_shutdown.
4722 2005-02-19 Havoc Pennington <hp@redhat.com>
4724 * glib/dbus-gobject.c
4725 (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4727 * glib/dbus-glib.c: fix doxygen warnings
4729 * glib/dbus-gparser.c (parse_annotation): error if an annotation
4730 is found on an <arg>
4732 2005-02-17 Colin Walters <walters@verbum.org>
4734 * glib/dbus-gobject.h: Don't export
4735 _dbus_glib_marshal_dbus_message_to_gvalue_array.
4737 * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4738 (invoke_object_method): Handle it.
4740 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4743 2005-02-17 Colin Walters <walters@verbum.org>
4745 * bus/.cvsignore, doc/.cvsignore
4746 * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4749 2005-02-17 Colin Walters <walters@verbum.org>
4751 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4752 Rename to DBUS_SERVICE_DBUS.
4753 (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4754 (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4755 Change the value from "org.freedesktop.Local"
4756 to "org.freedesktop.DBus.Local".
4757 (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4758 (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4759 DBUS_INTERFACE_INTROSPECTABLE.
4760 Change the value from "org.freedesktop.Introspectable"
4761 to "org.freedesktop.DBus.Introspectable".
4762 (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4763 DBUS_INTERFACE_PROPERTIES.
4764 Change the value from "org.freedesktop.Properties"
4765 to "org.freedesktop.DBus.Properties".
4766 (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4767 DBUS_INTERFACE_PEER.
4768 Change the value from "org.freedesktop.Peer"
4769 to "org.freedesktop.DBus.Peer".
4770 (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL):
4771 DBUS_INTERFACE_LOCAL.
4772 Change the value from "org.freedesktop.Local"
4773 to "org.freedesktop.DBus.Local".
4775 All other users of those constants have been changed.
4777 * bus/driver.c (bus_driver_handle_introspect): Use constants.
4779 * glib/dbus-gobject.c (handle_introspect): Use constants.
4781 * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4783 2005-02-17 Colin Walters <walters@verbum.org>
4785 * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4786 (parse_node, parse_interface, parse_method, parse_signal)
4787 (parse_property, parse_annotation): Lose if we're currently in an
4789 (parse_annotation): New function.
4790 (parser_start_element, parser_end_element): Handle annotation.
4791 (parse_method, parse_interface): Remove support for c_name attribute,
4792 switch to annotations.
4794 * glib/dbus-gidl.h (interface_info_get_binding_names)
4795 (method_info_get_binding_names)
4796 (interface_info_get_binding_name, method_info_get_binding_name)
4797 (interface_info_set_binding_name, method_info_set_binding_name):
4799 (interface_info_get_annotations, method_info_get_annotations)
4800 (interface_info_get_annotation, method_info_get_annotation)
4801 (interface_info_add_annotation, method_info_add_annotation):
4804 * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4806 (struct MethodInfo): Ditto.
4807 Straightfoward conversion of binding methods into annotation methods
4810 * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4812 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4814 * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4815 Use new annotation API.
4817 * doc/introspect.dtd: Fix a number of DTD syntax errors. Add
4820 * doc/dbus-specification.xml: Discuss introspection annotations,
4821 include list of well-known annotations.
4823 * test/glib/test-service-glib.xml: Make validate against new DTD.
4825 2005-02-17 Colin Walters <walters@verbum.org>
4827 This patch is based on initial work from
4828 Paul Kuliniewicz <kuliniew@purdue.edu>.
4830 * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4831 initialization of GValue from dbus type to here.
4832 (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4833 for the "glib-genmarshal" program from a DBus type.
4834 (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4835 into the C name for it we use in the glib bindings.
4836 (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4837 glib C type (not GValue).
4838 (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4840 * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4841 from dbus-gobject.c.
4843 * glib/dbus-gutils.h: Prototype it.
4845 * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4846 (marshal_dbus_message_to_g_marshaller): Use new shared function
4847 dbus_glib_marshal_dbus_message_to_gvalue_array.
4849 * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4850 Will be changed once we have annotations.
4852 * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4853 GStaticRWLock. Callers updated.
4854 (wincaps_to_uscore): Move to dbus-gutils.c. Callers updated.
4855 (string_table_next): New function for iterating over zero-terminated
4857 (string_table_lookup): New function; retrieves specific entry in
4859 (get_method_data): New function; look up method data in object data chunk.
4860 (object_error_domain_prefix_from_object_info)
4861 (object_error_code_from_object_info): New functions, but not implemented yet.
4862 (method_interface_from_object_info): New function; retrieve interface name.
4863 (method_name_from_object_info): New function; retrieve method name.
4864 (method_arg_info_from_object_info): New function; retrieve argument data.
4865 (arg_iterate): New function; iterates over serialized argument data.
4866 (method_dir_signature_from_object_info): New function; returns a
4867 GString holding type signature for arguments for just one
4868 direction (input or output).
4869 (method_input_signature_from_object_info)
4870 (method_output_signature_from_object_info): New functions.
4871 (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4872 converts dbus message arguments into a GValue array. Used for both
4873 signal handling and method invocation.
4874 (struct DBusGlibWriteIterfaceData): New utility structure.
4875 (write_interface): New function; generate introspection XML for
4877 (introspect_interfaces): New function; gathers all interface->methods,
4878 generates introspection XML for them.
4879 (handle_introspect): Invoke introspect_interfaces.
4880 (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4881 (lookup_object_and_method): New function; examines an incoming message
4882 and attempts to match it up (via interface, method name, and argument
4883 signature) with a known object and method.
4884 (gerror_domaincode_to_dbus_error_name): New function; converts a
4885 GError domain and code into a DBus error name. Needs GError data
4886 added to object introspection to work well.
4887 (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4889 (invoke_object_method): New function to invoke an object method
4890 looked up via lookup_object_and_method. Parses the incoming
4891 message, turns it into a GValue array, then invokes the marshaller
4892 specified in the DBusGMethodInfo. Creates a new message with
4893 either return values or error message as appropriate.
4894 (gobject_message_function): Invoke lookup_object_and_method and
4895 invoke_object_method.
4897 * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4898 (enum DBusBindingOutputMode): New enum for binding output modes.
4899 (pretty_print): Print binding names.
4900 (dbus_binding_tool_error_quark): GError bits.
4901 (version): Fix typo.
4902 (main): Create GIOChannel for output. Parse new --mode argument,
4903 possible values are "pretty-print", "glib-server", "glib-client".
4904 Use mode to invoke appropriate function.
4906 * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4908 * glib/dbus-glib-tool.h: New header, just includes GError bits
4911 * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4912 maps binding style to name.
4913 (struct MethodInfo): Ditto.
4914 (get_hash_keys, get_hash_key): Utility function, returns keys for
4916 (interface_info_new, method_info_new): Initialize bindings.
4917 (interface_info_unref, method_info_unref): Destroy bindings.
4918 (method_info_get_binding_names, method_info_get_binding_name)
4919 (interface_info_get_binding_names, interface_info_get_binding_name):
4920 Functions for retrieving binding names.
4921 (method_info_set_binding_name, interface_info_set_binding_name):
4922 Functions for setting binding names.
4924 * glib/dbus-binding-tool-glib.h: New file, has prototypes
4925 for glib binding generation.
4927 * glib/dbus-binding-tool-glib.c: New file, implements server-side
4928 and client-side glib glue generation.
4930 * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4931 dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4934 * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4935 of using GClosureMarshal directly.
4936 (struct DBusGObjectInfo): Add n_infos member.
4938 * test/glib/test-service-glib.xml: New file; contains introspection data
4939 for MyTestObject used in test-service-glib.c.
4941 * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4942 (my_object_do_nothing, my_object_increment, my_object_throw_error)
4943 (my_object_uppercase, my_object_many_args): New test methods.
4944 (main): Use dbus_g_object_class_install_info to include generated object
4947 * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4948 as well as client-side bindings.
4950 * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4951 (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4952 using both the dbus_gproxy stuff directly as well as the generated bindings.
4954 2005-02-15 Havoc Pennington <hp@redhat.com>
4956 * dbus/dbus-connection.c (dbus_connection_dispatch): always
4957 complete a pending call, don't run filters first.
4959 * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4960 dbus_pending_call_steal_reply
4962 * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4963 _dbus_connection_block_pending_call
4964 (dbus_pending_call_get_reply): change to steal_reply and return a
4967 * dbus/dbus-connection.c
4968 (dbus_connection_send_with_reply_and_block): port to work in terms
4970 (_dbus_connection_block_pending_call): replace block_for_reply
4973 2005-02-14 Havoc Pennington <hp@redhat.com>
4975 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4976 properly handle looking up group information by name; fix
4979 2005-02-13 Havoc Pennington <hp@redhat.com>
4981 * dbus/dbus-connection.c (dbus_connection_return_message)
4982 (dbus_connection_borrow_message): hold dispatch lock while message
4984 (_dbus_connection_block_for_reply): hold dispatch lock while we
4985 block for the reply, so nobody steals our reply
4986 (dbus_connection_pop_message): hold the dispatch lock while we
4989 2005-02-13 Havoc Pennington <hp@redhat.com>
4991 * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4992 (_dbus_connection_release_dispatch)
4993 (_dbus_connection_acquire_io_path)
4994 (_dbus_connection_release_io_path): make the mutex and condvar
4995 control access to the "acquired" flag. Drop the connection lock
4996 while waiting on the condvar. Hopefully these are baby steps in
4997 roughly the right direction.
4999 2005-02-13 Havoc Pennington <hp@redhat.com>
5001 * dbus/dbus-connection.c: use separate mutexes for the condition
5002 variables; this is some kind of baseline for sanity, but the
5003 condition variables still aren't used correctly afaict
5005 2005-02-13 Havoc Pennington <hp@redhat.com>
5007 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5010 * dbus/dbus-connection.c
5011 (_dbus_connection_detach_pending_call_unlocked): add this
5013 Initial semi-correct pass through to fix thread locking; there are
5014 still some issues with the condition variable paths I'm pretty
5017 * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5020 * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5021 rename to add _unlocked
5022 (struct DBusConnection): move "dispatch_acquired" and
5023 "io_path_acquired" to use only one bit each.
5024 (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5025 (dbus_connection_set_watch_functions): hacky fix to reentrancy
5026 (_dbus_connection_add_watch, _dbus_connection_remove_watch)
5027 (_dbus_connection_toggle_watch, _dbus_connection_add_timeout)
5028 (_dbus_connection_remove_timeout)
5029 (_dbus_connection_toggle_timeout): drop lock when calling out to
5030 user functions; done in a hacky/bad way.
5031 (_dbus_connection_send_and_unlock): add a missing unlock
5032 (_dbus_connection_block_for_reply): add a missing unlock
5034 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5035 drop lock in a hacky probably unsafe way to call out to user
5038 2005-02-12 Havoc Pennington <hp@redhat.com>
5040 * tools/dbus-tree-view.c (info_set_func_text): display more
5043 * bus/driver.c (bus_driver_handle_list_services): list the bus
5046 * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
5048 * glib/dbus-gidl.c (signal_info_get_n_args): new function
5049 (method_info_get_n_args): new function
5051 2005-02-12 Havoc Pennington <hp@redhat.com>
5053 * bus/driver.c (bus_driver_handle_introspect): add introspection
5056 2005-02-12 Havoc Pennington <hp@redhat.com>
5058 * bus/driver.c: put the signature of each bus driver method in the
5059 table of handlers and check it on incoming calls; this isn't
5060 really useful, but going to add introspect support in a minute.
5062 2005-02-11 Joe Shaw <joeshaw@novell.com>
5064 * mono/Connection.cs: The unpredictability of finalizers in mono
5065 prevents us from deterministically disconnecting the filters from
5066 the Service class's finalizer, so move tracking of filters and
5067 matches here. Add API for that.
5069 * mono/Service.cs: Remove the code, add code which calls the
5070 methods now on the Connection class.
5072 2005-02-11 John (J5) Palmieri <johnp@redhat.com>
5074 * python/dbus.py (class Sender): added to support dbus signals better
5075 (Bus::add_signal_receiver): added expand_args parameter which defaults
5076 to True. When expand args is True the signal handler will pass the
5077 message arguments as parameters to the signal handler. If False
5078 revert to previous behavior where the signal handler must get the
5079 argument list from the message. This is to help port applications
5080 like HAL that have a tendancy to send variable length argument lists.
5081 self._match_rule_to_receivers is now a dict of dicts.
5082 (Bus::remove_signal_receiver): pop handler off the dict intead of
5083 removing it from a list
5084 (Bus::_signal_func): change signal handlers so that interface,
5085 signal_name, service, path and message are packed into a Sender
5086 object and that is passed to the handler. If expand_args is True
5087 extract the args list from the message and append it to the parameter
5090 * python/dbus_bindings.pyx.in (class Signature): added to support
5092 (MessageIter::__init__): changed iteration limit to match D-BUS
5093 (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY,
5094 STRUCT and VARIENT type support
5095 (MessageIter::python_value_to_dbus_sig): made recursive to support
5097 (MessageIter::append*): added Signature, dict, tuple
5100 * python/examples/example-client.py: added examples of getting tuples
5103 * python/examples/example-service.py: added examples of sending tuples
5106 * python/examples/example-signal-recipient.py: Fixed to handle new
5107 signal callback format
5109 2005-02-10 Havoc Pennington <hp@redhat.com>
5111 * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5112 (call dbus_g_proxy_add_signal)
5114 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5116 (_dbus_server_new_for_domain_socket): escape the path
5118 * dbus/dbus-address.c (dbus_address_escape_value): new
5119 (dbus_address_unescape_value): new
5120 (dbus_parse_address): unescape values
5122 * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5124 * doc/dbus-specification.xml: explain how to escape values in
5127 2005-02-10 Havoc Pennington <hp@redhat.com>
5129 * dbus/dbus-message-factory.c (generate_special): modify test to
5130 avoid using a non-basic dict key
5132 * dbus/dbus-marshal-validate-util.c: add test for the below
5134 * doc/dbus-specification.xml: require that dict keys are a basic
5137 * dbus/dbus-marshal-validate.c
5138 (_dbus_validate_signature_with_reason): require that dict key is a
5141 2005-02-10 Havoc Pennington <hp@redhat.com>
5143 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5144 change to be _and_unlock instead of _unlocked
5146 * dbus/dbus-connection.c
5147 (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5148 have no_update so we can find this bug quickly in future
5150 2005-02-10 Havoc Pennington <hp@redhat.com>
5152 * dbus/dbus-message-util.c (verify_test_message): tests for string
5155 * dbus/dbus-message.c (dbus_message_append_args_valist): add
5156 support for arrays of string/signature/path
5158 2005-02-10 Joe Shaw <joeshaw@novell.com>
5160 * dbus/dbus-connection.c
5161 (_dbus_connection_queue_received_message_link,
5162 _dbus_connection_message_sent): Add the path to
5164 (_dbus_connection_send_preallocated_and_unlock): Added. Calls
5165 _dbus_connection_send_preallocated_unlocked(), updated the
5166 dispatch status, and unlocks. Fixes a bug where certain
5167 situations (like a broken pipe) could cause a Disconnect message
5168 to not be sent, tricking the bus into thinking a service was still
5169 there when the process had quit.
5170 (_dbus_connection_send_preallocated): Call
5171 _dbus_connection_send_preallocated_and_unlock().
5172 (_dbus_connection_send_and_unlock): Added. Calls
5173 _dbus_connection_send_preallocated_and_unlock().
5174 (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5175 (dbus_connection_send_with_reply): Update the dispatch status and
5178 * mono/Service.cs (~Service): Added. Removes the filter so that
5179 we don't get unmanaged code calling back into a GCed delegate.
5180 (RemoveFilter); Added.
5182 2005-02-09 John (J5) Palmieri <johnp@redhat.com>
5184 * dbus/dbus-message.c (dbus_message_iter_open_container):
5185 - Removed check for iterator type being an array because
5186 get_arg_type does not work with writer iterators
5187 - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5189 2005-02-07 Havoc Pennington <hp@redhat.com>
5191 * doc/dbus-specification.xml: some more language cleanups; add
5192 stuff about how to deal with invalid protocol and extension
5193 points; add _ to allowed chars in auth commands; add EXTENSION_
5196 2005-02-06 Havoc Pennington <hp@redhat.com>
5198 * s/expected/required/ in a couple places for clarity
5200 2005-02-07 Colin Walters <walters@verbum.org>
5202 * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5203 sender or proposed_recipient.
5205 2005-02-06 Havoc Pennington <hp@redhat.com>
5207 * dbus/dbus-message-factory.c (generate_special): more tests
5209 * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5210 array length that exceeds the maximum
5212 2005-02-05 Havoc Pennington <hp@redhat.com>
5214 * dbus/dbus-message-factory.c (generate_special): more test cases,
5217 * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5218 reason why a signature was invalid
5220 * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5221 skip the length of the string before we look at it in validation
5223 * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5226 * dbus/dbus-message.c (_dbus_message_loader_new): default
5227 max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5229 2005-02-05 Havoc Pennington <hp@redhat.com>
5231 * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5232 if the signature of a variant was empty
5233 (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5234 struct with no element type)
5236 * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5237 mangled messages to break things
5239 2005-02-04 Havoc Pennington <hp@redhat.com>
5241 * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5242 g_quark_try_string() so it actually can return 0
5243 (dbus_g_proxy_connect_signal): ditto
5245 2005-02-04 Havoc Pennington <hp@redhat.com>
5247 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5249 (tristring_from_message): assert cleanly on null path/interface
5250 (should not be possible though I decided later)
5251 (dbus_g_proxy_dispose): move proxy manager unregistration here
5252 (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5253 g_return_if_fail() checks
5255 2005-02-04 Havoc Pennington <hp@redhat.com>
5257 * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5259 * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5260 (with some minor changes)
5262 * doc/dbus-specification.xml: add deprecated attribute to
5263 introspection format
5265 2005-01-31 Havoc Pennington <hp@redhat.com>
5267 * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5268 think it's sort of right
5270 2005-01-30 Havoc Pennington <hp@redhat.com>
5272 * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5274 2005-01-30 Havoc Pennington <hp@redhat.com>
5276 * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5278 * autogen.sh: change to autotools 1.9
5280 * glib/dbus-gproxy.c: completely change how signals work
5281 (dbus_g_proxy_add_signal): new function to specify signature of a
5283 (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5284 and g_warning if the incoming message has the wrong signature.
5286 2005-01-30 Havoc Pennington <hp@redhat.com>
5288 * tools/dbus-names-model.c (have_names_notify): fix this
5290 * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5291 up the string array handling a bit
5293 2005-01-30 Havoc Pennington <hp@redhat.com>
5295 * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5296 (dbus_g_pending_call_cancel): new function
5298 * dbus/dbus-glib.h: move GType decls for connection/message here;
5299 * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5300 here, just kind of rationalizing how we handle all that
5302 * tools/dbus-names-model.c: new file for a tree model listing the
5305 * tools/dbus-tree-view.c (model_new): use proper typing on the
5308 2005-01-30 Havoc Pennington <hp@redhat.com>
5310 * glib/dbus-gmain.c: add a custom GSource back that just checks
5311 whether the message queue has anything in it; otherwise, there are
5312 cases where we won't see messages in the queue since there was no
5313 IO visible to the glib main loop
5315 * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5316 increase default message timeout to 25 seconds
5318 2005-01-30 Havoc Pennington <hp@redhat.com>
5320 * test/glib/test-profile.c (no_bus_stop_server): remove the
5321 warning about the g_warning that I just fixed
5323 * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5324 custom source, seems to be a lot easier to understand and work
5327 2005-01-30 Havoc Pennington <hp@redhat.com>
5329 I think this main loop thing is conceptually broken, but here are
5330 some band aids. I'll maybe rewrite it in a minute.
5332 * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5333 custom GSource, so don't pass it in; confusing
5334 (gsource_server_finalize, gsource_connection_finalize): add
5335 finalize handlers that remove all the watches.
5337 2005-01-30 Havoc Pennington <hp@redhat.com>
5339 * glib/dbus-gobject.c (introspect_properties): fix the XML
5342 * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5343 which effectively detects the use of freed messages
5345 * glib/dbus-gobject.c (handle_introspect): modify and return the
5346 reply message instead of the incoming message
5348 * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5349 gee, maybe it should SEND THE XML instead of just making a string
5350 and freeing it again ;-)
5352 * tools/dbus-print-message.c (print_message): improve printing of
5355 * configure.in: add debug-glib.service to the output
5357 2005-01-30 Havoc Pennington <hp@redhat.com>
5359 dbus-viewer introspected and displayed the bus driver
5361 * dbus/dbus-object-tree.c
5362 (object_tree_test_iteration): add tests for a handler registered on "/"
5364 * dbus/dbus-object-tree.c
5365 (_dbus_decompose_path): fix to handle path "/" properly
5366 (run_decompose_tests): add tests for path decomposition
5368 * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5371 * glib/dbus-gobject.c (handle_introspect): fix quotes
5373 * test/glib/run-test.sh: support launching the bus, then running
5376 * test/glib/test-service-glib.c (main): put in a trivial gobject
5377 subclass and register it on the connection
5379 * bus/driver.c (bus_driver_handle_introspect): implement
5380 introspection of the bus driver service
5382 * dbus/dbus-protocol.h: add #defines for the XML namespace,
5383 identifiers, doctype decl
5385 * bus/driver.c (bus_driver_handle_get_service_owner): handle
5386 attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by
5387 returning the service unchanged.
5388 (bus_driver_handle_message): remove old check for reply_serial in
5389 method calls, now the message type deals with that
5390 (bus_driver_handle_message): handle NULL interface
5392 * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5394 * glib/dbus-gloader-expat.c (description_load_from_string): allow
5397 * tools/dbus-viewer.c: add support for introspecting a service on
5400 * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5401 (dbus_g_pending_call_unref): add
5403 2005-01-29 Havoc Pennington <hp@redhat.com>
5405 * tools/dbus-tree-view.c: add support for displaying properties.
5406 (run dbus-viewer with an introspect xml file as arg, then resize
5407 the window so the tree elements show up, not sure what that is)
5409 * glib/dbus-gobject.c (handle_introspect): return
5410 org.freedesktop.Properties and org.freedesktop.Introspectable
5411 interfaces when we are introspected.
5413 * doc/dbus-specification.xml: allow empty interface name when
5416 2005-01-29 Havoc Pennington <hp@redhat.com>
5418 * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5419 though it uses glib, it could be extended for any binding in
5422 * glib/dbus-gobject.c (gobject_message_function): change to the
5423 new way properties work
5425 * dbus/dbus-protocol.h: add the new interfaces
5427 * doc/dbus-specification.xml: document the introspection format,
5428 Introspectable interface, and add an org.freedesktop.Properties
5431 * glib/dbus-gparser.c: add support for a <property> element
5433 * glib/dbus-gidl.c: add PropertyInfo
5435 * glib/dbus-gobject.c (handle_introspect): put the outermost
5436 <node> outside the signal and property descriptions.
5437 (introspect_properties): export properties as <property> rather
5438 than as method calls
5440 2005-01-28 Havoc Pennington <hp@redhat.com>
5442 * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5443 related to authentication protocol
5445 2005-01-28 John (J5) Palmieri <johnp@redhat.com>
5447 * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5448 - BUS_ACTIVATION -> BUS_STARTER
5449 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5450 - class MessageIter (__init__): Added recursion checking
5451 so we throw a nice error instead of just disconnecting from the
5453 (get): Added arg_type parameter for recursion.
5454 Removed the nil type
5455 Added signiture type placeholder (not implemented)
5456 Added struct type placeholder (not implemented)
5457 Added varient type placeholder (not implemented)
5458 Commented out dict type for now
5459 (get_element_type): renamed from get_array_type
5460 (get_*): changed to use the dbus_message_iter_get_basic API
5461 (get_*_array): removed in favor of recursive get_array method
5462 (get_array): new recursive method which calls get to marshal
5463 the elements of the array
5464 (value_to_dbus_sig): New method returns the corrasponding
5465 dbus signiture to a python value
5466 (append): Comment out dict handling for now
5467 Handle lists with the new recursive API
5468 Comment out None handling for now
5469 (append_nil): removed
5470 (append_*): changed to use dbus_message_iter_append_basic API
5471 (append_*_array): removed in favor of recursive append_array
5473 (__str__): Make it easier to print out recursive iterators
5475 - class Message (__str__): moved type inspection to the
5476 MessageIter class' __str__ method
5477 (get_iter): Added an append parameter wich defaults to False
5478 If True use the new API's to create an append iterator
5480 * python/dbus.py: Update to use new bindings API
5481 - TYPE_ACTIVATION -> TYPE_STARTER
5482 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5483 - class ActivationBus -> class StarterBus
5484 - class RemoteObject (__call__): get an append iterator
5485 - (_dispatch_dbus_method_call): get an append iterator
5486 - class Object (emit_signal): get an append iterator
5488 * python/examples/: Fixed up the examples to work with the new API
5490 2005-01-28 Joe Shaw <joeshaw@novell.com>
5492 * configure.in: Bump version up to 0.30.
5494 * HACKING: Add a release item to bump the version number up after
5497 2005-01-28 Havoc Pennington <hp@redhat.com>
5499 * doc/dbus-specification.xml: update to describe 16-bit types and
5502 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5505 * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5508 * dbus/dbus-marshal-recursive.c: implement
5510 2005-01-27 Havoc Pennington <hp@redhat.com>
5512 * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5514 * configure.in: find the right type for 16 and 32 bit ints as well
5517 * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5518 the 16-bit types so people don't have to stuff them in 32-bit or
5521 2005-01-27 Havoc Pennington <hp@redhat.com>
5523 * dbus/dbus-message.c: byteswap the message if you init an
5524 iterator to read/write from it
5526 * dbus/dbus-marshal-byteswap.c: new file implementing
5527 _dbus_marshal_byteswap()
5529 * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5531 2005-01-26 Havoc Pennington <hp@redhat.com>
5533 * dbus/dbus-marshal-validate-util.c: break this out (and fix
5534 build, apparently - nobody noticed?)
5536 2005-01-26 Havoc Pennington <hp@redhat.com>
5538 * dbus/dbus-marshal-recursive.h: remove todo comment
5540 2005-01-25 Joe Shaw <joeshaw@novell.com>
5542 * Land the mono binding changes to conform to the new APIs.
5544 * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5545 DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5547 * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus
5548 type code as a string.
5549 (InitAppending): Rename dbus_message_append_iter_init() to
5550 dbus_message_iter_init_append().
5552 * mono/BusDriver.cs: Rename ServiceEventHandler to
5553 NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner.
5554 Rename ServiceOwnerChanged to NameOwnerChanged.
5556 * mono/Connection.cs: Rename BaseService to UniqueName, and the
5559 * mono/Custom.cs: Removed. The CUSTOM type has been removed.
5561 * mono/Service.cs: Rename Exists to HasOwner, internally rename
5562 dbus_bus_acquire_service() to dbus_bus_request_name().
5564 * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5565 of Type.UnderlyingSystemType to get the correct element type for
5567 (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5568 dbus_message_get_{element|arg}_type() instead of
5569 dbus_message_iter_init_array_iterator().
5570 (Append): Replace dbus_message_iter_append_array() with
5571 dbus_message_iter_open_container() and
5572 dbus_message_iter_close_container().
5574 * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These
5575 types have been removed.
5577 * mono/DBusType/*.cs: Replace calls of
5578 dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5579 but specify the type in the DllImport extern declaration. Ditto
5580 for dbus_message_iter_append_[type]() ->
5581 dbus_message_iter_append_basic().
5583 * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5584 NameOwnerChangedHandler.
5586 2005-01-25 John (J5) Palmieri <johnp@redhat.com>
5588 * python/dbus_bindings.pyx.in: Rename of methods and bindings
5589 - get_base_service -> get_unique_name
5590 - bus_get_base_service -> bus_get_unique_name
5591 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5592 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS
5593 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5594 - bus_activate_service -> bus_start_service_by_name
5595 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5596 - bus_acquire_service -> bus_request_name
5597 - dbus_bus_acquire_service -> dbus_bus_request_name
5598 - bus_service_exists -> bus_name_has_owner
5599 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5601 * python/dbus.py: Rename of methods
5602 - activate_service -> start_service_by_name
5603 - bus_acquire_service -> bus_request_name
5604 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS
5605 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5608 2005-01-24 Joe Shaw <joeshaw@novell.com>
5610 * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5611 signature for the method that can't be found.
5613 * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5614 the message has any arguments, we need to call
5615 _dbus_type_reader_get_current_type(), not
5616 _dbus_type_reader_has_next().
5618 2005-01-24 Havoc Pennington <hp@redhat.com>
5620 * dbus/dbus-message-factory.c: more testing of message validation
5622 * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5625 2005-01-23 Havoc Pennington <hp@redhat.com>
5627 * dbus/dbus-message-factory.c, dbus/dbus-message-util.c:
5628 get this all working, not many tests in the framework yet though
5630 2005-01-22 Havoc Pennington <hp@redhat.com>
5632 * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5633 tutorial, based on work from David Wheeler.
5635 2005-01-21 Havoc Pennington <hp@redhat.com>
5637 * dbus/dbus-bus.c: add more return_if_fail checks
5639 * dbus/dbus-message.c (load_message): have the "no validation"
5640 mode (have to edit the code to toggle the mode for now though)
5642 * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5643 skips all validation; I want to use this at least for benchmark
5644 baseline, I'm not sure if it should be a publicly-available switch.
5646 2005-01-21 Havoc Pennington <hp@redhat.com>
5648 * glib/dbus-gmain.c: don't put the GLib bindings in the same
5649 toplevel doxygen group as the low-level API stuff
5651 * dbus/dbus.h: note that libdbus is the low-level API
5653 2005-01-20 Havoc Pennington <hp@redhat.com>
5655 * update-dbus-docs.sh: script to update docs on the web site, only
5656 works for me though. neener.
5658 2005-01-20 Havoc Pennington <hp@redhat.com>
5660 * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5661 code can reveal bugs in it
5663 2005-01-20 Havoc Pennington <hp@redhat.com>
5665 * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5666 select() version, patches from Tor Lillqvist
5668 2005-01-20 Havoc Pennington <hp@redhat.com>
5670 * doc/dbus-tutorial.xml: replace > with >
5672 * bus/services.c (bus_registry_acquire_service): validate the name
5673 and return a better error if it's no good.
5675 * doc/dbus-specification.xml: note NO_AUTO_START change
5677 * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5678 from AUTO_START, we're toggling the default
5680 * bus/dispatch.c: adapt the tests to change of auto-start default
5682 2005-01-18 Havoc Pennington <hp@redhat.com>
5684 * rename dbus-daemon-1 to dbus-daemon throughout
5686 2005-01-18 Havoc Pennington <hp@redhat.com>
5688 * Throughout, grand renaming to strip out the use of "service",
5689 just say "name" instead (or "bus name" when ambiguous). Did not
5690 change the internal code of the message bus itself, only the
5691 programmer-facing API and messages.
5693 * doc/dbus-specification.xml: further update the message bus section
5695 * bus/config-parser.c (all_are_equiv): fix bug using freed string
5698 2005-01-17 Havoc Pennington <hp@redhat.com>
5700 * dbus/dbus-types.h: remove 16-bit types since we don't use them
5703 * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5704 "invalid name character" not only non-ASCII
5706 * doc/dbus-specification.xml: further update spec, message bus
5707 parts are still out-of-date but the marshaling etc. stuff is now
5710 2005-01-17 Havoc Pennington <hp@redhat.com>
5712 * doc/dbus-specification.xml: partially update spec
5714 2005-01-17 Havoc Pennington <hp@redhat.com>
5716 * Throughout, align variant bodies according to the contained
5717 type, rather than always to 8. Should save a fair bit of space in
5720 * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5721 fix handling of case where p == end
5723 * doc/TODO: remove the dbus_bool_t item and variant alignment items
5725 2005-01-17 Havoc Pennington <hp@redhat.com>
5727 * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5729 * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5730 of an 8-bit type. Now dbus_bool_t is the type to use whenever you
5731 are marshaling/unmarshaling a boolean.
5733 2005-01-16 Havoc Pennington <hp@redhat.com>
5735 This is about it on what can be disabled/deleted from libdbus
5736 easily, back below 150K anyhow. Deeper cuts are more work than
5737 just turning the code off as I've done here.
5739 * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5740 signed int convenience funcs
5742 * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5745 * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5746 things out of libdbus
5748 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5750 * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5751 tests-enabled-only, though it should probably be deleted)
5753 * dbus/dbus-message-util.c: same stuff
5755 * dbus/dbus-auth-util.c: same stuff
5757 2005-01-16 Havoc Pennington <hp@redhat.com>
5759 * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5761 * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5762 way for stripping down dbus-userdb.c stuff included in libdbus.
5763 Rename _dbus_parse_uid for consistency.
5765 2005-01-16 Havoc Pennington <hp@redhat.com>
5767 * dbus/dbus-internals.c (_dbus_real_assert): print the function
5768 name the assertion failed in
5770 * dbus/dbus-internals.h (_dbus_return_if_fail)
5771 (_dbus_return_val_if_fail): assert that the name of the function
5772 containing the check doesn't start with '_', since we only want to
5773 use checks on public functions
5775 * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5776 checks to assertions
5778 * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5779 change checks to asserts for private function
5781 * dbus/dbus-message.c (_dbus_message_set_serial): checks
5782 to asserts for private function
5784 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5785 broken assertion that was breaking make check
5786 (_dbus_type_reader_array_is_empty): remove this rather than fix
5787 it, was only used in assertions
5789 2005-01-16 Havoc Pennington <hp@redhat.com>
5791 * test/unused-code-gc.py: hacky script to find code that's used
5792 only by the bus (not libdbus) or used only by tests or not used at
5793 all. It has some false alarms, but looks like we can clean up a
5794 lot of size from libdbus.
5796 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5797 dbus/Makefile.am: initially move 10K of binary size out of libdbus
5799 2005-01-16 Havoc Pennington <hp@redhat.com>
5801 * Add and fix docs according to Doxygen warnings throughout
5804 * dbus/dbus-marshal-recursive.c
5805 (_dbus_type_reader_array_is_empty): change this to just call
5806 array_reader_get_array_len() and make it static
5808 * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5810 (dbus_message_iter_init_append): rename from append_iter_init
5812 * dbus/dbus-marshal-recursive.c
5813 (_dbus_type_reader_get_element_type): rename from
5814 _dbus_type_reader_get_array_type
5816 2005-01-15 Havoc Pennington <hp@redhat.com>
5818 * test/glib/test-profile.c (with_bus_server_filter): fix crash
5820 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5821 when DBUS_DISABLE_ASSERT
5822 (_dbus_marshal_set_basic): be sure we align for the string length
5824 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5827 * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5828 inline macro version
5829 (_dbus_string_set_byte): provide inline macro version
5831 2005-01-15 Havoc Pennington <hp@redhat.com>
5833 * Land the new message args API and type system.
5835 This patch is huge, but the public API change is not
5836 really large. The set of D-BUS types has changed somewhat,
5837 and the arg "getters" are more geared toward language bindings;
5838 they don't make a copy, etc.
5840 There are also some known issues. See these emails for details
5842 http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5843 http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5845 * dbus/dbus-marshal-*: all the new stuff
5847 * dbus/dbus-message.c: basically rewritten
5849 * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5850 freed blocks to be all non-nul bytes so using freed memory is less
5851 likely to work right
5853 * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5854 DBUS_FAIL_MALLOC=N environment variable, so you can do
5855 DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5856 DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5859 * qt/message.cpp: port to the new message args API
5860 (operator<<): use str.utf8() rather than str.unicode()
5861 (pretty sure this is right from the Qt docs?)
5863 * glib/dbus-gvalue.c: port to the new message args API
5865 * bus/dispatch.c, bus/driver.c: port to the new message args API
5867 * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5868 "locked" flag to TRUE and align_offset to 0; I guess we never
5869 looked at these anyhow, but seems cleaner.
5871 * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5872 move allocation padding macro to this header; use it to implement
5873 (_DBUS_STRING_STATIC): ability to declare a static string.
5875 * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5876 change to return TRUE if the interface is not set.
5878 * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5879 to dbus-marshal-validate.[hc]
5881 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5884 * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5885 to dbus-marshal-*.[hc]
5887 * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5888 function here from dbus-marshal.c
5890 2005-01-12 Joe Shaw <joeshaw@novell.com>
5892 * NEWS: Update for 0.23.
5894 * configure.in: Release 0.23.
5896 2005-01-12 Joe Shaw <joeshaw@novell.com>
5898 * mono/Makefile.am, mono/example/Makefile.am: Always build the
5899 dbus DLL with --debug. Clean up after the .mdb files this leaves
5902 * mono/doc/Makefile.am: Need to uninstall the docs on "make
5905 * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5906 is an enum, get the enum's underlying type. Another mono
5909 2005-01-11 Joe Shaw <joeshaw@novell.com>
5911 Patch from Sjoerd Simons <sjoerd@luon.net>
5913 * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5914 DESTDIR. It breaks stuff.
5916 2005-01-11 Joe Shaw <joeshaw@novell.com>
5918 Patch from Tambet Ingo <tambet@ximian.com>
5920 * mono/DBusType/Array.cs (Get): Get the underlying element type by
5921 calling type.GetElementType(). The code previously depended on
5922 broken Mono behavior, which was fixed in Mono 1.1.3.
5924 * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5925 Activator.CreateInstance() so that the class's constructor is
5926 called with the right parameters.
5928 2005-01-11 Joe Shaw <joeshaw@novell.com>
5930 Patch from Timo Teräs <ext-timo.teras@nokia.com>
5932 * dbus/dbus-connection.c
5933 (_dbus_connection_queue_received_message_link): Call
5934 _dbus_connection_remove_timeout() instead of the _locked()
5935 variant, since it's always called from
5936 _dbus_connection_handle_watch(), which handles the locking.
5937 Removed the _locked() variant since it's no longer used.
5939 2005-01-03 Havoc Pennington <hp@redhat.com>
5941 * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5944 2004-12-26 Havoc Pennington <hp@redhat.com>
5946 * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5948 2005-01-03 Havoc Pennington <hp@redhat.com>
5950 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5953 * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5955 2005-01-02 Havoc Pennington <hp@redhat.com>
5957 * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5959 2005-01-01 Havoc Pennington <hp@redhat.com>
5961 * configure.in: add -Wfloat-equal
5963 2005-01-01 Havoc Pennington <hp@redhat.com>
5965 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro,
5966 for a variety of reasons '==' doesn't do this.
5968 2004-12-31 Havoc Pennington <hp@redhat.com>
5970 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5971 I keep wishing I had
5973 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
5975 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5977 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
5979 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5980 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5981 dbus-protocol.h. Because they are defines and not enums they are not
5984 2004-12-26 John (J5) Palmieri <johnp@redhat.com>
5986 * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5987 dbus_bus_activate_service
5989 * python/dbus.py (Bus.activate_service): activate a service on the
5992 2004-12-24 Havoc Pennington <hp@redhat.com>
5994 * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5995 file format has also changed and I haven't adapted to that yet
5997 * Makefile.am: load .gcno files from latest gcc
5999 2004-12-23 John (J5) Palmieri <johnp@redhat.com>
6000 * Patch from Rob Taylor <robtaylor@fastmail.fm>
6002 * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6005 * python/dbus.py (get_unix_user): Added binding to
6006 call dbus_bindings.bus_get_unix_user
6008 * python/extract.py: Modified the proto_pat regex to
6009 handle unsigned long
6011 2004-12-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
6013 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6014 better POSIX compliance.
6016 2004-12-19 Havoc Pennington <hp@redhat.com>
6018 * dbus/dbus-string.c (_dbus_string_insert_4_aligned)
6019 (_dbus_string_insert_8_aligned): new functions
6021 * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6023 2004-12-18 Havoc Pennington <hp@redhat.com>
6025 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6028 * dbus/dbus-message.c: fix a comment, and add a still-unused
6029 not-implemented function
6031 * dbus/dbus-marshal.h: fix comment
6033 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
6035 2004-12-17 Joe Shaw <joeshaw@novell.com>
6037 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
6038 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
6039 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
6040 Type.UnderlyingSystemType to get the actual system type
6041 underneath. This code previously depended on the broken Mono
6042 behavior, which was fixed in 1.1.3.
6044 2004-11-27 Havoc Pennington <hp@redhat.com>
6046 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
6048 (_dbus_string_get_const_data): inline when asserts are disabled
6050 * dbus/dbus-message.c: record the _dbus_current_generation of
6051 creation so we can complain if dbus_shutdown() is used improperly.
6052 Do this only if checks are enabled.
6054 * dbus/dbus-connection.c: ditto
6056 2004-11-26 Havoc Pennington <hp@redhat.com>
6058 * test/glib/test-profile.c: add with_bus mode to profile echoes
6059 that go through the bus.
6061 * test/glib/run-test.sh: add ability to run test-profile
6063 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6066 2004-11-26 Havoc Pennington <hp@redhat.com>
6068 * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6069 thing was implemented
6071 2004-11-26 Havoc Pennington <hp@redhat.com>
6073 * test/glib/test-profile.c: tweak a bit, add support for some
6074 made-up minimal malloc overhead with plain sockets, since in
6075 real life some sort of buffers are unavoidable thus we could
6076 count them in the theoretical best case
6078 2004-11-26 Havoc Pennington <hp@redhat.com>
6080 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6081 where I was trying to cache one too many messages
6083 2004-11-26 Havoc Pennington <hp@redhat.com>
6085 * dbus/dbus-message.c: reimplement message cache as an array which
6086 makes the cache about twice as fast and saves maybe 1.5% overall
6088 2004-11-26 Havoc Pennington <hp@redhat.com>
6090 * dbus/dbus-threads.c (init_global_locks): forgot to put the
6091 message cache lock here
6093 2004-11-26 Havoc Pennington <hp@redhat.com>
6095 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6096 the "char byte_order" next to each other to save 4 bytes
6097 (dbus_message_new_empty_header): reduce preallocation, since the
6098 message cache should achieve a similar effect
6099 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6100 message cache that keeps a few DBusMessage around in a pool,
6101 another 8% speedup or so.
6103 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6105 2004-11-25 Havoc Pennington <hp@redhat.com>
6107 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6108 to write, without reading or blocking, try it before the poll()
6109 and skip the poll() if nothing remains to write. This is about a
6110 3% speedup in the echo client/server
6112 2004-11-25 Havoc Pennington <hp@redhat.com>
6114 The primary change here is to always write() once before adding
6115 the write watch, which gives us about a 10% performance increase.
6117 * dbus/dbus-transport-unix.c: a number of modifications to cope
6118 with removing messages_pending
6119 (check_write_watch): properly handle
6120 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6121 messages_pending stuff
6122 (check_read_watch): properly handle WAITING_FOR_MEMORY and
6124 (unix_handle_watch): after writing, see if the write watch can be
6126 (unix_do_iteration): assert that write_watch/read_watch are
6127 non-NULL rather than testing that they aren't, since they
6128 aren't allowed to be NULL. check_write_watch() at the end so
6129 we add the watch if we did not finish writing (e.g. got EAGAIN)
6131 * dbus/dbus-transport-protected.h: remove messages_pending call,
6132 since it resulted in too much inefficient watch adding/removing;
6133 instead we now require that the transport user does an iteration
6134 after queueing outgoing messages, and after trying the first
6135 write() we add a write watch if we got EAGAIN or exceeded our
6136 max bytes to write per iteration setting
6138 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6141 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6142 freed and then accessed, valgrind flagged this bug, fix it
6144 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6145 as the last valid field plus 1, where really it is equal to the
6146 last valid field. Corrects some message corruption issues.
6148 * dbus/dbus-mainloop.c: verbosity changes
6150 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6151 instead of aborting in one of the test codepaths
6153 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6154 caused not printing the pid ever again if a verbose was missing
6155 the newline at the end
6156 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6158 * dbus/dbus-connection.c: verbosity changes;
6159 (dbus_connection_has_messages_to_send): new function
6160 (_dbus_connection_message_sent): no longer call transport->messages_pending
6161 (_dbus_connection_send_preallocated_unlocked): do one iteration to
6162 try to write() immediately, so we can avoid the write watch. This
6163 is the core purpose of this patchset
6164 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6165 dump the outgoing message queue, so nobody will get confused
6166 trying to send them or thinking stuff is pending to be sent
6168 * bus/test.c: verbosity changes
6170 * bus/driver.c: verbosity/assertion changes
6172 * bus/dispatch.c: a bunch of little tweaks to get it working again
6173 because this patchset changes when/where you need to block.
6175 2004-11-23 Havoc Pennington <hp@redhat.com>
6177 * test/glib/test-profile.c: modify to accept a plain_sockets
6178 argument in which case it will bench plain sockets instead of
6179 libdbus, for comparison purposes.
6181 2004-11-22 Havoc Pennington <hp@redhat.com>
6183 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6184 threads for more time, so sysprof can get a grip on it.
6186 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6189 2004-11-13 Havoc Pennington <hp@redhat.com>
6191 * test/glib/test-profile.c: fix this thing up a bit
6193 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6194 preallocation sizes by a fair bit; not sure if this will be an
6195 overall performance win or not, but it does reduce reallocs.
6197 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6198 the test hack that forced constant realloc if asserts are
6199 disabled, so we can profile sanely. Sprinkle in some
6200 _DBUS_UNLIKELY() which are probably pointless, but before I
6201 noticed the real performance problem I put them in.
6202 (_dbus_string_validate_utf8): micro-optimize this thing a little
6203 bit, though callgrind says it didn't help; then special-case
6204 ascii, which did help a lot; then be sure we detect nul bytes as
6205 invalid, which is a bugfix.
6206 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6207 superstition; use memset to nul the padding instead of a manual
6209 (_dbus_string_get_length): inline this as a
6210 macro; it showed up in the profile because it's used for loop
6213 2004-11-10 Colin Walters <walters@verbum.org>
6215 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6218 2004-11-09 Colin Walters <walters@verbum.org>
6220 * dbus/dbus-string.c (_dbus_string_get_length): New
6221 function, writes DBusString to C buffer.
6223 * dbus/dbus-string.h: Prototype it.
6225 * dbus/dbus-message.c (dbus_message_type_to_string): New
6226 function, converts message type into C string.
6228 * dbus/dbus-message.h: Prototype it.
6230 * bus/selinux.c (bus_selinux_check): Take source pid,
6231 target pid, and audit data. Pass audit data to
6233 (log_audit_callback): New function, appends extra
6235 (bus_selinux_allows_acquire_service): Also take
6236 service name, add it to audit data.
6237 (bus_selinux_allows_send): Also take message
6238 type, interface, method member, error name,
6239 and destination, and add them to audit data.
6240 (log_cb): Initialize func_audit.
6242 * bus/selinux.h (bus_selinux_allows_acquire_service)
6243 (bus_selinux_allows_send): Update prototypes
6245 * bus/services.c (bus_registry_acquire_service): Pass
6246 service name to bus_selinux_allows_acquire_service.
6248 * bus/bus.c (bus_context_check_security_policy): Pass
6249 additional audit data. Move assignment of dest
6252 2004-11-07 Colin Walters <walters@verbum.org>
6254 * dbus/dbus-transport-unix.c (do_authentication): Always
6255 initialize auth_completed.
6257 2004-11-07 Colin Walters <walters@verbum.org>
6259 * bus/bus.c (load_config): Break into three
6260 separate functions: process_config_first_time_only,
6261 process_config_every_time, and process_config_postinit.
6262 (process_config_every_time): Move call of
6263 bus_registry_set_service_context_table into
6264 process_config_postinit.
6265 (process_config_postinit): New function, does
6266 any processing that needs to happen late
6267 in initialization (and also on reload).
6268 (bus_context_new): Instead of calling load_config,
6269 open config parser here and call process_config_first_time_only
6270 and process_config_every_time directly. Later, after
6271 we have forked but before changing UID,
6272 invoke bus_selinux_full_init, and then call
6273 process_config_postinit.
6274 (bus_context_reload_config): As in bus_context_new,
6275 load parse file inside here, and call process_config_every_time
6276 and process_config_postinit.
6278 * bus/services.h, bus/services.c
6279 (bus_registry_set_service_context_table): Rename
6280 from bus_registry_set_sid_table. Take string hash from config
6281 parser, and convert them here into SIDs.
6283 * bus/config-parser.c (struct BusConfigParser): Have
6284 config parser only store a mapping of service->context
6286 (merge_service_context_hash): New function.
6287 (merge_included): Merge context string hashes instead
6288 of using bus_selinux_id_table_union.
6289 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6290 simply create a new string hash.
6291 (bus_config_parser_unref): Unref it.
6292 (start_selinux_child): Simply insert strings into hash,
6293 don't call bus_selinux_id_table_copy_over.
6295 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6296 (bus_selinux_id_table_copy_over): Delete.
6298 2004-11-03 Colin Walters <walters@verbum.org>
6300 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6303 2004-11-03 Colin Walters <walters@verbum.org>
6305 * bus/test-main.c (test_pre_hook): Fix test logic,
6306 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6308 2004-11-02 Colin Walters <walters@redhat.com>
6310 * bus/selinux.c (bus_selinux_init): Split into two functions,
6311 bus_selinux_pre_init and bus_selinux_post_init.
6312 (bus_selinux_pre_init): Just determine whether SELinux is
6314 (bus_selinux_post_init): Do everything else.
6316 * bus/main.c (main): Call bus_selinux_pre_init before parsing
6317 config file, and bus_selinux_post_init after. This ensures that
6318 we don't lose the policyreload notification thread that
6319 bus_selinux_init created before forking previously.
6321 * bus/test-main.c (test_pre_hook): Update for split.
6323 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
6325 Patch from Johan Fischer <linux@fischaz.com>
6327 * mono/doc/Makefile.am (install-data-local): Added directory
6330 2004-10-29 Colin Walters <walters@redhat.com>
6332 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6333 parameter for fd to write pid to.
6335 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6337 * bus/bus.c (bus_context_new): Pass print_pid_fd
6338 to _dbus_become_daemon (bug #1720)
6340 2004-10-29 Colin Walters <walters@redhat.com>
6342 Patch from Ed Catmur <ed@catmur.co.uk>
6344 * mono/doc/Makefile.am (install-data-local): Handle
6347 2004-10-29 Colin Walters <walters@redhat.com>
6349 * bus/.cvsignore, qt/.cvsignore: Update.
6351 2004-10-29 Colin Walters <walters@redhat.com>
6353 Patch from Kristof Vansant <de_lupus@pandora.be>
6355 * configure.in: Detect Slackware.
6356 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6357 * bus/rc.messagebus.in: New file.
6359 2004-10-29 Colin Walters <walters@redhat.com>
6361 * tools/dbus-monitor.c (filter_func): Return
6362 DBUS_HANDLER_RESULT_HANDLED in filter function
6364 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6366 2004-10-29 Colin Walters <walters@redhat.com>
6368 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6370 * bus/services.c (bus_registry_acquire_service):
6371 Correctly retrieve service name from DBusString
6374 2004-10-29 Colin Walters <walters@redhat.com>
6376 * dbus/dbus-glib.h: Update documentation to not
6377 refer to internal APIs.
6379 2004-10-27 Joe Shaw <joeshaw@novell.com>
6381 * mono/Arguments.cs (GetDBusTypeConstructor):
6382 type.UnderlyingSystemType will return "System.Byte" if you do it
6383 on "byte[]", which is not what we want. So check the type.IsArray
6384 property and use System.Array instead.
6386 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
6388 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6389 the DBusUserInfo structure since this is passed into the function.
6390 This would cause a double free when the function that allocated
6391 the structure would try to free it when an error occured.
6393 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6394 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6395 for service activation to avoid 32bit/64bit parallel install issues
6397 2004-10-21 Colin Walters <walters@verbum.org>
6399 * AUTHORS: Fix my email address, the @gnu.org one
6400 has been bouncing for some time. Also add J5.
6402 2004-10-21 Colin Walters <walters@verbum.org>
6404 * dbus/dbus-transport-unix.c (do_authentication): Return
6405 authentication status to callers.
6406 (unix_handle_watch): If we completed authentication this round,
6407 don't do another read. Instead wait until the next iteration,
6408 after we've read any pending data in the auth buffer.
6409 (unix_do_iteration): Ditto.
6410 (unix_handle_watch): Updated for new do_authentication prototype.
6412 2004-10-18 Colin Walters <walters@verbum.org>
6414 * bus/selinux.c (bus_selinux_enabled): Handle
6415 --disable-selinux case.
6417 2004-10-18 Colin Walters <walters@verbum.org>
6419 * bus/selinux.h: Add bus_selinux_enabled.
6421 * bus/selinux.c (bus_selinux_enabled): Implement it.
6423 * bus/config-parser.c (struct include): Add
6424 if_selinux_enabled member.
6425 (start_busconfig_child): Parse if_selinux_enabled
6426 attribute for include.
6427 (bus_config_parser_content): Handle it.
6429 * bus/session.conf.in, bus/system.conf.in: Add
6430 inclusion of context mapping to default config files;
6431 conditional on SELinux being enabled.
6433 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6435 * test/data/invalid-config-files/badselinux-1.conf,
6436 test/data/invalid-config-files/badselinux-2.conf:
6437 Test files for bad syntax.
6439 2004-10-17 Colin Walters <walters@verbum.org>
6441 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6442 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6443 format specifier mismatches.
6445 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
6447 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6450 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6451 pointer (bug #1540, Leonardo Boiko).
6453 2004-09-28 Jon Trowbridge <trow@ximian.com>
6455 * mono/BusDriver.cs: Changed BusDriver struct to remove
6456 the ServiceCreated and ServiceDeleted events and replace them
6457 with the new ServiceOwnerChanged event.
6459 * mono/example/BusListener.cs: Added a new example program,
6460 which listens for and reports any ServiceOwnerChanged events
6463 * mono/example/Makefile.am (DESTDIR): Build changes for the
6464 new BusListener.cs example.
6466 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
6468 * bus/signals.c (bus_match_rule_parse): validate the components of
6469 match rules (bug #1439).
6471 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6473 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
6475 * doc/dbus-specification.xml: document ServiceOwnerChanged
6478 * bus/driver.c, bus/driver.h, bus/services.c: Use
6479 ServiceOwnerChanged signal instead of ServiceCreated and
6482 * bus/dispatch.c: update testcase for the new signal.
6484 2004-09-20 Jon Trowbridge <trow@ximian.com>
6486 Patch from Nat Friedman <nat@novell.com>
6488 * mono/Makefile.am: A number of small build fixes to allow "make
6489 distcheck" to succeed.
6491 * mono/example/Makefile.am: "make distcheck" fixes.
6493 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6496 * test/Makefile.am: "make distcheck" fixes.
6498 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
6500 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6502 * doc/busconfig.dtd: update the DTD for the at_console attribute.
6504 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6505 messages after the first one (bug #1389).
6507 * bus/dispatch.c (check_double_hello_message): add a test case for
6508 the double hello message bug.
6509 (check_existent_service_activation): fix check of spawning error.
6511 2004-09-16 David Zeuthen <david@fubar.dk>
6513 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6515 2004-09-12 David Zeuthen <david@fubar.dk>
6517 Patch from Kay Sievers <kay.sievers@vrfy.org>
6519 * bus/bus.c (bus_context_new):
6521 * bus/main.c (usage)
6523 Add commandline option --nofork to override configuration file
6526 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
6528 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6529 compilers don't like it (bug #974).
6531 2004-09-04 Harald Fernengel <harry@kdevelop.org>
6533 * qt/connection.*: Applied patch by Jérôme Lodewyck
6534 <lodewyck@clipper.ens.fr> to integrate an existing
6535 connection into the Qt eventloop
6537 2004-08-30 Jon Trowbridge <trow@ximian.com>
6539 * mono/BusDriver.cs: Added. This is a class for interacting with
6540 the org.freedesktop.DBus service.
6542 * mono/Message.cs: Added a mechanism to expose the message that is
6543 currently being dispatched via the static Message.Current
6544 property. Added Message.Sender and Message.Destination
6547 * mono/Handler.cs: Expose the dispatched message via
6548 Message.Current when handling method calls.
6550 * mono/Service.cs: Expose the dispatched message via
6551 Message.Current when handling signal emissions.
6553 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6554 Connection.BaseService property.
6556 2004-08-28 Havoc Pennington <hp@redhat.com>
6558 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6560 More fixes from Steve Grubb
6562 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6563 (_dbus_listen_tcp_socket): fix fd leak
6565 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6566 EINTR to a bit lower in the code
6568 2004-08-26 Jon Trowbridge <trow@ximian.com>
6570 * bus/driver.c (bus_driver_handle_service_exists): Respond with
6571 TRUE if we are inquiring about the existence of the built-in
6572 org.freedesktop.DBus service.
6574 2004-08-25 John Palmieri <johnp@redhat.com>
6575 * bus/config-parser.c:
6576 (struct PolicyType): Add POLICY_CONSOLE
6577 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6578 (start_busconfig_child): Sets up console element when
6579 <policy at_console=""> is encountered in a policy file
6580 (append_rule_from_element): Convert console elements to console
6584 (bus_policy_create_client_policy): Add console rules to the client
6585 policy based on if the client is at the console
6586 (bus_policy_append_console_rule): New function for adding a
6587 console rule to a policy
6588 (bus_policy_merge): Handle console rule merging
6590 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6591 where we check for console user files
6593 * dbus/dbus-sysdeps.c:
6594 (_dbus_file_exists): New function which checks if the given
6596 (_dbus_user_at_console): New function which does the system
6597 specific process of checking if the user is at the console
6599 * dbus/dbus-userdb.c:
6600 (_dbus_is_console_user): New function converts a UID to user name
6601 and then calls the system specific _dbus_user_at_console to
6602 see if the user is at the console and therefor a console user
6604 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
6606 * bus/config-parser.c (set_limit):
6607 * bus/dbus-daemon-1.1.in:
6608 * test/data/valid-config-files/many-rules.conf: set the
6609 max_match_rules_per_connection limt from the config file.
6611 * doc/busconfig.dtd: update the DTD.
6613 * bus/driver.c: remove some unused variables.
6615 2004-08-24 Mikael Hallendal <micke@imendio.com>
6617 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
6618 it's been replaced by dbus_g_bus_get
6620 2004-08-23 Colin Walters <walters@redhat.com>
6622 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6624 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6626 * bus/selinux.c: Create a thread for policy reload notification.
6627 (bus_selinux_get_policy_root): Implement.
6629 * bus/config-parser.c (start_busconfig_child)
6630 (bus_config_parser_content): Support SELinux-root relative
6633 * configure.in <HAVE_SELINUX>: Add -lpthread.
6635 * bus/test-main.c (test_pre_hook, test_post_hook): New.
6636 (test_post_hook): Move memory checking into here.
6637 (test_pre_hook, test_post_hook): Move SELinux checks in
6638 here, but conditional on a DBUS_TEST_SELINUX environment
6639 variable. Unfortunately we can't run the SELinux checks
6640 as a normal user, since they won't have any permissions
6641 for /selinux. So this will have to be tested manually
6642 for now, until we have virtualization for most of
6645 2004-08-23 Havoc Pennington <hp@redhat.com>
6647 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6648 drop supplementary groups, suggested by Steve Grubb
6650 2004-08-20 Colin Walters <walters@redhat.com>
6652 * bus/config-parser.c (start_busconfig_child): Remove some unused
6655 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6658 2004-08-17 Joe Shaw <joeshaw@novell.com>
6660 * configure.in: If --enable-mono is passed in, if we can't find
6663 * mono/Makefile.am: Use /gacutil to install assemblies into the
6666 2004-08-12 Havoc Pennington <hp@redhat.com>
6668 * NEWS: update for 0.22
6670 * configure.in: release 0.22
6672 2004-08-11 Colin Walters <walters@redhat.com>
6674 * tools/dbus-send.c (main, usage): Add --reply-timeout
6677 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
6679 * bus/bus.c (process_config_first_time_only): get rid of an unused
6680 DBusError that was causing a memoy leak (bug #989).
6682 * dbus/dbus-keyring.c, dbus/dbus-message.c:
6683 fix compilation on Solaris/Forte C (bug #974)
6685 * bus/main.c (main): plug two minuscule memleaks.
6687 2004-08-10 Havoc Pennington <hp@redhat.com>
6689 * doc/dbus-tutorial.xml: add some more info on GLib bindings
6691 2004-08-09 Havoc Pennington <hp@redhat.com>
6693 * COPYING: switch to Academic Free License version 2.1 instead of
6694 2.0, to resolve complaints about patent termination clause.
6696 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
6698 * README: added documentation for the --enable-python
6701 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
6703 * bus/config-parser.c (bus_config_parser_new): fix an invalid
6704 _unref in the SELinux support.
6706 * doc/busconfig.dtd: update DTD for SELinux support.
6708 * bus/config-loader-libxml.c: fix error handler and parser
6709 initialisation/cleanup. OOM test now works with libxml2 HEAD.
6711 * configure.in: remove the warning about libxml2.
6713 * dbus/dbus-bus.c: silence doxygen warning.
6715 2004-07-31 Colin Walters <walters@redhat.com>
6717 * configure.in: Move #error in SELinux check to its own line.
6719 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
6721 * dbus/dbus-internals.h (_DBUS_SET_OOM):
6722 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6725 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6726 broken by the change in the _SET_OOM macros.
6728 2004-07-31 Colin Walters <walters@redhat.com>
6730 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6733 2004-07-31 Colin Walters <walters@redhat.com>
6735 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6736 to correctly detect DBUS__ACQUIRE_SVC. Also add an
6739 2004-07-24 Havoc Pennington <hp@redhat.com>
6741 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6743 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6746 * configure.in: add --enable-selinux
6748 * bus/policy.c (bus_policy_merge): add FIXME to a comment
6750 * bus/main.c (main): initialize and shut down selinux
6752 * bus/connection.c: store SELinux ID on each connection, to avoid
6753 repeated getting of the string context and converting it into
6756 * bus/bus.c (bus_context_get_policy): new accessor, though it
6758 (bus_context_check_security_policy): check whether the security
6759 context of sender connection can send to the security context of
6760 recipient connection
6762 * bus/config-parser.c: add parsing for <selinux> and <associate>
6764 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6765 implement dbus_connection_get_unix_fd()
6767 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6768 function, used by the selinux stuff
6770 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
6772 * bus/config-loader-libxml.c: complete the implementation of
6773 libxml backend for config file loader. Doesn't work with full OOM
6776 * configure.in: change error when selecting libxml into a warning.
6778 * test/data/invalid-config-files: add two non-well-formed XML
6781 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6783 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6784 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6785 be necessary to read all the buffer. (bug #894)
6787 * bus/activation.c (bus_activation_activate_service): fix a
6788 potential assertion failure (bug #896). Small optimization in the
6789 case of auto-activation messages.
6791 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6792 add test case for byte-through-vararg bug (#901). patch by Kimmo
6795 2004-07-28 Anders Carlsson <andersca@gnome.org>
6798 * python/dbus_bindings.pyx.in:
6799 Add dbus.init_gthreads (), allow emit_signal to pass
6800 arguments to the signal.
6802 2004-07-24 Havoc Pennington <hp@redhat.com>
6804 * AUTHORS: add some people, not really comprehensively, let me
6805 know if I missed you
6807 2004-07-24 Havoc Pennington <hp@redhat.com>
6809 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6812 * test/Makefile.am (DIST_SUBDIRS): here also
6814 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
6816 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6817 breaking build on Solaris, reported by Farhad Saberi on the ML.
6819 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6820 va_arg invocation to account for integer promotion in the case of
6821 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6823 * bus/services.c (bus_service_remove_owner): fix bug #902, use
6824 _dbus_list_get_first_link, not _dbus_list_get_first.
6826 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6828 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6829 handler functions so that the asserts in _dbus_object_subtree_unref
6832 * dbus/dbus-transport-unix.c (do_reading):
6833 _dbus_transport_queue_messages return value is of type
6834 dbus_bool_t, not DBusDispatchStatus.
6836 2004-07-19 David Zeuthen <david@fubar.dk>
6838 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6841 (check_get_connection_unix_user): Debug says GetProperty; but the
6842 method is called GetConnectionUnixUser
6843 (check_get_connection_unix_process_id): New function
6844 (bus_dispatch_test): Actually call check_get_connection_unix_user();
6845 also call check_get_connection_unix_process_id()
6848 (bus_driver_handle_get_connection_unix_process_id): New function,
6849 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6853 (handle_server_data_external_mech): Set pid from the credentials
6854 obtained from the socket
6856 * dbus/dbus-connection.c:
6857 (dbus_connection_get_unix_process_id): New function
6859 * dbus/dbus-connection.h:
6860 Add prototype for dbus_connection_get_unix_process_id
6862 * dbus/dbus-transport.c:
6863 (_dbus_transport_get_unix_process_id): New function
6865 * dbus/dbus-transport.h:
6866 Add prototype for _dbus_transport_get_unix_process_id
6868 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
6870 * dbus/dbus-message.c: Message counter fix, patch by Christian
6871 Hammond <chipx86@gnupdate.org>
6873 2004-07-18 Seth Nickell <seth@gnome.org>
6876 * python/dbus_bindings.pyx.in:
6877 * python/tests/test-client.py:
6879 Add dbus.ByteArray and dbus_bindings.ByteArray
6880 types so that byte streams can be passed back.
6882 Give jdahlin the heaps of credit that are so
6885 2004-07-12 Seth Nickell <seth@gnome.org>
6889 Add message argument to the default object_method_handler
6892 * python/dbus_bindings.pyx.in:
6894 Automatically return NIL when passed an empty list
6895 (we can't pass back a list since lists are typed
6896 and we don't have any idea what type the the client
6897 intended the list to be... :-( )
6899 2004-07-10 Seth Nickell <seth@gnome.org>
6901 * python/examples/Makefile.am:
6903 Fix distcheck breakage caused by new examples.
6905 2004-07-10 Seth Nickell <seth@gnome.org>
6909 Add "message" argument to service-side dbus.Object
6910 methods. This will break existing services written
6911 using the python bindings, but will allow extraction
6912 of all the message information (e.g. who its from).
6914 Add improved "object oriented" signal handling/emission.
6916 * python/examples/example-service.py:
6920 * python/examples/example-signal-emitter.py:
6921 * python/examples/example-signal-recipient.py:
6923 Two new examples that show how to emit and receive
6924 signals using the new APIs.
6926 * python/examples/example-signals.py:
6927 * python/examples/gconf-proxy-service.py:
6928 * python/examples/gconf-proxy-service2.py:
6930 Add "message" argument to service methods.
6932 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
6934 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6935 * dbus/bus.c (dbus_bus_get_unix_user)
6936 * doc/dbus-specification.xml: implement GetConnectionUnixUser
6937 method of org.freedesktop.DBus interface.
6939 * bus/dispatch.c: test case
6941 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
6943 * python/Makefile.am: switched include directory from glib/ to dbus/
6944 since dbus-glib.h moved
6946 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
6948 * configure.in: prevent building the gcj stuff and libxml loader
6949 since they are broken.
6951 2004-06-20 Havoc Pennington <hp@redhat.com>
6953 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
6954 codes from the dbus error names
6956 * glib/dbus-glib.h: move to subdir dbus/ since it's included
6957 as dbus/dbus-glib.h and that breakage is now visible due to
6958 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6960 * glib/dbus-glib.h: s/gproxy/g_proxy/
6962 * dbus/dbus-shared.h: new header to hold stuff shared with
6965 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6968 * glib/dbus-glib.h (dbus_set_g_error): move to
6969 dbus-glib-lowlevel.h
6971 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6972 of stuff to enable this
6974 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6976 * a bunch of other changes with the same basic "separate glib
6977 bindings from dbus.h" theme
6979 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
6981 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6983 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6985 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
6987 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6988 the reply value of the ServiceExists message.
6990 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
6992 * python/dbus_bindings.pyx.in: No longer need to parse path
6993 elements and pass them as arrays of strings. The C API now
6994 accepts plain path strings.
6995 (_build_parsed_path): removed
6997 2004-06-07 Havoc Pennington <hp@redhat.com>
6999 * doc/TODO: remove auto-activation item since it's done; sort
7000 items by importance/milestone
7002 2004-06-07 Havoc Pennington <hp@redhat.com>
7004 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7005 random signature when using REQUIRED_FIELDS (this hack won't work
7008 * dbus/dbus-message.c: change the signature to be a header field,
7009 instead of message->signature special-case string. Incremental
7010 step forward. Then we can fix up code to send the signature in the
7011 message, then fix up code to validate said signature, then fix up
7012 code to not put the typecodes inline, etc.
7013 (load_one_message): don't make up the signature after the fact
7014 (decode_header_data): require signature field for the known
7017 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7019 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7021 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
7023 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7025 * mono/Handler.cs: Updated to follow new path argument for
7026 (un-)registering objects.
7028 * mono/example/Makefile.am:
7030 * configure.in: Bumped required version for mono and use new -pkg
7033 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
7035 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
7036 registration functions take the path argument as char* instead of
7039 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
7040 split off the path decompostion part of
7041 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
7044 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
7046 2004-06-02 Kristian Høgsberg <krh@redhat.com>
7048 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
7049 machine approach. A state is implemented as a function that
7050 handles incoming events as specified for that state.
7052 * doc/dbus-specification.xml: Update auth protocol state machine
7053 specification to match implementation. Remove some leftover
7056 2004-06-02 Kristian Høgsberg <krh@redhat.com>
7058 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7059 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7062 * Doxyfile.in: remove deprecated options.
7064 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7065 glib/test-thread.h, glib/test-thread-client.c,
7066 glib/test-thread-server.c, glib/test-profile.c,
7067 glib/test-dbus-glib.c: remove these unused files.
7069 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
7071 * dbus/dbus-object-tree.c
7072 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7073 non-fallback handlers (bug #684).
7074 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7075 (find_subtree_recurse): report wether the returned subtree is an
7076 exact match or a "fallback" match higher up in the tree.
7077 (object_tree_test_iteration): update test case.
7079 2004-06-01 Seth Nickell <seth@gnome.org>
7081 * python/dbus_bindings.pyx.in:
7082 * python/tests/test-client.py:
7084 Round off basic type support. Add dicts (yay!), and
7085 remaining array types.
7087 Make MessageIter more general so it works for dicts too.
7089 Mark all loop variables as C integers.
7091 2004-05-31 Havoc Pennington <hp@redhat.com>
7093 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7096 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7098 * glib/dbus-glib-tool.c (main): set up to have a --self-test
7099 option that runs the tests, and start filling in some code
7100 including for starters just dumping the interfaces to stdout
7102 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7104 * test/data/valid-introspection-files/lots-of-types.xml: test of
7105 an example introspection file
7107 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7110 2004-05-31 Seth Nickell <seth@gnome.org>
7112 * python/dbus_bindings.pyx.in:
7113 * python/tests/test-client.py:
7118 Fix string array memory trashing bug... oops...
7120 2004-05-30 Seth Nickell <seth@gnome.org>
7124 Add a nicer-but-less-flexible alternate API for handling
7125 calls to virtual objects in dbus.ObjectTree.
7127 Screw up the argument order to the dbus.Object constructor
7128 for consistency with dbus.ObjectTree (and to make dbus_methods
7129 optional for future extension)
7131 * python/examples/Makefile.am:
7132 * python/examples/gconf-proxy-service.py:
7133 * python/examples/gconf-proxy-service2.py:
7135 Alternate implementation of gconf-proxy-service using the
7136 nicer dbus.ObjectTree API.
7138 * python/examples/example-service.py:
7139 * python/tests/test-server.py
7141 Reverse the argument order to deal with dbus.Object constructor
7144 2004-05-30 Seth Nickell <seth@gnome.org>
7146 * python/examples/example-client.py:
7147 * python/examples/example-service.py:
7149 Take it back. Lists seem to work but they're broken
7150 in the test suite. Make the base examples use
7153 2004-05-30 Seth Nickell <seth@gnome.org>
7155 * python/dbus_bindings.pyx.in:
7156 * python/tests/test-client.py:
7158 Add some more tests and fix errors that crop up.
7159 Unfortunately, currently it seems like marshalling
7160 and unmarshalling of lists is completely broken :-(
7162 2004-05-30 Seth Nickell <seth@gnome.org>
7164 * python/dbus_bindings.pyx.in:
7166 Add support for ObjectPath type.
7170 Refactor message handling code to a common function.
7172 * python/tests/test-client.py:
7173 * python/tests/test-server.py:
7175 Add tests that check to make sure values of all types
7176 can be echoed from a service w/o mangling.
7178 2004-05-29 Seth Nickell <seth@gnome.org>
7182 Add ObjectTree class which allows implementation
7183 of trees of "virtual" objects. Basically the python
7184 wrapper for "register_fallback".
7186 * python/examples/Makefile.am
7187 * python/examples/gconf-proxy-client.py:
7188 * python/examples/gconf-proxy-service.py:
7190 Implement a simple GConf proxy service that supports
7191 get/set on string and int GConf keys using the ObjectTree.
7193 2004-05-29 Seth Nickell <seth@gnome.org>
7196 * python/examples/example-client.py:
7197 * python/examples/example-service.py:
7198 * python/examples/list-system-services.py:
7200 Add SessionBus, SystemBus and ActivationBus classes
7201 so you don't need to know the special little BUS_TYPE
7204 2004-05-29 Havoc Pennington <hp@redhat.com>
7206 * bus/config-parser.c (process_test_valid_subdir): temporarily
7207 stop testing config parser OOM handling, since expat has issues
7208 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7210 * bus/dbus-daemon-1.1.in: change requested_reply to
7211 send_requested_reply/receive_requested_reply so we can send the
7212 replies, not just receive them.
7214 * bus/config-parser.c: parse the new
7215 send_requested_reply/receive_requested_reply
7217 * bus/policy.c (bus_client_policy_check_can_send): add
7218 requested_reply argument and use it
7220 * bus/bus.c (bus_context_check_security_policy): pass through
7221 requested_reply status to message send check
7223 * bus/system.conf.in: adapt to requested_reply change
7225 2004-05-28 Havoc Pennington <hp@redhat.com>
7227 * test/glib/test-service-glib.c (main): remove unused variable
7229 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7231 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7232 from the enum, no longer in use.
7234 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7237 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7238 whether error_name passed in is a valid error name.
7240 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
7242 * dbus/dbus-message.c (dbus_message_get_args): Added support for
7243 OBJECT_PATH and OBJECT_PATH_ARRAY
7245 2004-05-28 Seth Nickell <seth@gnome.org>
7247 * python/examples/Makefile.am:
7249 Forget to add Makefile.am. Do not pass go.
7251 2004-05-28 Michael Meeks <michael@ximian.com>
7253 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
7256 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7258 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7259 (_dbus_message_iter_get_basic_type_array): impl.
7260 drastically simplify ~all relevant _get methods to use these.
7261 (_dbus_message_iter_append_basic_array),
7262 (dbus_message_iter_append_basic): impl
7263 drastically simplify ~all relevant _append methods to use these.
7265 * dbus/dbus-message-builder.c (parse_basic_type)
7266 (parse_basic_array, lookup_basic_type): impl.
7267 (_dbus_message_data_load): prune scads of duplicate /
7270 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
7271 (_dbus_demarshal_basic_type): implement,
7272 (demarshal_and_validate_len/arg): beef up debug.
7273 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7275 2004-05-27 Seth Nickell <seth@gnome.org>
7278 * python/Makefile.am:
7280 Include the example python apps in the tarball.
7282 * python/examples/list-system-services.py
7284 Add a python new example that fetches the list of services
7285 from the system bus.
7287 2004-05-27 Seth Nickell <seth@gnome.org>
7290 * python/dbus_bindings.pyx.in:
7292 Fix failure to notify that a signal was not handled,
7293 resulted in hung functions.
7295 2004-05-25 Colin Walters <walters@redhat.com>
7297 * tools/dbus-monitor.c (main): Monitor all types of messages.
7299 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
7301 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7302 which unregisters the object path and disposes the handler.
7304 2004-05-23 Kristian Høgsberg <krh@redhat.com>
7306 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7308 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7309 operands to && so we call dbus_message_iter_next () for the last
7312 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
7314 * dbus/dbus-object-tree.c
7315 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7316 children even if the requested path isn't registered.
7317 (object_tree_test_iteration): test object_tree_list_registered.
7319 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7322 2004-05-20 Kristian Høgsberg <krh@redhat.com>
7324 * doc/TODO: Remove resolved items.
7326 * bus/expirelist.h (struct BusExpireList): remove unused n_items
7329 * bus/connection.c (bus_connections_expect_reply): Enforce the
7330 per-connection limit on pending replies.
7332 Patch from Jon Trowbridge <trow@ximian.com>:
7334 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
7335 up a watch that triggers a config reload when one end of the pipe
7337 (signal_handler): Instead of doing the config reload in our SIGHUP
7338 handler, just write to the reload pipe and let the associated
7339 watch handle the reload when control returns to the main loop.
7341 * bus/driver.c (bus_driver_handle_reload_config): Added.
7342 Implements a ReloadConfig method for requesting a configuration
7343 file reload via the bus driver.
7345 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
7347 * HACKING: Updated release instructions concerning the wiki page.
7349 2004-05-18 Kristian Høgsberg <krh@redhat.com>
7351 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7352 filter against auth->allowed_mechs; we only add allowed mechs in
7353 record_mechanisms().
7355 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7356 ALLOWED_MECHS to auth-script format so we can set the list of
7359 * data/auth/client-out-of-mechanisms.auth-script: New test to
7360 check client disconnects when it is out of mechanisms to try.
7362 * dbus/dbus-auth.c (process_command): Remove check for lines
7363 longer that 1 MB; we only buffer up maximum 16 kB.
7365 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7366 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7367 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7368 assume there might be unused bytes.
7370 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7371 client-out-of-mechs, it is handled in process_reject(). Move check
7372 for max failures to send_rejected(), as it's a server-only thing.
7374 * dbus/dbus-auth.c: Factor out protocol reply code into functions
7375 send_auth(), send_data(), send_rejected(), send_error(),
7376 send_ok(), send_begin() and send_cancel().
7378 2004-05-17 Kristian Høgsberg <krh@redhat.com>
7380 Remove base64 encoding, replace with hex encoding. Original patch
7381 from trow@ximian.com, added error handling.
7383 * dbus/dbus-string.c (_dbus_string_base64_encode)
7384 (_dbus_string_base64_decode): Remove.
7385 (_dbus_string_hex_decode): Add end_return argument so we can
7386 distinguish between OOM and invalid hex encoding.
7387 (_dbus_string_test): Remove base64 tests and add test case for
7390 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7391 Replace base64 with hex.
7393 * test/data/auth/invalid-hex-encoding.auth-script: New test case
7394 for invalid hex encoded data in auth protocol.
7396 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
7398 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7401 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
7403 * mono/dbus-sharp.dll.config.in: Added for GAC
7404 * mono/dbus-sharp.snk: Added for GAC
7405 * mono/Assembly.cs.in: Added for GAC
7406 * mono/Makefile.am: Changes for GAC installation
7407 * configure.in: Added refs for dbus-sharp.dll.config.in and
7408 Assembly.cs.in. More fixes for mono testing
7409 * mono/example/Makefile.am: Changed var to CSC
7410 * Makefile.am: Changed flag name to DBUS_USE_CSC
7412 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
7414 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7415 * mono/doc/*: Added documentation framework
7416 * configure.in: Added monodoc check
7417 * README: Added description of mono configure flags
7419 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
7421 * doc/dbus-specification.xml: Added a "Required" column to the
7422 header fields table and changed the "zero or more" verbage in
7423 the above paragraph to read "The header must contain the required
7424 named header fields and zero or more of the optional named header
7426 * test/data/invalid-messages/*.message: Added the required PATH
7427 named header field to the tests so that they don't fail on
7428 'Missing path field'
7430 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
7432 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7433 the stack by implicitly defining variable and parameter types and
7434 removing the hack of defining C pointers as python objects and later
7437 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
7439 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7441 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
7443 * mono/DBusType/Dict.cs: Handle empty dicts
7444 * mono/DBusType/Array.cs: Handle empty arrays
7445 * mono/Arguments.cs: Handle empty arguments
7447 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
7449 * dbus-sharp.pc.in: Modified to include include Libs and Requires
7452 2004-04-25 Kristian Høgsberg <krh@redhat.com>
7454 * test/data/valid-messages/standard-*.message: Update message
7455 test scripts to new header field names.
7457 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
7459 * test/break-loader.c (randomly_do_n_things): tracked down buffer
7460 overflow to times_we_did_each_thing array which would chop off the
7461 first character of the failure_dir string. Increased the size of
7462 the array to 7 to reflect the number of random mutation functions
7465 2004-04-21 Kristian Høgsberg <krh@redhat.com>
7467 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7468 unix_server->watch here, it is unreffed in disconnect.
7469 (_dbus_server_new_for_tcp_socket): convert NULL host to
7470 "localhost" here so we don't append NULL to address.
7472 * dbus/dbus-server.c (_dbus_server_test): Add test case for
7473 various addresses, including tcp with no explicit host.
7475 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
7477 * dbus/dbus-message.c (decode_header_data, decode_string_field):
7478 fix incorrect setting of .name_offset in the HeaderField (it was
7479 off by two bytes, positioned right after the name and typecode)
7481 * bus/bus.c (bus_context_new, bus_context_unref): test before
7482 calling dbus_server_free_data_slot and _dbus_user_database_unref
7483 in case of an error.
7485 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7488 2004-04-19 Kristian Høgsberg <krh@redhat.com>
7490 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7491 _dbus_poll() instead of select().
7493 2004-04-15 Jon Trowbridge <trow@ximian.com>
7495 * bus/main.c (signal_handler): Reload the configuration files
7497 (main): Set up our SIGHUP handler.
7499 * bus/bus.c (struct BusContext): Store the config file, user and
7500 fork flag in the BusContext.
7501 (process_config_first_time_only): Added. Contains the code
7502 (previously in bus_context_new) for setting up the BusContext from
7503 the BusConfigParser that should only be run the first time the
7504 config files are read.
7505 (process_config_every_time): Added. Contains the code (previously
7506 in bus_context_new) for setting up the BusContext from the
7507 BusConfigParser that should be run every time the config files are
7509 (load_config): Added. Builds a BusConfigParser from the config
7510 files and passes the resulting structure off to
7511 process_config_first_time_only (assuming this is the first time)
7512 and process_config_every_time.
7513 (bus_context_new): All of the config-related code has been moved
7514 to process_config_first_time_only and process_config_every_time.
7515 Now this function just does the non-config-related initializations
7516 and calls load_config.
7517 (bus_context_reload_config): Added.
7519 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
7521 * bus/driver.c (bus_driver_handle_get_service_owner):
7522 implement a GetServiceOwner method.
7523 * doc/dbus-specification.xml: document it.
7524 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7526 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7527 implement, using the bus GetServiceOwner method.
7529 * test/glib/test-dbus-glib.c:
7530 use dbus_gproxy_new_for_service_owner so that we can receive the
7533 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
7535 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7536 dbus/dbus-message.c, dbus/dbus-protocol.h
7537 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7539 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7540 dbus/dbus-message.c, dbus/dbus-protocol.h
7541 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7543 * dbus/dbus-internals.c (_dbus_header_field_to_string):
7544 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7545 DBUS_HEADER_FIELD_SENDER resolves to "sender"
7547 * doc/dbus-specification.xml (Header Fields Table):
7548 s/SERVICE/DESTINATION
7549 s/SENDER_SERVICE/SENDER
7552 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
7554 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7557 2004-04-13 Michael Meeks <michael@ximian.com>
7559 * glib/dbus-gobject.c (handle_introspect): split out
7560 (introspect_properties): this.
7561 (handle_introspect): implement this.
7563 * test/glib/Makefile.am: use the absolute path so the bus
7564 daemon's chdir ("/") doesn't kill us dead.
7566 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7568 2004-04-12 Jon Trowbridge <trow@ximian.com>
7570 * bus/config-parser.c (struct BusConfigParser): Added
7571 included_files field.
7572 (seen_include): Added. Checks whether or not a file has already
7573 been included by any parent BusConfigParser.
7574 (bus_config_parser_new): Copy the parent's included_files.
7575 (include_file): Track which files have been included, and fail on
7576 circular inclusions.
7577 (process_test_valid_subdir): Changed printf to report if we are
7578 testing valid or invalid conf files.
7579 (all_are_equiv): Changed printf to be a bit clearer about
7580 what we are actually doing.
7581 (bus_config_parser_test): Test invalid configuration files.
7583 2004-04-09 Jon Trowbridge <trow@ximian.com>
7585 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7586 argument. If non-null, the newly-constructed BusConfigParser will
7587 be initialized with the parent's BusLimits instead of the default
7589 (include_file): When including a config file, pass in
7590 the current parser as the parent and then copy the BusLimits
7591 from the included BusConfigParser pack to the current parser.
7592 (process_test_valid_subdir): Renamed from process_test_subdir.
7593 (process_test_equiv_subdir): Added. Walks through a directory,
7594 descending into each subdirectory and loading the config files
7595 it finds there. If any subdirectory contains two config files
7596 that don't produce identical BusConfigParser structs, fail.
7597 For now, the BusConfigParser's BusPolicies are not compared.
7598 (bus_config_parser_test): Call both process_test_valid_subdir and
7599 process_test_equiv_subdir.
7601 * bus/config-loader-libxml.c (bus_config_load): Take a parent
7602 argument and pass it along to the call to bus_config_parser_new.
7603 Also made a few small changes to allow this code to compile.
7605 * bus/config-loader-expat.c (bus_config_load): Take a parent
7606 argument and pass it along to the call to bus_config_parser_new.
7608 * bus/bus.c (bus_context_new): Load the config file
7609 with a NULL parent argument.
7611 2004-03-29 Michael Meeks <michael@ximian.com>
7613 * glib/dbus-gobject.c (introspect_properties): split
7614 out, fix mangled 'while' flow control.
7615 (introspect_signals): implement.
7616 (handle_introspect): update.
7618 2004-03-29 Michael Meeks <michael@ximian.com>
7620 * glib/dbus-gobject.c (set_object_property): split out /
7621 re-work, use the property type, and not the message type(!)
7622 (get_object_property): ditto.
7624 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7625 (dbus_gvalue_marshal): make this code re-usable, needed
7626 for signals too, also on both proxy and server side.
7627 Re-write for more efficiency / readability.
7629 2004-03-29 Michael Meeks <michael@ximian.com>
7631 * dbus/dbus-message.c
7632 (dbus_message_new_error_printf): impl.
7634 * dbus/dbus-connection.c
7635 (dbus_connection_unregister_object_path): fix warning.
7637 * configure.in: fix no-mono-installed situation.
7639 2004-03-27 Havoc Pennington <hp@redhat.com>
7641 Patch from Timo Teräs:
7643 * tools/dbus-send.c (main): if --print-reply, assume type is
7644 method call; support boolean type args
7646 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7647 bunch of memleak and logic bugs
7649 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
7651 * mono/Arguments.cs:
7652 * mono/Introspector.cs:
7654 * mono/InterfaceProxy.cs:
7656 * mono/ProxyBuilder.cs:
7658 Added InterfaceProxy class to avoid building proxies for every
7662 * dbus-message.c (dbus_message_append_args_valist)
7663 (dbus_message_iter_get_object_path)
7664 (dbus_message_iter_get_object_path_array)
7665 (dbus_message_iter_append_object_path)
7666 (dbus_message_iter_append_object_path_array):
7667 Added object_path iter functions to handle OBJECT_PATH arguments
7669 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
7671 First checkin of mono bindings.
7674 Build stuff for the bindings
7675 * dbus-sharp.pc.in: Added for pkgconfig
7677 2004-03-21 Havoc Pennington <hp@redhat.com>
7679 * test/test-service.c (main): remove debug spew
7681 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
7683 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7686 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7687 (dbus_message_iter_init_array_iterator)
7688 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7689 indicate whether the iterator is empty
7691 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7694 2004-03-19 Havoc Pennington <hp@redhat.com>
7696 * NEWS: 0.21 updates
7698 * configure.in: 0.21
7700 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7702 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7703 you don't need pyrex to make dist
7705 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7708 2004-03-18 Richard Hult <richard@imendio.com>
7710 * dbus/dbus-message.c (dbus_message_get_auto_activation)
7711 (dbus_message_set_auto_activation): Add doxygen docs.
7713 2004-03-16 Richard Hult <richard@imendio.com>
7715 * bus/activation.c: (bus_activation_service_created),
7716 (bus_activation_send_pending_auto_activation_messages),
7717 (bus_activation_activate_service):
7719 * bus/dispatch.c: (bus_dispatch),
7720 (check_nonexistent_service_auto_activation),
7721 (check_service_auto_activated),
7722 (check_segfault_service_auto_activation),
7723 (check_existent_service_auto_activation), (bus_dispatch_test):
7724 * bus/driver.c: (bus_driver_handle_activate_service):
7725 * bus/services.c: (bus_registry_acquire_service):
7726 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7727 (dbus_message_get_auto_activation):
7728 * dbus/dbus-message.h:
7729 * dbus/dbus-protocol.h: Implement auto-activation.
7731 * doc/dbus-specification.xml: Add auto-activation to the spec.
7733 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
7735 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7736 fix a bug with CUSTOM types.
7738 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7739 a unit test for this bug (used to fail).
7741 2004-03-12 Mikael Hallendal <micke@imendio.com>
7744 (babysitter_watch_callback): notify all pending activations waiting for
7745 the same exec that the activation failed.
7746 (bus_activation_activate_service): shortcut the activation if we
7747 already waiting for the same executable to start up.
7749 2004-03-12 Mikael Hallendal <micke@imendio.com>
7752 - Added service file reloading.
7753 Each service files directory is kept in an hash table in
7754 BusActivation and each BusActivationEntry knows what .service-file it
7755 was read from. So when you try to activate a service the bus will
7756 check if it's been updated, removed or if new .service-files has
7758 - Test code at the bottom for the service file reloading.
7759 * bus/test-main.c: (main):
7761 - added service reloading test.
7762 * dbus/dbus-sysdeps.c:
7763 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7765 2004-03-08 Michael Meeks <michael@ximian.com>
7767 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
7768 bail immediately if disconnected, to avoid busy loop.
7770 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7771 cleanup cut/paste/inefficiency.
7773 2004-03-01 David Zeuthen <david@fubar.dk>
7775 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7776 bug where args were used twice. This bug resulted in a segfault
7777 on a Debian/PPC system when starting the messagebus daemon. Include
7778 dbus-sysdeps.h for DBUS_VA_COPY
7780 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7782 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7783 appropriate va_copy implementation. From GLib
7785 2004-02-24 Joe Shaw <joe@ximian.com>
7787 * bus/services.c (bus_registry_acquire_service): We need to pass
7788 in the service name to dbus_set_error() to prevent a crash.
7790 2003-12-26 Anders Carlsson <andersca@gnome.org>
7792 * AUTHORS: Reveal my True identity.
7794 2003-12-17 Mikael Hallendal <micke@imendio.com>
7796 * dbus/dbus-message.c: (dbus_message_append_args_valist):
7797 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7799 2003-12-13 Mikael Hallendal <micke@imendio.com>
7801 * doc/TODO: Added not about better error check of configuration files.
7803 2003-12-02 Richard Hult <richard@imendio.com>
7805 * Update AFL version to 2.0 throughout the source files to reflect
7806 the update that was done a while ago.
7808 2003-12-02 Richard Hult <richard@imendio.com>
7810 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7811 wrote_dict_key to FALSE on the iter that the dict is appended to,
7812 just like when appending other types. Fixes a bug where a dict
7813 couldn't be put inside a dict.
7814 (dbus_message_iter_append_dict_key): Fix typo in warning message.
7815 (message_iter_test, _dbus_message_test): Add test case for dict
7818 2003-12-01 David Zeuthen <david@fubar.dk>
7820 * python/dbus.py: Add the actual message when calling the reciever
7821 of a signal such that parameters can be inspected. Add the method
7822 remove_signal_receiver
7824 2003-11-26 Mikael Hallendal <micke@imendio.com>
7828 * glib/*.[ch]: Made ref functions return the pointer
7830 2003-11-25 Zack Rusin <zack@kde.org>
7832 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7834 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
7837 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
7838 the Integrator and to better fit with the server,
7840 2003-11-24 Zack Rusin <zack@kde.org>
7842 * qt/connection.h, qt/connection.cpp: removing initDbus method since
7843 the integrator handles it now
7845 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7846 since QTimer wasn't really meant to be used the way DBusTimeout is
7848 2003-11-24 Zack Rusin <zack@kde.org>
7850 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
7851 Integrator class which integrates D-BUS with the Qt event loop,
7853 * qt/connection.h, qt/connection.cpp: Move all the code which
7854 was dealing with D-BUS integration to the Integrator class,
7855 and start using Integrator,
7857 2003-11-23 Zack Rusin <zack@kde.org>
7859 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
7862 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7863 switching namespaces to DBusQt, reworking the class,
7865 * Makefile.cvs: switching dependencies so that it matches KDE
7868 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
7871 2003-11-19 Havoc Pennington <hp@redhat.com>
7875 * configure.in: bump version to 0.20
7877 * configure.in (have_qt): add yet another place to look for qt
7878 (someone hand trolltech a .pc file...)
7880 2003-11-01 Havoc Pennington <hp@redhat.com>
7882 * doc/dbus-specification.xml: add state machine docs on the auth
7883 protocol; just a first draft, I'm sure it's wrong.
7885 2003-10-28 David Zeuthen <david@fubar.dk>
7887 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7888 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7890 2003-10-28 Havoc Pennington <hp@redhat.com>
7892 * dbus/dbus-message.c (get_next_field): delete unused function
7894 2003-10-28 Havoc Pennington <hp@redhat.com>
7896 * bus/expirelist.c (do_expiration_with_current_time): detect
7897 failure of the expire_func due to OOM
7899 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7901 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7902 NoReply error that's now created by the bus when the service exits
7904 2003-10-28 Havoc Pennington <hp@redhat.com>
7906 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7907 tests for set_path, set_interface, set_member, etc.
7909 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7911 * dbus/dbus-message.c (set_string_field): always just delete and
7912 re-append the field; accept NULL for deletion
7913 (re_align_fields_recurse): reimplement
7915 2003-10-26 Havoc Pennington <hp@redhat.com>
7917 * dbus/dbus-connection.c: fix docs to properly describe the
7918 disconnected message
7919 (_dbus_connection_notify_disconnected): remove this function;
7920 we can't synchronously add the disconnected message, we have to
7921 do it after we've queued any remaining real messages
7922 (_dbus_connection_get_dispatch_status_unlocked): queue the
7923 disconnect message only if the transport has finished queueing all
7924 its real messages and is disconnected.
7925 (dbus_connection_disconnect): update the dispatch status here
7927 2003-10-22 Havoc Pennington <hp@redhat.com>
7929 * bus/bus.c (bus_context_check_security_policy): fix up assertion
7931 * bus/connection.c (bus_transaction_send_from_driver): set the
7932 destination to the connection's base service
7934 2003-10-20 Havoc Pennington <hp@redhat.com>
7936 hmm, make check is currently not passing.
7938 * doc/dbus-specification.xml: add requirement that custom type
7939 names follow the same rules as interface names.
7941 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7942 duplication and allow 'c' to be 'custom'; dict is now 'm' for
7945 * doc/dbus-specification.xml: update type codes to match
7946 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7947 CUSTOM. Add type OBJECT_PATH to the spec.
7949 2003-10-17 Havoc Pennington <hp@redhat.com>
7951 * bus/driver.c (create_unique_client_name): use "." as separator
7952 in base service names instead of '-'
7954 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7955 byte at the end of the string
7957 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7958 optimization macros since string validation seems to be a slow
7961 * doc/dbus-specification.xml: restrict valid
7962 service/interface/member/error names. Add test suite code for the
7965 * dbus/dbus-string.c: limit service/interface/member/error names
7968 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7969 format arg to verbose spew
7971 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7972 memory, return instead of g_error
7974 * test/test-service.c (path_message_func): support emitting a
7977 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7978 activation bus type if DBUS_BUS_ACTIVATION was set; default to
7979 assuming the activation bus was the session bus so that services
7980 started manually will still register.
7981 (init_connections_unlocked): fix so that in OOM situation we get
7982 the same semantics when retrying the function
7984 * test/test-service.c (main): change to use path registration, to
7985 test those codepaths; register with DBUS_BUS_ACTIVATION rather
7986 than DBUS_BUS_SESSION
7988 2003-10-16 Havoc Pennington <hp@redhat.com>
7990 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7992 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7993 coverage of the tests
7994 (coverage-report.txt): don't move the .da and .bbg files around
7996 2003-10-16 Havoc Pennington <hp@redhat.com>
7998 * bus/bus.c (struct BusContext): remove struct field I didn't mean
8001 2003-10-16 Havoc Pennington <hp@redhat.com>
8003 * bus/connection.c (bus_pending_reply_expired): either cancel or
8005 (bus_connections_check_reply): use unlink, not remove_link, as we
8006 don't want to free the link; fixes double free mess
8008 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8009 where no reply was received
8011 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8014 * bus/signals.c (match_rule_matches): add special cases for the
8015 bus driver, so you can match on sender/destination for it.
8017 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8018 DBUS_PRINT_BACKTRACE is set
8020 * dbus/dbus-internals.c: add pid to assertion failure messages
8022 * dbus/dbus-connection.c: add message type code to the debug spew
8024 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8025 sender=foo not service=foo
8027 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8028 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
8029 DBUS_ACTIVATION_ADDRESS instead
8031 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
8032 DBUS_SYSTEM_BUS_ADDRESS if appropriate
8034 * bus/bus.c (bus_context_new): handle OOM copying bus type into
8037 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
8038 (dbus_message_iter_get_object_path_array): new function (half
8039 finished, disabled for the moment)
8041 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
8042 DBUS_MESSAGE_TYPE_ERROR
8044 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
8045 avoid redirecting stderr to /dev/null
8046 (babysit): close stdin if not doing the "exit_with_session" thing
8048 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
8049 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
8050 stdout/stdin, so things don't get confused
8052 * bus/system.conf.in: fix to allow replies, I modified .conf
8053 instead of .conf.in again.
8055 2003-10-14 David Zeuthen <david@fubar.dk>
8057 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
8058 argtype to arg_type when raising unknown arg type exception.
8059 Changed type list to reflect the changes in dbus-protocol.h so
8060 the bindings actually work.
8062 2003-10-14 Havoc Pennington <hp@redhat.com>
8064 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8065 to have a bug keeping it from outputting the .da files sometimes
8066 (string_get_string): don't append garbage nul bytes to the string.
8068 2003-10-15 Seth Nickell <seth@gnome.org>
8070 * python/Makefile.am:
8072 Include dbus_h_wrapper.h in the dist tarball.
8074 2003-10-14 Havoc Pennington <hp@redhat.com>
8076 * bus/bus.c (bus_context_check_security_policy): revamp this to
8077 work more sanely with new policy-based requested reply setup
8079 * bus/connection.c (bus_transaction_send_from_driver): set bus
8080 driver messages as no reply
8082 * bus/policy.c (bus_client_policy_check_can_receive): handle a
8083 requested_reply attribute on allow/deny rules
8085 * bus/system.conf: add <allow requested_reply="true"/>
8087 * bus/driver.c (bus_driver_handle_message): fix check for replies
8088 sent to the bus driver, which was backward. How did this ever work
8089 at all though? I think I'm missing something.
8091 * dbus/dbus-message.c (decode_header_data): require error and
8092 method return messages to have a reply serial field to be valid
8093 (_dbus_message_loader_queue_messages): break up this function;
8094 validate that reply serial and plain serial are nonzero;
8095 clean up the OOM/error handling.
8096 (get_uint_field): don't return -1 from this
8097 (dbus_message_create_header): fix signed/unsigned bug
8099 * bus/connection.c (bus_connections_expect_reply): save serial of
8100 the incoming message, not reply serial
8102 2003-10-14 Havoc Pennington <hp@redhat.com>
8104 * bus/connection.c: implement pending reply tracking using
8107 * bus/bus.c (bus_context_check_security_policy): verify that a
8108 reply is pending in order to allow a reply to be sent. Deny
8109 messages of unknown type.
8111 * bus/dbus-daemon-1.1.in: update to mention new resource limits
8113 * bus/bus.c (bus_context_get_max_replies_per_connection): new
8114 (bus_context_get_reply_timeout): new
8116 2003-10-13 Seth Nickell <seth@gnome.org>
8118 * python/Makefile.am:
8120 Pass "make distcheck": remove a couple files from DIST_FILES
8121 that weren't included in the final version.
8123 2003-10-12 Havoc Pennington <hp@pobox.com>
8125 Added test code that 1) starts an actual bus daemon and 2) uses
8126 DBusGProxy; fixed bugs that were revealed by the test. Lots
8127 more testing possible, but this is the basic framework.
8129 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8130 empty proxy lists from the proxy list hash
8132 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8133 couple of return_if_fail checks
8135 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8136 to allocate, so everything is cleared to NULL as it should be.
8138 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8139 source as data to dbus_connection_set_timeout_functions() as the
8140 timeout functions expected
8142 * test/glib/run-test.sh: add a little script to start up a message
8143 bus and run tests using it
8145 * tools/dbus-launch.1: updates
8147 * tools/dbus-launch.c (main): add --config-file option
8149 * tools/dbus-launch.c (main): remove confusing else if (runprog)
8150 that could never be reached.
8152 * dbus/dbus-message.c (dbus_message_new_method_return)
8153 (dbus_message_new_error, dbus_message_new_signal): set the
8154 no-reply-expected flag on all these. Redundant, but may
8155 as well be consistent.
8157 2003-10-11 Havoc Pennington <hp@pobox.com>
8159 * test/decode-gcov.c (function_solve_graph): make broken block
8160 graph a nonfatal error since it seems to be broken. Need to debug
8163 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8164 can't just check type > INVALID < LAST anymore
8166 * dbus/dbus-message.c (dbus_message_get_signature): new function
8167 (dbus_message_has_signature): new function
8168 (struct DBusMessage): add signature field (right now it isn't sent
8169 over the wire, just generated on the fly)
8170 (dbus_message_copy): copy the signature, and init strings to
8171 proper length to avoid some reallocs
8172 (dbus_message_iter_init_array_iterator): return void, since it
8174 (dbus_message_iter_init_dict_iterator): return void since it can't fail
8175 (_dbus_message_loader_queue_messages): add silly temporary hack to
8176 fill in message->signature on load
8178 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8179 characters, so they are relatively human-readable.
8181 2003-10-11 Havoc Pennington <hp@pobox.com>
8183 * dbus/dbus-message.c (_dbus_message_test): add more test
8184 coverage, but #if 0 for now since they uncover a bug
8185 not fixed yet; I think in re_align_field_recurse()
8186 (re_align_field_recurse): add FIXME about broken assertion
8188 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8190 * bus/connection.c: share a couple code bits with expirelist.c
8192 * bus/expirelist.h, bus/expirelist.c: implement a generic
8193 expire-items-after-N-seconds facility, was going to share between
8194 expiring connections and replies, decided not to use for expiring
8195 connections for now.
8197 * COPYING: include AFL 2.0 (still need to change all the file headers)
8199 2003-10-09 Havoc Pennington <hp@redhat.com>
8201 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8202 gcc 3.3. Not that we do anything about it yet.
8204 * bus/signals.c (bus_match_rule_parse): impose max length on the
8207 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8209 2003-10-09 Havoc Pennington <hp@redhat.com>
8211 Make matching rules theoretically work (add parser).
8213 * bus/bus.c (bus_context_check_security_policy): fix up to handle
8214 the case where destination is explicitly specified as bus driver
8215 and someone else is eavesdropping.
8217 * bus/policy.c (bus_client_policy_check_can_receive): fix up
8218 definition of eavesdropping and assertion
8220 * tools/dbus-send.c (main): use dbus_message_type_from_string
8222 * bus/signals.c (bus_match_rule_parse): implement
8224 * dbus/dbus-message.c (dbus_message_type_from_string): new
8226 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8228 2003-10-02 Havoc Pennington <hp@pobox.com>
8230 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8231 dbus_gproxy_oneway_call
8233 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
8234 (dbus_server_setup_with_g_main): fix to allow calling them more
8235 than once on the same args
8236 (dbus_bus_get_with_g_main): new function
8238 2003-10-02 Havoc Pennington <hp@redhat.com>
8240 * doc/dbus-tutorial.xml: write some stuff
8242 2003-09-29 Havoc Pennington <hp@pobox.com>
8244 * configure.in: split checks for Doxygen from XML docs, check for
8247 * doc/Makefile.am: XML-ify all the docs, and add a blank
8250 2003-09-29 Havoc Pennington <hp@pobox.com>
8252 * Merge dbus-object-names branch. To see the entire patch
8253 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8254 it's huuuuge though.
8255 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8257 2003-09-28 Havoc Pennington <hp@pobox.com>
8259 * HACKING: update to reflect new server
8261 2003-09-26 Seth Nickell <seth@gnome.org>
8264 * python/examples/example-signals.py:
8266 Start implementing some notions of signals. The API
8267 is really terrible, but they sort of work (with the
8268 exception of being able to filter by service, and to
8269 transmit signals *as* a particular service). Need to
8270 figure out how to make messages come from the service
8273 * python/dbus_bindings.pyx.in:
8275 Removed duplicate message_handler callbacks.
8277 2003-09-25 Havoc Pennington <hp@redhat.com>
8279 * bus/session.conf.in: fix my mess
8281 2003-09-25 Havoc Pennington <hp@pobox.com>
8283 * bus/session.conf.in: fix security policy, reported by Seth Nickell
8285 2003-09-25 Seth Nickell <seth@gnome.org>
8287 * python/examples/example-service.py:
8289 Johan notices complete wrong code in example-service, but
8290 completely wrong in a way that works exactly the same (!).
8291 Johan is confused, how could this possibly work? Example
8292 code fails to serve purpose of making things clear.
8295 2003-09-25 Mark McLoughlin <mark@skynet.ie>
8297 * doc/dbus-specification.sgml: don't require header fields
8298 to be 4-byte aligned and specify that fields should be
8299 distinguished from padding by the fact that zero is not
8302 * doc/TODO: remove re-alignment item and add item to doc
8303 the OBJECT_PATH type.
8305 * dbus/dbus-message.c:
8306 (HeaderField): rename the original member to value_offset
8307 and introduce a name_offset member to keep track of where
8308 the field actually begins.
8309 (adjust_field_offsets): remove.
8310 (append_int_field), (append_uint_field),
8311 (append_string_field): don't align the start of the header
8312 field to a 4-byte boundary.
8313 (get_next_field): impl finding the next marhsalled field
8314 after a given field.
8315 (re_align_field_recurse): impl re-aligning a number of
8316 already marshalled fields.
8317 (delete_field): impl deleting a field of any type and
8318 re-aligning any following fields.
8319 (delete_int_or_uint_field), (delete_string_field): remove.
8320 (set_int_field), (set_uint_field): no need to re-check
8321 that we have the correct type for the field.
8322 (set_string_field): ditto and impl re-aligning any
8324 (decode_header_data): update to take into account that
8325 the fields aren't 4-byte aligned any more and the new
8326 way to distinguish padding from header fields. Also,
8327 don't exit when there is too much header padding.
8328 (process_test_subdir): print the directory.
8329 (_dbus_message_test): add test to make sure a following
8330 field is re-aligned correctly after field deletion.
8332 * dbus/dbus-string.[ch]:
8333 (_dbus_string_insert_bytes): rename from insert_byte and
8334 allow the insert of multiple bytes.
8335 (_dbus_string_test): test inserting multiple bytes.
8337 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8338 warning note to docs about having to re-align any
8339 marshalled values following the string.
8341 * dbus/dbus-message-builder.c:
8342 (append_string_field), (_dbus_message_data_load):
8343 don't align the header field.
8345 * dbus/dbus-auth.c: (process_test_subdir): print the
8348 * test/break-loader.c: (randomly_add_one_byte): upd. for
8351 * test/data/invalid-messages/bad-header-field-alignment.message:
8354 * test/data/valid-messages/unknown-header-field.message: shove
8355 a dict in the unknown field.
8357 2003-09-25 Seth Nickell <seth@gnome.org>
8360 * python/dbus_bindings.pyx.in:
8362 Handle return values.
8364 * python/examples/example-client.py:
8365 * python/examples/example-service.py:
8367 Pass back return values from the service to the client.
8369 2003-09-24 Seth Nickell <seth@gnome.org>
8373 Connect Object methods (when you are sharing an object) up... pass
8374 in a list of methods to be shared. Sharing all the methods just
8375 worked out too weird. You can now create nice Services over the
8378 * python/dbus_bindings.pyx.in:
8380 Keep references to user_data tuples passed into C functions so
8381 Python doesn't garbage collect on us.
8383 Implement MethodReturn and Error subclasses of Message for creating
8384 DBusMessage's of those types.
8386 * python/examples/example-client.py:
8387 * python/examples/example-service.py:
8389 Simple example code showing both how create DBus services and objects,
8390 and how to use them.
8392 2003-09-23 Havoc Pennington <hp@pobox.com>
8394 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8396 2003-09-23 Havoc Pennington <hp@redhat.com>
8398 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8399 (dbus_gproxy_disconnect_signal): implement
8400 (dbus_gproxy_manager_remove_signal_match): implement
8401 (dbus_gproxy_manager_add_signal_match): implement
8402 (dbus_gproxy_oneway_call): implement
8404 2003-09-23 Havoc Pennington <hp@pobox.com>
8406 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8407 subclass. This means dropping the transparent thread safety of the
8408 proxy; you now need a separate proxy per-thread, or your own
8409 locking on the proxy. Probably right anyway.
8410 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8412 2003-09-22 Havoc Pennington <hp@redhat.com>
8414 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8416 2003-09-21 Seth Nickell <seth@gnome.org>
8418 First checkin of the Python bindings.
8420 * python/.cvsignore:
8421 * python/Makefile.am:
8422 * python/dbus_bindings.pyx.in:
8423 * python/dbus_h_wrapper.h:
8425 Pieces for Pyrex to operate on, building a dbus_bindings.so
8426 python module for low-level access to the DBus APIs.
8430 High-level Python module for accessing DBus objects.
8435 Build stuff for the python bindings.
8439 Extra macro needed for finding the Python C header files.
8441 2003-09-21 Havoc Pennington <hp@pobox.com>
8443 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8444 implementing the proxy manager, didn't get very far.
8446 * dbus/dbus-bus.c (dbus_bus_add_match): new
8447 (dbus_bus_remove_match): new
8449 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8450 path_name argument; adjust the other not-yet-implemented
8451 gproxy constructors to be what I think they should be.
8453 2003-09-21 Havoc Pennington <hp@pobox.com>
8455 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8456 by default for message bus connections.
8458 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8459 exit_on_disconnect flag is set and we process the disconnected
8461 (dbus_connection_set_exit_on_disconnect): new function
8463 2003-09-21 Havoc Pennington <hp@pobox.com>
8465 Get matching rules mostly working in the bus; only actually
8466 parsing the rule text remains. However, the client side of
8467 "signal connections" hasn't been started, this patch is only the
8470 * dbus/dispatch.c: fix for the matching rules changes
8472 * bus/driver.c (bus_driver_handle_remove_match)
8473 (bus_driver_handle_add_match): send an ack reply from these
8476 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8477 arguments, reported by Seth Nickell
8479 * bus/config-parser.c (append_rule_from_element): support
8480 eavesdrop=true|false attribute on policies so match rules
8481 can be prevented from snooping on the system bus.
8483 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8484 and "destination" in attribute names; fix some docs bugs;
8485 add eavesdrop=true|false attribute
8487 * bus/driver.c (bus_driver_handle_add_match)
8488 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8491 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8492 rid of broadcast service concept, signals are just always broadcast
8494 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8495 mostly implement matching rules stuff (currently only exposed as signal
8498 2003-09-21 Mark McLoughlin <mark@skynet.ie>
8500 * doc/dbus-specification.sgml: Change the header field name
8501 to be an enum and update the rest of the spec to reference
8502 the fields using the conventinal name.
8504 * dbus/dbus-protocol.h: update to reflect the spec.
8506 * doc/TODO: add item to remove the 4 byte alignment requirement.
8508 * dbus/dbus-message.c: Remove the code to generalise the
8509 header/body length and serial number header fields as named
8510 header fields so we can reference field names using the
8512 (append_int_field), (append_uint_field), (append_string_field):
8513 Append the field name as a byte rather than four chars.
8514 (delete_int_or_uint_field), (delete_string_field): reflect the
8515 fact that the field name and typecode now occupy 4 bytes instead
8517 (decode_string_field), (decode_header_data): update to reflect
8518 protocol changes and move the field specific encoding from
8519 decode_string_field() back into decode_header_data().
8521 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8522 Add utility to aid debugging.
8524 * dbus/dbus-message-builder.c:
8525 (append_string_field), (_dbus_message_data_load): Update to
8526 reflect protocol changes; Change the FIELD_NAME directive
8527 to HEADER_FIELD and allow it to take the field's conventional
8528 name rather than the actual value.
8530 * test/data/*/*.message: Update to use HEADER_FIELD instead
8531 of FIELD_NAME; Always align the header on an 8 byte boundary
8532 *before* updating the header length.
8534 2003-09-15 Havoc Pennington <hp@pobox.com>
8536 * dbus/dbus-pending-call.c: add the get/set object data
8537 boilerplate as for DBusConnection, etc. Use generic object data
8538 for the notify callback.
8540 * glib/dbus-gparser.c (parse_node): parse child nodes
8542 * tools/dbus-viewer.c: more hacking on the dbus-viewer
8544 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8545 contain functions shared between the convenience lib and the
8548 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8549 -export-symbols-regex to the GLib library
8551 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8552 fix the locking in here, and add a default handler for
8553 Introspect() that just returns sub-nodes.
8555 2003-09-14 Havoc Pennington <hp@pobox.com>
8557 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8558 rather than gfoo consistent
8560 * glib/dbus-gproxy.h: delete for now, move contents to
8561 dbus-glib.h, because the include files don't work right since we
8562 aren't in the dbus/ subdir.
8564 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8565 (dbus_gproxy_end_call): finish
8566 (dbus_gproxy_begin_call): finish
8568 * glib/dbus-gmain.c (dbus_set_g_error): new
8570 * glib/dbus-gobject.c (handle_introspect): include information
8571 about child nodes in the introspection
8573 * dbus/dbus-connection.c (dbus_connection_list_registered): new
8574 function to help in implementation of introspection
8576 * dbus/dbus-object-tree.c
8577 (_dbus_object_tree_list_registered_and_unlock): new function
8579 2003-09-12 Havoc Pennington <hp@pobox.com>
8581 * glib/dbus-gidl.h: add common base class for all the foo_info
8584 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8587 * test/Makefile.am: try test srcdir -ef . in addition to test
8588 srcdir = ., one of them should work (yeah lame)
8590 * glib/Makefile.am: build the "idl" parser stuff as a convenience
8593 * glib/dbus-gparser.h: make description_load routines return
8594 NodeInfo* not Parser*
8596 * Makefile.am (SUBDIRS): build test dir after all library dirs
8598 * configure.in: add GTK+ detection
8600 2003-09-07 Havoc Pennington <hp@pobox.com>
8602 * Make Doxygen contented.
8604 2003-09-07 Havoc Pennington <hp@pobox.com>
8606 * doc/dbus-specification.sgml: more updates
8608 2003-09-06 Havoc Pennington <hp@pobox.com>
8610 * doc/dbus-specification.sgml: partial updates
8612 * bus/dbus-daemon-1.1.in: fix the config file docs for the
8613 zillionth time; hopefully I edited the right file this time.
8615 * bus/config-parser.c (append_rule_from_element): support
8616 send_type, send_path, receive_type, receive_path
8618 * bus/policy.c: add message type and path to the list of things
8619 that can be "firewalled"
8621 2003-09-06 Havoc Pennington <hp@pobox.com>
8623 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8624 (dbus_connection_register_object_path): make this not handle
8625 messages to paths below the given path
8627 2003-09-03 Havoc Pennington <hp@pobox.com>
8629 * test/glib/Makefile.am: add this with random glib-linked test
8632 * glib/Makefile.am: remove the random test programs from here,
8633 leave only the unit tests
8635 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
8636 uscore/javacaps conversion, and fix
8637 (get_object_property, set_object_property): change to .NET
8638 convention for mapping props to methods, set_FooBar/get_FooBar,
8639 since one language has such a convention we may as well copy it.
8640 Plus real methods in either getFooBar or get_foo_bar style won't
8641 collide with this convention.
8643 2003-09-01 Havoc Pennington <hp@pobox.com>
8645 * glib/dbus-gparser.c: implement
8647 * glib/dbus-gobject.c: start implementing skeletons support
8649 * configure.in: when disabling checks/assert, also define
8650 G_DISABLE_ASSERT and G_DISABLE_CHECKS
8652 2003-09-01 Havoc Pennington <hp@pobox.com>
8654 * glib/Makefile.am: rearrange a bunch of files and get "make
8655 check" framework set up
8657 2003-08-31 Havoc Pennington <hp@pobox.com>
8659 * fix build with --disable-tests
8661 2003-08-30 Havoc Pennington <hp@pobox.com>
8663 * dbus/dbus-connection.c: purge DBusMessageHandler
8665 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
8666 use callbacks everywhere
8668 2003-08-30 Havoc Pennington <hp@pobox.com>
8670 * test/data/valid-config-files/system.d/test.conf: change to
8671 root for the user so warnings don't get printed
8673 * dbus/dbus-message.c: add dbus_message_get_path,
8674 dbus_message_set_path
8676 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8677 dispatching to a path
8679 * dbus/dbus-string.c (_dbus_string_validate_path): add
8681 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8682 (_dbus_marshal_object_path): implement
8684 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
8685 to contain the path to the target object
8686 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8687 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8689 2003-08-30 Havoc Pennington <hp@pobox.com>
8691 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8693 2003-08-29 Havoc Pennington <hp@pobox.com>
8695 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8697 (struct DBusObjectSubtree): shrink this
8698 a lot, since we may have a lot of them
8699 (_dbus_object_tree_free_all_unlocked): implement
8700 (_dbus_object_tree_dispatch_and_unlock): implement
8702 2003-08-29 Havoc Pennington <hp@pobox.com>
8704 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8706 2003-08-28 Havoc Pennington <hp@pobox.com>
8710 * dbus/dbus-connection.c: port to no ObjectID, create a
8711 DBusObjectTree, rename ObjectTree to ObjectPath in public API
8713 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
8714 everything except UnregisterFunction and MessageFunction
8716 * dbus/dbus-marshal.c: port away from DBusObjectID,
8717 add DBUS_TYPE_OBJECT_PATH
8719 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
8720 dbus/dbus-objectid.[hc]: remove these, we are moving to
8721 path-based object IDs
8723 2003-08-25 Havoc Pennington <hp@pobox.com>
8725 Just noticed that dbus_message_test is hosed, I wonder when I
8726 broke that. I thought make check was passing earlier...
8728 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
8729 container tree, will replace most of dbus-object-registry
8731 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8734 2003-08-19 Havoc Pennington <hp@pobox.com>
8736 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8737 (dbus_message_is_error): fix this function
8739 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8742 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8743 reflect clarified man page
8744 (bus_client_policy_check_can_send): ditto
8746 * bus/session.conf.in: fixup
8748 * bus/system.conf.in: fixup
8750 2003-08-18 Havoc Pennington <hp@redhat.com>
8752 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8754 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8755 dumb bug created earlier (wrong order of args to
8756 decode_header_data())
8758 * tools/dbus-send.c: port
8760 * tools/dbus-print-message.c (print_message): port
8762 * test/data/*messages: port all messages over
8764 * dbus/dbus-message-builder.c: support including
8767 * bus/driver.c: port over
8769 * bus/dispatch.c: port over to new stuff
8771 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8772 rename disconnect signal to "Disconnected"
8774 2003-08-17 Havoc Pennington <hp@pobox.com>
8776 This doesn't compile yet, but syncing up so I can hack on it from
8777 work. What are branches for if not broken code? ;-)
8779 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8780 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8781 DBUS_HEADER_FIELD_ERROR_NAME
8783 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8784 for the interface+member pairs
8785 (string_hash): change to use g_str_hash algorithm
8786 (find_direct_function, find_string_function): refactor these to
8789 * dbus/dbus-message.c: port all of this over to support
8790 interface/member fields instead of name field
8792 * dbus/dbus-object-registry.c: port over
8794 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8795 from _dbus_string_validate_name
8797 * bus/dbus-daemon-1.1: change file format for the
8798 <deny>/<allow> stuff to match new message naming scheme
8800 * bus/policy.c: port over
8802 * bus/config-parser.c: parse new format
8804 2003-08-16 Havoc Pennington <hp@pobox.com>
8806 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8809 * glib/dbus-gproxy.c: some hacking
8811 2003-08-15 Havoc Pennington <hp@redhat.com>
8813 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8815 * dbus/dbus-connection.c
8816 (dbus_connection_send_with_reply_and_block): factor out internals;
8817 change to convert any error replies to DBusError instead of
8818 returning them as a message
8820 2003-08-15 Havoc Pennington <hp@pobox.com>
8822 * dbus/dbus-connection.c,
8823 dbus/dbus-pending-call.c: Finish the pending call stuff
8825 2003-08-14 Havoc Pennington <hp@redhat.com>
8827 * dbus/dbus-pending-call.c: start on new object that will replace
8828 DBusMessageHandler and ReplyHandlerData for tracking outstanding
8831 * dbus/dbus-gproxy.c: start on proxy object used to communicate
8832 with remote interfaces
8834 * dbus/dbus-gidl.c: do the boring boilerplate in here
8836 2003-08-12 Havoc Pennington <hp@pobox.com>
8838 * bus/dispatch.c (bus_dispatch): make this return proper
8839 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8841 * dbus/dbus-errors.c (dbus_set_error): use
8842 _dbus_string_append_printf_valist
8844 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8845 (_dbus_string_append_printf): new
8847 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8850 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8851 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8852 message is unhandled.
8854 2003-08-11 Havoc Pennington <hp@pobox.com>
8856 * bus/test.c (client_disconnect_handler): change to return
8857 HANDLED (would have been REMOVE_MESSAGE)
8859 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8860 HANDLED/NOT_YET_HANDLED instead of
8861 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
8864 2003-08-10 Havoc Pennington <hp@pobox.com>
8866 * tools/dbus-send.c (main): add --type argument, for now
8867 supporting only method_call and signal types.
8869 * tools/dbus-print-message.c: print message type
8871 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8872 init connection->objects
8874 * doc/dbus-specification.sgml: fix sgml
8876 * bus/*.c: port over to object-instance API changes
8878 * test/test-service.c: ditto
8880 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8881 name, we will have to fix up the rest of the code to also handle
8883 (dbus_message_new): generic message-creation call
8884 (set_string_field): allow appending name field
8886 2003-08-06 Havoc Pennington <hp@pobox.com>
8888 * dbus/dbus-object-registry.c: implement signal connection
8891 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8893 * dbus/dbus-internals.c (_dbus_memdup): new function
8895 2003-08-02 Havoc Pennington <hp@pobox.com>
8897 * dbus/dbus-message.c (dbus_message_get_no_reply)
8898 (dbus_message_set_no_reply): add these and remove
8899 set_is_error/get_is_error
8901 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
8902 remove the ERROR flag, since there's now an ERROR type
8904 2003-08-01 Havoc Pennington <hp@pobox.com>
8906 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8909 * dbus/dbus-message.c (dbus_message_get_type): new function
8911 * doc/dbus-specification.sgml: add "type" byte to messages
8913 2003-08-01 Havoc Pennington <hp@pobox.com>
8915 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8916 a message type enum to distinguish kinds of message
8917 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
8918 that need not be replied to
8920 2003-08-01 Havoc Pennington <hp@pobox.com>
8922 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8923 (unpack_8_octets): fix no-64-bit-int bug
8925 * dbus/dbus-object-registry.c (validate_id): validate the
8926 connection ID bits, not just the instance ID.
8928 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8929 the connection-global 33 bits of the object ID
8931 * dbus/dbus-object-registry.c (info_from_entry): fill in
8932 object ID in the new way
8934 * dbus/dbus-objectid.h: rather than high/low bits, specifically
8935 define server/client/instance bits.
8937 2003-07-30 Havoc Pennington <hp@pobox.com>
8939 * dbus/dbus-connection.c (dbus_connection_register_object): fix
8942 2003-07-13 Havoc Pennington <hp@pobox.com>
8944 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8945 fields to DBusObjectVTable and DBusObjectInfo
8947 2003-07-12 Havoc Pennington <hp@pobox.com>
8949 * dbus/dbus-object-registry.c: implement unit test,
8950 fix bugs discovered in process
8952 * dbus/dbus-connection.c: remove handler_table and
8953 register_handler(), add DBusObjectRegistry usage
8955 * dbus/dbus-objectid.c (dbus_object_id_is_null)
8956 (dbus_object_id_set_null): new functions
8958 2003-07-08 Havoc Pennington <hp@pobox.com>
8960 * dbus/dbus-object.c: implement some of this
8962 * dbus/dbus-object-registry.c
8963 (_dbus_object_registry_add_and_unlock): fill in the object_id out
8965 (_dbus_object_registry_new): handle OOM
8967 2003-07-08 Havoc Pennington <hp@pobox.com>
8969 * dbus/dbus-object.h: sketch out an API for registering objects
8970 with a connection, that allows us to use as little as 24 bytes
8971 per object and lets application code represent an object in
8972 any conceivable way.
8974 * dbus/dbus-object-registry.c: implement the hard bits of the
8975 DBusConnection aspect of object API. Not yet wired up.
8977 2003-07-06 Havoc Pennington <hp@pobox.com>
8979 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8980 (_dbus_marshal_object_id): new
8981 (_dbus_demarshal_object_id): new
8982 (_dbus_marshal_get_arg_end_pos): support object ID type, and
8983 consolidate identical switch cases. Don't conditionalize handling
8984 of DBUS_TYPE_UINT64, need to handle the type always.
8985 (_dbus_marshal_validate_arg): consolidate identical cases, and
8986 handle DBUS_TYPE_OBJECT_ID
8988 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8990 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8992 2003-09-28 Havoc Pennington <hp@pobox.com>
8996 2003-09-28 Havoc Pennington <hp@pobox.com>
8998 * doc/Makefile.am (dbus-specification.html): testing a funky hack
8999 to work with Debian db2html
9001 2003-09-28 Havoc Pennington <hp@pobox.com>
9003 * configure.in: 0.13
9005 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9006 stylesheet-images for benefit of Debian
9008 Change back to using filesystem-linked sockets for the system
9009 bus, so only root can create the default system bus address.
9011 * bus/system.conf.in: change to use
9012 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9014 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9017 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9018 here, and AC_DEFINE DBUS_SYSTEM_PATH
9020 2003-08-09 Anders Carlsson <andersca@codefactory.se>
9023 * doc/busconfig.dtd:
9026 2003-08-09 Anders Carlsson <andersca@codefactory.se>
9028 * doc/dbus-specification.sgml:
9029 Add activation reply values.
9031 2003-08-05 Havoc Pennington <hp@redhat.com>
9033 * configure.in: 0.12
9035 2003-08-05 Anders Carlsson <andersca@codefactory.se>
9037 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
9038 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
9039 (add_watch), (remove_watch), (create_source):
9040 Refcount fds, fixes some reentrancy issues.
9042 2003-07-30 Havoc Pennington <hp@redhat.com>
9044 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
9045 bus address to be abstract if we have abstract sockets
9049 2003-07-28 Havoc Pennington <hp@redhat.com>
9051 * bus/messagebus.in: fix to avoid processname/servicename
9052 confusion, from Michael Kearey
9053 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
9055 2003-07-23 Havoc Pennington <hp@pobox.com>
9057 * dbus/dbus-message.c (dbus_message_iter_get_named):
9058 fix from Andy Hanton to remove broken "+1"
9060 2003-07-16 Havoc Pennington <hp@pobox.com>
9062 * tools/dbus-launch.c (babysit): close stdout/stderr in the
9063 babysitter process, as suggested by Thomas Leonard, so
9064 an "eval `dbus-launch --exit-with-session`" will actually
9067 2003-07-16 Havoc Pennington <hp@pobox.com>
9069 * configure.in: print out EXPANDED_* variables in the summary at
9070 the end; clean up the code that computes EXPANDED_ variables and
9071 get the ones using exec_prefix right. Should make things work
9072 when you build without --prefix
9074 2003-06-29 Havoc Pennington <hp@pobox.com>
9076 * mono/Test.cs (class Test): fire up a main loop and run it
9078 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9079 done once, the app has to do it
9081 2003-06-26 Havoc Pennington <hp@pobox.com>
9083 * mono/Connection.cs: set up connection with the glib main loop
9085 2003-07-01 Havoc Pennington <hp@redhat.com>
9087 * doc/dbus-specification.sgml: clarify the format of a type code,
9088 change suggested by Jim Blandy
9090 2003-06-29 Miloslav Trmac <mitr@volny.cz>
9093 * tools/Makefile.am: Don't assume srcdir == builddir.
9095 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9096 the allocated block.
9097 (_dbus_memory_test): New function.
9098 * dbus/dbus-test.h: Add _dbus_memory_test ().
9099 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9101 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9103 (dbus_message_new): Remove obsolete @todo.
9105 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9106 (_dbus_marshal_set_uint64): Fix comment.
9108 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9109 hardcode FIELD_REPLY_SERIAL.
9111 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9112 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9114 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9115 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9117 2003-06-24 Havoc Pennington <hp@pobox.com>
9119 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9121 2003-06-23 Anders Carlsson <andersca@codefactory.se>
9127 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9128 * gcj/org/.cvsignore:
9129 * gcj/org/Makefile.am:
9130 * gcj/org/freedesktop/.cvsignore:
9131 * gcj/org/freedesktop/Makefile.am:
9132 * gcj/org/freedesktop/dbus/.cvsignore:
9133 * gcj/org/freedesktop/dbus/Makefile.am:
9134 * gcj/org/freedesktop/dbus/Message.java: (Message),
9136 * gcj/org/freedesktop/dbus/natMessage.cc:
9137 Fix the build system.
9139 2003-06-22 Havoc Pennington <hp@pobox.com>
9141 * mono/Connection.cs: add more bindings
9143 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9146 2003-06-22 Havoc Pennington <hp@pobox.com>
9148 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9149 Start wrapping more stuff.
9151 2003-06-22 Havoc Pennington <hp@pobox.com>
9153 * mono/Message.cs: implement Message.Wrap() that ensures we only
9154 have a single C# wrapper per DBusMessage, assuming it works which
9155 it probably doesn't.
9157 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9158 (dbus_message_free_data_slot): new
9159 (dbus_message_set_data): new
9160 (dbus_message_get_data): new
9162 2003-06-22 Havoc Pennington <hp@pobox.com>
9164 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9165 (_dbus_data_slot_allocator_alloc): rework these to keep a
9166 reference count on each slot and automatically manage a global
9167 slot ID variable passed in by address
9169 * bus/bus.c: convert to new dataslot API
9171 * dbus/dbus-bus.c: convert to new dataslot API
9173 * dbus/dbus-connection.c: convert to new dataslot API
9175 * dbus/dbus-server.c: convert to new dataslot API
9177 * glib/dbus-gmain.c: ditto
9181 * bus/connection.c: ditto
9183 2003-06-22 Anders Carlsson <andersca@codefactory.se>
9185 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9186 after the gcj checks so that the correct configuration tags
9187 will be added to libtool.
9189 * dbus-glib-1.pc.in: No need to specify any includes since
9190 dbus-1.pc.in has those.
9192 2003-06-22 Havoc Pennington <hp@pobox.com>
9194 * mono/*, gcj/*, configure.in, Makefile.am:
9195 Check in makefiles and subdirs for mono and gcj bindings.
9196 Neither binding actually exists, just trying to get through
9197 all the build and other boring bits.
9199 2003-06-21 Philip Blundell <philb@gnu.org>
9201 * tools/dbus-monitor.1: Updated.
9203 * tools/dbus-send.1: Likewise.
9205 2003-06-20 Anders Carlsson <andersca@codefactory.se>
9207 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9208 for hangup and error after checking read so we won't discard
9209 pending data if both hangup and read are set.
9211 2003-06-19 Philip Blundell <philb@gnu.org>
9213 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9215 * tools/dbus-send.c: Accept both --system and --session.
9217 * tools/dbus-monitor.c: Same here.
9219 2003-06-19 Anders Carlsson <andersca@codefactory.se>
9221 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9222 from C++ (Patch by Miloslav Trmac).
9224 2003-06-15 Joe Shaw <joe@assbarn.com>
9226 * configure.in: Check for socklen_t.
9228 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9230 * test/test-segfault.c: Add #include <sys/time.h>
9232 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9233 dbus-launch needs it.
9235 2003-06-09 Havoc Pennington <hp@redhat.com>
9237 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9238 SUN_LEN, it breaks abstract socket usage
9240 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9243 2003-06-04 Havoc Pennington <hp@pobox.com>
9245 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9246 using unix:abstract=/foo, and when listening in a tmpdir
9247 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9249 * dbus/dbus-transport.c (_dbus_transport_open): support
9252 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9253 support abstract sockets
9255 * dbus/dbus-transport-unix.c
9256 (_dbus_transport_new_for_domain_socket): support abstract sockets
9258 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9259 toggle as an argument, implement abstract namespace support
9260 (_dbus_listen_unix_socket): ditto
9262 * configure.in: add --enable-abstract-sockets and implement
9263 a configure check for autodetection of the right value.
9265 2003-06-01 Havoc Pennington <hp@pobox.com>
9267 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9268 in /tmp (though on Linux this will end up being useless,
9269 when we add abstract namespace support)
9271 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9274 2003-05-28 Colin Walters <walters@verbum.org>
9276 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9278 2003-05-18 Anders Carlsson <andersca@codefactory.se>
9280 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9282 2003-05-17 Colin Walters <walters@gnu.org>
9284 * tools/dbus-send.c: Don't exit with an error code if --help was
9285 passed. Default to using the session bus instead of the system
9288 * tools/dbus-launch.c: Ditto.
9290 * tools/dbus-monitor.c: Ditto.
9292 * tools/dbus-send.1: Update with new arguments.
9294 * tools/dbus-launch.c: Emit code to export variables. New
9295 arguments -s and -c to specify shell syntax, and a bit of code to
9296 autodetect syntax. Also, allow specifying a program to run.
9298 * tools/dbus-launch.1: Update with new arguments.
9300 * tools/dbus-send.1: Ditto.
9302 * tools/dbus-monitor.1: Ditto.
9304 2003-05-17 Havoc Pennington <hp@pobox.com>
9306 * bus/config-parser.c (merge_included): merge in policies from
9307 child configuration file.
9309 * bus/policy.c (bus_policy_merge): function to merge two policies
9312 2003-05-16 Havoc Pennington <hp@redhat.com>
9314 * dbus/dbus-connection.c: disable verbose lock spew
9316 * tools/dbus-send.c: add --print-reply command line option
9318 * tools/dbus-print-message.h (print_message): new util function
9319 shared by dbus-send and dbus-monitor
9321 * tools/dbus-monitor.c (handler_func): exit on disconnect
9323 * dbus/dbus-transport-unix.c (do_reading): if the transport is
9324 disconnected, don't try to use the read_watch
9326 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9327 so we can find this bug more easily
9329 2003-05-16 Havoc Pennington <hp@redhat.com>
9331 * bus/policy.c (free_rule_list_func): avoid a crash when passed
9332 NULL as DBusHashTable is annoyingly likely to do.
9334 2003-05-16 Colin Walters <walters@verbum.org>
9336 * tools/dbus-monitor.c: Add --session argument and usage()
9339 * tools/dbus-monitor.1: Update with new --session arg.
9341 * bus/Makefile.am (install-data-hook): Create
9342 $(libdir)/dbus-1.0/services so that the session bus is happy.
9344 2003-05-15 Havoc Pennington <hp@redhat.com>
9346 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9347 on non-x86. ifdef's are evil.
9349 2003-05-15 Havoc Pennington <hp@redhat.com>
9351 * configure.in: 0.11
9355 * bus/Makefile.am (initddir): apparently we are supposed to put
9356 init scripts in /etc/rc.d/init.d not /etc/init.d
9358 * bus/Makefile.am: remove the "you must --enable-tests to make
9359 check" as it broke distcheck
9361 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9363 2003-05-13 James Willcox <jwillcox@gnome.org>
9366 * bus/activation.c: (bus_activation_service_created),
9367 (bus_activation_activate_service):
9368 * bus/driver.c: (bus_driver_send_service_deleted),
9369 (bus_driver_send_service_created), (bus_driver_send_service_lost),
9370 (bus_driver_send_service_acquired),
9371 (bus_driver_send_welcome_message),
9372 (bus_driver_handle_list_services):
9373 * bus/session.conf.in:
9374 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9375 (dbus_bus_service_exists), (dbus_bus_activate_service):
9378 Add some convenience API which lets you activate a service, and did a
9379 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9380 and dbus_message_get_args()
9382 2003-05-11 Havoc Pennington <hp@pobox.com>
9384 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9385 calling _dbus_marshal_validate_arg() for every byte in a byte
9388 * dbus/dbus-message-handler.c: use atomic reference counting to
9389 reduce number of locks slightly; the global lock in here sucks
9391 * dbus/dbus-connection.c
9392 (_dbus_connection_update_dispatch_status_and_unlock): variant of
9393 update_dispatch_status that can be called with lock held; then use
9394 in a couple places to reduce locking/unlocking
9395 (dbus_connection_send): hold the lock over the whole function
9396 instead of acquiring it twice.
9398 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9400 * bus/connection.c (bus_connections_setup_connection): fix access
9401 to already-freed memory.
9403 * dbus/dbus-connection.c: keep a little cache of linked list
9404 nodes, to avoid using the global linked list alloc lock in the
9405 normal send-message case. Instead we just use the connection lock
9406 that we already have to take.
9408 * dbus/dbus-list.c (_dbus_list_find_last): new function
9410 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9411 change to use a struct for the atomic type; fix docs,
9412 they return value before increment, not after increment.
9414 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9415 (_dbus_string_append_8_aligned): new functions to try to
9416 microoptimize this operation.
9417 (reallocate_for_length): break this out of set_length(), to
9418 improve profile info, and also so we can consider inlining the
9421 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9422 strings with some preallocation, cuts down on our calls to realloc
9423 a fair bit. Though if we can get the "move entire string to empty
9424 string" optimization below to kick in here, it would be better.
9426 * dbus/dbus-string.c (_dbus_string_move): just call
9427 _dbus_string_move_len
9428 (_dbus_string_move_len): add a special case for moving
9429 an entire string into an empty string; we can just
9430 swap the string data instead of doing any reallocs.
9431 (_dbus_string_init_preallocated): new function
9433 2003-05-11 Havoc Pennington <hp@pobox.com>
9435 Write a "test-profile" that does echo client-server with threads;
9436 profile reveals lock contention, memcpy/realloc of buffers, and
9437 UTF-8 validation as hot spots. 20% of lock contention eliminated
9438 with dbus_atomic_inc/dec implementation on x86. Much remaining
9439 contention is global mempool locks for GList and DBusList.
9441 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9444 * dbus/dbus-connection.c (struct DBusConnection): use
9445 dbus_atomic_t for the reference count
9447 * dbus/dbus-message.c (struct DBusMessage): declare
9448 dbus_atomic_t values as volatile
9450 * configure.in: code to detect ability to use atomic integer
9451 operations in assembly, from GLib patch
9453 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9454 time, tired of it being wrong in threads and forked processes
9456 * glib/test-profile.c: a little program to bounce messages back
9457 and forth between threads and eat CPU
9459 * dbus/dbus-connection.c: add debug spew macros for debugging
9460 thread locks; include config.h at top; fix deadlock in
9461 dbus_connection_flush()
9463 2003-05-08 Havoc Pennington <hp@pobox.com>
9465 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9466 data from getting written, and there wasn't a good reason to
9469 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9470 dbus_verbose lines in test coverage
9471 (main): add list of functions sorted by # of untested blocks
9472 to the coverage report
9474 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9476 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9478 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9479 extend test coverage
9481 * test/data/auth/cancel.auth-script: test canceling an
9484 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9485 aren't used. in CVS history if we end up needing them.
9487 2003-05-04 Havoc Pennington <hp@pobox.com>
9489 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9492 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9493 function, which assumed length was in # of strings, not bytes
9495 * dbus/dbus-message.c (_dbus_message_test): add tests for some
9498 * dbus/dbus-connection.c
9499 (_dbus_connection_queue_received_message): disable function for
9500 now, we are only using it in test mode
9502 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9503 remove a mistaken FIXME
9505 2003-05-04 Havoc Pennington <hp@pobox.com>
9507 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9508 unlock mutex on successful return, patch from Anders Gustafsson
9510 2003-05-04 Havoc Pennington <hp@pobox.com>
9512 * dbus-glib-1.pc.in (Requires): fix dependencies, from
9515 2003-05-04 Havoc Pennington <hp@pobox.com>
9517 * tools/dbus-launch.c: implement
9519 * bus/main.c (main), bus/bus.c (bus_context_new):
9520 implement --print-pid and --fork
9522 2003-05-03 Havoc Pennington <hp@redhat.com>
9524 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9525 the address had no value, and add to test suite. Fix and
9526 regression test from Miloslav Trmac
9528 2003-05-03 Havoc Pennington <hp@pobox.com>
9530 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9531 watch is invalid when handled
9533 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9534 dbus-launch utility to launch the bus from a shell script. Didn't
9535 actually implement dbus-launch yet, it's just a placeholder still.
9537 2003-05-03 Havoc Pennington <hp@pobox.com>
9539 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9540 daemon; also documents daemon config file, so replaces
9541 doc/config-file.txt. Corrected some stuff from config-file.txt in
9542 the process of moving it.
9544 2003-05-03 Havoc Pennington <hp@pobox.com>
9546 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9549 2003-05-03 Colin Walters <walters@verbum.org>
9551 * dbus/dbus-sysdeps.c (fill_user_info): Test against
9552 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9554 * Makefile.am: Update to use new .pc versioning scheme.
9556 2003-05-02 Havoc Pennington <hp@redhat.com>
9558 * bus/system.conf.in: allow send/receive to/from message bus
9561 2003-04-30 Havoc Pennington <hp@redhat.com>
9563 * configure.in: print a note when building with unit tests and
9566 2003-04-30 Havoc Pennington <hp@redhat.com>
9568 * Makefile.am: add a check-local that complains if you didn't
9569 configure with --enable-tests
9571 2003-04-29 Havoc Pennington <hp@redhat.com>
9573 * glib/dbus-gmain.c: docs cleanups
9575 * dbus/dbus-types.h: add docs on int64 types
9577 * dbus/dbus-memory.c: fix docs to avoid putting private API in
9578 public API docs section
9580 2003-04-29 Havoc Pennington <hp@redhat.com>
9582 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9583 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9584 parallel install API version, not with the D-BUS package version.
9586 * HACKING: move some of README over here
9588 * README: updates, and document API/ABI policy
9590 * configure.in: reindentation
9592 2003-04-29 Havoc Pennington <hp@redhat.com>
9594 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9595 to use this library" to be sure people have the right
9598 2003-04-28 Havoc Pennington <hp@redhat.com>
9600 * configure.in: add --enable-docs which by default is auto yes if
9601 doxygen and db2html found, no otherwise; but can be forced on/off
9603 * doc/Makefile.am: conditionalize whether to build docs on
9606 2003-04-28 Havoc Pennington <hp@redhat.com>
9608 * configure.in: 0.10
9612 * bus/system.conf.in: add <includedir>system.d</includedir>
9614 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9615 username was provided but not uid
9617 * bus/config-parser.c (struct BusConfigParser): keep track of
9618 whether the parser is toplevel or was included; change some
9619 of the error handling if it's included.
9621 2003-04-27 Havoc Pennington <hp@pobox.com>
9625 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9626 report correct status if we finish processing authentication
9627 inside this function.
9629 * bus/activation.c (try_send_activation_failure): use
9630 bus_transaction_send_error_reply
9632 * bus/connection.c (bus_connection_get_groups): return an error
9633 explaining the problem
9635 * bus/bus.c (bus_context_check_security_policy): implement
9636 restriction here that inactive connections can only send the
9637 hello message. Also, allow bus driver to send anything to
9640 * bus/connection.c (bus_connection_complete): create the
9641 BusClientPolicy here instead of on-demand.
9642 (bus_connection_get_policy): don't return an error
9644 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9645 sender field in message being replied to
9647 * bus/bus.c (bus_context_check_security_policy): fix silly typo
9648 causing it to return FALSE always
9650 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9651 we checked sender rather than destination
9653 2003-04-25 Havoc Pennington <hp@redhat.com>
9655 test suite is slightly hosed at the moment, will fix soon
9657 * bus/connection.c (bus_connections_expire_incomplete): fix to
9658 properly disable the timeout when required
9659 (bus_connection_set_name): check whether we can remove incomplete
9660 connections timeout after we complete each connection.
9662 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9663 probably still broken.
9665 * bus/services.c (bus_registry_acquire_service): implement max
9666 number of services owned, and honor allow/deny rules on which
9667 services a connection can own.
9669 * bus/connection.c (bus_connection_get_policy): report errors here
9671 * bus/activation.c: implement limit on number of pending
9674 2003-04-25 Havoc Pennington <hp@redhat.com>
9676 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9677 where we used >= 0 instead of != DBUS_UID_UNSET.
9679 2003-04-25 Havoc Pennington <hp@redhat.com>
9681 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9682 were toggled without add/remove, fix from Anders Gustafsson
9684 2003-04-24 Havoc Pennington <hp@redhat.com>
9686 * test/data/valid-config-files/basic.conf: add <limit> tags to
9689 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9690 <limit> tag in configuration file.
9692 2003-04-24 Havoc Pennington <hp@redhat.com>
9694 * bus/dispatch.c: somehow missed some name_is
9696 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9697 (_dbus_timeout_set_interval): new
9699 * bus/connection.c (bus_connections_setup_connection): record time
9700 when each connection is first set up, and expire them after the
9701 auth timeout passes.
9703 2003-04-24 Havoc Pennington <hp@redhat.com>
9705 * dbus/dbus-message.c (dbus_message_name_is): rename
9706 (dbus_message_service_is): rename
9707 (dbus_message_sender_is): rename
9708 (dbus_message_get_service): rename
9710 2003-04-24 Havoc Pennington <hp@redhat.com>
9712 * configure.in: add --enable-checks
9714 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9716 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9717 to use thread locks.
9718 (_dbus_connection_handler_destroyed_locked): move some private
9719 functions into proper docs group
9721 * dbus/dbus-internals.h: add _dbus_return_if_fail,
9722 _dbus_return_val_if_fail
9724 Throughout: use dbus_return_if_fail
9726 2003-04-23 James Willcox <jwillcox@gnome.org>
9729 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9730 (dbus_connection_setup_with_g_main),
9731 (dbus_server_setup_with_g_main):
9732 * glib/test-dbus-glib.c: (main):
9733 * glib/test-thread-client.c: (main):
9734 * glib/test-thread-server.c: (new_connection_callback), (main):
9735 * tools/dbus-monitor.c: (main):
9737 Added a GMainContext argument to dbus_connection_setup_with_g_main()
9738 and dbus_server_setup_with_g_main().
9740 2003-04-20 Havoc Pennington <hp@pobox.com>
9742 * doc/dbus-specification.sgml: document the restrictions on
9743 message and service names
9745 2003-04-22 Havoc Pennington <hp@redhat.com>
9747 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9748 support, and do some code cleanups to share more code and
9749 speed up array marshal/demarshal.
9751 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9753 * configure.in: generate dbus-arch-deps.h
9755 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9758 2003-04-22 Havoc Pennington <hp@redhat.com>
9760 * test/data/valid-messages/opposite-endian.message: fix test
9761 to use proper type for rply field
9763 * test/data/invalid-messages: add tests for below validation
9765 * dbus/dbus-message.c (decode_header_data): validate field types,
9766 and validate that named fields are valid names
9767 (decode_name_field): consider messages in the
9768 org.freedesktop.Local. namespace to be invalid.
9770 * dbus/dbus-string.c (_dbus_string_validate_name): new
9772 2003-04-19 Havoc Pennington <hp@pobox.com>
9774 * bus/driver.c (bus_driver_handle_hello): check limits and
9775 return an error if they are exceeded.
9777 * bus/connection.c: maintain separate lists of active and inactive
9778 connections, and a count of each. Maintain count of completed
9779 connections per user. Implement code to check connection limits.
9781 * dbus/dbus-list.c (_dbus_list_unlink): export
9783 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9784 number of bytes in the message queue for a connection
9786 2003-04-18 Havoc Pennington <hp@pobox.com>
9788 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9790 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9793 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9794 on realloc be sure to update the pointer in the keyring
9796 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9797 offset to avoid writing to unallocated memory
9799 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9800 try the next mechanism, so we properly handle OOM
9802 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9804 (_dbus_keyring_new): fix OOM bug
9805 (_dbus_keyring_new_homedir): always set error; impose a maximum
9806 number of keys we'll load from the file, mostly to speed up the
9807 test suite and make its OOM checks more useful, but also for
9810 * dbus/dbus-auth.c (process_error_server): reject authentication
9811 if we get an error from the client
9812 (process_cancel): on cancel, send REJECTED, per the spec
9813 (process_error_client): send CANCEL if we get an error from the
9816 2003-04-18 Havoc Pennington <hp@pobox.com>
9818 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9821 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9824 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9825 about DBUS_TEST_HOMEDIR once
9827 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9830 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9831 config file so we test the right thing
9833 Throughout: assorted docs improvements
9835 2003-04-18 Havoc Pennington <hp@pobox.com>
9837 * glib/dbus-gmain.c: adapt to watch changes
9839 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9841 * dbus/dbus-server.h: remove dbus_server_handle_watch
9843 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9845 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9846 like DBusTimeout, so we don't need dbus_connection_handle_watch
9849 2003-04-17 Havoc Pennington <hp@redhat.com>
9851 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9852 database usage so it all goes via the DBusUserDatabase cache.
9854 2003-04-17 Havoc Pennington <hp@redhat.com>
9856 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9857 there was an OOM watch we skipped, we always return TRUE so we
9858 iterate again to have a look at it again. Fixes test suite hang.
9859 Code rearrangement also lets us lose some memset and only iterate
9860 over callbacks once.
9862 * bus/driver.c (bus_driver_handle_message): sense of test for
9865 2003-04-16 Havoc Pennington <hp@pobox.com>
9867 * doc/dbus-specification.sgml: make spec say serials are unsigned
9869 * dbus/dbus-message.h: change message serials to unsigned
9871 * dbus/dbus-connection.c: adapt to message serials being unsigned
9873 2003-04-15 Havoc Pennington <hp@pobox.com>
9875 * bus/bus.c: create and keep around a shared DBusUserDatabase
9878 * bus/connection.c (bus_connection_get_groups): don't cache
9879 groups for user in the connection object, since user database
9880 object now does that.
9882 2003-04-16 Havoc Pennington <hp@redhat.com>
9884 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9885 list of size counters
9886 (_dbus_message_loader_putback_message_link): put back a popped link
9888 * dbus/dbus-connection.c
9889 (dbus_connection_set_max_live_messages_size): rename
9891 (dbus_connection_get_outgoing_size): get size of outgoing
9893 (_dbus_connection_set_connection_counter): remove this cruft
9895 2003-04-14 Havoc Pennington <hp@redhat.com>
9897 * dbus/dbus-userdb.c: user database abstraction, mostly to get
9898 caching, but at some point we might want to be able to use a
9901 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9902 SHA1 conf file to test the sha1 auth mechanism, since the regular
9903 test always uses EXTERNAL when available.
9906 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9907 add conf file that requires use of sha1 auth
9909 2003-04-13 Havoc Pennington <hp@pobox.com>
9911 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9912 from Philip Blundell to send messages and monitor them.
9914 2003-04-13 Havoc Pennington <hp@pobox.com>
9916 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9919 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9922 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9923 fix to only recover unused bytes if we're already authenticated
9924 (_dbus_transport_get_is_authenticated): fix to still mark us
9925 authenticated if there are unused bytes.
9927 * bus/dispatch.c: implement security policy checking
9929 * bus/connection.c (bus_transaction_send_from_driver): new
9931 * bus/bus.c (bus_context_check_security_policy): new
9933 * bus/dispatch.c (send_service_nonexistent_error): delete this,
9934 now we just set the DBusError and it gets converted to an error
9937 * bus/connection.c (allow_user_function): enable code using actual
9938 data from the config file
9940 * bus/policy.c (list_allows_user): handle wildcard rules for
9941 user/group connection perms
9943 2003-04-13 Havoc Pennington <hp@pobox.com>
9945 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9947 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9949 * bus/policy.c (bus_policy_append_mandatory_rule)
9950 (bus_policy_append_default_rule, bus_policy_append_user_rule)
9951 (bus_policy_append_group_rule): new functions
9953 2003-04-12 Havoc Pennington <hp@pobox.com>
9955 * bus/config-parser.c (bus_config_parser_new): fix a memleak
9957 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9958 the pid/gid/uid, just for paranoia.
9960 * test/break-loader.c (randomly_do_n_things): find a byte
9961 containing a type code, and randomly change it to a different
9964 2003-04-12 Havoc Pennington <hp@pobox.com>
9966 * bus/policy.h: change BusPolicy to be the thing from the config
9967 file, and rename old BusPolicy to BusClientPolicy
9969 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9970 match change in how policy works
9972 * dbus/dbus-internals.h: mark assert_not_reached as
9973 __attribute((noreturn))__
9975 2003-04-11 Havoc Pennington <hp@redhat.com>
9977 * doc/dbus-specification.sgml: fix a spot with the wrong name for
9978 the broadcast service. Use boolean return for ServiceExists.
9980 2003-04-11 Havoc Pennington <hp@redhat.com>
9982 * configure.in: add another directory to look for qt in.
9984 2003-04-11 Havoc Pennington <hp@redhat.com>
9986 * AUTHORS: add Colin Walters
9988 2003-04-11 Havoc Pennington <hp@redhat.com>
9994 2003-04-11 Havoc Pennington <hp@redhat.com>
9996 * bus/messagebus.in: remove pid file when stopping the
9997 message bus, since the bus won't have privileges to remove it
10000 2003-04-11 Havoc Pennington <hp@redhat.com>
10002 * bus/bus.c (bus_context_new): move credentials change after
10005 2003-04-11 Havoc Pennington <hp@pobox.com>
10007 * test/decode-gcov.c: add "below average functions" to the
10008 coverage report, and change how some of the code works.
10010 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10011 not in the coverage stats.
10013 * test/test-service.c (main): use _dbus_verbose not fprintf in a
10014 couple places so running the test suite doesn't result in megaspam.
10016 2003-04-11 Havoc Pennington <hp@pobox.com>
10018 * bus/dispatch.c (check_existent_service_activation): accept a no
10019 memory error in a place we didn't before
10021 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10022 in case the first one failed," since the test suite is less
10025 2003-04-10 Havoc Pennington <hp@pobox.com>
10027 * bus/dispatch.c (check_segfault_service_activation): add test
10028 for launching an executable that just crashes.
10030 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10031 don't leave a million cores. We'll see how portable this is.
10033 2003-04-10 Havoc Pennington <hp@pobox.com>
10035 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
10036 the possible parent failures before we fork, so that we don't
10037 fail to create a babysitter after creating the child.
10039 * bus/activation.c (bus_activation_activate_service): kill child
10040 if we don't successfully complete the activation.
10042 2003-04-10 Havoc Pennington <hp@redhat.com>
10044 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
10045 the connection if it's disconnected
10047 * bus/activation.c (bus_activation_service_created): use new
10048 transaction features to roll back removal of pending activation if
10049 we don't successfully create the service after all. Don't remove
10050 pending activation if the function fails.
10052 * dbus/dbus-list.c (_dbus_list_insert_before_link)
10053 (_dbus_list_insert_after_link): new code to facilitate
10056 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
10057 new functionality, so we can preallocate the ability to insert
10060 * bus/connection.c (bus_transaction_add_cancel_hook): new function
10061 allowing us to put custom hooks in a transaction to be used for
10062 cancelling said transaction
10064 * doc/dbus-specification.sgml: add some discussion of secondary
10065 service owners, and disallow zero-length service names
10067 * bus/services.c (bus_registry_acquire_service): new function,
10068 splits out part of bus_driver_handle_acquire_service() and fixes
10069 a bug where we didn't remove the service doing the acquiring
10070 from the secondary queue if we failed to remove the current owner
10071 from the front of the queue.
10073 2003-04-10 Alexander Larsson <alexl@redhat.com>
10075 * doc/dbus-specification.sgml:
10076 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10078 2003-04-10 Alexander Larsson <alexl@redhat.com>
10083 Added files to cvsignore
10085 * dbus/dbus-message.h:
10086 * dbus/dbus-message.c: (dbus_message_iter_get_named):
10087 Make get_named() take two out argument and return a boolean.
10088 (dbus_message_iter_get_args_valist):
10089 Update usage of get_named().
10090 (dbus_message_iter_append_byte):
10092 (dbus_message_iter_append_named)
10094 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10097 2003-04-10 Alexander Larsson <alexl@redhat.com>
10099 * dbus/dbus-marshal.[ch]:
10100 Add array_type_pos argument to _dbus_marshal_validate_arg.
10101 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10103 * dbus/dbus-message.[ch]:
10104 Multi-dimensional arrays have full type specification in the
10105 outermost array. Iter code re-arranged to handle this.
10106 Added some more iter tests.
10108 * doc/dbus-specification.sgml:
10111 Update new array encoding description.
10112 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10114 * test/data/invalid-messages/array-with-mixed-types.message:
10115 * test/data/valid-messages/array-of-array-of-uint32.message:
10116 Change to the new array format.
10118 * test/data/invalid-messages/too-short-dict.message:
10121 * test/data/valid-messages/recursive-types.message:
10122 Fix up and extend test.
10124 2003-04-10 Havoc Pennington <hp@pobox.com>
10126 * bus/dispatch.c: lots of fixes
10128 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10129 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10130 that was crack, broke the test service.
10132 * dbus/dbus-transport.c (_dbus_transport_open): fix error
10133 handling to avoid piling up errors if we get a failure on the
10136 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10137 pid in assertion failures.
10139 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10140 to some fixed size of file descriptor array. Don't return TRUE
10141 anytime a timeout exists, that led to lots of busy loop silliness
10144 2003-04-09 Havoc Pennington <hp@redhat.com>
10146 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10147 I'd checked this in earlier but hadn't.
10149 2003-04-09 Havoc Pennington <hp@redhat.com>
10151 * bus/dispatch.c (bus_dispatch_test): get a bit further through
10152 the activation test (man this is getting old!)
10154 2003-04-09 Havoc Pennington <hp@redhat.com>
10156 * test/test-utils.c: use dispatch status function to fix this up
10158 * bus/connection.c (connection_watch_callback): don't dispatch
10160 (connection_timeout_callback): don't dispatch from here
10161 (bus_connections_setup_connection): set the dispatch status function
10162 (bus_connection_disconnected): unset it
10164 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10165 used to add a connection to be dispatched
10166 (_dbus_loop_iterate): do the dispatching at the end of each
10169 * dbus/dbus-connection.c
10170 (dbus_connection_set_dispatch_status_function): new function
10171 allowing us to fix up main loop usage
10172 (_dbus_connection_last_unref): free all the various function
10174 (dbus_connection_dispatch): call the DispatchStatusFunction
10175 whenever this function returns
10176 (dbus_connection_handle_watch): call DispatchStatusFunction
10177 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10178 (reply_handler_timeout): call DispatchStatusFunction
10179 (dbus_connection_flush): call DispatchStatusFunction
10181 2003-04-09 Havoc Pennington <hp@redhat.com>
10183 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10186 * bus/dispatch.c (check_service_activated): fix bug in test
10188 * dbus/dbus-mainloop.c (check_timeout): fix this up
10190 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10191 verbose output so we can sort out output from different processes,
10192 e.g. in the activation case.
10194 2003-04-08 Colin Walters <walters@gnu.org>
10196 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10198 (bus_context_new): Set it.
10199 (bus_context_unref): Use it to delete the pid file.
10201 2003-04-08 Havoc Pennington <hp@redhat.com>
10203 * test/data/invalid-messages/array-with-mixed-types.message:
10204 regression test that fails for the moment
10206 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10207 tests for convenience
10209 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10210 array of nil, it broke things.
10212 * test/data/invalid-messages/array-of-nil.message: regression test
10214 * test/data/valid-messages/array-of-array-of-uint32.message:
10215 happened to write this so added it to suite
10217 2003-04-08 Havoc Pennington <hp@redhat.com>
10219 * bus/driver.c (bus_driver_handle_acquire_service): init
10220 retval/reply before checking name
10222 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10223 recursion depth argument
10225 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10226 in the public struct for future extension
10228 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10231 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10234 * doc/dbus-specification.sgml: fix typo
10236 2003-04-08 Alexander Larsson <alexl@redhat.com>
10238 Implemented recursive types, named types and new-style iters
10241 * glib/test-thread-client.c: (thread_func):
10242 * glib/test-thread-server.c: (handle_test_message):
10243 * test/test-service.c: (handle_echo):
10246 * dbus/Makefile.am:
10247 * dbus/dbus-dict.c:
10248 * dbus/dbus-dict.h:
10252 * dbus/dbus-internals.c: (_dbus_type_to_string):
10253 Update for new types.
10255 * dbus/dbus-marshal.[ch]:
10256 Implement recursive types and the new marshalling format.
10257 Remove hardcoded dict marshalling.
10258 Marshal named types.
10260 * dbus/dbus-message-builder.c:
10262 Remove references to old types
10264 * dbus/dbus-message.[ch]:
10265 New non-refcounted iter API that supports recursive iters.
10266 Use iters for appending, including support for recursive
10268 Add byte and named type support.
10269 Update everything to new marshalling formats.
10270 Add tests for new API.
10272 * dbus/dbus-protocol.h:
10273 Remove old array types.
10274 Add types: BYTE, ARRAY, DICT, NAMED
10276 * dbus/dbus-string.c:
10277 * dbus/dbus-sysdeps.c:
10278 Make parse_double locale safe.
10280 * dbus/dbus-test-main.c:
10283 * dbus/dbus-test.c:
10286 * doc/dbus-specification.sgml:
10289 * test/data/incomplete-messages/missing-body.message:
10290 * test/data/invalid-messages/bad-boolean.message:
10291 * test/data/invalid-messages/bad-boolean-array.message:
10292 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10293 * test/data/invalid-messages/boolean-has-no-value.message-raw:
10294 * test/data/invalid-messages/too-short-dict.message:
10295 * test/data/valid-messages/dict-simple.message:
10296 * test/data/valid-messages/dict.message:
10297 * test/data/valid-messages/emptiness.message:
10298 * test/data/valid-messages/lots-of-arguments.message:
10299 * test/data/valid-messages/no-padding.message:
10300 * test/data/valid-messages/recursive-types.message:
10301 Add missing NAME fields
10302 Fix up dicts & arrays
10304 * test/data/invalid-messages/dict-with-nil-value.message:
10305 Removed, this is not invalid anymore.
10307 * test/data/valid-messages/recursive-types.message:
10308 Add new test for deeply recursive types.
10310 2003-04-07 Havoc Pennington <hp@pobox.com>
10312 * bus/driver.c (bus_driver_handle_acquire_service): return an
10313 error if you try to acquire a service that starts with ':'
10315 2003-04-07 Havoc Pennington <hp@redhat.com>
10317 * doc/dbus-specification.sgml: require that base service names
10318 start with ':' and that the base service is created/deleted
10319 as first and last things a connection does on the bus
10321 * bus/dispatch.c (check_existent_service_activation): lots more
10322 work on the activation test; it doesn't fully pass yet...
10324 * test/test-service.c (main): fix so we don't memleak the
10325 connection to the message bus
10326 (filter_func): accept a message asking us to exit
10328 2003-04-06 Havoc Pennington <hp@pobox.com>
10330 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10333 * configure.in: fixes to Qt detection from Colin Walters
10335 * doc/Makefile.am: Only remove generated docbook dirs if they
10336 exist, from Colin Walters
10338 * dbus/dbus-bus.c: change how we set well-known connections to
10339 NULL, so that it works if a single connection is stored in
10340 two well-known array slots.
10342 * test/Makefile.am: remove a lot of stuff that isn't immediately
10343 useful, it's in CVS history if we want it.
10345 * test/test-service.c: use dbus-mainloop instead of that
10348 2003-04-06 Havoc Pennington <hp@pobox.com>
10350 * dbus/Makefile.am: split lists of sources into stuff that goes in
10351 the library, util functions that go in the lib and are also used
10352 elsewhere, and util functions that are used in tests/daemon but
10353 don't go in the lib.
10355 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10356 here so it can be used in test binaries also
10358 2003-04-06 Havoc Pennington <hp@pobox.com>
10360 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10361 here in the parent process, so we can return an error if it
10362 fails. Also, move some of the code into the child so the parent
10363 is less hosed if we fail midway through.
10365 * bus/bus.c (bus_context_new): move pidfile detection further up
10366 in the function, before we start overwriting sockets and such.
10368 * bus/messagebus.in: adjust this a bit, not sure if it will work.
10370 * configure.in: add --with-system-pid-file and --with-system-socket
10372 2003-04-06 Colin Walters <walters@verbum.org>
10374 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10376 * bus/system.conf.in: Declare a pidfile.
10378 * bus/bus.c (bus_context_new): Test for an existing pid file, and
10379 create one (if appropriate).
10381 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10382 (struct BusConfigParser) [pidfile]: New.
10383 (element_type_to_name, merge_included, start_busconfig_child)
10384 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10385 (bus_config_parser_unref): Free it.
10386 (bus_config_parser_get_pidfile): New function.
10388 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10390 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10392 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10394 * dbus/dbus-sysdeps.h: Prototype it.
10396 2003-04-06 Havoc Pennington <hp@pobox.com>
10398 * bus/bus.c (bus_context_new): print the address in here, rather
10399 than in main(), because we need to do it before forking the daemon
10401 * bus/dispatch.c (send_service_nonexistent_error): set the sender
10402 on the service nonexistent error
10404 * bus/driver.c (bus_driver_handle_acquire_service): set the
10405 sender on the AcquireService reply
10407 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10408 server also listen on a UNIX socket so services can connect to it.
10410 2003-04-06 Havoc Pennington <hp@pobox.com>
10412 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10413 so it detects deadlocks and also we actually init threads when
10416 2003-04-06 Havoc Pennington <hp@pobox.com>
10418 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10419 save the domain socket name, and unlink it when we disconnect the
10420 server. Means that at least when we exit normally, we won't leave
10421 a bunch of junk in /tmp
10423 * dbus/dbus-transport-unix.c
10424 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10425 memory management). (I was making a real change here but then
10428 2003-04-06 Havoc Pennington <hp@pobox.com>
10430 * bus/bus.c (bus_context_new): fix wrong handling of
10431 server_data_slot_unref() in the error case.
10433 * dbus/dbus-internals.h (_dbus_assert): change so it passes
10434 "(condition) != 0" to _dbus_real_assert so that
10435 "_dbus_assert (pointer)" doesn't cause a warning
10437 * bus/main.c (main): accept --print-address option to print out
10438 the message bus address
10440 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10442 * dbus/dbus-transport.c (_dbus_transport_open): special error for
10443 "tmpdir" option to unix: address on client side
10445 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10448 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10449 we can use to create sockets in the test suite.
10451 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10452 cleanly. To be used for testing.
10454 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10456 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10458 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10459 handle trying to call this when there's no servers active
10461 2003-04-05 Havoc Pennington <hp@pobox.com>
10465 * configure.in: 0.8
10467 2003-04-05 Havoc Pennington <hp@pobox.com>
10469 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10470 crash on startup. Need to get "try starting the daemon"
10471 in the test suite I guess. ;-)
10473 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10474 tracked the number of open connections; it's better done in
10475 application-specific code as you want it to span all servers etc.
10477 2003-04-05 Havoc Pennington <hp@pobox.com>
10479 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10480 patch from Colin Walters
10482 2003-04-05 Havoc Pennington <hp@pobox.com>
10484 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10485 reality; in fact multiple mechanisms are allowed.
10487 * dbus/dbus-internals.c (_dbus_real_assert)
10488 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10489 _dbus_assert_not_reached() into functions, so that they don't show
10490 up in basic block counts for test coverage, and don't use up as
10491 much disk space. Does mean slower execution speed though, so
10492 assumes --disable-asserts is the normal production case.
10494 2003-04-05 Havoc Pennington <hp@pobox.com>
10496 * test/Makefile.am (dist-hook): also dist *.in files
10500 * configure.in: 0.7
10502 2003-04-05 Havoc Pennington <hp@pobox.com>
10504 * dbus/dbus-string.c: docs warning
10506 * dbus/dbus-spawn.c: missing docs
10508 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10510 2003-04-05 Havoc Pennington <hp@pobox.com>
10512 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10515 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10516 to -1 once we've reaped the babysitter
10517 (_dbus_babysitter_handle_watch): do as much work as we can, not
10520 * bus/activation.c: add code using DBusBabysitter so that we
10521 handle it when a service fails to start up properly.
10522 (bus_activation_service_created): don't remove the activation
10523 entries as we go, just let them get removed when we free the pending
10524 activation. Unref reply messages after sending them.
10526 2003-04-05 Havoc Pennington <hp@pobox.com>
10528 * test/decode-gcov.c (main): print per-directory stats in the report
10530 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10532 2003-04-05 Havoc Pennington <hp@pobox.com>
10534 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10536 * test/decode-gcov.c: hack up a little program to suck data
10537 out of gcov files. Yes this is sort of silly.
10539 * configure.in: define something in config.h and do an
10540 AM_CONDITIONAL when gcov is enabled
10542 2003-04-04 Havoc Pennington <hp@redhat.com>
10544 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10545 return a "babysitter" object that is used to monitor the status of
10546 the spawned process and reap it when required.
10548 * test/test-segfault.c, test/test-exit.c,
10549 test/test-sleep-forever.c: binaries that do various lame things,
10550 used in the test suite.
10552 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10554 2003-04-03 Havoc Pennington <hp@pobox.com>
10556 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10557 in preparation for modifying it, dbus-sysdeps is getting
10558 a bit unmanageable.
10560 2003-04-03 Havoc Pennington <hp@redhat.com>
10562 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10565 * bus/*.[hc]: adapt to mainloop change
10567 2003-04-03 Havoc Pennington <hp@redhat.com>
10569 * bus/activation.c (load_directory): fix up memleaks
10570 (bus_activation_entry_free): free the entry
10572 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10573 we get one from the message bus; fix memleaks.
10575 * dbus/dbus-message.c (dbus_set_error_from_message): new function
10577 2003-04-03 Havoc Pennington <hp@pobox.com>
10579 * bus/config-parser.c (bus_config_parser_unref): free
10580 list of mechanisms, bug discovered by test suite enhancements
10581 (putting system.conf and session.conf into suite)
10583 * test/Makefile.am, test/test-service.c: add placeholder for a
10584 test service that we'll activate as part of test suite. Doesn't
10587 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10588 setting NULL value, and use system malloc not dbus_malloc()
10589 when we have unavoidable memleakage.
10591 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10592 didn't work, and support DBUS_BUS_ACTIVATION.
10594 * bus/activation.c (child_setup): pass our well-known bus type to
10597 * bus/config-parser.c: support <type> to specify well-known type
10599 * doc/dbus-specification.sgml: document the env variables to
10600 locate well-known buses and find service activator
10602 2003-04-02 Havoc Pennington <hp@redhat.com>
10604 * test/Makefile.am (all-local): add a rule to copy tests to
10605 builddir, so we can have generated tests. Use this to remove the
10606 silly hack for testing system.conf and session.conf. Will use this
10607 shortly to generate .service files pointing to test binaries.
10609 2003-04-02 Havoc Pennington <hp@redhat.com>
10611 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10612 current alloc and needed new length, not max of the doubled
10613 allocation and needed new length. Also, when building tests,
10614 don't do the double-allocation stuff, just realloc every time.
10616 2003-04-02 Havoc Pennington <hp@redhat.com>
10618 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10620 (_dbus_string_get_dirname): new
10621 (_dbus_sysdeps_test): new
10622 (_dbus_directory_open): include dirnames in error messages
10624 * bus/config-parser.c: interpret <include> and <includedir> and
10625 <servicedir> relative to config file location if the given
10626 filename is not absolute.
10628 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10630 2003-04-02 Havoc Pennington <hp@redhat.com>
10632 * bus/connection.c (bus_transaction_send_error_reply): set sender
10633 service for the error, and unref the reply on success
10635 * bus/activation.c: convert to use BusTransaction so OOM can be
10637 (bus_activation_service_created): set sender of the message
10639 2003-04-01 Havoc Pennington <hp@redhat.com>
10641 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10642 <includedir> (at least mostly)
10644 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10645 first, then the user ID
10647 2003-04-01 Havoc Pennington <hp@pobox.com>
10649 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10652 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10654 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10656 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10657 socket 0777, and unlink any existing socket.
10659 * bus/bus.c (bus_context_new): change our UID/GID and fork if
10660 the configuration file so specifies; set up auth mechanism
10663 * bus/config-parser.c (bus_config_parser_content): add support
10664 for <fork> option and fill in code for <auth>
10666 * bus/system.conf.in: add <fork/> to default configuration,
10667 and limit auth mechanisms to EXTERNAL
10669 * doc/config-file.txt (Elements): add <fork>
10671 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10672 (_dbus_change_identity): new function
10674 2003-03-31 Havoc Pennington <hp@redhat.com>
10676 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10677 (_dbus_listen_unix_socket): fix off-by-one error in null
10678 termination spotted by Nalin
10680 2003-03-31 Havoc Pennington <hp@redhat.com>
10682 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10683 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10684 having a real home directory available.
10686 2003-03-31 Havoc Pennington <hp@redhat.com>
10688 * bus/Makefile.am (install-data-hook): create /var/run/dbus
10690 * bus/messagebus.in: add init script for Red Hat /etc/init.d
10692 * configure.in: add support for specifying a style of init script
10695 2003-03-31 Havoc Pennington <hp@redhat.com>
10697 Fix some annoying DBusString API and fix all affected code.
10699 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10700 max_length argument
10701 (_dbus_string_get_data): change to return string instead of using
10703 (_dbus_string_get_const_data): ditto
10704 (_dbus_string_get_data_len): ditto
10705 (_dbus_string_get_const_data_len): ditto
10707 2003-03-31 Havoc Pennington <hp@redhat.com>
10709 * bus/main.c (main): fix up the command line arguments to be nicer
10711 2003-03-31 Havoc Pennington <hp@redhat.com>
10713 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10714 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10715 final location that lands in the config file
10717 * bus/config-loader-expat.c (bus_config_load): fix type of
10718 XML_Parser variable
10720 * doc/TODO: remove TODO item for dbus_bus_get()
10722 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10724 2003-03-31 Havoc Pennington <hp@pobox.com>
10726 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10727 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10728 argument since they are always client side
10730 * dbus/dbus-server.c (dbus_server_get_address): new function
10732 * bus/main.c (main): take the configuration file as an argument.
10734 * test/data/valid-config-files/debug-allow-all.conf: new file to
10735 use with dispatch.c tests for example
10737 * bus/test-main.c (main): require test data dir
10739 * bus/bus.c (bus_context_new): change this to take a
10740 configuration file name as argument
10742 * doc/config-file.txt (Elements): add <servicedir>
10744 * bus/system.conf, bus/session.conf: new files
10746 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10747 well-known socket if none set
10749 * configure.in: create system.conf and session.conf
10751 2003-03-30 Havoc Pennington <hp@pobox.com>
10753 * bus/config-parser.c: hacking
10755 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10756 to shut down, since it could cause weirdness with the DBusList
10759 * dbus/dbus-list.c (_dbus_list_test): add tests for the
10760 link-oriented stack routines
10761 (alloc_link): free the mempool if the first alloc from it fails
10763 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10765 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10767 (_dbus_string_skip_white): new
10769 * doc/config-file.txt (Elements): add <includedir>
10771 2003-03-28 Havoc Pennington <hp@pobox.com>
10773 * dbus/dbus-string.c (_dbus_string_copy_data_len)
10774 (_dbus_string_copy_data): new functions
10776 2003-03-28 Anders Carlsson <andersca@codefactory.se>
10778 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10782 * dbus/dbus-memory.c:
10785 2003-03-28 Havoc Pennington <hp@pobox.com>
10787 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10788 I think it may have just been superstition. Not sure.
10790 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10791 failures that were not being handled.
10793 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10795 * dbus/dbus-memory.c: add ability to set number of mallocs in a
10796 row that will fail on out-of-memory.
10798 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10799 function for testing out-of-memory handling.
10801 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10802 allocation functions, they do map exactly to the expat ones.
10804 2003-03-27 Havoc Pennington <hp@redhat.com>
10806 * bus/config-loader-libxml.c (bus_config_load): add another error
10809 2003-03-26 Anders Carlsson <andersca@codefactory.se>
10812 Add note about automatic service activation.
10814 * doc/dbus-specification.sgml:
10815 Rename the specification and clarify a few things.
10817 2003-03-26 Anders Carlsson <andersca@codefactory.se>
10820 * dbus/dbus-address.c:
10821 * dbus/dbus-dict.c:
10822 * dbus/dbus-marshal.c:
10823 * dbus/dbus-server-debug-pipe.c:
10824 * dbus/dbus-transport-unix.c:
10825 Fix documentation warnings.
10827 2003-03-26 Havoc Pennington <hp@pobox.com>
10829 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10830 after every test so it's quick and easy to see which leaked, and
10831 so we test multiple dbus_shutdown() calls
10833 * configure.in: change configure.in XML stuff to also support
10836 * config-loader-libxml.c: some hacking
10838 * config-loader-expat.c: some hacking
10840 * config-parser.c: some hacking, plus tests
10842 2003-03-25 Havoc Pennington <hp@redhat.com>
10844 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10846 * configure.in: add --with-xml option to specify XML library,
10847 right now only libxml is supported.
10849 * bus/config-loader-libxml.c, config-parser.c: sync some minor
10850 nonworking code between home and work, still just stubs
10852 2003-03-24 Havoc Pennington <hp@redhat.com>
10854 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10857 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10858 NULL argument for "message" if the error is a well-known one,
10859 fill in a generic message in this case.
10861 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10864 * bus/test.c (bus_test_flush_bus): add
10866 * bus/policy.c (bus_policy_test): test code stub
10868 2003-03-24 Havoc Pennington <hp@pobox.com>
10870 * bus/connection.c (bus_connections_setup_connection): set up
10871 the "can this user connect" function, but it always returns
10872 TRUE until we have a config file parser so we can have a config
10873 file that allows connections.
10875 2003-03-23 Havoc Pennington <hp@pobox.com>
10877 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10878 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10879 the mutex, so we can check for proper memory management
10882 * dbus/dbus-dataslot.c: remove the mutex from
10883 DBusDataSlotAllocator and lock it manually when using it,
10884 to simplify fitting it into the global slots framework.
10886 * dbus/dbus-threads.c (init_static_locks): rework how we're
10887 handling global locks so they are easily shut down.
10889 * bus/policy.c (bus_policy_append_rule): fix
10891 * bus/test-main.c (main): check for memleaks
10893 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10894 test suite check for memleaks
10896 * dbus/dbus-memory.c: add support in test mode for tracking
10897 number of outstanding blocks
10899 2003-03-23 Havoc Pennington <hp@pobox.com>
10901 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10904 * dbus/dbus-hash.h: add ULONG hash keys
10906 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10907 (_dbus_get_group_id): new function
10909 2003-03-20 Havoc Pennington <hp@redhat.com>
10911 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10913 (dbus_connection_get_unix_user): new function
10915 2003-03-20 Havoc Pennington <hp@pobox.com>
10917 * bus/connection.c (bus_connection_send_oom_error): assert that
10918 message has a sender
10919 (connection_execute_transaction): ditto
10920 (bus_connection_preallocate_oom_error): fix to set the sender, and
10921 set recipient to the destination service, not the bus driver
10923 * bus/policy.c: hacking
10925 * dbus/dbus-message.c (dbus_message_service_is): new function
10926 (dbus_message_sender_is): new
10928 2003-03-19 Havoc Pennington <hp@redhat.com>
10930 * bus/policy.c: start sketching code for policy restrictions on
10931 what connections can do.
10933 2003-03-18 Havoc Pennington <hp@redhat.com>
10935 * doc/TODO: some notes on high-level todo items. Little nitpick
10936 stuff is all in @todo, so no need to add it here.
10938 * doc/config-file.txt: some notes on how config file might look
10940 2003-03-18 Anders Carlsson <andersca@codefactory.se>
10942 * configure.in: 0.6
10946 2003-03-17 Havoc Pennington <hp@redhat.com>
10948 * dbus/dbus-internals.h: add gcc attributes so that
10949 our printf-style functions warn on bad arguments to
10952 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10955 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10958 2003-03-17 Havoc Pennington <hp@redhat.com>
10960 * bus/test-main.c (main): make it print something as it runs
10961 so make check doesn't look stuck
10963 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10964 from CVS, now obsolete
10966 2003-03-17 Anders Carlsson <andersca@codefactory.se>
10968 * bus/dispatch.c: (bus_dispatch):
10969 Refetch the service name since it may have been reallocated
10970 when dbus_message_set_sender was called.
10972 * dbus/dbus-sysdeps.c: (_dbus_accept):
10973 Add address and address length variables and use them to stop
10974 valgrind from complaining.
10976 2003-03-17 Havoc Pennington <hp@pobox.com>
10978 All tests pass, no memleaks, no valgrind complaints.
10980 * bus/test.c: refcount handler_slot
10982 * bus/connection.c (bus_connections_new): refcount
10983 connection_data_slot
10985 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10986 bytes so that auth scripts pass.
10988 * bus/dispatch.c: init message_handler_slot so it gets allocated
10991 * bus/dispatch.c (message_handler_slot_ref): fix memleak
10993 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10994 dealloc server_pipe_hash when no longer used for benefit of
10997 * dbus/dbus-auth.c (process_command): memleak fix
10999 * bus/dispatch.c (check_hello_message): memleak fix
11001 2003-03-16 Havoc Pennington <hp@pobox.com>
11003 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11005 2003-03-17 Anders Carlsson <andersca@codefactory.se>
11007 * bus/activation.c (bus_activation_activate_service): Append
11008 the pending activation entry to the list of pending activations.
11010 2003-03-16 Havoc Pennington <hp@pobox.com>
11012 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11015 * dbus/dbus-address.c (create_entry): fix OOM handling when
11016 failing to alloc entry->method
11018 2003-03-16 Havoc Pennington <hp@pobox.com>
11020 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11023 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11024 add some missing dbus_set_result
11026 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11027 alloc the DBusMessageHandler
11029 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11030 the transport here, since we call this from the finalizer; it
11031 resulted in a double-finalize.
11033 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
11034 where we tried to use transport->connection that was NULL,
11035 happened when transport was disconnected early on due to OOM
11037 * bus/*.c: adapt to handle OOM for watches/timeouts
11039 * dbus/dbus-transport-unix.c: port to handle OOM during
11042 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
11043 reference to unused bytes instead of a copy
11045 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
11048 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
11051 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
11054 2003-03-16 Anders Carlsson <andersca@codefactory.se>
11056 * doc/dbus-specification.sgml:
11057 Document reply message for ActivateService.
11059 2003-03-16 Anders Carlsson <andersca@codefactory.se>
11061 * bus/activation.c: (bus_pending_activation_entry_free),
11062 (bus_pending_activation_free), (bus_activation_new),
11063 (bus_activation_unref), (bus_activation_service_created),
11064 (bus_activation_activate_service):
11065 * bus/activation.h:
11066 * bus/bus.c: (bus_context_new):
11067 * bus/desktop-file.c: (new_section):
11068 * bus/driver.c: (bus_driver_send_service_deleted),
11069 (bus_driver_handle_activate_service):
11070 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11072 * dbus/dbus-connection.c:
11073 (dbus_connection_send_with_reply_and_block):
11074 * dbus/dbus-message.c: (dbus_message_append_args_valist):
11075 * dbus/dbus-protocol.h:
11076 Make activation work better. Now pending activations will be queued
11077 and the daemon won't try to activate services that are already registered.
11079 2003-03-16 Havoc Pennington <hp@pobox.com>
11081 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11084 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11085 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11087 2003-03-16 Havoc Pennington <hp@pobox.com>
11089 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11090 this. always run the test suite before commit...
11092 * bus/*: adapt to DBusConnection API changes
11094 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11095 requires renaming stuff to avoid dbus_connection_dispatch name
11098 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11101 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11102 separate from _dbus_message_loader_return_buffer()
11104 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11105 this, because it's now always broken to use; the number of
11106 messages in queue vs. the number still buffered by the message
11107 loader is undefined/meaningless. Should use
11108 dbus_connection_get_dispatch_state().
11109 (dbus_connection_dispatch): rename from
11110 dbus_connection_dispatch_message
11112 2003-03-16 Havoc Pennington <hp@pobox.com>
11114 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11117 2003-03-16 Anders Carlsson <andersca@codefactory.se>
11119 * dbus/dbus-connection.c:
11120 (dbus_connection_send_with_reply_and_block):
11121 Decrease connection->n_incoming when removing an entry
11123 * dbus/dbus-dict.c: (dbus_dict_entry_free),
11124 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11125 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11126 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11127 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11128 (dbus_dict_get_byte_array):
11129 Handle NULL arrays and strings. Also add support for byte arrays.
11131 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11132 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11133 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11134 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11135 (_dbus_demarshal_dict), (demarshal_and_validate_len),
11136 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11137 * dbus/dbus-marshal.h:
11138 Add support for marshalling and demarshalling empty arrays and strings.
11140 * dbus/dbus-message.c: (dbus_message_append_args_valist),
11141 (dbus_message_append_string_array),
11142 (dbus_message_iter_get_boolean),
11143 (dbus_message_iter_get_boolean_array),
11144 (dbus_message_iter_get_int32_array),
11145 (dbus_message_iter_get_uint32_array),
11146 (dbus_message_iter_get_double_array),
11147 (dbus_message_iter_get_byte_array),
11148 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11149 (check_message_handling):
11150 Add support for getting empty arrays and dicts.
11152 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11153 Don't do any validation at all for now, that's better than just checking
11156 * test/data/valid-messages/emptiness.message:
11157 New test message with lots of empty arrays.
11159 2003-03-16 Havoc Pennington <hp@pobox.com>
11161 * dbus/dbus-connection.c
11162 (_dbus_connection_queue_received_message_link): new function that
11163 can't fail due to OOM
11165 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11166 new function pops a message together with a list link
11169 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11170 message queuing functions to avoid needing to alloc memory
11172 2003-03-16 Havoc Pennington <hp@pobox.com>
11174 Oops - test code was only testing failure of around 30 of the
11175 mallocs in the test path, but it turns out there are 500+
11176 mallocs. I believe this was due to misguided linking setup such
11177 that there was one copy of dbus_malloc etc. in the daemon and one
11178 in the shared lib, and only daemon mallocs were tested. In any
11179 case, the test case now tests all 500+ mallocs, and doesn't pass
11180 yet, though there are lots of fixes in this patch.
11182 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11183 this so that it doesn't need to allocate memory, since it
11184 has no way of indicating failure due to OOM (and would be
11185 annoying if it did).
11187 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11189 * bus/Makefile.am: rearrange to create two self-contained
11190 libraries, to avoid having libraries with overlapping symbols.
11191 that was resulting in weirdness, e.g. I'm pretty sure there
11192 were two copies of global static variables.
11194 * dbus/dbus-internals.c: move the malloc debug stuff to
11197 * dbus/dbus-list.c (free_link): free list mempool if it becomes
11200 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11202 * dbus/dbus-address.c (dbus_parse_address): free list nodes
11205 * bus/dispatch.c (bus_dispatch_add_connection): free
11206 message_handler_slot when no longer using it, so
11207 memory leak checkers are happy for the test suite.
11209 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11211 * bus/bus.c (new_connection_callback): disconnect in here if
11212 bus_connections_setup_connection fails.
11214 * bus/connection.c (bus_connections_unref): fix to free the
11216 (bus_connections_setup_connection): if this fails, don't
11217 disconnect the connection, just be sure there are no side
11220 * dbus/dbus-string.c (undo_alignment): unbreak this
11222 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11224 (_dbus_auth_new): fix the order in which we free strings
11227 * bus/connection.c (bus_connection_disconnected): fix to
11228 not send ServiceDeleted multiple times in case of memory
11231 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11232 get the base service name
11233 (dbus_bus_register_client): don't return base service name,
11234 instead store it on the DBusConnection and have an accessor
11236 (dbus_bus_register_client): rename dbus_bus_register()
11238 * bus/dispatch.c (check_hello_message): verify that other
11239 connections on the bus also got the correct results, not
11240 just the one sending hello
11242 2003-03-15 Havoc Pennington <hp@pobox.com>
11244 Make it pass the Hello handling test including all OOM codepaths.
11245 Now to do other messages...
11247 * bus/services.c (bus_service_remove_owner): fix crash when
11248 removing owner from an empty list of owners
11249 (bus_registry_ensure): don't leave service in the list of
11250 a connection's owned services if we fail to put the service
11253 * bus/connection.c (bus_connection_preallocate_oom_error): set
11254 error flag on the OOM error.
11256 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11257 handle _dbus_transport_set_connection failure
11259 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11260 to create watches up front and simply enable/disable them as
11262 (unix_connection_set): this can now fail on OOM
11264 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11265 of enabling/disabling a watch or timeout.
11267 * bus/loop.c (bus_loop_iterate): don't touch disabled
11270 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11272 2003-03-15 Havoc Pennington <hp@pobox.com>
11274 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11275 write useful test code, after all that futzing around ;-)
11277 Test does not yet pass because we can't handle OOM in
11278 _dbus_transport_messages_pending (basically,
11279 dbus_connection_preallocate_send() does not prealloc the write
11280 watch). To fix this, I think we need to add new stuff to
11281 set_watch_functions, namely a SetEnabled function so we can alloc
11282 the watch earlier, then enable it later.
11284 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11285 dbus-memory.c to the convenience lib
11287 * bus/test.c: rename some static functions to keep them clearly
11288 distinct from stuff in connection.c. Handle client disconnection.
11290 2003-03-14 Havoc Pennington <hp@pobox.com>
11292 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11293 transport, tests more of the real codepath. Set up clients
11294 with bus_setup_debug_client.
11296 * bus/test.c (bus_setup_debug_client): function to set up debug
11297 "clients" on the main loop
11299 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11302 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11305 * dbus/dbus-server-debug.c: support a debug server based on pipes
11307 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11308 (_dbus_close): new function
11310 * configure.in: check for socketpair
11312 2003-03-14 Havoc Pennington <hp@redhat.com>
11314 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11317 * dbus/dbus-transport-debug.c: rework this a good bit to be
11318 less complicated. hopefully still works.
11320 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11323 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11326 * dbus/dbus-message.c (dbus_message_copy): rename from
11327 dbus_message_new_from_message, fix it up to copy
11328 all the message fields, add test case
11330 * bus/dispatch.c (bus_dispatch_test): add some more test code,
11331 not quite passing yet
11333 2003-03-14 Havoc Pennington <hp@pobox.com>
11335 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11336 until no work remains" in test code. (the large diff here
11337 is just code movement, no actual changes)
11339 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11340 1, no point waiting around for test code.
11341 (_dbus_server_debug_accept_transport): unref the timeout
11342 after adding it (right?)
11344 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11346 2003-03-13 Havoc Pennington <hp@redhat.com>
11348 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11351 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11354 * dbus/dbus-connection.h: Make AddWatchFunction and
11355 AddTimeoutFunction return a bool so they can fail on out-of-memory
11357 * bus/bus.c (bus_context_new): set up timeout handlers
11359 * bus/connection.c (bus_connections_setup_connection): set up
11362 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11365 * bus/bus.c (bus_context_new): adapt to changes
11367 * bus/connection.c: adapt to changes
11369 * test/watch.c: adapt to DBusWatch changes
11371 * bus/dispatch.c (bus_dispatch_test): started adding this but
11374 2003-03-14 Anders Carlsson <andersca@codefactory.se>
11376 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11378 2003-03-13 Havoc Pennington <hp@pobox.com>
11380 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11381 set up a test framework as for the library
11383 2003-03-12 Havoc Pennington <hp@pobox.com>
11385 Throughout: purge global variables, introduce BusActivation,
11386 BusConnections, BusRegistry, etc. objects instead.
11388 * bus/bus.h, bus/bus.c: introduce BusContext as a global
11391 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11392 going to redo this a bit differently I think
11394 2003-03-12 Havoc Pennington <hp@redhat.com>
11396 Mega-patch that gets the message bus daemon initially handling
11397 out-of-memory. Work still needed. Also lots of random
11398 moving stuff to DBusError instead of ResultCode.
11400 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11402 * dbus/dbus-connection.c
11403 (dbus_connection_send_with_reply_and_block): use DBusError
11405 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11408 * dbus/dbus-connection.c (dbus_connection_send): drop the result
11409 code here, as the only failure possible is OOM.
11411 * bus/connection.c (bus_connection_disconnect):
11412 rename bus_connection_disconnected as it's a notification only
11414 * bus/driver.c (bus_driver_handle_acquire_service): don't free
11415 "name" on get_args failure, should be done by get_args;
11416 don't disconnect client for bad args, just return an error.
11417 (bus_driver_handle_service_exists): ditto
11419 * bus/services.c (bus_services_list): NULL-terminate returned array
11421 * bus/driver.c (bus_driver_send_service_lost)
11422 (bus_driver_send_service_acquired): send messages from driver to a
11423 specific client to the client's unique name, not to the broadcast
11426 * dbus/dbus-message.c (decode_header_data): reject messages that
11427 contain no name field
11428 (_dbus_message_get_client_serial): rename to
11429 dbus_message_get_serial and make public
11430 (_dbus_message_set_serial): rename from set_client_serial
11431 (_dbus_message_set_reply_serial): make public
11432 (_dbus_message_get_reply_serial): make public
11434 * bus/connection.c (bus_connection_foreach): allow stopping
11435 iteration by returning FALSE from foreach function.
11437 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11438 (dbus_connection_free_preallocated_send)
11439 (dbus_connection_preallocate_send): new API for sending a message
11440 without possibility of malloc failure.
11441 (dbus_connection_send_message): rename to just
11442 dbus_connection_send (and same for whole function family)
11444 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11446 * dbus/dbus-sysdeps.c (_dbus_exit): new function
11448 * bus/activation.c: handle/return errors
11450 * dbus/dbus-errors.h: add more DBUS_ERROR #define
11452 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11453 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11454 (_dbus_result_from_errno): move to this file
11456 2003-03-10 Anders Carlsson <andersca@codefactory.se>
11458 * dbus/dbus-marshal.c:
11459 (_dbus_marshal_set_string):
11460 Take a length argument so we can marshal the correct string
11463 (_dbus_marshal_dict), (_dbus_demarshal_dict),
11464 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11465 (_dbus_marshal_test):
11466 * dbus/dbus-marshal.h:
11467 Add support for marshalling and demarshalling dicts.
11469 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11470 Add support for TYPE DICT.
11472 * dbus/dbus-message.c: (set_string_field):
11473 Adjust header padding.
11475 (dbus_message_append_args_valist), (dbus_message_append_dict),
11476 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11477 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11478 (check_message_handling), (check_have_valid_message):
11479 * dbus/dbus-message.h:
11480 Add functions for setting and getting dicts.
11482 * dbus/dbus-protocol.h:
11483 Add DBUS_TYPE_DICT.
11488 * doc/dbus-specification.sgml:
11489 Add information about how dicts are marshalled.
11491 * test/data/invalid-messages/dict-with-nil-value.message:
11492 * test/data/invalid-messages/too-short-dict.message:
11493 * test/data/valid-messages/dict-simple.message:
11494 * test/data/valid-messages/dict.message:
11495 Add sample messages containing dicts.
11497 2003-03-08 Anders Carlsson <andersca@codefactory.se>
11499 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11501 2003-03-07 Anders Carlsson <andersca@codefactory.se>
11503 * dbus/Makefile.am:
11504 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11505 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11506 (dbus_dict_set_int32), (dbus_dict_set_uint32),
11507 (dbus_dict_set_double), (dbus_dict_set_string),
11508 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11509 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11510 (dbus_dict_set_string_array), (_dbus_dict_test):
11511 * dbus/dbus-dict.h:
11512 Fix according to comments from Havoc.
11514 2003-03-06 Michael Meeks <michael@server.home>
11516 * configure.in: if we don't have kde-config, disable have_qt.
11518 2003-03-07 Anders Carlsson <andersca@codefactory.se>
11520 * dbus/Makefile.am:
11523 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11524 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11525 (dbus_dict_remove), (dbus_dict_get_value_type),
11526 (dbus_dict_get_keys), (dbus_dict_put_boolean),
11527 (dbus_dict_put_int32), (dbus_dict_put_uint32),
11528 (dbus_dict_put_double), (dbus_dict_put_string),
11529 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11530 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11531 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11532 (dbus_dict_get_int32), (dbus_dict_get_uint32),
11533 (dbus_dict_get_double), (dbus_dict_get_string),
11534 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11535 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11536 (dbus_dict_get_string_array), (_dbus_dict_test):
11537 * dbus/dbus-dict.h:
11538 Add DBusDict implementation
11540 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11541 * dbus/dbus-test.h:
11542 Add _dbus_dict_test
11544 2003-03-04 Havoc Pennington <hp@pobox.com>
11546 * test/data/auth/*: adapt to changes
11548 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11549 USERID_BASE64 and change USERNAME_BASE64 to put in username not
11552 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11553 more stuff from being in a context name, to make the protocol
11554 simpler to deal with
11556 * dbus/dbus-errors.c (dbus_error_has_name): new function
11557 (dbus_error_is_set): new function
11559 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11560 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11562 * dbus/dbus-connection.c (dbus_connection_flush): also read
11563 messages during a flush operation
11565 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11567 2003-03-05 Anders Carlsson <andersca@codefactory.se>
11569 * configure.in: Check for gethostbyname on Solaris.
11571 * dbus/dbus-transport.c: (_dbus_transport_open):
11572 Remove duplicate "tcp" entry.
11574 * doc/dbus-specification.sgml:
11575 Clarify some things.
11577 2003-03-05 Anders Carlsson <andersca@codefactory.se>
11579 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11580 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11581 (_dbus_keyring_test):
11582 * dbus/dbus-md5.c: (_dbus_md5_compute):
11583 * dbus/dbus-sha.c: (_dbus_sha_compute):
11586 2003-03-05 Anders Carlsson <andersca@codefactory.se>
11588 * README: Add some things.
11590 2003-03-04 Anders Carlsson <andersca@codefactory.se>
11592 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11593 after case DBUS_TYPE_BOOELAN.
11595 2003-03-02 Havoc Pennington <hp@pobox.com>
11597 * test/break-loader.c (randomly_set_extreme_ints): add test that
11598 sets really huge and small integers
11600 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11601 that length of boolean array fits in the string, and that
11602 string has room for boolean value in single-bool case.
11604 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11605 optional value to "ALIGN" command which is what to fill the
11608 * test/data/valid-messages/no-padding.message: add regression
11609 test for the message padding problem
11611 2003-03-02 Havoc Pennington <hp@pobox.com>
11613 * dbus/dbus-message.c (decode_header_data): fix to always init
11614 message_padding, from Benjamin Dauvergne
11616 2003-03-02 Havoc Pennington <hp@pobox.com>
11618 * configure.in: 0.5
11622 2003-03-01 Joe Shaw <joe@assbarn.com>
11624 * configure.in: Check for "struct cmsgcred" and try to access its
11625 members for BSD-like unices.
11627 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11628 _dbus_read_credentials_unix_socket().
11629 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11630 read() for reading the credential byte off the unix socket. Use
11631 struct cmsgcred on systems that support it.
11633 2003-02-27 Alexander Larsson <alexl@redhat.com>
11635 * glib/Makefile.am:
11637 Make gthreads-2.0 dependency optional. Don't build thread test if
11640 2003-02-27 Havoc Pennington <hp@pobox.com>
11642 * dbus/dbus-connection.c
11643 (dbus_connection_send_message_with_reply_and_block): fix doh!
11644 doh! doh! bug that resulted in never removing a reply from the
11645 queue, no wonder we called get_reply_serial so much ;-)
11647 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11648 and client serial instead of demarshaling them every time
11650 2003-02-27 Havoc Pennington <hp@pobox.com>
11652 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11653 more inlined, using dbus-string-private.h, speeds things up
11656 * dbus/dbus-string.c (_dbus_string_free): apply align offset
11657 when freeing the string
11658 (_dbus_string_steal_data): fix for align offset
11659 (undo_alignment): new function
11661 2003-02-26 Havoc Pennington <hp@redhat.com>
11663 All kinds of audit fixes from Owen, plus initial attempt to
11664 handle unaligned memory returned from malloc.
11666 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11667 leave room for align_offset and nul byte
11668 (fixup_alignment): function to track an align_offset and
11669 ensure real->str is aligned
11670 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11671 to allow a nul byte plus align offset
11672 (_dbus_string_lock): fix overflow issue
11673 (_dbus_string_init_const_len): add assertions on sanity of len,
11674 assign allocated to be ALLOCATION_PADDING larger than len
11675 (set_length): fixup the overflow handling
11676 (_dbus_string_get_data_len): fix overflow in assertion
11677 (open_gap): detect overflow in size of gap to be opened
11678 (_dbus_string_lengthen): add overflow check
11679 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11680 (_dbus_string_append): add overflow check
11681 (_dbus_string_append_unichar): overflow
11682 (_dbus_string_delete): fix overflow in assertion
11683 (_dbus_string_copy_len): overflow in assertion
11684 (_dbus_string_replace_len): overflows in assertions
11685 (_dbus_string_find): change to implement in terms of
11686 _dbus_string_find_to
11687 (_dbus_string_find_to): assorted fixage
11688 (_dbus_string_equal_c_str): assert c_str != NULL,
11689 fix logic so the function works
11690 (_dbus_string_ends_with_c_str): fix overflow thingy
11691 (_dbus_string_base64_encode): overflow fix
11692 (_dbus_string_validate_ascii): overflow
11693 (_dbus_string_validate_nul): overflow
11695 2003-02-26 Havoc Pennington <hp@redhat.com>
11697 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11699 2003-02-26 Alexander Larsson <alexl@redhat.com>
11702 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11704 * dbus/dbus-connection.c:
11705 * dbus/dbus-connection.h:
11706 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11707 Add dbus_connection_set_wakeup_main_function and use it when queueing
11708 incoming and outgoing messages.
11711 * dbus/dbus-dataslot.c:
11712 Threadsafe usage of DBusDataSlotAllocator
11714 * dbus/dbus-message.c: (dbus_message_get_args_iter):
11717 * dbus/dbus-server-unix.c:
11720 * glib/dbus-gmain.c:
11721 Implement the new wakeup functions for glib.
11723 * glib/Makefile.am:
11724 * glib/test-thread-client.c:
11725 * glib/test-thread-server.c:
11726 * glib/test-thread.h:
11727 Initial cut at some thread test code. Not really done yet.
11729 2003-02-26 Havoc Pennington <hp@pobox.com>
11731 * dbus/dbus-connection.c
11732 (dbus_connection_send_message_with_reply_and_block): fix crash
11733 where we ref'd the outgoing message instead of the returned reply
11735 * dbus/dbus-transport-unix.c (do_authentication): check read watch
11736 at the end of this function, so if we didn't need to read for
11737 authentication, we reinstall it for receiving messages
11739 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11740 a NULL sender for peer-to-peer case
11742 * dbus/dbus-transport-unix.c (check_read_watch): handle
11743 !authenticated case correctly
11745 * glib/dbus-gmain.c: add support for DBusServer
11747 * dbus/dbus-server.c: add data slot support
11749 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11750 return values and handle errors
11752 * dbus/dbus-dataslot.c: factor out the data slot stuff from
11755 * Doxyfile.in (INPUT): add glib subdir
11757 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11758 setup_with_g_main instead of hookup_with_g_main; write docs
11760 2003-02-24 Anders Carlsson <andersca@codefactory.se>
11762 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11763 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11764 * dbus/dbus-message.c: (dbus_message_append_boolean),
11765 (dbus_message_append_boolean_array),
11766 (dbus_message_get_args_valist), (_dbus_message_test):
11767 * dbus/dbus-message.h:
11768 * doc/dbus-specification.sgml:
11769 Various fixes as pointed out by Havoc.
11771 * test/data/invalid-messages/bad-boolean-array.message:
11772 * test/data/invalid-messages/bad-boolean.message:
11773 Add invalid boolean value test cases.
11775 2003-02-24 Anders Carlsson <andersca@codefactory.se>
11777 * dbus/dbus-internals.c: (_dbus_type_to_string):
11778 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11779 (_dbus_marshal_validate_arg):
11780 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11781 * dbus/dbus-message.c: (dbus_message_append_args_valist),
11782 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11783 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11784 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11785 (dbus_message_iter_get_double),
11786 (dbus_message_iter_get_boolean_array), (message_iter_test):
11787 * dbus/dbus-message.h:
11788 * dbus/dbus-protocol.h:
11789 * doc/dbus-specification.sgml:
11790 * test/data/valid-messages/lots-of-arguments.message:
11791 Add support for boolean and boolean array types.
11793 2003-02-23 Havoc Pennington <hp@pobox.com>
11795 * dbus/dbus-keyring.c: finish most of this implementation and
11798 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11799 these barf if the error isn't cleared to NULL
11801 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11802 (_dbus_create_directory): new function
11804 * dbus/dbus-errors.c (dbus_set_error): fix warning
11806 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11807 (_dbus_string_hex_decode): new function
11808 (test_hex_roundtrip): test code
11810 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11812 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11814 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11815 the save-to-temp/rename trick to atomically write the new file
11816 (_dbus_string_parse_uint): new function
11818 2003-02-22 Havoc Pennington <hp@pobox.com>
11820 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11822 2003-02-22 Havoc Pennington <hp@pobox.com>
11824 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11825 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11827 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11829 * dbus/test/data/sha-1: add US government test suite for SHA-1
11831 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11833 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11834 Make string arrays NULL-terminated.
11836 * dbus/dbus-memory.c: (dbus_free_string_array):
11837 * dbus/dbus-memory.h:
11838 New function for freeing NULL-terminated string arrays.
11840 * dbus/dbus-message-builder.c: (append_quoted_string),
11841 (_dbus_message_data_load):
11842 Add support for array types.
11844 * dbus/dbus-message.c: (check_message_handling):
11845 Add more types as test cases.
11847 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11848 (_dbus_string_parse_double):
11849 Add the start offset to the end offset.
11851 * test/data/valid-messages/lots-of-arguments.message:
11852 New test message with lots of arguments.
11854 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11856 * dbus/dbus-message.c: (dbus_message_append_nil),
11857 (dbus_message_append_int32), (dbus_message_append_uint32),
11858 (dbus_message_append_double), (dbus_message_append_string),
11859 (dbus_message_append_int32_array),
11860 (dbus_message_append_uint32_array),
11861 (dbus_message_append_double_array),
11862 (dbus_message_append_byte_array),
11863 (dbus_message_append_string_array):
11864 Fix all out-of-memory handling in these functions.
11866 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11868 * dbus/dbus-message.c: (dbus_message_append_nil):
11871 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11873 * dbus/dbus-message.c: (dbus_message_append_args_valist),
11874 (dbus_message_append_nil), (dbus_message_append_int32_array),
11875 (dbus_message_append_uint32_array),
11876 (dbus_message_append_double_array),
11877 (dbus_message_append_byte_array),
11878 (dbus_message_append_string_array), (dbus_message_get_args_valist),
11879 (dbus_message_iter_get_int32_array),
11880 (dbus_message_iter_get_uint32_array),
11881 (dbus_message_iter_get_double_array),
11882 (dbus_message_iter_get_byte_array),
11883 (dbus_message_iter_get_string_array):
11885 * dbus/dbus-message.h:
11886 Add functions for appending and getting arrays.
11888 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11890 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11891 element size at least 8 bytes, fixes mempool tests on
11894 2003-02-20 Alexander Larsson <alexl@redhat.com>
11896 * dbus/dbus-transport-unix.c (unix_do_iteration):
11897 Unlock the connection mutex during a blocking select call.
11898 Add todo about how we need a way to wake up the select.
11900 * dbus/dbus-connection-internal.h:
11901 * dbus/dbus-connection.c:
11902 Add _dbus_connection_lock and _dbus_connection_unlock.
11904 2003-02-19 Havoc Pennington <hp@pobox.com>
11906 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11907 Doxyfile.in, not Doxyfile
11909 * dbus/dbus-keyring.c: do some hacking on this
11911 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11913 * dbus/dbus-errors.c (dbus_set_error_const): do not call
11915 (dbus_set_error): remove dbus_error_init, check for message ==
11916 NULL *before* we sprintf into it, and add @todo about including
11917 system headers in this file
11919 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11921 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11923 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11924 get various bits of user information based on either username
11926 (_dbus_homedir_from_username): new function
11928 2003-02-19 Anders Carlsson <andersca@codefactory.se>
11931 Add check for nonposix getpwnam_r
11933 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11934 Align the pool element size to a sizeof (void *) boundary.
11936 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11937 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11938 General Solaris fixes.
11940 * test/data/valid-messages/simplest-manual.message:
11941 Explicitly state that we want little-endian packing.
11943 2003-02-19 Mikael Hallendal <micke@codefactory.se>
11945 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11947 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11948 Added to create a transport connecting using a tcp/ip socket.
11950 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11951 to a tcp socket at given host and port.
11952 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11955 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11957 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11958 Added to create a server listening on a TCP/IP socket.
11960 2003-02-19 Havoc Pennington <hp@pobox.com>
11962 Throughout: mop up all the Doxygen warnings and undocumented
11965 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11966 to search any paths.
11968 * dbus/dbus-threads.c: move global mutex initializers to
11969 dbus-internals.h, multiple prototypes was confusing doxygen
11970 besides being kind of ugly
11972 * Doxyfile (PREDEFINED): have Doxygen define
11973 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11974 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11975 (do not abuse the feature! it's for stuff like the autogenerated
11976 macros in dbus-md5.c, not just for things you don't feel like
11979 2003-02-18 Havoc Pennington <hp@pobox.com>
11981 * dbus/dbus-string.c (_dbus_string_zero): new function
11983 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11984 wrap it in some dbus-friendly API
11986 * dbus/dbus-types.h: add 16-bit types
11988 2003-02-18 Joe Shaw <joe@assbarn.com>
11990 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11991 credentials from our currently running process.
11992 (get_word): Fix a buglet where we were copying the entire length
11993 instead of relative to our position.
11995 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11996 keys on the stack... it's 640k of data.
11998 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11999 read the credentials byte off the socket, even if we don't have
12001 (_dbus_poll): Implement poll() using select() for systems which
12004 * glib/test-dbus-glib.c (main): Print out an error if no
12005 parameters are given.
12007 * test/data/auth/fallback.auth-script: Added. Tests that a client
12008 can fallback to a secondary auth mechanism if the first fails.
12010 2003-02-18 Havoc Pennington <hp@pobox.com>
12012 * AUTHORS: add Alex
12014 2003-02-17 Havoc Pennington <hp@pobox.com>
12016 * doc/dbus-specification.sgml: lots of cosmetic
12017 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12018 env variable to DBUS_BUS_ADDRESS, s/client/application/,
12019 s/server/bus/ (except in authentication section). Add a section
12020 "Message Bus Message Routing"
12022 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
12028 2003-02-17 Anders Carlsson <andersca@codefactory.se>
12030 * doc/dbus-specification.sgml:
12031 Specification updates.
12033 2003-02-17 Anders Carlsson <andersca@codefactory.se>
12035 * bus/activation.c: (bus_activation_init), (child_setup),
12036 (bus_activation_activate_service):
12037 * bus/activation.h:
12038 * bus/main.c: (main):
12039 Set DBUS_ADDRESS environment variable.
12041 * dbus/dbus-errors.c: (dbus_set_error):
12042 Don't use va_copy since that's a C99 feature.
12044 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
12045 (_dbus_spawn_async):
12046 * dbus/dbus-sysdeps.h:
12047 Add child_setup_func to _dbus_spawn_async.
12049 * doc/dbus-specification.sgml:
12050 Update specification.
12052 * test/spawn-test.c: (setup_func), (main):
12055 2003-02-17 Alexander Larsson <alexl@redhat.com>
12057 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
12060 2003-02-17 Anders Carlsson <andersca@codefactory.se>
12064 * doc/dbus-test-plan.sgml:
12065 Add test plan document.
12067 * test/Makefile.am:
12070 2003-02-17 Anders Carlsson <andersca@codefactory.se>
12072 * dbus/dbus-message.c: (decode_header_data),
12073 (_dbus_message_loader_return_buffer):
12074 Set the header padding amount when loading a message.
12076 2003-02-16 Anders Carlsson <andersca@codefactory.se>
12078 * bus/dispatch.c: (send_one_message):
12079 Only send broadcast messages to registered connections.
12081 * dbus/dbus-message.c: (dbus_message_name_is):
12082 * dbus/dbus-message.h:
12083 New convenience function.
12085 * dbus/dbus-transport-debug.c: (do_reading):
12086 Only dispatch one message per run.
12088 * test/Makefile.am:
12089 * test/bus-test.c: (new_connection_callback), (die),
12090 (test_hello_client1_handler), (test_hello_client2_handler),
12091 (test_hello_replies), (main):
12093 * test/bus-test-loop.[ch]:
12096 2003-02-16 Havoc Pennington <hp@pobox.com>
12098 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12099 backward conditional
12101 2003-02-16 Alexander Larsson <alexl@redhat.com>
12103 * dbus/dbus-connection.c:
12104 Implement sent_message_with_reply. (with_reply_and block is still
12106 Made dispatch_message not lose message if OOM.
12108 * dbus/dbus-errors.h:
12109 Add NoReply error (for reply timeouts).
12111 2003-02-16 Alexander Larsson <alexl@redhat.com>
12113 * dbus/dbus-hash.c (_dbus_hash_table_unref):
12114 Actually free keys and values when destroying hashtable.
12116 2003-02-16 Anders Carlsson <andersca@codefactory.se>
12118 * dbus/dbus-auth.c: (client_try_next_mechanism):
12121 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12122 Return TRUE if there's no thread implementation around.
12124 * glib/dbus-gmain.c: (free_source),
12125 (dbus_connection_hookup_with_g_main):
12126 Make sure to remove the GSource when the connection is finalized.
12128 2003-02-16 Anders Carlsson <andersca@codefactory.se>
12130 * bus/dispatch.c: (bus_dispatch_message_handler):
12131 * dbus/dbus-errors.h:
12132 Return an error if someone tries to send a message to a service
12133 that doesn't exist.
12135 2003-02-16 Anders Carlsson <andersca@codefactory.se>
12137 * bus/activation.c: (load_directory), (bus_activation_init),
12138 (bus_activation_activate_service):
12139 * bus/activation.h:
12141 (bus_driver_handle_activate_service), (bus_driver_handle_message):
12142 More work on the activation handling.
12144 * dbus/dbus-errors.h:
12145 Add some error messages
12147 * dbus/dbus-message.c: (dbus_message_new_error_reply):
12148 * dbus/dbus-message.h:
12149 New function that creates an error message.
12151 * dbus/dbus-protocol.h:
12152 Add ACTIVATE_SERVER message.
12154 * dbus/dbus-server-unix.c: (unix_handle_watch),
12155 (_dbus_server_new_for_domain_socket):
12156 Call _dbus_fd_set_close_on_exec.
12158 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12159 (_dbus_spawn_async), (_dbus_disable_sigpipe),
12160 (_dbus_fd_set_close_on_exec):
12161 * dbus/dbus-sysdeps.h:
12162 Add _dbus_fd_set_close_on exec function. Also add function that checks
12163 that all open fds are set to close-on-exec and warns otherwise.
12165 * dbus/dbus-transport-unix.c:
12166 (_dbus_transport_new_for_domain_socket):
12167 Call _dbus_fd_set_close_on_exec.
12169 2003-02-16 Havoc Pennington <hp@pobox.com>
12171 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12172 allow people to avoid setting SIGPIPE to SIG_IGN
12173 (_dbus_connection_new_for_transport): disable SIGPIPE unless
12174 we've been asked not to
12176 2003-02-15 Anders Carlsson <andersca@codefactory.se>
12178 * dbus/dbus-list.c: (_dbus_list_append_link),
12179 (_dbus_list_prepend_link):
12180 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12184 2003-02-15 Anders Carlsson <andersca@codefactory.se>
12187 * bus/activation.c: (bus_activation_entry_free),
12188 (add_desktop_file_entry), (load_directory), (bus_activation_init):
12189 * bus/activation.h:
12190 * bus/main.c: (main):
12191 Add simple activation support, doesn't work yet though.
12193 2003-02-15 Zack Rusin <zack@kde.org>
12195 * qt/dbus-qthread.cpp: small casting fix
12197 2003-02-15 Anders Carlsson <andersca@codefactory.se>
12199 * dbus/dbus-errors.c: (dbus_set_error):
12200 * dbus/dbus-errors.h:
12201 Add a few errors and make dbus_set_error void.
12203 * dbus/dbus-sysdeps.c:
12204 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12205 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12206 * dbus/dbus-sysdeps.h:
12207 Add _dbus_spawn_async.
12209 * test/spawn-test.c: (main):
12210 Test for _dbus_spawn_async.
12212 2003-02-15 Anders Carlsson <andersca@codefactory.se>
12214 * dbus/dbus-internals.h:
12215 Fix build without tests.
12217 * dbus/dbus-list.c: (alloc_link):
12218 Fix a segfault when a malloc fails.
12220 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12221 (dbus_malloc0), (dbus_realloc):
12222 Add support for malloc debugging.
12224 2003-02-15 Alexander Larsson <alexl@redhat.com>
12226 * dbus/dbus-threads.c:
12227 * dbus/dbus-threads.h:
12228 Add condvars. Remove static mutext from API.
12229 Implement static mutexes by initializing them from threads_init.
12231 * glib/dbus-gthread.c:
12232 * qt/dbus-qthread.cpp:
12233 Update with the thread api changes.
12236 * dbus/dbus-list.c:
12237 * dbus/dbus-list.h:
12238 Turn StaticMutex into normal mutex + init function.
12239 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12240 _dbus_list_append_link, _dbus_list_prepend_link
12243 * dbus/dbus-sysdeps.c:
12244 * dbus/dbus-sysdeps.h:
12245 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12246 _dbus_atomic_dec. Only slow fallback implementation at the moment.
12248 * dbus/dbus-protocol.h:
12249 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12251 * dbus/dbus-message.c:
12252 Make ref/unref atomic.
12255 * dbus/dbus-connection-internal.h:
12256 * dbus/dbus-connection.c:
12257 * dbus/dbus-connection.h:
12259 Change _peek to _borrow,_return & _steal_borrowed.
12260 Change disconnect callback to event.
12261 Make dbus_connection_dispatch_messages reentrant.
12263 * dbus/dbus-transport.c:
12264 Don't ref the connection on calls to the transport
12267 * dbus/dbus-message-handler.c:
12270 * glib/dbus-gmain.c:
12271 Don't use peek_message anymore
12273 * test/Makefile.am:
12274 * test/debug-thread.c:
12275 * test/debug-thread.h:
12276 Simple thread implementation that asserts() on deadlocks in
12277 single-threaded code.
12280 (main) Call debug_threads_init.
12283 Use disconnect message instead of disconnect callback.
12285 * bus/connection.c:
12286 * bus/connection.h:
12287 Don't call dbus_connection_set_disconnect_function. Instead export
12288 bus_connection_disconnect.
12291 Call bus_connection_disconnect when we get a disconnected message.
12293 2003-02-15 Havoc Pennington <hp@pobox.com>
12295 * dbus/dbus-message.c (dbus_message_new): fool around with the
12298 2003-02-14 Havoc Pennington <hp@pobox.com>
12300 * dbus/dbus-mempool.c: fail if the debug functions so indicate
12302 * dbus/dbus-memory.c: fail if the debug functions indicate we
12305 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12306 (_dbus_decrement_fail_alloc_counter): debug functions to
12307 simulate memory allocation failures
12309 2003-02-14 Havoc Pennington <hp@pobox.com>
12311 * dbus/dbus-errors.h (struct DBusError): add a word of padding
12314 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12316 * bus/driver.c: (bus_driver_handle_hello):
12318 * bus/services.c: (bus_service_lookup):
12319 Reorder message sending so we get a more sane order.
12321 * test/bus-test.c: (message_handler):
12324 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12326 * bus/driver.c: (bus_driver_send_service_deleted),
12327 (bus_driver_send_service_created), (bus_driver_send_service_lost),
12328 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12329 (bus_driver_send_welcome_message),
12330 (bus_driver_handle_list_services),
12331 (bus_driver_handle_acquire_service),
12332 (bus_driver_handle_service_exists):
12333 * dbus/dbus-bus.c: (dbus_bus_register_client),
12334 (dbus_bus_acquire_service), (dbus_bus_service_exists):
12335 * dbus/dbus-errors.c: (dbus_result_to_string):
12336 * dbus/dbus-errors.h:
12337 * dbus/dbus-message.c: (dbus_message_append_args),
12338 (dbus_message_append_args_valist), (dbus_message_get_args),
12339 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12340 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12341 (dbus_message_iter_get_byte_array),
12342 (dbus_message_iter_get_string_array), (message_iter_test),
12343 (check_message_handling), (_dbus_message_test):
12344 * dbus/dbus-message.h:
12345 * test/bus-test.c: (main):
12346 Change fields to arguments in messages, so that they won't be
12347 confused with header fields.
12349 * glib/test-dbus-glib.c: (main):
12350 Remove append_fields from hello message.
12352 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12354 * dbus/dbus-errors.c:
12355 * dbus/dbus-message.c:
12356 * dbus/dbus-string.c:
12357 Documentation fixes.
12359 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12361 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12363 Implement support for timeouts in dbus-glib.
12365 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12367 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12368 * dbus/dbus-message.c: (process_test_subdir):
12369 * test/break-loader.c: (find_breaks_based_on):
12370 Plug some memory leaks.
12372 2003-02-13 Richard Hult <rhult@codefactory.se>
12374 * bus/main.c: Fix build.
12376 * dbus/dbus-errors.h:
12377 * dbus/dbus-errors.c: Fix copyright for Anders.
12379 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12384 * bus/connection.c: (bus_connection_foreach):
12387 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12388 (unescape_string), (new_section), (parse_section_start),
12389 (parse_key_value), (report_error), (bus_desktop_file_load),
12390 (bus_desktop_file_get_string):
12391 * bus/desktop-file.h:
12392 Use DBusError for error reporting.
12394 * bus/dispatch.c: (send_one_message),
12395 (bus_dispatch_message_handler):
12396 * bus/driver.c: (bus_driver_send_service_deleted),
12397 (bus_driver_send_service_created), (bus_driver_send_service_lost),
12398 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12399 (bus_driver_send_welcome_message),
12400 (bus_driver_handle_list_services),
12401 (bus_driver_handle_acquire_service),
12402 (bus_driver_handle_service_exists):
12403 * bus/loop.c: (bus_loop_run):
12405 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12407 * bus/utils.c: (bus_wait_for_memory):
12409 New files with general utility functions.
12411 * dbus/dbus-internals.h:
12412 Remove _DBUS_HANDLE_OOM.
12414 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12416 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12417 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12418 * dbus/dbus-errors.h:
12419 Add DBusError structure.
12421 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12423 * test/data/valid-messages/standard-acquire-service.message:
12424 * test/data/valid-messages/standard-hello.message:
12425 * test/data/valid-messages/standard-list-services.message:
12426 * test/data/valid-messages/standard-service-exists.message:
12427 Add some standard messages.
12429 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12431 * bus/driver.c: (bus_driver_send_welcome_message),
12432 (bus_driver_handle_list_services),
12433 (bus_driver_handle_acquire_service),
12434 (bus_driver_handle_service_exists), (bus_driver_handle_message):
12435 Update for API changes in libdbus.
12437 * dbus/dbus-message.c: (dbus_message_new_reply):
12438 * dbus/dbus-message.h:
12439 Remove the name argument. The spec states that replies shouldn't
12442 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12444 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12445 (report_error), (bus_desktop_file_load), (lookup_section),
12446 (lookup_line), (bus_desktop_file_get_raw),
12447 (bus_desktop_file_get_string):
12448 * bus/desktop-file.h:
12449 Some fixes, and new functions for getting a key value from a section.
12451 2003-02-13 Havoc Pennington <hp@pobox.com>
12453 * test/data/auth/fail-after-n-attempts.auth-script: new test
12455 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12458 2003-02-13 Havoc Pennington <hp@pobox.com>
12460 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12461 dbus_credentials_match were backward
12463 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12464 NO_CREDENTIALS and ROOT_CREDENTIALS
12466 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12467 into here. Never process more commands after we've reached an
12468 end state; store further data as unused bytes.
12470 * test/data/auth/*: add more auth tests
12472 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12473 command to match exact string and EXPECT_UNUSED to match unused
12476 * test/Makefile.am (dist-hook): fix to dist all the test stuff
12478 2003-02-12 Havoc Pennington <hp@pobox.com>
12480 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12481 \r off of popped lines
12483 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12486 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12489 2003-02-12 Havoc Pennington <hp@pobox.com>
12491 * dbus/Makefile.am: remove break-loader from the build, since it
12494 * configure.in: add --enable-gcov to turn on coverage profiling
12495 flags and disable optimization
12497 2003-02-10 Havoc Pennington <hp@pobox.com>
12499 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12500 initial cut at test framework for DBusAuth from laptop.
12501 Doesn't quite work yet but it compiles and I need to get
12502 it off the 266mhz laptop. ;-)
12504 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12505 fix a memleak in error case
12507 2003-02-12 Anders Carlsson <andersca@codefactory.se>
12510 * bus/desktop-file.c:
12511 * bus/desktop-file.h:
12512 Add a desktop file parser.
12514 2003-02-11 Zack Rusin <zack@kde.org>
12516 * qt/message.[h|cpp]: sample implementation
12517 of the KDE wrapper for DBusMessage
12519 2003-02-09 Zack Rusin <zack@kde.org>
12521 * test/bus-test.c: make_it_compile
12522 * doc/dbus-specification.sgml: minimal semantic fix
12524 2003-02-06 Anders Carlsson <andersca@codefactory.se>
12530 2003-02-06 Anders Carlsson <andersca@codefactory.se>
12532 * dbus/Makefile.am:
12533 * dbus/dbus-break-loader.c:
12534 * test/Makefile.am:
12535 * test/break-loader.c:
12536 Move dbus-break-loader to test/ and rename it to break-loader.
12538 2003-02-02 Havoc Pennington <hp@pobox.com>
12540 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12541 for code to manage cookies in your home directory
12543 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12545 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12546 to authenticate, then disconnect the client.
12548 2003-02-03 Alexander Larsson <alexl@redhat.com>
12550 * dbus/dbus-message.c (dbus_message_append_fields):
12553 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12555 * doc/dbus-specification.sgml:
12556 Update address format section.
12558 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12560 * test/Makefile.am:
12561 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12562 (message_handler), (new_connection_callback), (loop_quit),
12563 (loop_run), (main):
12566 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12568 * bus/driver.c: (bus_driver_handle_service_exists):
12569 Simplify the code a bit.
12571 * dbus/dbus-bus.c: (dbus_bus_service_exists):
12574 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12577 Add libdbus-daemon.la and link to it.
12579 2003-02-01 James Willcox <jwillcox@gnome.org>
12581 * bus/driver.c: (bus_driver_handle_own_service):
12582 Actually include the service reply code in the message.
12584 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12586 * bus/driver.c: (bus_driver_handle_service_exists):
12587 Don't unref the incoming message.
12589 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12591 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12593 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12595 * dbus/dbus-server.c: (dbus_server_listen):
12596 * dbus/dbus-transport.c: (_dbus_transport_open):
12597 ifdef out the calls to the debug transport and server.
12599 2003-02-02 Alexander Larsson <alexl@redhat.com>
12601 * dbus/dbus-watch.c (dbus_watch_get_flags):
12602 Add note in the docs that ERROR or HANGUP won't be returned
12603 and are assumed always on.
12605 * glib/dbus-gmain.c (add_watch):
12606 Always add IO_ERR | IO_HUP
12608 * dbus/dbus-message.h:
12609 Add semicolon after dbus_message_iter_get_string_array().
12610 Makes qt code build again
12612 2003-02-01 Anders Carlsson <andersca@codefactory.se>
12614 * bus/driver.c: (create_unique_client_name),
12615 (bus_driver_handle_hello):
12616 Don't take a name, just use a numeric id to identify
12619 * dbus/Makefile.am:
12620 * dbus/dbus-bus.c: (dbus_bus_register_client),
12621 (dbus_bus_acquire_service), (dbus_bus_service_exists):
12623 Add new convenience functions for communicating with the bus.
12625 * dbus/dbus-message.h:
12627 * dbus/dbus-protocol.h:
12630 2003-02-01 Alexander Larsson <alexl@redhat.com>
12632 * dbus/dbus-message.c (dbus_message_append_fields):
12633 Add some more doc comments.
12635 2003-02-01 Havoc Pennington <hp@pobox.com>
12637 * dbus/dbus-break-loader.c (randomly_modify_length): change
12638 a 4-byte value in the message as if it were a length
12640 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12641 execute bit on saved files
12643 2003-02-01 Havoc Pennington <hp@pobox.com>
12645 * dbus/dbus-break-loader.c (main): new program to find messages
12646 that break the loader.
12648 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12649 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12651 * dbus/dbus-string.c (_dbus_string_set_byte): new
12653 2003-01-31 Havoc Pennington <hp@pobox.com>
12655 * dbus/dbus-message.c: refactor the test code to be more general,
12656 in preparation for writing a "randomly permute test cases to
12657 try to break the loader" program.
12659 2003-01-31 Havoc Pennington <hp@pobox.com>
12661 * doc/dbus-specification.sgml: work on the specification
12663 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12664 the protocol version of the message.
12666 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12667 no longer specifies that.
12668 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12671 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12672 "break" for DBUS_TYPE_NIL, remove @todo
12674 2003-01-31 Havoc Pennington <hp@pobox.com>
12676 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12677 just set_is_error/get_is_error as this is a commonly-used
12678 function, and write docs.
12680 2003-01-31 Anders Carlsson <andersca@codefactory.se>
12682 * dbus/dbus-address.c: (dbus_address_entry_free):
12683 Free key and value lists.
12685 * dbus/dbus-internals.c: (_dbus_type_to_string):
12686 Add the types we didn't have.
12688 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12689 (_dbus_marshal_validate_arg):
12692 * dbus/dbus-message.c: (dbus_message_set_sender):
12693 Remove todo about being able to set sender to NULL.
12695 (dbus_message_set_is_error_reply),
12696 (dbus_message_get_is_error_reply):
12697 * dbus/dbus-message.h:
12700 * dbus/dbus-protocol.h:
12701 Add error reply flag.
12703 * test/data/valid-messages/opposite-endian.message:
12704 Add NIL type to test.
12706 2003-01-31 Havoc Pennington <hp@pobox.com>
12708 * doc/dbus-specification.sgml: fully specify the header. Add
12709 flags and major protocol version, and change header/body len to
12712 * dbus/dbus-message-builder.c (append_saved_length): append length
12715 * dbus/dbus-message.c (dbus_message_create_header): change header
12716 length and body length to unsigned. Add the new fields from the
12718 (_dbus_message_loader_return_buffer): unsigned header/body len
12720 2003-01-30 Havoc Pennington <hp@pobox.com>
12722 * dbus/dbus-auth.c: rework to use only REJECTED, no
12725 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12726 use REJECTED, suggested by Mark McLoughlin
12728 2003-01-30 Havoc Pennington <hp@pobox.com>
12730 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12731 a better way to report errors here. e.g. "unix address lacks
12732 path" or something. also "no such file" when the path doesn't
12735 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12737 (dbus_parse_address): add @todo about documenting address format,
12738 and allowing , and ; to be escaped
12740 2003-01-30 Anders Carlsson <andersca@codefactory.se>
12742 * dbus/Makefile.am:
12743 Add dbus-address.[ch]
12745 * dbus/dbus-address.c: (dbus_address_entry_free),
12746 (dbus_address_entries_free), (create_entry),
12747 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12748 (dbus_parse_address), (_dbus_address_test):
12749 * dbus/dbus-address.h:
12750 New files for dealing with address parsing.
12752 * dbus/dbus-connection.c:
12753 Document timeout functions.
12755 * dbus/dbus-message.c:
12756 Document dbus_message_new_from_message.
12758 * dbus/dbus-server-debug.c:
12761 * dbus/dbus-server.c: (dbus_server_listen):
12762 Parse address and use correct server implementation.
12764 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12765 * dbus/dbus-string.h:
12766 New function with test.
12768 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12769 * dbus/dbus-test.h:
12772 * dbus/dbus-transport-debug.c:
12775 * dbus/dbus-transport.c: (_dbus_transport_open):
12776 Parse address and use correct transport implementation.
12778 2003-01-30 Havoc Pennington <hp@pobox.com>
12780 * dbus/dbus-message.c: use message->byte_order instead of
12781 DBUS_COMPILER_BYTE_ORDER throughout.
12782 (dbus_message_create_header): pad header to align the
12783 start of the body of the message to 8-byte boundary
12785 * dbus/dbus-marshal.h: make all the demarshalers take const
12786 DBusString arguments.
12788 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12789 validate message args here, so we don't have to do slow validation
12790 later, and so we catch bad messages as they are incoming. Also add
12791 better checks on header_len and body_len. Also fill in
12792 message->byte_order
12794 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12795 implemented properly)
12796 (_dbus_string_validate_nul): new function to check all-nul
12798 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12799 get_arg_end_pos and remove all validation
12800 (_dbus_marshal_validate_arg): actually do validation here.
12802 2003-01-29 Havoc Pennington <hp@pobox.com>
12804 * dbus/dbus-message.c (check_message_handling): fix assertion
12805 failure on set_client_serial
12807 2003-01-28 Havoc Pennington <hp@pobox.com>
12809 * dbus/dbus-server-debug.c: Add doc section comments
12811 * dbus/dbus-transport-debug.c: add doc section comments
12813 2003-01-28 Havoc Pennington <hp@redhat.com>
12815 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12816 the reverse order from how I had it
12817 (_dbus_string_base64_encode): reverse encoding order. I was
12818 basically byteswapping everything during encoding.
12820 2003-01-28 Anders Carlsson <andersca@codefactory.se>
12822 * dbus/dbus-connection-internal.h:
12823 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12824 (_dbus_connection_remove_timeout):
12825 Add functions for adding and removing timeouts.
12827 * dbus/dbus-message.c: (dbus_message_new_from_message):
12828 Add new function that takes a message and creates an exact
12829 copy of it, but with the refcount set to 1.
12830 (check_message_handling):
12833 * dbus/dbus-server-protected.h:
12834 * dbus/dbus-server.c: (_dbus_server_init_base),
12835 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12836 (dbus_server_set_timeout_functions):
12837 (_dbus_server_remove_timeout):
12838 New functions so that a server can add and remove timeouts.
12840 (dbus_server_listen):
12841 Add commented out call to dbus_server_debug_new.
12843 * dbus/dbus-timeout.c: (_dbus_timeout_new):
12844 Actually set the handler, doh.
12846 * dbus/dbus-transport.c: (_dbus_transport_open):
12847 Add commented out call to dbus_transport_debug_client_new.
12849 * dbus/Makefile.am:
12850 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12852 2003-01-28 Havoc Pennington <hp@pobox.com>
12854 * dbus/dbus-message.c (check_message_handling): function to check
12855 on the loaded message, iterates over it etc.
12857 2003-01-28 Havoc Pennington <hp@pobox.com>
12859 * test/Makefile.am (dist-hook): fix make distdir
12861 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12863 2003-01-27 Havoc Pennington <hp@pobox.com>
12865 * dbus/dbus-mempool.c (time_for_size): replace printf with
12868 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12869 empty lines; fix the SAVE_LENGTH stuff to be
12870 START_LENGTH/END_LENGTH so it actually works; couple other
12873 * test/Makefile.am (dist-hook): add dist-hook for .message files
12875 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12876 can be constant or locked.
12877 (_dbus_string_free): allow freeing a const string as
12878 documented/intended
12880 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12882 * dbus/dbus-test-main.c (main): take an argument which is the
12883 directory containing test data
12885 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12886 argument to this and load all the messages in test/data/
12887 checking that they can be loaded or not loaded as appropriate.
12889 2003-01-27 Anders Carlsson <andersca@codefactory.se>
12891 * bus/dispatch.c: (bus_dispatch_message_handler):
12892 Dispatch messages sent to services.
12894 * bus/driver.c: (bus_driver_send_service_deleted),
12895 (bus_driver_send_service_created), (bus_driver_send_service_lost),
12896 (bus_driver_send_service_acquired):
12897 Add helper functions for sending service related messages.
12899 (bus_driver_send_welcome_message):
12900 Send HELLO_REPLY instead of WELCOME.
12902 (bus_driver_handle_list_services):
12903 Send LIST_SERVICES_REPLY instead of SERVICES.
12905 (bus_driver_handle_own_service),
12906 (bus_driver_handle_service_exists):
12907 New message handlers.
12909 (bus_driver_handle_message):
12910 Invoke new message handlers.
12912 (bus_driver_remove_connection):
12913 Don't remove any services here since that's done automatically
12914 by bus_service_remove_owner now.
12917 New function signatures.
12919 * bus/services.c: (bus_service_add_owner):
12920 Send ServiceAcquired message if we're the only primary owner.
12922 (bus_service_remove_owner):
12923 Send ServiceAcquired/ServiceLost messages.
12925 (bus_service_set_prohibit_replacement),
12926 (bus_service_get_prohibit_replacement):
12927 Functions for setting prohibit replacement.
12929 (bus_service_has_owner):
12930 New function that checks if a connection is in the owner queue of
12934 Add new function signatures.
12936 * dbus/dbus-list.c: (_dbus_list_test):
12937 Add tests for _dbus_list_remove_last and traversing the list backwards.
12939 * dbus/dbus-list.h:
12940 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12941 go any further, so return NULL then.
12943 * dbus/dbus-protocol.h:
12944 Add new messages, service flags and service replies.
12946 2003-01-26 Havoc Pennington <hp@pobox.com>
12948 * dbus/dbus-message-builder.c: implement, completely untested.
12950 * test/data/*: add data to be used in testing.
12951 ".message" files are our simple loadable text format.
12952 ".message-raw" will be binary dumps of messages.
12954 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12956 2003-01-26 Havoc Pennington <hp@pobox.com>
12958 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12960 * dbus/dbus-errors.c (dbus_result_to_string): add
12963 * dbus/dbus-message-builder.c: new file, will contain code to load
12964 up messages from files. Not implemented yet.
12966 2003-01-26 Havoc Pennington <hp@pobox.com>
12968 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12969 the sender by setting to NULL
12971 2003-01-26 Havoc Pennington <hp@pobox.com>
12973 The unit tests pass, but otherwise untested. If it breaks, the
12974 tests should have been better. ;-)
12976 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12979 * dbus/dbus-message.c: redo everything so we maintain
12980 message->header as the only copy of the various fields.
12981 This avoids the possibility of out-of-memory in some cases,
12982 for example dbus_message_lock() can't run out of memory anymore,
12983 and avoids extra copying. Figured I may as well go ahead and do
12984 this since it was busted for dbus_message_lock to not return
12985 failure on OOM, and dbus_message_write_header was totally
12986 unchecked for OOM. Also fixed some random other bugs.
12988 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12989 that strings are nul-terminated. Also, end_pos can be equal
12990 to string length just not greater than, I think.
12991 (_dbus_marshal_set_int32): new function
12992 (_dbus_marshal_set_uint32): new function
12993 (_dbus_marshal_set_string): new function
12995 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12996 a warning, init timeout_list to NULL
12997 (dbus_connection_send_message): don't use uninitialized variable
13000 * dbus/dbus-string.c (_dbus_string_replace_len): new function
13002 2003-01-26 Anders Carlsson <andersca@codefactory.se>
13004 * bus/driver.c: (bus_driver_handle_hello),
13005 (bus_driver_send_welcome_message):
13008 2003-01-26 Anders Carlsson <andersca@codefactory.se>
13010 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13011 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13012 (dbus_connection_unref):
13013 * dbus/dbus-marshal.c: (_dbus_marshal_test):
13014 * dbus/dbus-message.c: (dbus_message_unref),
13017 (dbus_message_get_fields):
13018 Remove debugging printout.
13020 (_dbus_message_loader_return_buffer):
13021 Don't store the header string.
13023 (_dbus_message_test):
13026 2003-01-26 Richard Hult <rhult@codefactory.se>
13028 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13029 the file descriptor list, since it can change under us.
13031 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13033 * glib/dbus-gmain.c: (dbus_connection_prepare),
13034 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
13035 (remove_watch), (dbus_connection_hookup_with_g_main):
13036 Rewrite the glib handling to use its own GSource instead of a
13037 GIOChannel so we can catch messages put in the queue while waiting
13040 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13043 * bus/connection.c: (connection_disconnect_handler),
13044 (connection_watch_callback), (bus_connection_setup):
13045 * bus/dispatch.c: (send_one_message),
13046 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
13047 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
13049 * bus/driver.c: (bus_driver_send_service_deleted),
13050 (bus_driver_send_service_created), (bus_driver_handle_hello),
13051 (bus_driver_send_welcome_message),
13052 (bus_driver_handle_list_services), (bus_driver_remove_connection),
13053 (bus_driver_handle_message):
13055 Refactor code, put the message dispatching in its own file. Use
13056 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
13059 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13061 * dbus/dbus-internals.h:
13062 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13064 * dbus/dbus-message.c: (dbus_message_get_sender):
13065 * dbus/dbus-message.h:
13066 Implement dbus_message_get_sender.
13068 * dbus/dbus-protocol.h:
13069 Add message and service defines.
13071 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13073 * dbus/dbus-connection.c: (dbus_connection_send_message):
13074 * dbus/dbus-message-internal.h:
13075 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13076 (dbus_message_write_header):
13077 Remove _dbus_messag_unlock and don't set the client serial on a
13078 message if one already exists.
13080 2003-01-24 Havoc Pennington <hp@pobox.com>
13082 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13085 * bus/driver.c (bus_driver_handle_list_services): fix a leak
13088 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13090 * dbus/dbus-list.c: (alloc_link), (free_link):
13091 Use a memory pool for the links.
13093 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13095 * bus/connection.c: (bus_connection_foreach):
13096 * bus/connection.h:
13097 Add new bus_connection_foreach function.
13099 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13100 Add function that broadcasts a message to all clients.
13102 (bus_driver_send_service_created), (bus_driver_handle_hello),
13103 (bus_driver_send_welcome_message),
13104 (bus_driver_handle_list_services), (bus_driver_message_handler):
13105 Implement functions that take care of listing services, and notifying
13106 clients when new services are created.
13108 * bus/services.c: (bus_services_list):
13110 Add new function that returns an array of strings with the currently
13111 registered services.
13113 * glib/dbus-glib.h:
13114 * glib/dbus-gmain.c:
13115 Update copyright year.
13117 2003-01-25 Anders Carlsson <andersca@codefactory.se>
13119 * dbus/dbus-connection.c: (dbus_connection_send_message):
13120 Unlock the message in case it was sent earlier.
13122 (dbus_connection_send_message_with_reply_and_block):
13123 Remove the reply message from the list.
13125 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13126 Set array_len and new_pos correctly.
13128 (_dbus_marshal_test):
13129 Remove debug output.
13131 * dbus/dbus-message-internal.h:
13132 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13133 New function that returns the reply serial.
13135 (_dbus_message_unlock):
13136 New function that unlocks a message and resets its header.
13138 (dbus_message_append_string_array),
13139 (dbus_message_get_fields_valist),
13140 (dbus_message_iter_get_field_type),
13141 (dbus_message_iter_get_string_array),
13142 (dbus_message_get_fields),
13143 (dbus_message_append_fields_valist):
13144 Handle string arrays.
13146 (dbus_message_set_sender):
13147 Make this function public since the bus daemon needs it.
13149 (decode_header_data):
13150 Set the reply serial to -1 initially.
13152 * dbus/dbus-message.h:
13153 Add dbus_message_set_sender.
13155 2003-01-24 Havoc Pennington <hp@pobox.com>
13157 * doc/dbus-specification.sgml: add some stuff
13159 2003-01-22 Havoc Pennington <hp@pobox.com>
13161 * doc/dbus-specification.sgml: Start to document the protocol.
13163 2003-01-22 Havoc Pennington <hp@pobox.com>
13165 * dbus/dbus-connection.c
13166 (dbus_connection_send_message_with_reply_and_block): add some @todo
13168 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13170 2003-01-21 Havoc Pennington <hp@pobox.com>
13172 (patch untested because can't compile)
13174 * bus/driver.c (create_unique_client_name): make this function
13175 never recycle client names. Also, caller should initialize
13178 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13180 2003-01-21 Anders Carlsson <andersca@codefactory.se>
13182 * dbus/dbus-marshal.c: (_dbus_marshal_double),
13183 (_dbus_marshal_int32), (_dbus_marshal_uint32),
13184 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13185 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13186 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13187 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13188 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13189 * dbus/dbus-marshal.h:
13190 * dbus/dbus-protocol.h:
13191 Add support for marshalling and demarshalling integer, double
13194 2003-01-21 Anders Carlsson <andersca@codefactory.se>
13199 * bus/connection.c: (connection_disconnect_handler):
13200 Remove the connection from the bus driver's list.
13202 (connection_watch_callback): Dispatch messages.
13204 (free_connection_data): Free connection name.
13206 (bus_connection_setup): Add connection to the bus driver's list.
13207 (bus_connection_remove_owned_service):
13208 (bus_connection_set_name), (bus_connection_get_name):
13209 Add functions for setting and getting the connection's name.
13211 * bus/connection.h:
13212 Add function headers.
13214 * bus/driver.c: (create_unique_client_name),
13215 (bus_driver_handle_hello_message),
13216 (bus_driver_send_welcome_message), (bus_driver_message_handler),
13217 (bus_driver_add_connection), (bus_driver_remove_connection):
13220 * bus/services.c: (bus_service_free):
13222 New file that handles communication and registreation with the bus
13225 2003-01-21 Anders Carlsson <andersca@codefactory.se>
13227 * dbus/dbus-connection.c: (dbus_connection_send_message):
13228 Add a new client_serial parameter.
13230 (dbus_connection_send_message_with_reply):
13231 Remove a @todo since we've implemented the blocking function.
13233 (dbus_connection_send_message_with_reply_and_block):
13234 New function that sends a message and waits for a reply and
13235 then returns the reply.
13237 * dbus/dbus-connection.h:
13240 * dbus/dbus-errors.c: (dbus_result_to_string):
13241 * dbus/dbus-errors.h:
13242 Add new DBUS_RESULT.
13244 * dbus/dbus-message-internal.h:
13245 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13246 (_dbus_message_set_sender), (dbus_message_write_header),
13247 (dbus_message_new_reply), (decode_header_data),
13248 (_dbus_message_loader_return_buffer), (_dbus_message_test):
13249 * dbus/dbus-message.h:
13250 Add new functions that set the reply serial and sender.
13251 Also marshal and demarshal them correctly and add test.
13253 * dbus/dbus-protocol.h:
13254 Add new DBUS_MESSAGE_TYPE_SENDER.
13256 * glib/dbus-glib.h:
13257 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13258 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13259 (dbus_connection_hookup_with_g_main):
13260 * glib/test-dbus-glib.c: (main):
13261 Rewrite to use GIOChannel and remove the GSource crack.
13263 * test/echo-client.c: (main):
13264 * test/watch.c: (check_messages):
13265 Update for changed APIs
13267 2003-01-19 Anders Carlsson <andersca@codefactory.se>
13269 * dbus/Makefile.am: Add dbus-timeout.[cħ]
13271 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13272 Create a DBusTimeoutList.
13273 (dbus_connection_set_timeout_functions): Add new function to
13274 set timeout callbacks
13276 * dbus/dbus-connection.h: Add public DBusTimeout API.
13278 * dbus/dbus-message.c: (dbus_message_get_service):
13279 * dbus/dbus-message.h: New function.
13281 * dbus/dbus-server.c: Fix small doc typo.
13283 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13285 2003-01-19 Anders Carlsson <andersca@codefactory.se>
13287 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13288 of the string, just as long as specified.
13290 2003-01-19 Havoc Pennington <hp@pobox.com>
13292 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13295 * dbus/dbus-server.c (dbus_server_set_max_connections)
13296 (dbus_server_get_max_connections, dbus_server_get_n_connections):
13297 keep track of current number of connections, and add API for
13298 setting a max (but haven't implemented enforcing the max yet)
13300 2003-01-18 Havoc Pennington <hp@pobox.com>
13302 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13303 reading/writing if read_watch != NULL or write_watch != NULL.
13305 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13306 the message loader code to actually load message->header and
13307 message->body into the newly-created message.
13309 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13312 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13313 (dbus_connection_get_max_message_size)
13314 (dbus_connection_set_max_live_messages_size)
13315 (dbus_connection_get_max_live_messages_size): implement some
13316 resource limitation functions
13318 * dbus/dbus-resources.c: new file implementing some of the
13319 resource limits stuff
13321 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13322 missing docs, add @todo to handle OOM etc.
13324 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13327 2003-01-18 Havoc Pennington <hp@pobox.com>
13329 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13330 connection if it hasn't been already.
13332 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13333 replace with DisconnectFunction.
13335 2003-01-18 Havoc Pennington <hp@pobox.com>
13337 Building --disable-verbose-mode --disable-asserts --disable-tests
13338 cuts the library from 112K to 45K or so
13340 * configure.in: check for varargs macro support,
13341 add --enable-verbose-mode, --enable-asserts.
13343 * dbus/dbus-internals.h (_dbus_assert): support
13344 DBUS_DISABLE_ASSERT
13345 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13347 2003-01-18 Havoc Pennington <hp@pobox.com>
13349 * dbus/dbus-test.c: include config.h so that tests actually run
13351 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13352 so the failure mode when that assumption fails will be plenty
13355 2003-01-18 Havoc Pennington <hp@pobox.com>
13357 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13359 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13362 * test/Makefile.am: don't use special variable "TESTS" for echo-*
13363 since we don't want to use those in make check
13365 2003-01-15 Havoc Pennington <hp@redhat.com>
13371 2003-01-15 Havoc Pennington <hp@redhat.com>
13373 * test/Makefile.am: fix so that test source code ends up in the
13374 distribution on make distcheck
13376 2003-01-15 Havoc Pennington <hp@redhat.com>
13382 2003-01-15 Havoc Pennington <hp@redhat.com>
13384 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13385 fix build when --disable-tests
13387 * Makefile.am (EXTRA_DIST): put HACKING in here
13389 * HACKING: document procedure for making a tarball release.
13391 2003-01-14 Anders Carlsson <andersca@codefactory.se>
13393 * bus/connection.c: (connection_error_handler),
13394 (bus_connection_setup):
13395 * bus/main.c: (main):
13396 Make sure that the DBusConnectionData struct is NULLed
13397 out to prevent a segfault.
13399 * dbus/dbus-errors.c: (dbus_result_to_string):
13400 * dbus/dbus-errors.h:
13401 * dbus/dbus-message.c: (dbus_message_get_fields),
13402 (dbus_message_get_fields_valist), (_dbus_message_test):
13403 * dbus/dbus-message.h:
13404 Make dbus_message_get_fields return a result code so we can
13405 track invalid fields as well as oom.
13407 2003-01-11 Havoc Pennington <hp@pobox.com>
13409 * configure.in: change --enable-test/--enable-ansi action-if-given
13410 to enable_foo=$enableval instead of enable_foo=yes
13412 2003-01-08 Havoc Pennington <hp@pobox.com>
13414 * dbus/dbus-string.c (_dbus_string_align_length): new function
13416 * dbus/dbus-test-main.c: move main() for test app here
13418 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13419 symbol to run tests, because dbus-test isn't in the main
13422 Code review nitpicks.
13424 * dbus/dbus-message.c (dbus_message_write_header): add newlines
13425 for people with narrow emacs ;-). Assert client_serial was filled
13426 in. Assert message->name != NULL.
13427 (dbus_message_append_fields): have "first_field_type" arg separate
13428 from va list, needed for C++ binding that also uses varargs IIRC
13429 and helps with type safety
13430 (dbus_message_new): add @todo about using DBusString to store
13431 service/name internally
13432 (dbus_message_new): don't leak ->service and ->name on OOM later
13434 (dbus_message_unref): free the service name
13435 (dbus_message_get_fields): same change to varargs
13436 i.e. first_field_type
13437 (_dbus_message_loader_return_buffer): assert that the message data
13438 is aligned (if not it's a bug in our code). Put in verbose griping
13439 about why we set corrupted = TRUE.
13440 (decode_header_data): add FIXME that char* is evil. Was going to
13441 add FIXME about evil locale-specific string.h strncmp, but just
13442 switched to wacky string-as-uint32 optimization. Move check for
13443 "no room for field name" above get_const_data_len() to avoid
13444 assertion failure in get_const_data_len if we have trailing 2
13445 bytes or the like. Check for service and name fields being
13446 provided twice. Don't leak service/name on error. Require field
13447 names to be aligned to 4 bytes.
13449 * dbus/dbus-marshal.c: move byte swap stuff to header
13450 (_dbus_pack_int32): uscore-prefix
13451 (_dbus_unpack_int32): uscore-prefix
13452 (_dbus_unpack_uint32): export
13453 (_dbus_demarshal_string): add @todo complaining about use of
13455 (_dbus_marshal_get_field_end_pos): add @todo about bad error
13456 handling allowing corrupt data to go unchecked
13458 2003-01-08 Havoc Pennington <hp@redhat.com>
13460 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13461 to the select() as needed for authentication. (should be using
13462 _dbus_poll() not select, but for another day)
13464 * dbus/dbus.h: include dbus/dbus-protocol.h
13466 2003-01-08 Anders Carlsson <andersca@codefactory.se>
13468 * dbus/Makefile.am (dbusinclude_HEADERS): Install
13471 2003-01-08 Anders Carlsson <andersca@codefactory.se>
13473 * dbus/dbus-internals.c: (_dbus_type_to_string):
13474 New function that returns a string describing a type.
13476 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13477 * dbus/dbus-marshal.h:
13478 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13479 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13480 (dbus_message_iter_get_byte_array):
13481 * dbus/dbus-message.h:
13482 Add new convenience functions for appending and getting message fields.
13483 Also add demarshalling routines for byte arrays.
13485 2003-01-07 Anders Carlsson <andersca@codefactory.se>
13487 * dbus/dbus-connection-internal.h:
13488 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13489 (_dbus_connection_get_next_client_serial),
13490 (dbus_connection_send_message):
13491 * dbus/dbus-internals.h:
13492 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13493 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13494 (_dbus_marshal_uint32), (_dbus_demarshal_double),
13495 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13496 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13497 (_dbus_verbose_bytes), (_dbus_marshal_test):
13498 * dbus/dbus-marshal.h:
13499 * dbus/dbus-message-internal.h:
13500 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13501 (dbus_message_write_header), (_dbus_message_lock),
13502 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13503 (dbus_message_get_name), (dbus_message_append_int32),
13504 (dbus_message_append_uint32), (dbus_message_append_double),
13505 (dbus_message_append_string), (dbus_message_append_byte_array),
13506 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13507 (dbus_message_iter_unref), (dbus_message_iter_has_next),
13508 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13509 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13510 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13511 (decode_header_data), (_dbus_message_loader_return_buffer),
13512 (message_iter_test), (_dbus_message_test):
13513 * dbus/dbus-message.h:
13514 * dbus/dbus-protocol.h:
13515 * dbus/dbus-test.c: (main):
13516 * dbus/dbus-test.h:
13517 * glib/test-dbus-glib.c: (message_handler), (main):
13518 * test/echo-client.c: (main):
13519 * test/watch.c: (check_messages):
13520 Make messages sendable and receivable for real.
13522 2003-01-07 Anders Carlsson <andersca@codefactory.se>
13524 * dbus/dbus-marshal.c: (_dbus_marshal_double),
13525 (_dbus_marshal_string), (_dbus_marshal_byte_array):
13526 * dbus/dbus-message.c: (dbus_message_append_int32),
13527 (dbus_message_append_uint32), (dbus_message_append_double),
13528 (dbus_message_append_string), (dbus_message_append_byte_array):
13529 Handle OOM restoration.
13531 2003-01-07 Anders Carlsson <andersca@codefactory.se>
13533 * dbus/dbus-marshal.c: (_dbus_marshal_string),
13534 (_dbus_demarshal_string), (_dbus_marshal_test):
13535 * dbus/dbus-marshal.h:
13536 * dbus/dbus-message.c: (dbus_message_get_name),
13537 Document these functions.
13539 (dbus_message_append_int32), (dbus_message_append_uint32),
13540 (dbus_message_append_double), (dbus_message_append_string),
13541 (dbus_message_append_byte_array):
13542 * dbus/dbus-message.h:
13543 Add functions for adding message fields of different types.
13545 * dbus/dbus-protocol.h:
13546 Add the different types.
13548 2003-01-05 Havoc Pennington <hp@pobox.com>
13550 * bus/connection.c: implement routines for handling connections,
13551 first thing is keeping a list of owned services on each connection
13552 and setting up watches etc.
13554 * bus/services.c: implement a mapping from service names to lists
13557 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13559 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13560 to use static mutexes for global data
13562 * dbus/dbus-connection.c (dbus_connection_set_data): add new
13563 collection of functions to set/get application-specific data
13564 on the DBusConnection.
13566 2003-01-04 Havoc Pennington <hp@pobox.com>
13568 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13569 (_dbus_poll): new function
13571 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13574 * bus/loop.c: initial code for the daemon main loop
13576 2003-01-04 Havoc Pennington <hp@pobox.com>
13578 * test/watch.c (error_handler): make it safe if the error handler
13579 is called multiple times (if we s/error handler/disconnect
13580 handler/ we should just guarantee it's called only once)
13582 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13583 error handler on disconnect (it's quite possible we should
13584 just change the error handler to a "disconnect handler," I'm
13585 not sure we have any other meaningful errors)
13587 * configure.in: check for getpwnam_r
13589 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13590 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13591 mechanism as in SASL spec, using socket credentials
13593 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13594 (_dbus_send_credentials_unix_socket): new function
13596 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13598 (_dbus_write): only check errno if <0 returned
13599 (_dbus_write_two): ditto
13601 2003-01-02 Anders Carlsson <andersca@codefactory.se>
13603 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13604 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13605 (_dbus_marshal_test):
13606 * dbus/dbus-marshal.h:
13607 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13608 to _dbus_marshal_utf8_string. Also fix some tests.
13610 2002-12-28 Harri Porten <porten@kde.org>
13612 * configure.in: added check for C++ compiler and a very cheesy
13613 check for the Qt integration
13615 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13617 * qt/Makefile.am: added
13619 * qt/.cvsignore: added
13621 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13622 latter, added #ifdef QT_THREAD_SUPPORT guard.
13624 * dbus/Makefile.am: added missing headers for make dist
13626 2002-12-28 Kristian Rietveld <kris@gtk.org>
13628 * dbus/Makefile.am: fixup export-symbols-regex.
13630 2002-12-27 Anders Carlsson <andersca@codefactory.se>
13632 * acinclude.m4: Add this file and put the
13633 PKG_CHECK_MODULE macro in it.
13635 2002-12-27 Anders Carlsson <andersca@codefactory.se>
13637 * dbus/dbus-marshal.c: (_dbus_marshal_string),
13638 (_dbus_demarshal_double), (_dbus_demarshal_int32),
13639 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13640 (_dbus_marshal_test):
13641 Make the demarshalling routines align the pos argument.
13642 Add string marshalling tests and fix the obvious bugs
13645 2002-12-26 Havoc Pennington <hp@pobox.com>
13647 * dbus/dbus-auth.c: fixes fixes fixes
13649 * dbus/dbus-transport-unix.c: wire up support for
13650 encoding/decoding data on the wire
13652 * dbus/dbus-auth.c (_dbus_auth_encode_data)
13653 (_dbus_auth_decode_data): append to target string
13654 instead of nuking it.
13656 2002-12-26 Havoc Pennington <hp@pobox.com>
13658 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13659 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13662 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13663 avoid swap_bytes() overhead (ignoring possible assembly stuff for
13664 now). Main point is because I wanted unpack_uint32 to implement
13665 _dbus_verbose_bytes
13666 (_dbus_verbose_bytes): new function
13668 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13670 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13671 mechanism to handle a corrupt message stream
13672 (_dbus_message_loader_new): fix preallocation to only prealloc,
13675 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13676 (_dbus_string_test): enhance tests for copy/move and fix the
13679 * dbus/dbus-transport-unix.c: Hold references in more places to
13680 avoid reentrancy problems
13682 * dbus/dbus-transport.c: ditto
13684 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13685 leak reference count in no-message case
13687 * test/watch.c (do_mainloop): handle adding/removing watches
13688 during iteration over the watches. Also, ref the connection/server
13689 stored on a watch, so we don't try to mangle a destroyed one.
13691 * dbus/dbus-transport-unix.c (do_authentication): perform
13694 * dbus/dbus-auth.c (get_state): add a state
13695 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13696 (_dbus_auth_get_unused_bytes): append the unused bytes
13697 to the passed in string, rather than prepend
13699 * dbus/dbus-transport.c (_dbus_transport_init_base): create
13700 the auth conversation DBusAuth
13702 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13703 (_dbus_transport_new_for_domain_socket): when creating a
13704 transport, pass in whether it's a client-side or server-side
13705 transport so we know which DBusAuth to create
13707 2002-12-03 Havoc Pennington <hp@pobox.com>
13709 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13710 _after_ finalizing the derived members
13711 (unix_connection_set): unref watch if we fail to add it
13713 * dbus/dbus-connection.c (dbus_connection_unref): delete the
13714 transport first, so that the connection owned by the
13715 transport will be valid as the transport finalizes.
13717 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13718 if necessary, and remove watches from the connection.
13720 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13722 2002-12-26 Anders Carlsson <andersca@codefactory.se>
13724 * dbus/dbus-marshal.c: (_dbus_marshal_string),
13725 (_dbus_demarshal_double), (_dbus_demarshal_int32),
13726 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13727 (_dbus_marshal_test):
13728 * dbus/dbus-marshal.h:
13729 Add string marshal functions and have the demarshal functions
13730 return the new position.
13732 2002-12-25 Havoc Pennington <hp@pobox.com>
13734 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13735 it is a simple protocol that just maps directly to SASL.
13737 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13738 initial implementation, not actually used yet.
13740 * dbus/dbus-string.c (_dbus_string_find): new function
13741 (_dbus_string_equal): new function
13742 (_dbus_string_base64_encode): new function
13743 (_dbus_string_base64_decode): new function
13745 2002-12-25 Anders Carlsson <andersca@codefactory.se>
13747 * dbus/Makefile.am:
13748 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13749 (_dbus_marshal_int32), (_dbus_marshal_uint32),
13750 (_dbus_demarshal_double), (_dbus_demarshal_int32),
13751 (_dbus_demarshal_uint32), (_dbus_marshal_test):
13752 * dbus/dbus-marshal.h:
13753 * dbus/dbus-protocol.h:
13754 * dbus/dbus-test.c: (main):
13755 * dbus/dbus-test.h:
13756 Add un-optimized marshalling/demarshalling routines.
13758 2002-12-25 Harri Porten <porten@kde.org>
13760 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13762 2002-12-24 Zack Rusin <zack@kde.org>
13764 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13765 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13768 2002-12-24 Havoc Pennington <hp@pobox.com>
13770 * glib/dbus-gthread.c: fix include
13772 * glib/dbus-glib.h: rename DBusMessageHandler for now.
13773 I think glib API needs to change, though, as you don't
13774 want to use DBusMessageFunction, you want to use the
13775 DBusMessageHandler object. Probably
13776 dbus_connection_open_with_g_main_loop()
13777 and dbus_connection_setup_g_main_loop() or something like that
13778 (but think of better names...) that just create a connection
13779 that has watch/timeout functions etc. already set up.
13781 * dbus/dbus-connection.c
13782 (dbus_connection_send_message_with_reply): new function just to
13783 show how the message handler helps us deal with replies.
13785 * dbus/dbus-list.c (_dbus_list_remove_last): new function
13787 * dbus/dbus-string.c (_dbus_string_test): free a string that
13790 * dbus/dbus-hash.c: use memory pools for the hash entries
13791 (rebuild_table): be more paranoid about overflow, and
13792 shrink table when we can
13793 (_dbus_hash_test): reduce number of sprintfs and write
13794 valid C89. Add tests for case where we grow and then
13795 shrink the hash table.
13797 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13799 * dbus/dbus-connection.c (dbus_connection_register_handler)
13800 (dbus_connection_unregister_handler): new functions
13802 * dbus/dbus-message.c (dbus_message_get_name): new
13804 * dbus/dbus-list.c: fix docs typo
13806 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13807 an object representing a handler for messages.
13809 2002-12-16 Anders Carlsson <andersca@codefactory.se>
13811 * glib/dbus-glib.h:
13812 * glib/dbus-gthread.c: (dbus_gthread_init):
13813 Don't use the gdbus prefix for public functions.
13815 2002-12-16 Anders Carlsson <andersca@codefactory.se>
13819 Add GLib checks and fixup .pc files
13821 * glib/Makefile.am:
13822 * glib/dbus-glib.h:
13823 * glib/dbus-gmain.c: (gdbus_connection_prepare),
13824 (gdbus_connection_check), (gdbus_connection_dispatch),
13825 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13826 (dbus_connection_gsource_new):
13827 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13828 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13829 * glib/test-dbus-glib.c: (message_handler), (main):
13832 2002-12-15 Harri Porten <porten@kde.org>
13834 * autogen.sh: check for libtoolize before attempting to use it
13836 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13839 * .cvsignore: ignore more stamp files
13841 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13843 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13844 without make install.
13846 2002-12-15 Havoc Pennington <hp@pobox.com>
13848 * dbus/dbus-threads.c: add thread stubs that a higher library
13849 layer can fill in. e.g. the GLib wrapper might fill them in with
13850 GThread stuff. We still need to use this thread API to
13851 thread-safe-ize the library.
13853 2002-12-12 Havoc Pennington <hp@pobox.com>
13855 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13856 below new interfaces and include fewer system headers.
13858 * dbus/dbus-sysdeps.c (_dbus_read): new function
13859 (_dbus_write): new function
13860 (_dbus_write_two): new function
13861 (_dbus_connect_unix_socket): new function
13862 (_dbus_listen_unix_socket): new function
13864 * dbus/dbus-message-internal.h: change interfaces to use
13867 2002-12-11 Havoc Pennington <hp@pobox.com>
13869 * dbus/dbus-types.h: add dbus_unichar
13871 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13873 * dbus/dbus-connection.c (dbus_connection_send_message): return
13876 * dbus/dbus-transport.c: include dbus-watch.h
13878 * dbus/dbus-connection.c: include dbus-message-internal.h
13880 * HACKING: add file with coding guidelines stuff.
13882 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13883 handling here, for security purposes (as in vsftpd). Not actually
13884 using this class yet.
13886 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13887 system/libc usage here, as in vsftpd, for ease of auditing (and
13888 should also simplify portability). Haven't actually moved all the
13889 system/libc usage into here yet.
13891 2002-11-25 Havoc Pennington <hp@pobox.com>
13893 * dbus/dbus-internals.c (_dbus_verbose): fix to not
13894 always print the first verbose message.
13896 2002-11-24 Havoc Pennington <hp@pobox.com>
13898 * test/echo-client.c, test/echo-server.c: cheesy test
13901 * configure.in (AC_CHECK_FUNCS): check for writev
13903 * dbus/dbus-message.c (_dbus_message_get_network_data): new
13906 * dbus/dbus-list.c (_dbus_list_foreach): new function
13908 * dbus/dbus-internals.c (_dbus_verbose): new function
13910 * dbus/dbus-server.c, dbus/dbus-server.h: public object
13911 representing a server that listens for connections.
13913 * dbus/.cvsignore: create
13915 * dbus/dbus-errors.h, dbus/dbus-errors.c:
13916 public API for reporting errors
13918 * dbus/dbus-connection.h, dbus/dbus-connection.c:
13919 public object representing a connection that
13920 sends/receives messages. (Same object used for
13921 both client and server.)
13923 * dbus/dbus-transport.h, dbus/dbus-transport.c:
13924 Basic abstraction for different kinds of stream
13925 that we might read/write messages from.
13927 2002-11-23 Havoc Pennington <hp@pobox.com>
13929 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13932 * dbus/dbus-test.c (main): add list test, and include
13933 dbus-test.h as intended
13935 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13936 (_dbus_hash_table_remove_int): return value indicates
13937 whether the entry existed to remove
13939 * dbus/dbus-list.c: add linked list utility class,
13940 with docs and tests
13942 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13945 2002-11-23 Havoc Pennington <hp@pobox.com>
13947 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13948 DBUS_END_DECLS to nothing, that should fix this once and for all
13950 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13952 * dbus/dbus-message.c, dbus/dbus-hash.c:
13953 add some missing @brief
13955 2002-11-23 Havoc Pennington <hp@pobox.com>
13957 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13958 to avoid confusing Doxygen
13960 * dbus/dbus-hash.c: @} not }@
13962 * dbus/dbus-message.c (struct DBusMessage): split out
13965 2002-11-23 Havoc Pennington <hp@pobox.com>
13967 * configure.in: pile on more warning flags if using gcc
13969 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13970 to document static functions
13972 * configure.in: add summary to end of configure so it
13973 looks nice and attractive
13975 * dbus/dbus-hash.c: finish implementation and write unit
13978 * configure.in: add --enable-tests to enable unit tests
13980 * dbus/dbus-test.c: test program to run unit tests
13981 for all files in dbus/*, initially runs a test for
13984 * dbus/dbus-internals.h: file to hold some internal utility stuff
13986 2002-11-22 Havoc Pennington <hp@redhat.com>
13988 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13989 "ported" away from Tcl
13991 * dbus/dbus-types.h: header for types such as dbus_bool_t
13993 2002-11-22 Havoc Pennington <hp@redhat.com>
13995 * dbus/dbus.h: fixups for doc warnings
13997 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13999 (QUIET): make it quiet so we can see warnings
14001 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14003 2002-11-22 Havoc Pennington <hp@redhat.com>
14005 * Makefile.am: include "Doxyfile" target in all-local
14007 * configure.in: generate the Doxyfile
14009 * Doxyfile.in: move Doxyfile here, so we can use
14010 configure to generate a Doxyfile with the right
14011 version number etc.
14013 2002-11-22 Havoc Pennington <hp@redhat.com>
14015 * dbus/dbus-message.c: move inline docs into .c file
14017 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14018 so all docs are under doc/
14019 (MAN_EXTENSION): generate man pages. Use extension
14020 ".3dbus" which matches ".3qt" on my system,
14021 I guess this is OK, I don't know really.
14022 (FILE_PATTERNS): look for .c files not .h, makes sense
14023 for plain C I think
14025 2002-11-22 Havoc Pennington <hp@pobox.com>
14027 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14028 because any app can be a server, and any app can be a client,
14029 the bus is a special kind of server.
14031 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
14033 * Doxyfile : adding. Still needs Makefile rules to be generated
14034 automatically (just run "doxygen" in the toplevel dir for now to
14037 * dbus/dbus-message.h : Adding sample docs (javadoc since
14038 resembles gtk-doc a little more)
14040 * dbus/dbus.h : Adding sample docs
14042 2002-11-21 Havoc Pennington <hp@redhat.com>
14044 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
14045 so we can allow ourselves to include files directly,
14046 instead of having to use dbus.h
14048 * dbus/dbus.h: fill in
14050 * dbus/dbus-message.h: sketch out a sample header file.
14051 Include griping if you include it directly instead of
14054 * dbus/dbus-macros.h: new file with macros for extern "C",
14055 TRUE/FALSE, NULL, etc.
14057 * doc/file-boilerplate.c: put include guards in here
14059 2002-11-21 Havoc Pennington <hp@redhat.com>
14061 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14063 * COPYING: include the GPL as well, and license code
14064 under both AFL and GPL.
14066 2002-11-21 Havoc Pennington <hp@redhat.com>
14068 * acconfig.h: get rid of this
14070 * autogen.sh (run_configure): add --no-configure option
14072 * configure.in: remove AC_ARG_PROGRAM to make
14073 autoconf complain less. add AC_PREREQ.
14074 add AC_DEFINE third arg.
14076 2002-11-21 Anders Carlsson <andersca@codefactory.se>
14079 Fix references so we can distcheck.
14081 2002-11-21 Havoc Pennington <hp@redhat.com>
14083 * Initial module creation