1 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
3 * dbus/dbus-signature.c:
4 Fix the unit tests so that they work if assertions are not enabled.
5 (patch from Julio M. Merino Vidal <jmmv at NetBSD dot org>)
7 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
9 * tools/run-with-tmp-session-bus.sh:
10 * test/name-test/run-test.sh:
11 Remove bashisms (patch from Julio M. Merino Vidal
12 <jmmv at NetBSD dot org>)
14 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
16 * configure.in: add a version (>= 2.6.0) check for libxml2
18 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
20 * configure.in: make sure the compiler supports -Wfloat-equal
22 * bus/dir-watch-dnotify.c: move functional code after
23 variable declerations (C99 fix) (patches from Jens Granseuer
24 <jensgr at gmx dot net>
26 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
29 add #include <stddef.h> so that Sun compilers don't complain about
32 2006-08-10 John (J5) Palmieri <johnp@redhat.com>
34 * dbus/dbus-sysdeps.c:
35 * dbus/dbus-address.c:
38 don't hardcode tmp directory (patch from Dave Meikle
39 <dmk at davemeikle dot co dot uk>)
41 2006-08-09 John (J5) Palmieri <johnp@redhat.com>
43 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
44 Change an assert to a detailed warning and abort.
45 When allocator->lock != mutex it indicates that the user has failed
46 to initalize threads before using the D-Bus library. This warning
47 helps the user identify the issue and fix their app.
49 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
51 These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
52 with cleanups of bugs found from Coverity reports:
54 * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
55 close the file on error to avoid a leak
57 * bus/expirelist.c (bus_expire_list_test):
58 Check for NULL on dbus_new0
60 * bus/activation.c (update_directory):
63 * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
66 * bus/bus.c (process_config_every_time):
69 * bus/desktop-file.c (parse_key_value):
72 * bus/selinux.c (bus_selinux_id_table_insert):
75 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
77 * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
80 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
82 * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
85 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
87 * Doxyfile.in: fix the INPUT line so we can generate docs
88 when sourcedir != builddir (patch from Cygwin Ports maintainer
89 <yselkowitz at users dot sourceforge dot net>
91 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
93 * dbus/dbus-sysdeps.h:
94 * dbus/dbus-sysdeps.c:
96 s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
97 GLib's function which does the same thing
101 * bus/dir-watch-default.c:
102 * bus/dir-watch-dnotify.c:
103 * bus/dir-watch-kqueue.c:
104 Add kqueue directory watching for freebsd and split the directory
105 watching code into seperate files per method/arch
106 (patches from Timothy Redaelli <drizzt at gufi dotorg>)
108 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
112 * tools/dbus-launch.c:
114 allow --with-dbus-daemondir switch to be used to make the
115 daemon install to a seperate bindir like /usr/libexec
116 (patch from Brian Cameron <brian dot cameron at sun dot com)
118 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
120 * bus/Makefile.am (install-data-hook): removed the slash after
121 $(DESTDIR) so we don't get the double slash which does not work
122 in windows (patch from Andras Porjesz
123 <andras dot porjesz at siemens dot com>)
125 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
127 * dbus/dbus-sysdeps.h:
128 * dbus/dbus-sysdeps.c:
129 add _dbus_printf_length (patch from Peter Kümmel
130 <syntheticpp at gmx dot net>)
132 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
134 * dbus/dbus-internals.c: unistd.h is not used
135 (_dbus_verbose_real): only enable verbose printing
136 if DBUS_VERBOSE environment var is set to '1'
137 (patch from Peter Kümmel <syntheticpp at gmx dot net>)
139 2006-08-08 John (J5) Palmieri <johnp@redhat.com>
141 * configure.in: add a GCC flag check for -Wdeclaration-after-statement
142 so we still compile on older gcc (patch from Frederic Peters
143 <fpeters at 0d dot be>
145 2006-08-04 Havoc Pennington <hp@redhat.com>
147 * configure.in: add -Wdeclaration-after-statement
149 * dbus/dbus-connection.c: change all the pending call stuff to
150 reflect the fact that pending call operations use the connection
153 * dbus/dbus-pending-call.c: add locking here
155 * dbus/dbus-errors.c (struct DBusRealError): don't make the name
156 field const consistent with how message field is done
158 2006-08-03 John (J5) Palmieri <johnp@redhat.com>
162 2006-08-03 John (J5) Palmieri <johnp@redhat.com>
164 * dbus/dbus-object-tree.c: Patch by Benjamin Otte
165 <in7y118 at public.uni-hamburg dot de> - fix invalid
166 read/write reported by valgrind
168 2006-07-24 John (J5) Palmieri <johnp@redhat.com>
172 2006-07-22 John (J5) Palmieri <johnp@redhat.com>
174 * dbus/dbus-connection.c:
175 (_dbus_connection_attach_pending_call_unlocked):
176 (connection_timeout_and_complete_all_pending_calls_unlocked):
177 Make sure we set timeout_added on pending calls to FALSE when
178 we remove the timeout from the connection
180 2006-07-21 John (J5) Palmieri <johnp@redhat.com>
182 * Removed some extra bindings stuff lingering around (thanks timo)
183 * dbus-pendingcall.c (_dbus_pending_call_new):
184 s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
185 when we tried to take a lock on an already locked connection
187 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
191 2006-07-17 Havoc Pennington <hp@redhat.com>
193 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
194 ints, reported by Owen Taylor
196 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
201 * dbus/dbus-marshal-validate.c:
202 Removed TODO items which were fixed or are no longer relevent
204 2006-07-17 John (J5) Palmieri <johnp@redhat.com>
206 * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
207 Remove stray files from the stripped bindings
209 2006-07-16 Havoc Pennington <hp@redhat.com>
211 * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
212 Improve the error message on reply timeout
214 2006-07-14 John (J5) Palmieri <johnp@redhat.com>
216 * Remove all bindings
218 2006-07-13 John (J5) Palmieri <johnp@redhat.com>
220 * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
221 and set pending_reply out arg to NULL is connection is disconnected
222 (connection_timeout_and_complete_all_pending_calls_unlocked): New
223 static method for cleaning up pending calls on disconnect
224 (_dbus_connection_get_dispatch_status_unlocked): If we have pending
225 calls queued timeouts on disconnect
227 * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
230 2006-07-13 Carlos Garcia Campos <carlosgc@gnome.org>
232 * bus/activation.[ch] (bus_activation_list_services): new function to
233 get the list of services that can be activated
235 * bus/dispatch.c: test coverage for the new bus method
238 * bus/driver.c: new bus method ListActivatableNames to get the list of
239 services that can be activated
241 * doc/dbus-specification.xml: ListActivatableNames method documentation
243 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
244 * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
247 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
248 * dbus/dbus-message-factory.c:
249 Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
251 2006-07-12 John (J5) Palmieri <johnp@redhat.com>
252 * dbus/dbus-connection-internal.h:
253 * dbus/dbus-connection.c:
254 * file dbus/dbus-pending-call.c:
255 * dbus/dbus-pending-call.h:
256 Make DBusPendingCall an opaque type even to D-Bus internals
258 2006-07-07 John (J5) Palmieri <johnp@redhat.com>
260 * dbus/dbus-connection.h: remove connection_disconnect and replace with
263 * dbus/dbus-connection.c: include dbus-bus.h
264 (_dbus_connection_read_write_dispatch): make static
266 2006-07-07 John (J5) Palmieri <johnp@redhat.com>
268 * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
270 (dbus_connection_dispatch): On disconnect unref any shared connections
272 * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
273 for cleaning up shared connections on disconnect
274 (internal_bus_get): get a hard refrence to shared connections when
277 * doc/TODO: Remove items which are no longer relevent or have been fixed
278 Split 1.0 todo items with a 0.90 freeze todo list
280 2006-06-14 Ross Burton <ross@openedhand.com>
282 * glib/dbus-gobject.c:
283 Free a leaking GArray (surely not!) in dbus_g_method_return.
285 2006-06-14 Ross Burton <ross@openedhand.com>
288 * tools/dbus-monitor.c:
289 Don't use the GLib bindings in dbus-monitor (patch from Ralf
292 2006-06-14 Ross Burton <ross@openedhand.com>
294 * tools/dbus-print-message.c:
295 Also print the object path when outputting signals or method calls.
297 2006-06-13 Thiago Macieira <thiago.macieira@trolltech.com>
299 * qt/src/Makefile.am: install the qdbus.h header.
300 This allows people to actually use the installed code.
302 2006-06-12 Ross Burton <ross@openedhand.com>
304 * glib/dbus-gproxy.c:
305 Don't leak a GArray when firing signals (thank Rob Taylor for review).
307 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
311 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
313 * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
314 break pedantic builds. Closes bug 6043 (patch approved by
315 Havoc back in February).
317 2006-06-12 Thiago Macieira <thiago.macieira@trolltech.com>
319 * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
320 that took a QDBusMessage parameter.
321 * qt/src/qdbusbus.h: Add a default flag for RequestName.
322 * qt/tools/dbus.cpp: Don't use automatic call because we might
323 be calling an async method: request a reply.
325 2006-06-11 Thiago Macieira <thiago.macieira@trolltech.com>
327 * test/qt/*: Update the testcases, including testing the new
328 functionality of sending null QByteArray and QString over the
329 bus. Add new headertest test and restore the old
332 2006-06-11 Thiago Macieira <thiago.macieira@trolltech.com>
334 * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
335 * qt/tools/dbusidl2cpp.cpp: Add missing newline.
337 * qt/examples/Makefile.am:
338 * qt/examples/chat.h: Use UI-generated files with the ui_*.h
341 * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
342 QByteArray() (nulls) over the bus.
343 * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
344 the one that has the signature suffix stripped.
345 * qt/src/qdbusreply.h: Make some methods const.
347 2006-06-09 Thiago Macieira <thiago.macieira@trolltech.com>
349 Patch from Timo Hoenig <thoenig@suse.de>.
351 * qt/dbus/Makefile.am: New file. Fix "make dist", add all headers
352 required during build to EXTRA_DIST.
353 * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
354 * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
355 * configure.in: Fix "make dist", take care that the Makefile for
356 qt/dbus is being generated.
358 2006-06-07 John (J5) Palmieri <johnp@redhat.com>
360 * bus/bus.c: Fix eavesdropping on method calls
362 2006-06-07 John (J5) Palmieri <johnp@redhat.com>
365 * dbus/dbus-userdb-util.c:
366 Add Solaris console owner patch from Artem Kachitchkine
368 2006-06-07 Thiago Macieira <thiago.macieira@trolltech.com>
371 * qt/src/Makefile.am: Fix the EXTRA_DIST after the
372 reorganisation. Thanks to Timo Hoenig for pointing this out.
374 2006-06-06 Robert McQueen <robot101@debian.org>
376 * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
377 call to dbus_g_type_get_struct.
379 2006-06-06 Robert McQueen <robot101@debian.org>
381 * glib/dbus-gvalue-utils.c: Fix the failing test where static string
382 pointers were put into a GPtrArray-based specialised collection, and
383 then freed along with the array. GValues which you add into
384 collections or maps which have the NOCOPY flag set are assumed to not
385 belong to the caller, so rather than the existing pointer-stealing
386 semantics, they are copied instead. Given that the main consumers of
387 this abstraction are the bindings themselves, I don't think this is
388 too bad, but others should watch their choice of take vs set_static.
390 2006-06-06 Robert McQueen <robot101@debian.org>
392 * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
393 of g_slist_prepend not being used. Fixed copying of slist-based
394 specialised collections, then wrote a test case and found that it was
395 all broken. Went on to fix iterating and appending too. Good thing
396 nobody uses this code yet.
398 2006-06-06 Robert McQueen <robot101@debian.org>
400 * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
401 the iterators use gvalue_take_ptrarray_value (the GValues themselves
402 are discarded without unsetting, so it makes no difference whether
403 we take or set_static). Remove cases for G_TYPE_POINTER because
404 there really is nothing useful we can do with them in our
405 specialised types - we *need* boxed copy/free functions at the very
408 2006-06-05 Thiago Macieira <thiago.macieira@trolltech.com>
410 * qt/dbus: Add directory. I had forgotten to add this
411 yesterday after the move...
413 * qt/examples/Makefile.am:
414 * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
416 * qt/tools/Makefile.am:
417 * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
418 Added feature to get and set properties.
419 Added validation of service, object path and interface names.
421 * qt/tools/dbusidl2cpp.cpp: Two new features:
422 1) Allow specifying both the header and the source file names,
423 by separating them with a colon.
424 2) Don't write an interface output if the -p switch wasn't
425 given, but the -a was.
427 * qt/src/*: Fix usage of Iterators and ConstIterators.
428 Fix shadowing of variables by other variables (-Wshadow).
429 Fix keyword-cleanliness in headers.
430 Fix ASCII-cast (QLatin1String, QLatin1Char).
431 Fix validation of member names.
432 Add extra checking of introspection data during XML parsing.
435 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
438 * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
441 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
443 * configure.in: Make --disable-qt actually do
444 something. Patch inspired by Zack Rusin.
446 2006-06-04 Thiago Macieira <thiago.macieira@trolltech.com>
448 * qt/: Update to Subversion r548032.
449 This includes a big reorganisation of the files inside the
452 2006-05-30 Sjoerd Simons <sjoerd@luon.net>
454 * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
456 "Failed to connect to socket <host>:<port> <error>" instead of
457 "Failed to connect to socket <host>: <error>:<port>"
459 * dbus/dbus-transport-unix.c: Fix crash when no host option is given
462 2006-05-29 Thiago Macieira <thiago.macieira@trolltech.com>
464 * qt/*: Update the QtDBus bindings up to revision 546310 in
466 This adds the dbuscpp2xml tool, that parses a C++ header and
467 outputs a D-BUS Introspection XML.
469 2006-05-21 Havoc Pennington <hp@redhat.com>
471 * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
472 is not NULL when it shouldn't be. Also a couple of possible fixes
473 for #4637 though I don't understand why the bug happens, to be
474 honest... also the object constructor has an assert name != NULL
475 and the name is only currently NULL for peer-to-peer proxies that
476 I don't think anyone uses? So it should be asserting.
477 Anyway, for now at least see if we get an earlier assertion failure.
479 * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
480 apparently broken code to be sure the tests fail and someone
483 2006-05-07 Thiago Macieira <thiago.macieira@trolltech.com>
485 * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
486 and arrays when they had a single element: has_next returns
487 false, even before you read the element. So, instead, check
490 2006-05-06 Thiago Macieira <thiago.macieira@trolltech.com>
492 * qt/qdbusmessage.cpp:
493 * qt/qdbustypehelper_p.h:
494 * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
495 the list is a const-reference
497 2006-05-03 John (J5) Palmieri <johnp@redhat.com>
499 * Adding old doc patch that never got applied
501 * dbus/bus.c (dbus_bus_add_match): Add documentation
503 * doc/dbus-specification.xml: Add documentation for the match rules
504 and the AddMatch and RemoveMatch methods
506 2006-05-02 Thiago Macieira <thiago.macieira@trolltech.com>
508 * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
511 * qt/dbusidl2cpp.cpp:
512 * qt/qdbusabstractadaptor.cpp:
513 * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
514 sibling of the QDBusAbstractAdaptor objects instead of the
517 * qt/dbusidl2cpp.cpp:
518 * qt/qdbusabstractinterface.cpp:
519 * qt/qdbusabstractinterface.h:
520 * qt/qdbusabstractinterface_p.h:
521 * qt/qdbusinterface.cpp: Make properties in interfaces
522 actually work. The code that was generated would not compile,
523 due to moc calls to functions that did not exist. They now
526 2006-04-30 Thiago Macieira <thiago.macieira@trolltech.com>
530 * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
531 Thanks to Brad Hards for providing the patch
533 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
535 * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
538 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
540 * qt/examples/dbus.cpp: Enhance error messages and use
543 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
545 * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
546 and disable the copy operators. (r533772, r534746)
548 * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
550 * qt/qdbusabstractinterface.cpp:
551 * qt/qdbusabstractinterface.h: Change the default call mode to
552 not use the event loop. Add convenience call() methods that
553 take a CallMode parameter. (r534042)
555 * qt/qdbusconnection.h: Change the default call mode to not
556 use the event loop. (r534042)
558 * qt/qdbusinterface.cpp:
559 * qt/qdbusinterface.h: Add a method to tell us if the
560 interface is valid (since we don't return a null pointer
563 * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
566 * qt/qdbusinternalfilters.cpp: Decouple the introspection
567 function in two so taht we get the chance to introspect
568 without having a QDBusMessage (r534102)
571 * qt/qdbusconnection.cpp:
572 * qt/qdbusconnection_p.h:
573 * qt/qdbusintegrator.cpp: Keep a list of our own names to
574 avoid a round-trip to the server when attempting to introspect
575 one of our own objects. Also make sure the filter functions
576 match the empty interface as well. (r534108)
577 Don't keep the connection names. Instead, trust the unique
578 connection name (r534111)
579 Remove event loop usage (r534112)
581 2006-04-29 Thiago Macieira <thiago.macieira@trolltech.com>
583 * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
586 2006-04-28 Robert McQueen <robot101@debian.org>
588 * glib/dbus-gproxy.c: Fix properties so that they can be given in
589 any order, making it easier for people who inherit from this
592 2006-04-28 Robert McQueen <robot101@debian.org>
594 * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
595 of memory from within pointer arrays and lists. Fixes bug #6300.
597 2006-04-28 Robert McQueen <robot101@debian.org>
599 * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
600 generating struct signatures. Fixes bug #6083.
602 2006-04-28 Robert McQueen <robot101@debian.org>
604 * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
605 to qdbusconnection_p.moc.
607 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
609 * README, INSTALL: Doc fixes
610 Patch from Brad Hards <bradh at frogmouth.net>
612 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
614 * qt/examples/dbus.cpp: Use the new merged-interface mode for
615 the dynamic meta object. No need to guess which interface to
618 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
620 * qt/qdbusconnection_p.h:
621 * qt/qdbusmetaobject.cpp:
622 * qt/qdbusmetaobject_p.h:
623 * qt/qdbusintegrator.cpp: Use the new merged-interface mode
624 for the dynamic meta object. No need to guess which
626 * qt/qdbusabstractinterface_p.h:
627 * qt/qdbusconnection.cpp:
628 * qt/qdbusintegrator.cpp:
629 * qt/qdbusinterface.cpp:
630 * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
631 Add a QDBusRef that looks and behaves like DCOPRef.
633 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
635 * dbus/dbus-connection.c: Interfaces are optional in method
636 calls, so don't give up if the interface parameter is NULL.
637 Patch reviewed by Havoc Pennington.
639 2006-04-23 Thiago Macieira <thiago.macieira@trolltech.com>
641 * qt/qdbusreply.h: Add default constructor and operator=
643 * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
644 in public headers (r532952)
645 * qt/qdbusabstractinterface.cpp:
646 * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
647 make it the default (r532951)
649 2006-04-19 John (J5) Palmieri <johnp@redhat.com>
651 * dbus/dbus-connection.c: Fix asserts
652 Patch from Tim Moloney <t.moloney at verizon.net>
654 2006-04-19 John (J5) Palmieri <johnp@redhat.com>
656 * mono/Connection.cs, mono/Message.cs: Check Target type
657 Patch from Aaron Bockover (abockover at novell.com)
659 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
661 * INSTALL: fine-tune the requirements for the Qt4 binding.
663 2006-04-16 Daniel P. Berrange <dan@berrange.com>
665 * tools/dbus-print-message.c: Added support for printing of all
666 remaining data types. Fixed logic for indentation of compound
669 2006-04-15 Daniel P. Berrange <dan@berrange.com>
671 * INSTALL: fill out content of file providing DBus specific
672 build installations, followed by generic Auto* INSTALL file
675 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
677 * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
678 Patch by Stefan Eilers. (r529537)
680 2006-04-13 Thiago Macieira <thiago.macieira@trolltech.com>
682 * qt/qdbusinternalfilters.cpp: Don't show the parent's
685 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
687 * qt/Makefile.am: fix the dependency for
688 qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
689 not in qdbusconnection.cpp.
690 Thanks to Jakub Stachowski <stachowski@hypair.net> for
693 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
695 * qt/examples/listnames.cpp:
696 * qt/examples/Makefile.am: Three ways to list the names on the
699 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
701 * test/qt/tst_hal.cpp: Remove the waiting, since it's not
702 needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
704 2006-04-10 Thiago Macieira <thiago.macieira@trolltech.com>
706 Merge from Subversion:
707 * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
708 something that exists (r526315)
709 * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
710 slots/signals (r526316)
711 * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
712 also return an unknown-method error if the parameters don't
713 match for org.freedesktop.DBus.Properties. (r526842)
714 * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
715 * qt/qdbusintegrator.cpp: Restore the proper order of
716 delivery: don't make method returns be delivered on priority
719 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
721 * configure.in qt/Makefile.am: add qt/examples
722 * qt/examples: Add QtDBus example programs:
723 - hello: Hello, World
724 - ping: Simple method-calling program
725 - pong: Simple object-exporting program (not using adaptors)
726 - complexping: Interactive method-calling program
727 (also gets and sets properties).
728 - complexpong: Sample program exporting methods, signals and
729 properties, using adaptors.
730 - dbus: Simple implementation of a generic method-calling
731 program, similar to 'dbus-send', but with semantics
733 - chat: Simplistic chat program, implemented using signals
734 and the system bus. Looks like IRC.
736 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
738 * configure.in: Detect QtGui (necessary for one of the
739 example programs). Note: this increases the minimum required
740 version of Qt to 4.1.3.
742 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
744 * test/qt/*: Sync with KDE Subversion revision 523647.
745 Update the testcases to the new API. Remove testcases for
746 classes that are no longer public or have been removed.
748 2006-03-28 Thiago Macieira <thiago.macieira@trolltech.com>
751 * dbus/qdbus.h: Sync with KDE Subversion revision
752 523647. Hopefully, this will be the last of the
753 source-incompatible changes. Documentation has been improved;
754 support for QList<basic-types> has been added; QDBusObject is
755 gone; QDBus(Abstract)Interface is now a QObject with
756 auto-generated meta-object; QDBusIntrospection is marked
757 private, since QMetaObject can be used now; lots of bugfixes.
759 2006-03-16 John (J5) Palmieri <johnp@redhat.com>
761 Patch from Milosz Derezynski <internalerror at gmail.com>
764 Output the service directory in the configure summary
767 Add session_bus_services_dir
769 2006-03-10 Ross Burton <ross@openedhand.com>
771 * tools/dbus-print-message.c:
772 Add support for object paths and signatures.
774 2006-03-06 Sjoerd Simons <sjoerd@luon.net>
776 * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
778 * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
780 * dbus/dbus-hash.c: (_dbus_hash_table_remove_all):
781 * dbus/dbus-hash.h: Add function to remove all entries from a hash table
782 * dbus/dbus-userdb.c: (_dbus_user_database_flush):
783 * dbus/dbus-userdb.h: Add function to flush all user/group information
786 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
788 * qt/dbusidl2cpp.cpp:
789 * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
790 for dcopidl2cpp, found in the KDE installations (or the more
791 modern kalyptus): generate Qt4 C++ code for the input XML
792 introspection. Currently no IDL parsing.
794 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
796 * test/qt/*: Update the self-tests.
798 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
801 * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
802 represents the first feature-complete version of the Qt4
803 bindings since I took ove maintainership.
805 2006-03-06 Thiago Macieira <thiago.macieira@trolltech.com>
807 * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
808 dir. This is C++, so we can't use the DBus ones.
810 2006-03-02 John (J5) Palmieri <johnp@redhat.com>
812 * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
813 (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
815 2006-03-02 John (J5) Palmieri <johnp@redhat.com>
817 * dbus/dbus-connection.c:
818 (_dbus_connection_block_pending_call):
819 Check to see if our data has already been read off the connection
820 by another blocking pending call before we block in poll.
821 (check_for_reply_and_update_dispatch_unlocked):
822 Code taken from _dbus_connection_block_pending_call - checks for
823 an already read reply and updates the dispatch if there is one.
825 * test/name-test/test-pending-call-dispatch.c:
826 New test for making sure we don't get stuck polling a
827 dbus connection which has no data on the socket when
828 blocking out of order on two or more pending calls.
830 2006-02-28 Thiago Macieira <thiago.macieira@trolltech.com>
832 * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
833 make/automake don't detect that we're talking about the same
834 .lo file if I specify the full path to the source files.
836 2006-02-26 Havoc Pennington <hp@redhat.com>
838 * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
840 * dbus/dbus-bus.c (internal_bus_get): in the error message if the
841 session bus variable is unset, suggest "man dbus-launch" and "man
842 dbus-daemon" to figure out how to fix the problem
844 2006-02-25 Havoc Pennington <hp@redhat.com>
846 * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
847 should make this thing use the new glib options parser
849 2006-02-25 Thiago Macieira <thiago.macieira@trolltech.com>
851 * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
852 .lo files taking moc sources.
854 2006-02-25 Havoc Pennington <hp@redhat.com>
856 * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
857 and install it as a public header
859 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
863 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
865 * proxies.py: Fix the callchain
867 2006-02-24 John (J5) Palmieri <johnp@redhat.com>
869 * patch from Sjoerd Simons <sjoerd at debian.org>:
871 * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to
874 * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
875 call _dbus_group_info_free_allocated which causes infinite loop,
876 correctly call _dbus_group_info_free
878 2006-02-20 Thiago Macieira <thiago.macieira@trolltech.com>
880 * qt/qdbusinterface_p.h:
881 * qt/qdbusinterface.cpp: Use the standard
882 org.freedesktop.DBus.Method.NoReply annotation for the "async"
883 calls instead of creating one for us.
885 * qt/qdbusconnection_p.h:
886 * qt/qdbusintegrator.cpp: Remove debugging code.
888 * qt/qdbusintegrator.cpp:
889 * qt/qdbusmessage.cpp:
890 * qt/qdbusmessage_p.h:
891 * qt/qdbusmessage.h: Change the behaviour of automatic
892 reply-sending: now a reply is always sent, unless the caller
893 didn't request one or if the user slot has already sent one.
895 2006-02-16 Robert McQueen <robot101@debian.org>
897 * configure.in: Patch from Debian packages by Sjoerd Simons
898 <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
899 arguments so it's possible to build both bindings in the
902 * qt/Makefile.am: Fix truncated value so that make dist works.
904 2006-02-16 Robert McQueen <robot101@debian.org>
906 * acinclude.m4, configure.in: Patch from Brad Hards
907 <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
908 improving quoting, re-ordering a few checks, and a few other
911 2006-02-16 Robert McQueen <robot101@debian.org>
913 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
914 Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
915 assertion that the next element to read from the iter is fixed in
916 size. This is not the case when you are at the end of the iter,
917 because the next element type is INVALID.
919 * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
920 a bogus assert which means that you may not initialise a 0-length
921 string unless you provide a non-NULL pointer. This prevented
922 you from marshalling messages containing zero-length arrays in
925 * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
926 from Rob to correct bogus asserts when trying to demarshal an
927 array and get_fixed_array got you 0 elements. Append nothing to
928 the GArray in this case.
930 * test/glib/test-dbus-glib.c: Add a test case for round-tripping
931 an empty array via the glib bindings. Without all of the above
932 patches, this new test fails.
934 2006-02-16 Robert McQueen <robot101@debian.org>
936 * glib/dbus-gmain.c: Make the previous commit compile.
938 * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
939 Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
940 specify sender_keyword="foo", path_keyword="bar" when adding
941 a signal listener, so that you can bind to signals generically
942 but still do something useful in your callback.
944 * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
945 chars so that they're not cast to chars and made negative. Thanks
946 to Jakub Stachowski for reporting this and testing the fix.
948 2006-02-15 John (J5) Palmieri <johnp@redhat.com>
952 (dbus_g_connection_open): new method for openning
953 a connection to an arbitrary address in the glib bindings
955 * ChangeLog: checkin last entry which doesn't seem to be commited
957 2006-02-13 John (J5) Palmieri <johnp@redhat.com>
959 * tools/dbus-launch.c: Fixed sh syntax output
961 2006-02-13 Robert McQueen <robot101@debian.org>
963 * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
964 glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
965 glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
966 glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
967 Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
968 missing piece of the glib bindings jigsaw puzzle. This modifies
969 the existing specialised types to have N type parameters (rather
970 than the current 1 or 2 for arrays and dictionaries respectively).
971 You can then use this to get a glib type to represent any arbitrary
972 D-Bus struct type using dbus_g_type_get_struct. The only
973 implementation of these types is with GValueArrays as before,
974 but it's now possible to store these in arrays, emit them in
977 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
979 * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
980 deal with nested arrays (Bug #5823) Patch by Thiago Macieira
981 <thiago.macieira at trolltech.com>
983 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
985 * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
986 (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
988 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
990 * bus/connection.c (bus_connections_expect_reply): Make
991 pending reply limit not common to all connections (Bug #5416)
992 Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
994 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
996 * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
998 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
1000 * gcj/Makefile.am: point to correct jar command (Bug #4529)
1001 patch from Doug Goldstein <cardoe at gentoo.org>
1003 2006-02-09 Joe Shaw <joeshaw@novell.com>
1005 * mono/Arguments.cs: Fix a magic number in the mono bindings
1006 that doesn't work on 64 bit arches. Patch from Peter Johanson.
1008 2006-01-27 Robert McQueen <robot101@debian.org>
1010 * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1011 patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1012 when generating the client-side methods, instead of overloading
1013 CSymbol which broke everything horribly. My apologies.
1015 2006-01-27 Robert McQueen <robot101@debian.org>
1017 * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1018 by me and Rob Taylor to add a simple_free function to D-Bus map
1019 and collection types, which allows those types which can be freed
1020 with a GDestroyNotify (such as GHashTables and GArrays, but not
1021 GPtrArrays) to be stored as the values in hashtables.
1023 * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1024 Patch by Rob Taylor to add nested dicts to the glib tests to check
1025 the above code works, and appears not to leak when called repeatedly.
1027 2006-01-27 Robert McQueen <robot101@debian.org>
1029 * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1030 to free a D-Bus allocated string with dbus_free () instead of
1033 2006-01-27 Iain Holmes <iain@openedhand.com>
1035 * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1036 method from being called multiple times.
1038 2006-01-19 Robert McQueen <robot101@debian.org>
1040 * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1041 <rob.taylor@collabora.co.uk> to add support for generating bindings
1042 to arrays that are represented as GPtrArrays rather than GArrays (ie
1043 size-variable things, such as strings, objects, structs, etc).
1045 2006-01-05 Robert McQueen <robot101@debian.org>
1047 * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1048 <ricardo.kekki@movial.fi> to make it possible to inherit from
1049 DBusGProxy, by splitting the DBusGProxy struct into a public part and
1050 a private part, and moving the setting of the DBusGProxyManager into a
1051 connection property, allowing proper GObject construction.
1053 2006-01-05 Robert McQueen <robot101@debian.org>
1055 * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1056 <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1057 annotations when generating glib client bindings.
1059 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
1061 * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1063 * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1065 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
1067 * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1069 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
1071 * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1073 2005-12-19 Ross Burton <ross@openedhand.com>
1075 * doc/dbus-tutorial.xml:
1076 Document the Glib client-side bindings, and list all possible annotations.
1078 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
1080 * dbus/bus.c (dbus_bus_release_name): Add documentation
1082 2005-12-06 Robert McQueen <robot101@debian.org>
1084 * python/service.py: s/sucessful/successful/ so we're allocating to
1085 and reading from the same variable. Oops.
1087 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1091 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1093 * test/qt/Makefile.am: build from srcdir
1095 * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1096 Note - this code is wrong and needs to be fixed by the Qt binding
1097 developers. The flags should be treated as bitfields and not enums.
1099 * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1101 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1103 * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after,
1104 link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods
1107 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1109 * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1110 method for getting messages off the bus in the absence of a
1111 mainloop. This method is much like
1112 dbus_connection_read_write_dispatch except it does not dispatch
1113 the messages to a registered filter function. Instead it
1114 allows a developer to process messages by directly popping
1117 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1119 * bus/desktop-file.c (parse_key_value): Ignore locales allowing
1120 the parser to continue instead of returning error
1121 (bus_desktop_file_load): Do not free parser data when
1122 parse_section_start or parse_key_value fails because it was
1123 already freed by parser_free (patch from Carlos Garcia Campos
1124 <carlosgc at gnome.org>)
1126 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1128 * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1129 dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1130 glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1131 test/test-segfault.c, test/test-utils.c,
1132 test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1133 tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1134 Various cleanup of dead code and compiler warnings (patch from
1135 Kjartan Maraas <kmaraas at gnome.org>)
1137 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
1139 * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1140 (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1142 2005-11-27 Robert McQueen <robot101@debian.org>
1144 * python/dbus_bindings.pyx: Repair my previous commit which reverted
1145 part of the preceding one. Oops. Merge patch by Johan Hedberg
1146 <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1147 on big-endian platforms.
1149 * test/python/test-client.py: Add some 16-bit integers to the test
1152 2005-11-27 Carlos Garcia Campos <carlosgc@gnome.org>
1154 * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1155 method return message for property getters
1157 2005-11-27 Robert McQueen <robot101@debian.org>
1159 * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1160 with type v of an instance of dbus.Variant(foo, type='x') caused
1161 it to be boxed twice before sending over the bus.
1163 * python/dbus_bindings.pyx, python/service.py,
1164 test/python/test-client.py: Update the constants for the new
1165 request_name flags, and update comments/test cases now that queueing
1166 is the default action.
1168 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
1171 - Change version to 0.60 for impending release
1172 - upped the sonames because of ABI and API breakage
1174 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
1176 * configure.in: Add test/name-test/Makefile to the generated
1179 * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1180 New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1181 (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1182 not to queue an ower if it can't be the primary owner
1184 * bus/bus.h: Add new internal BusOwner struct
1186 * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1187 to bus_registry_ensure and don't set the prohibit_replacement flag
1188 since they are now set per BusOwner and not per name.
1189 (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners)
1190 that returns the list of connections in a name's connection queue
1192 * bus/services.c (struct BusService): remove prohibit_replacement field
1193 (struct BusOwner): new struct for keeping track of queued connections
1194 and their associated flags for the queue
1195 (struct BusRegistry): add a BusOwner memory pool
1196 (bus_registry_new): initialize the BusOwner memory pool
1197 (bus_registry_unref): free the BusOwner memory pool
1198 (_bus_service_find_owner_link): new internal method for
1199 searching the queue for a specific connection
1200 (bus_owner_set_flags): new method for adding setting the flags on a
1202 (bus_owner_new): new method that creates a BusOwner object from the
1203 pool and sets its flags
1204 (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1205 (bus_registry_ensure): Add the flags parameter
1206 (bus_registry_acquire_service): Switch from using raw connections to
1207 using the BusOwner struct
1208 Add new state machine for dealing with the new set of flags
1209 (bus_registry_set_service_context_table, struct OwnershipCancelData,
1210 cancel_ownership, free_ownership_cancel_data,
1211 add_cancel_ownership_to_transaction, struct OwnershipRestoreData,
1212 restore_ownership, free_ownership_restore_data,
1213 add_restore_ownership_to_transaction): Switch to using BusOwner
1214 instead of raw connections
1215 (bus_service_add_owner): Add flags parameter
1216 Switch to using BusOwner instead of raw connections
1217 Add state machine for dealing with the new set of flags
1218 (bus_service_swap_owner): Swaps the first and second owners in the
1219 queue. Used to make sure proper signals are sent when a service looses
1220 or gains primary ownership. We never insert an owner at the top of the
1221 queue. Instead we insert it in the second position and then swap.
1222 (bus_service_remove_owner): Remove the owner from the queue sending
1223 out the NameLost and NameOwnerChanged signals if the we were the
1225 (bus_service_get_primary_owners_connection): New method that extracts
1226 the connection from the primary owner
1227 (bus_service_get_primary_owner): Returns the BusOwner instead of the
1229 (bus_service_get_allow_replacement): Changed from the old
1230 bus_service_get_prohibit_replacement method. Checks the flags of the
1231 primary owner and returns if it can be replaced or not
1232 (bus_service_set_prohibit_replacement): removed
1233 (bus_service_has_owner): returns TRUE if and owner with
1234 the specified connection exists in the queue
1236 * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1237 method that only compiles if tests are enabled. Allows us to get the
1238 unique name of a connection so we can check it against the queue when
1239 doing regression tests
1241 * bus/activation.c (bus_activation_send_pending_auto_activate),
1242 bus/dispatch.c (bus_dispatch),
1243 bus/driver.c (bus_driver_handle_get_service_owner,
1244 bus_driver_handle_get_connection_unix_user,
1245 bus_driver_handle_get_connection_unix_process_id,
1246 bus_driver_handle_get_connection_selinux_security_context),
1247 bus/signals.c (connection_is_primary_owner):
1248 use bus_service_get_primary_owners_connection instead of
1249 bus_service_get_primary_owner
1251 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket,
1252 _dbus_listen_unix_socket): Calculate the length of the socket
1253 path and use that instead of using a fixed length which was
1254 causing socket names to contain many trailing Nul bytes.
1256 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1257 (dbus_g_method_get_sender): New method for extracting the sender
1258 from a DBusGMethodInvocation
1259 (dbus_g_method_return_get_reply): changed name to
1260 dbus_g_method_get_reply
1261 (dbus_g_method_return_send_reply): changed name to
1262 dbus_g_method_send reply
1264 * doc/dbus-specification.xml: New docs that describe how the new
1265 queueing system works and talks about the changes to the how
1266 we specify socket names
1268 * glib/examples/example-service.c,
1269 glib/examples/example-signal-emitter.c,
1270 glib/examples/statemachine/statemachine-server.c:
1271 Changed the RequestName flags to the new system
1273 * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1274 regression test suite for testing various states of the new
1277 2005-11-15 Robert McQueen <robot101@debian.org>
1279 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1280 Taylor to add two methods, dbus_g_method_return_get_reply and
1281 dbus_g_method_return_send_reply, to allow you to get the reply
1282 message from a DBusGMethodInvocation, append arbitrary stuff to it,
1283 and send it. The GLib bindings can't marshal a return value of
1284 something like a(s) if the array is empty - ultimately they should be
1285 made to heed the signature of the out arguments as the Python bindings
1286 now can, but this is a workable interim solution which might have
1289 2005-11-15 Robert McQueen <robot101@debian.org>
1291 * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1292 method to org.freedesktop.DBus to release a bus name or give up
1293 waiting in the queue for it.
1295 * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1296 dbus_bus_release_name method to send the ReleaseName method calls.
1297 Add constants for the return values to dbus/dbus-shared.h.
1299 * doc/dbus-specification.xml: Document the new ReleaseName method
1300 in the specification.
1302 * python/dbus_bindings.pyx: Add a low-level python binding for the
1303 release name method.
1305 * python/exceptions.py, python/service.py: Make freeing BusName
1306 objects release the name. Add a NameExistsException, and fix a
1307 bug with creating UnknownMethodException.
1309 * test/python/test-client.py: Add tests for freeing BusName
1310 objects causing names to be released.
1312 2005-11-14 Robert McQueen <robot101@debian.org>
1314 * python/service.py: Include the traceback in the error reply when we
1315 send an exception over the bus. _BEST_ _PATCH_ _EVER_
1317 2005-11-14 David Zeuthen <davidz@redhat.com>
1319 Patch from Timo Hoenig <thoenig@suse.de>.
1321 * bus/bus.c: I've recently investigated why the automatic reload
1322 of configuration files does not work as expected.
1324 Currently, reloading configuration files does only work when
1325 running dbus-daemon with --nodaemon. If we are running as daemon
1326 we're hitting a dnotify bug once we fork the process.
1328 We're initializing the dnotify fds before calling fork(). Once
1329 the child process forked it does still have the fds (and they
1330 still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1331 getting SIGIO as changes are made to the configuration files.
1333 The attached patch moves the initialization of the dnotify fds to
1334 process_config_postinit(). This is safe for all current code
1335 paths and solves the dnotify disfunction. If we're running
1336 dbus-daemon as daemon the fds for dnotify are now being
1337 initialized after fork() for the child process.
1339 * configure.in: The current configure.in check for dnotify probes
1340 'x$target_os' for being 'xlinux-gnu'. I've changed the check to
1341 match for 'xlinux', too. Additionally I have adapted the configure
1342 option's style to match with the others.
1344 2005-11-14 Robert McQueen <robot101@debian.org>
1346 * python/decorators.py, python/service.py: Add a new argument to the
1347 dbus.service.method decorator called sender_keyword, which if set,
1348 specifies the name of an argument which will be provided the bus
1349 name of the method caller.
1351 * test/python/test-client.py, test/python/test-service.py: Add a
1352 method and test to check the sender_keyword functionality.
1354 2005-11-07 John (J5) Palmieri <johnp@redhat.com>
1356 * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an
1357 empty reply so blocking calls don't block forever (Patch from Sjoerd
1358 Simons <sjoerd at luon.net>)
1360 * AUTHORS: Add Robert McQueen for his work on the Python
1361 Bindings and other parts of D-Bus
1363 2005-11-07 Robert McQueen <robot101@debian.org>
1365 * python/decorators.py: Change emit_signal function to use the
1366 signature annotation of the signal when marhsalling the arguments from
1367 the service. Fix a bug where the code checking signature length
1368 against argument length referenced the wrong variable.
1370 * python/introspect_parser.py: Avoid adding the type signature of
1371 signal arguments to any methods which occur after them in the
1372 introspection data (!) by making the parser a little more careful
1373 about its current state.
1375 * python/service.py: Remove debug prints from last commit (again :D).
1377 * test/python/test-client.py, test/python/test-service.py: Add test
1378 signals with signature decorators to test the strict marshalling code
1379 gives errors at the right time. Could do with checking the signals
1380 actually get emitted too, given that the test does nothing with
1381 signals at the moment...
1383 2005-11-07 Robert McQueen <robot101@debian.org>
1385 * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1386 instances to stop madness of creating new instances representing
1387 the same bus connection all the time, rendering any tracking of
1388 match rules and bus names quite meaningless. Caught a bug where
1389 the private argument to SessionBus() and friends was being passed
1390 in as use_default_mainloop by mistake. Still some problems with
1391 multiple dbus_binding.Connection instances representing the same
1392 low-level connection (eg when you use both SessionBus() and
1393 StarterBus() in same process), but it's a lot better now than it
1396 * python/dbus_bindings.pyx: Add constants with the return values
1397 for bus_request_name().
1399 * python/service.py: Store bus name instances in a per-dbus.Bus cache
1400 and retrieve the same instances for the same name, so deletion can be
1401 done with refcounting. Also now throws some kind of error if you
1402 don't actually get the name you requested, unlike previously...
1404 * test/python/test-client.py: Add tests for instance caching of buses
1405 and bus name objects.
1407 2005-11-04 Robert McQueen <robot101@debian.org>
1409 * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1410 marshalling of boolean values. Add some booleans to the values in
1413 * python/decorators.py, python/service.py: Add an 'async_callbacks'
1414 argument to the dbus.service.method decorator, which allows you to
1415 name arguments to take two callback functions for replying with
1416 return values or an exception.
1418 * test/python/test-client.py, test/python/test-service.py: Add test
1419 case using asynchronous method reply functions, both return values and
1420 errors, and from within both the function itself and from a mainloop
1423 * python/decorators.py, python/service.py: Perform checking that the
1424 number of method/signal arguments matches the number of types in the
1425 signature at class loading time, not when you first introspect the
1428 * python/service.py: Remove debug print left by the last commit.
1430 2005-11-03 Robert McQueen <robot101@debian.org>
1432 * python/service.py: Heavy refactoring of method invocation, with
1433 hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1434 in favour of a new _message_cb that uses seperate functions for
1435 looking up the method to call, marshalling the return values, and
1436 sending exceptions as errors, and is easier to follow as a
1437 consequence. Fixes some corner cases about returning things that
1438 don't match your declared out_signature, allows exceptions to define
1439 _dbus_error_name and have it be sent over the bus as the error name,
1440 and paves the way for cool stuff like heeding the message no reply
1441 flag, asynchronous method implementations, informing the method of the
1442 sender, and including backtraces in the error messages.
1444 * test/python/test-client.py: Catch and print exceptions thrown in the
1445 async callback tests, rather than passing them to the low-level
1446 bindings to be ignored in a noisy and frustrating manner.
1448 2005-11-03 Robert McQueen <robot101@debian.org>
1450 * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1451 functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1452 tweak others to be consistent.
1454 * test/python/test-client.py: Tweak output of testInheritance.
1456 2005-10-29 Robert McQueen <robot101@debian.org>
1458 * python/service.py: Major changes to allow multiple inheritance
1459 from classes that define D-Bus interfaces:
1461 1. Create a new Interface class which is the parent class of
1462 Object, and make the ObjectType metaclass into InterfaceType.
1464 2. Patch written with Rob Taylor to replace use of method_vtable
1465 with code that walks the class's __MRO__ (method resolution order)
1466 to behave like Python does when invoking methods and allow
1467 overriding as you'd expect. Code is quite tricky because
1468 we have to find two methods, the one to invoke which has the
1469 right name and isn't decorated with the /wrong/ interface,
1470 and the one to pick up the signatures from which is decorated
1471 with the right interface.
1473 The same caveats apply as to normal multiple inheritance -
1474 this has undefined behaviour if you try and inherit from two
1475 classes that define a method with the same name but are
1476 decorated with different interfaces. You should decorate
1477 your overriding method with the interface you want.
1479 3. Replace grungy introspection XML generation code in the metaclass
1480 with dictionaries that cope correctly with multiple inheritance
1481 and the overriding of methods. This also uses the signature
1482 decorations to provide correct introspection data, including
1483 the debut appearance of the types of your return values. :D
1485 * test/python/test-client.py, test/python/test-service.py: Add a test
1486 case to try invoking an method that overrides one inherited from a
1487 D-Bus interface class.
1489 2005-10-29 Robert McQueen <robot101@debian.org>
1491 * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1492 Add checking for the end of struct character when marshalling a
1493 struct in MessageIter.append_strict.
1495 * python/examples/example-service.py,
1496 python/examples/gconf-proxy-service.py,
1497 python/examples/gconf-proxy-service2.py: Update to use gobject
1498 mainloop directly rather than appearing to depend on gtk.
1500 * python/test/test-client.py, python/test/test-server.py: Remove
1501 obsolete and broken test scripts for old bindings. We have up to date
1502 and working tests in test/python/.
1504 2005-10-29 Robert McQueen <robot101@debian.org>
1506 * python/decorators.py: Add optional arguments to the method and
1507 signal decorators to allow you to specify the signature of arguments
1508 and return values. Preserve the doc strings of signal functions in the
1509 decorated version, for pydoc and friends.
1511 * python/dbus_bindings.pyx, python/proxies.py: Replace the
1512 parse_signature_block function with an iterable dbus.Signature()
1513 type. Fix a bug in MessageIter.append_strict where you could append
1514 anything by claiming it was a string.
1516 * python/service.py: Use the out_signature decoration on methods to
1517 marshal return values, meaning you no longer require dbus.Array()
1518 or dbus.Dictionary() to indicate the type when returning empty
1519 arrays or dictionaries. Fix a bug where exceptions which are defined
1520 in __main__ are not turned into error replies.
1522 * test/python/test-client.py, test/python/test-service.py: Add test
1523 for correct marshalling of return values according to out_signature.
1524 Fix a bug in the async call test where the error_handler is missing a
1527 2005-10-29 Robert McQueen <robot101@debian.org>
1529 * glib/Makefile.am, glib/examples/Makefile.am,
1530 glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1531 Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1533 * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1535 * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1536 from Ubuntu by Daniel Silverstone to allow specifying match rules on
1539 2005-10-27 Ross Burton <ross@openedhand.com>
1541 * dbus/dbus-marshal-header.c:
1544 * glib/dbus-gobject.c:
1545 Stop compiler warning.
1547 2005-10-25 Ross Burton <ross@openedhand.com>
1550 * dbus/dbus-server-unix.c:
1551 * dbus/dbus-transport-unix.c:
1552 * glib/dbus-gmain.c:
1553 * glib/dbus-gobject.c:
1554 Add some const keywords.
1556 2005-10-25 Ross Burton <ross@openedhand.com>
1558 * doc/dbus-specification.xml:
1559 Document the NoReply annotation.
1561 * glib/dbus-binding-tool-glib.h:
1562 * glib/dbus-binding-tool-glib.c:
1563 Respect the NoReply annotation.
1565 2005-10-24 Robert McQueen <robot101@debian.org>
1567 * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1568 derive from unicode instead of str, and encode/decode UTF-8 when
1569 marshalling/unmarshalling bus messages
1571 * python/introspect_parser.py: encode introspection data as UTF-8
1572 before passing the buffer into libxml2
1574 * test/python/test-client.py: add unicode test strings
1576 * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1577 ignore generated python test files
1579 2005-10-17 John (J5) Palmieri <johnp@redhat.com>
1581 * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1582 and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1583 (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1585 * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1586 DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1587 when constructing struct signatures
1589 * python/_dbus.py (Bus): handle private connections using the
1590 private keyword in the constructor. defaults to private=False
1591 (Bus::close): new method to close a connection to the bus
1593 * python/dbus_bindings.pyx (Connection::close): renamed method
1594 was previously called disconnect
1595 (bus_get): now supports getting a private connection
1597 * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1598 keyword is set to True. if it is, execute the method without waiting
1600 (ProxyObject::_introspect_execute_queue): new method for executing
1601 all the pending methods that were waiting for the introspect to
1602 finish. this is called when introspect either succeeds or fails
1603 (ProxyObject::_introspect_error_handler): call queued methods
1605 2005-10-14 John (J5) Palmieri <johnp@redhat.com>
1607 * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1608 STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1610 * python/service.py (Object::_message_cb): handle exceptions correctly
1611 by sending them over the wire to the calling app. This makes sure
1612 the client returns immediately instead of waiting the 15 seconds to
1615 * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect):
1616 Add a test to benchmark how long it takes to introspect a service and
1617 call a method which returns a large element (pretty fast)
1619 * test/python/test-service.py (TestObject::GetComplexArray): new test
1620 method which pushes a lot of data
1622 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
1624 * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):
1625 reclaim memory outside of the loop and use del istead of just setting
1628 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
1630 * python/service.py (ObjectType::_reflect_on_signal): Always close
1631 signal tag even when there are no arguments
1633 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
1635 * configure.in: Set mono, mono-docs and Qt3 to default
1636 to no instead of auto when building. These bindings do not
1637 have full time maintainers and will not be supported for the
1640 2005-10-12 John (J5) Palmieri <johnp@redhat.com>
1642 patches from Michael Krivoruchko <misha at sun.com>:
1644 * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1645 _dbus_connection_message_sent,
1646 _dbus_connection_send_preallocated_unlocked_no_update,
1647 _dbus_connection_pop_message_link_unlocked): handle the case when path
1648 is NULL when calling _dbus_verbose
1650 * configure.in: check for functions getpeerucred and getpeereid
1652 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides
1653 support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+,
1654 OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid).
1655 Patch was only tested on Solaris 10 x86 so it might be issues
1656 with other platforms (i.e. BSDs and MacOSX)
1659 2005-10-05 John (J5) Palmieri <johnp@redhat.com>
1661 * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal
1662 instead of marshal basic so we can handle recursive types in a variant
1664 * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1667 * test/glib/test-service-glib.c, test-service-glib.xml
1668 (my_object_echo_variant [EchoVariant],
1669 my_object_process_variant_of_array_of_ints123
1670 [ProcessVariantOfArrayOfInts123]):
1671 Add two test methods
1673 * python/introspect_parser.py: New module for parsing introspect
1676 * python/dbus_bindings.pyx:
1677 (various places): when throwing errors fix to use errormsg instead
1678 of message local variable because Pyrex can get confused with other
1679 message variables (initial patch by Robert McQueen
1680 <robert.mcqueen at collabora.co.uk>)
1681 (MessageIter::parse_signature_block): new method for getting the next
1682 block in a signiture.
1683 (MessageIter::append_strict): new method for appending values strictly
1684 using the passed in signature instead of guessing at the type
1685 (MessageItter:: append_dict, append_struct, append_array): use
1686 signatures to marshal children if the signature is available
1688 * python/exceptions.py (IntrospectionParserException): new exception
1690 * python/proxies.py (ProxyMethod::__call__): Marshal args with
1691 introspected signatures if available, else we fall back to the
1692 old way of doing things.
1693 (ProxyObject::_introspect_reply_handler ): parse introspection data
1695 * python/service.py (ObjectType::_reflect_on_method): Properly
1696 terminate <method> if there are no args in the reflection data
1698 * test/python/test-client.py: add tests for talking with the GLib
1699 test server. This gives us better coverage for introspection since
1700 python to python will always generate arguments as variants. It also
1701 allows us to test the robustness of the GLib bindings and interlanguage
1705 2005-10-03 John (J5) Palmieri <johnp@redhat.com>
1707 * bus/driver.c (bus_driver_handle_introspect): Add signals
1708 to the introspect data. (patch from Daniel P. Berrange
1709 <dan at berrange.com>)
1711 * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1713 * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1714 _dbus_connection_run_builtin_filters): Changed these to
1715 be unlock_no_update functions and call
1716 _dbus_connection_send_unlocked_no_update instead of
1717 dbus_connection_send to avoid locking errors.
1719 * doc/TODO: Removed the make Ping test TODO
1721 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
1723 * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1724 We now copy the message from a DBusError and then free
1725 the error object befor throwing the error
1727 * glib/dbus-glib-tool.c: removed extra comma at the end of the
1728 DBusBindingOutputMode enum which was causing a warning.
1729 #include <time.h> so using time_t is explicitly defined
1731 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
1733 * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1735 (internal_bus_get): new method that take over the heavy lifting
1736 of dbus_bus_get and adds the ability to get a private connection
1738 (dbus_bus_get): wrapper to internal_bus_get that provides the same
1739 interface as in previous versions
1740 (dbus_bus_get_private): new method that is a wrapper to
1741 internal_bus_get to get a private connection to the bus
1744 (dbus_bus_get_private): add as a public libdbus interface
1746 - dbus-1.pc.in: output system_bus_default_address and
1747 sysconfdir variables so apps can use them when compiling
1749 2005-09-23 Harald Fernengel <harry@kdevelop.org>
1750 * dbus/qt: New Qt bindings
1752 2005-09-12 Waldo Bastian <bastian@kde.org>
1754 * dbus/dbus-marshal-validate.c,
1755 doc/dbus-specification.xml, test/Makefile.am,
1756 test/test-names.c: allow hyphens in bus names.
1758 2005-09-11 Mark McLoughlin <mark@skynet.ie>
1760 * test/data/auth/fallback.auth-script: we don't
1761 retry the EXTERNAL method when we know its going
1764 2005-09-11 Mark McLoughlin <mark@skynet.ie>
1766 * dbus/dbus-connection-internal.h: rename
1767 (add|remove|toggle)_(watch|timeout) to unlocked()
1769 * dbus/dbus-connection.c: ditto.
1771 * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1772 Update some callers for the renaming.
1774 2005-09-10 Mark McLoughlin <mark@skynet.ie>
1776 * dbus/dbus-auth.c: (record_mechanisms): don't
1777 retry the first auth mechanism because we know
1778 we're just going to get rejected again.
1780 * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1781 Fix thinko ... and what a nasty little bugger to
1782 track down you were ...
1784 * dbus/dbus-connection.c:
1785 (_dbus_connection_add_watch),
1786 (_dbus_connection_remove_watch): add note about
1787 these needing the connection to be locked.
1788 (_dbus_connection_get_dispatch_status_unlocked):
1789 set status to DATA_REMAINS when we queue the
1790 disconnected message.
1793 (bus_dispatch): fix warning.
1794 (check_existent_service_no_auto_start):
1795 Expect ChildSignaled error too.
1796 (check_existent_hello_from_self): fix another
1799 2005-09-08 Joe Shaw <joeshaw@novell.com>
1801 Patches from James Willcox <snorp@snorp.net>
1803 * mono/Makefile.am: Add Int16.cs and UInt16.cs
1805 * mono/DBusType/Array.cs: Handle multidimensional arrays, and
1806 support array "out" parameters.
1808 * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
1809 for 16-bit int support.
1811 2005-09-06 John (J5) Palmieri <johnp@redhat.com>
1815 * Patch from Steve Grubb:
1816 - bus/activation.c (bus_activation_service_reload_test): clean up
1818 - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional
1819 - dbus/dbus-message-factory.c (generate_special): fix a couple of
1820 buffer overflows in the test suite. This is non critical because
1821 it can not be exploited and this code is only run when doing a
1824 * Patch from Yaakov Selkowitz: Build fixes for Cygwin
1825 - configure.in: Don't check and link against kdecore, only qt headers
1826 - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
1827 - gcj/org/freedesktop/dbus/Makefile.am:
1828 add libdbus_gcj_1_la_LDFLAGS = -no-undefined
1829 - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
1830 and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
1831 - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
1832 - tools/Makefile.am: Add platform extentions to binaries
1833 (i.e. .exe on windows)
1836 - Make it so if no suitable version of python is found we only
1837 disable building python instead of exiting the configure script
1838 - Require version 2.4 of glib for glib bindings
1839 - Up version to 0.50
1841 * python/__init__.py: Sync version with libdbus to (0,50,0)
1843 2005-09-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
1845 * dbus/dbus-object-tree.c (find_subtree_recurse):
1846 a couple of optimizations (bug #710):
1847 - do a binary search in the tree
1848 - insert a new child at the right place directly, no need for
1850 - do the "double alloc" thing when allocating children
1852 2005-08-31 John (J5) Palmieri <johnp@redhat.com>
1854 * python/Makefile.am: Break on pyrexc errors instead of ignoring them
1856 * python/dbus_bindings.pyx: Memory management foo
1857 (global): remove hacky _user_data_references global list
1858 (GIL_safe_cunregister_function_handler): userdata now stuffed into
1859 tuples. Unref user_data
1860 (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
1861 (Connection::__del__): Remove and replace with __dealloc__ method
1862 (Connection::add_filter): Stuff user_data into a tuple. Use Py_INCREF
1863 to keep tuple from being deallocated instead of the global var hack
1864 (Connection::register_object_path): Stuff user_data into a tuple.
1865 Use Py_INCREF to keep tuple from being deallocated instead of the
1867 (Connection::register_fallback): Stuff user_data into a tuple.
1868 Use Py_INCREF to keep tuple from being deallocated instead of the
1870 (GIL_safe_pending_call_notification): Don't unref the message
1871 because it gets unreffed when going out of scope. Py_XDECREF
1873 (PendingCall::__del__): Remove and replace with __dealloc__ method
1874 (PendingCall::set_notify): ref the pending call because we will
1875 need it to stick around for when the notify callback gets called
1876 (Message::__del__): Remove and replace with __dealloc__ method
1878 * python/dbus_glib_bindings.pyx (init_gthreads): Changed to
1879 gthreads_init to match up with the dbus call
1881 * python/glib.py (init_threads): Changed to threads_init to match
1882 up with gobject.threads_init(). init_threads is kept for backwards
1883 compat but will most likely be deprecated in the future
1885 * test/python/test-client.py:
1886 - revamp to use Python's unittest functionality
1887 - add async call tests
1888 - setup threads in glib and dbus so we make sure locks are working
1890 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
1892 * python/dbus_bindings.pyx
1893 (_pending_call_notification, cunregister_function_handler,
1894 cmessage_function_handler): All callback functions have been rearranged
1895 to workaround a bug in Pyrex when working with the GIL which is Python's
1896 global lock when dealing with threads. They have been split into
1897 a wrapper function (which assumes the name of the old function) and
1898 a _GIL_safe_<function name> function which contains the functionality
1899 of the old function. This ensures that Pyrex does not write code
1900 the lock is released.
1903 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
1905 * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
1906 GIL global lock when calling back into Python
1908 2005-08-29 John (J5) Palmieri <johnp@redhat.com>
1912 * Add Havoc's patch that never got applied to HEAD (Bug #2436):
1914 * bus/policy.c (bus_policy_allow_user): change default "user is
1915 allowed" to be "user has same uid as the bus itself"; any
1916 allow/deny rules will override.
1918 * bus/session.conf.in: don't allow all users, since now by default
1919 the user that ran the bus can connect.
1921 2005-08-26 Colin Walters <walters@verbum.org>
1923 * tools/dbus-print-message.c (print_message): Flush stdout
1924 after printing a message, so that redirecting to a file, then
1925 hitting Ctrl-C works.
1927 2005-08-25 John (J5) Palmieri <johnp@redhat.com>
1929 * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
1930 (EmptyMessage): new class that subclasses Message. This is a workaround
1931 to a Pyrex bug that fails to call __del__ when the Message object goes out
1932 of scope. For some reason subclassing Message fixes this bug
1933 (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
1934 - s/Message(_create=0)/EmptyMessage everywhere else
1936 * test/python/test-{server|client}.py: add the python/.libs directory
1937 to the lookup path so dbus_bindings and dbus_glib_bindings don't
1938 get picked up from the system
1940 2005-08-25 Colin Walters <walters@verbum.org>
1942 * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
1943 to Ryan Lortie for the suggestion.
1945 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
1947 * test/python: Add python regression test
1949 * configure.in: Add test/python/Makefile
1951 * test/Makefile.am: Add the python directory to SUBDIRS
1953 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
1958 (Interface::connect_to_signal): propigate keywords for match on args
1959 (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
1961 * python/proxies.py (ProxyObject::connect_to_signal):
1962 propigate keywords for match on args
1964 * Makefile.am: point everything to pyexecdir since python borks
1967 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
1971 2005-08-23 Colin Walters <walters@verbum.org>
1973 * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
1975 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
1977 * python/dbus_glib_bindings.pyx: reorder imports and c definitions
1978 to fix some wranings. We now use dbus_bindings.DBusConnection instead
1979 of defining DBusConnection ourselves.
1981 2005-08-18 John (J5) Palmieri <johnp@redhat.com>
1983 * python/dbus.pth: New path file to fix up problems when installing
1984 c libraries to lib64 and python files to lib.
1986 * python/Makefile.am: install dbus.pth in the correct spot
1988 2005-08-17 John (J5) Palmieri <johnp@redhat.com>
1989 * ChangeLog: clean up my last entry a bit
1991 * doc/introspect.xsl: New stylesheet for converting introspection data
1992 into browser renderable xhtml. Contributed by Lennart Poettering.
1994 * doc/introspect.dtd: Fixups in the introspect format from Lennart
1997 * doc/dbus-tutorial.xml:
1998 - Add Colin Walter to the Authors section for authoring the GLib
2000 - Add descriptions of the new signature and type functionality
2001 in the Python complex type mapping section
2002 - Add a sidenote on the new args matching functionality in
2004 - Fixed up some of the examples to use the gobject.MainLoop
2008 (Bus::_create_args_dict): New. Converts a hash of arg matches
2009 to a more useable format
2010 (Bus::add_signal_receiver): add a **keywords parameter for catching
2011 arg match parameters
2012 (Bus::remove_signal_receiver): add a **keywords parameter for catching
2013 arg match parameters
2015 * python/matchrules.py:
2016 (MatchTree::exec_matches): Check for arg matches
2017 (SignalMatchRule::add_args_match): New method
2018 (SignalMatchRule::execute): Added args_list parameter as an optimization
2019 so we don't have to marshal the args more than once
2020 (SignalMatchRule::match_args_from_list): New method that checks to see
2021 if the rule's arg matches match an argument list. Only arguments
2022 set in the rule are checked.
2023 (SignalMatchRule::match_args_from_rule): New method that checks to see
2024 if the rule's arg matches match another rule's. All args have to match
2025 in order for this method to return true. If either rule has more args
2026 then it is not a match.
2027 (SignalMatchRule::is_match): Add args match
2028 (SignalMatchRule::repr): Add args to the final output if they exist
2030 2005-08-17 Ross Burton <ross@burtonini.com>
2032 * glib/dbus-gproxy.c:
2033 (dbus_g_proxy_call_no_reply): unref the message once sent.
2034 (dbus_g_proxy_call): protect against NULL proxy.
2036 2005-08-16 John (J5) Palmieri <johnp@redhat.com>
2038 * python/__init__.py: Version updated (0, 43, 0)
2040 * python/dbus_bindings.pyx:
2041 - Fixed type objects to have self passed into __init__
2042 - Added the Variant type
2043 - Add the ability to specify types or signatures for Array, Variant
2045 (Connection::send_with_reply_handlers): return a PendingCall object
2046 (_pending_call_notification): handle the case when an error is returned
2047 without an error message in the body
2048 (MessageIter::get_boolean): return True or False instead of an integer
2049 (MessageIter::python_value_to_dbus_sig): add direct checking of types
2050 and add checks for objects with embeded signatures or types (Array,
2051 Variant and Dictionary)
2052 (MessageIter::append_byte): handle case when the value is a dbus.Byte
2053 (MessageIter::append_dict): handle embeded types or signatures
2054 (MessageIter::append_array): handle embeded types or signatures
2055 (MessageIter::append_variant): new method
2057 * python/proxies.py:
2058 (DeferedMethod): New. Dummy executable object used when queuing calls
2059 blocking on introspection data
2060 (ProxyMethod::__call__): add the timeout keyword for specifying longer
2061 or shorter timeouts for method calls
2062 (ProxyObject): Add first pass at an introspection state machine
2063 (ProxyObject::__init__): Add introspect keyword for turing off an on
2065 (ProxyObject::_Introspect): Internal Introspect call that bypasses
2066 the usual mechanisms for sending messages. This is to avoid a deadlock
2067 where the Intospect call would be queued waiting for the Introspect
2069 (ProxyObject::_introspect_reply_handler): New. This method is called
2070 when introspection returns with no error
2071 (ProxyObject::_introspect_error_handler): New. This method is called
2072 when introspection encounters an error
2073 (ProxyObject::__getattr__): Code to handle different introspection
2074 states. Queue async calls or block blocking calls if we are
2075 introspecting. Pass through as normal if we are not or are done with
2078 * python/service.py: Import signal and method from decorators.py
2080 * python/types.py: Add Variant type
2082 2005-08-16 Colin Walters <walters@verbum.org>
2084 * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2085 DBusError message is NULL.
2087 2005-08-09 Havoc Pennington <hp@redhat.com>
2089 * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2090 malloc'd copy of the name parameter
2092 2005-08-09 Havoc Pennington <hp@redhat.com>
2094 * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2095 warning if the reply serial is set to 0
2097 2005-08-04 Colin Walters <walters@verbum.org>
2099 * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2100 (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2101 (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2102 (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2103 (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2104 (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2105 (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2106 * glib/dbus-gvalue.h (dbus_g_value_types_init)
2107 (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2108 (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2110 Prefix name with _ to ensure they're not exported. All callers
2113 * glib/dbus-gvalue.c (typecode_to_gtype)
2114 (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2115 (signature_iter_to_g_type_dict)
2116 (signature_iter_to_g_type_array)
2117 (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2118 (dbus_gtypes_from_arg_signature):
2119 Move to dbus-gsignature.c.
2121 * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2122 dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2123 (dbus_binding_tool_output_glib_client): Ditto.
2125 * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2126 and dbus-gsignature.h
2128 * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2131 2005-08-03 Colin Walters <walters@verbum.org>
2133 * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2134 catch any incompatible changes accidentally made.
2136 2005-08-03 Havoc Pennington <hp@redhat.com>
2138 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2139 typo, from Julien Puydt
2141 * bus/connection.c (bus_connection_disconnected): we were always
2142 doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2144 2005-08-01 Colin Walters <walters@verbum.org>
2146 Patch from Joe Markus Clarke:
2148 * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2151 2005-08-01 Colin Walters <walters@verbum.org>
2153 Patch from Joe Markus Clarke:
2155 * tools/dbus-send.c (main):
2157 Don't use C99 style initializers (bug #3933).
2159 2005-08-01 Colin Walters <walters@verbum.org>
2161 Patch from Joe Markus Clarke:
2163 * glib/dbus-gvalue.c (dbus_g_value_types_init):
2164 * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init)
2165 * glib/dbus-gobject.c (write_interface):
2167 Don't use C99 style initializers (bug #3933).
2169 2005-07-31 Havoc Pennington <hp@redhat.com>
2171 * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2172 dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2174 2005-07-30 Havoc Pennington <hp@redhat.com>
2176 * fix a bunch of Doxygen warnings and mistakes
2178 2005-07-30 Havoc Pennington <hp@redhat.com>
2180 * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2181 DBUS_BUILD_TESTS since it's now used in production code
2183 2005-07-29 Havoc Pennington <hp@redhat.com>
2185 * test/glib/test-profile.c (write_junk): initialize the junk
2186 buffer so valgrind doesn't have a breakdown
2188 2005-07-29 Havoc Pennington <hp@redhat.com>
2190 * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2191 (match_rule_matches): remove unused arg
2192 (test_matching): add tests for match_rule_matches()
2194 * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2195 do arg0='foo' arg5='bar' in the match rules
2196 (match_rule_matches): don't match if the arg0='foo' doesn't match.
2198 * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2200 2005-07-29 Ross Burton <ross@openedhand.com>
2202 * dbus/dbus-connection.c:
2203 Don't create a DBusCondVar which is never used.
2205 2005-07-27 Ross Burton <ross@openedhand.com>
2207 * dbus/dbus-message.c:
2208 Reduce the size of the maximum cached message to 10K.
2210 2005-07-25 Ross Burton <ross@openedhand.com>
2212 * glib/dbus-gproxy.c:
2213 Remove matches when all proxies are unregistered.
2215 2005-07-24 Colin Walters <walters@verbum.org>
2217 * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2218 typedata; recursive arrays won't have it.
2220 * test/glib/test-dbus-glib.c:
2221 * test/glib/test-service-glib.c:
2222 * test/glib/test-service-glib.xml: Add recursive arrays tests.
2224 2005-07-20 John (J5) Palmieir <johnp@redhat.com>
2226 * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2227 proxies.py, service.py: Cleanup of code after running it through the
2228 pyflakes code checker mostly dealing with undefined names.
2229 (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2231 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
2233 * NEWS: Update to 0.35.2
2235 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
2237 * python/_dbus.py: Remove import of the dbus.services
2238 module as it no longer exists (patch from Dimitur Kirov)
2240 * python/service.py (Object::__init__): Fixed typo
2241 s/name/bus_name (patch from Dimitur Kirov)
2243 * python/examples/example-signal-emitter.py: import dbus.glib
2244 to get the main loop and use glib mainloop instead of gtk so
2245 X doesn't have to be running.
2247 * python/examples/example-signal-recipient.py: import dbus.glib
2248 to get the main loop and use glib mainloop instead of gtk so
2249 X doesn't have to be running. Import the decorators module
2252 * test/glib/Makefile.am: Added DIST_EXTRA files that distcheck
2253 didn't pick up on but are needed to build
2255 * configure.in: upped version to 0.35.2
2257 * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2258 added Colin Walters' SELinux API rename patch from head
2259 s/unix sercurity context/selinux security context/
2261 2005-07-16 John (J5) Palmieri <johnp@redhat.com>
2263 * python/Makefile.am: dbus_binding.pxd.in should be included
2264 in EXTRA_DIST not dbus_binding.pxd
2265 fix up $(srcdir) hopefully for the last time
2267 * NEWS: Update to 0.35.1
2269 2005-07-16 Colin Walters <walters@verbum.org>
2271 * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2272 from bus_driver_handle_get_connection_unix_security_context. Update for
2274 (message_handlers): Update for renames.
2276 * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2277 _dbus_string_init failure correctly.
2278 (bus_selinux_append_context): Convert SID to context. Append it
2280 (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2283 * bus/selinux.h: Update prototype.
2285 * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2286 from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2288 2005-07-15 Colin Walters <walters@verbum.org>
2290 * doc/TODO: Add note about convenience wrappers.
2292 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2294 * NEWS: Update to 0.35
2296 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2298 * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2299 so distcheck doesn't fail
2301 * glib/examples/Makefile.am: Add example-service.xml and
2302 example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2304 * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2305 statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2307 * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2308 compiler looks in the right places during distcheck
2310 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2312 * glib/example/Makefile.am: Fix a typo which cause make distcheck
2315 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2317 * python/examples/example-service.py,
2318 python/examples/example-signal-emitter.py: Fixed up examples
2321 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2323 * python/__init__.py: Upped to version (0,42,0) because of
2326 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2328 * ChangeLog: fix date in last entry
2330 * configure.in, bus/system.conf.in: add the ability to configure
2331 the system bus user at compiletime with the --with-dbus-user flag
2332 (patch from Kristof Vansant)
2334 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
2336 * bus/dispatch.c, test/test-service.c: Add testcase
2337 for sending messages to oneself (TODO item).
2339 * python/service.py (class Object): Swap ordering of bus_name
2340 and object_path parameters to better support inheritance.
2342 * doc/dbus-tutorial.xml: change Python docs to reflect change
2343 in parameter ordering and fix the inheritance section.
2345 * doc/TODO: remove sending message to oneself TODO item
2347 2005-07-15 Ross Burton <ross@openedhand.com>
2349 * glib/dbus-gproxy.c:
2350 Fix a leak when calling methods via the proxy.
2352 2005-07-15 Colin Walters <walters@verbum.org>
2354 * bus/selinux.c (bus_selinux_append_context): Wrap in
2357 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
2359 * python/_dbus.py (Bus::remove_signal_receiver):
2360 don't add a callback to the match if none has been passed in
2362 * python/matchrules.py (SignalMatchTree::remove): if the rule
2363 being matched does not have a callback treat it as a wildcard
2366 * doc/dbus-tutorial.xml: Add Python tutorial
2368 2005-07-14 Colin Walters <walters@verbum.org>
2371 (bus_driver_handle_get_connection_unix_security_context): New function.
2372 (message_handlers): Add.
2374 * bus/selinux.c (bus_selinux_append_context): New function; appends
2375 security context to message.
2377 * bus/selinux.h: Prototype.
2379 * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2381 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
2383 * bus/activation.c: clean up all tabs to be 8 spaces
2384 (bus_activation_activate_service): make sure we clean up
2387 * bus/dispatch.c: clean up all tabs to be 8 spaces
2388 (check_shell_fail_service_auto_start): New function
2389 tests to make sure we get fail properly when trying to auto start a service
2390 with a faulty command line
2391 (check_shell_service_success_auto_start): New function tests to make sure
2392 auto started services get the arguments on the command line
2394 * test/test-shell-service.c: Added service for testing auto-starting with
2395 command line arguments
2397 * test/data/valid-service-files/debug-shell-echo-fail.service.in,
2398 test/data/valid-service-files/debug-shell-echo-success.service.in:
2399 Added service files for testing auto-starting with command line arguments
2401 * */.cvsignore: added a bunch of generated files to various .cvsignore files
2403 2005-07-14 Rodrigo Moya <rodrigo@novell.com>
2405 * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2407 * dbus/Makefile.am: added new files to build.
2409 * bus/activation.c (bus_activation_activate_service): support
2410 activation commands with parameters.
2412 * test/shell-test.c: added test program for the shell parsing
2415 2005-07-13 David Zeuthen <davidz@redhat.com>
2417 * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2418 64 bit signed and unsigned parameters
2420 2005-07-13 John (J5) Palmieri <johnp@redhat.com>
2422 * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2424 * python/service.py (class Name): renamed BusName to make it clearer
2425 what the object is for (a name on the bus)
2427 * python/examples/example-service.py,
2428 python/examples/example-signal-emitter.py: change the Name object to
2431 2005-07-12 Colin Walters <walters@verbum.org>
2433 Patch from Jim Gettys <Jim.Gettys@hp.com>.
2435 * tools/dbus-launch.c: Include sys/select.h.
2437 2005-07-12 John (J5) Palmieri <johnp@redhat.com>
2438 * python/dbus_bindings.pyx.in: removed
2440 * python/dbus_bindings.pyx: Added.
2441 - Fixed some memleaks (patch from
2442 Sean Meiners <sean.meiners@linspireinc.com>)
2443 - Broke out the #include "dbus_h_wrapper.h" and put it in its
2444 own pxd file (Pyrex definition)
2445 - Broke out glib dependancies into its own pyx module
2447 * python/dbus_bindings.pdx: Added.
2448 - Defines C class Connection for exporting to other modules
2450 * python/dbus_glib_bindings.pyx: Added.
2451 - New module to handle lowlevel dbus-glib mainloop integration
2453 * python/glib.py: Added.
2454 - Registers the glib mainloop when you import this module
2456 * python/services.py: Removed (renamed to service.py)
2458 * python/service.py: Added.
2459 - (class Server): renamed Name
2461 * python/__init__.py: Bump ro version (0,41,0)
2462 -don't import the decorators or service module
2463 by default. These now reside in the dbus.service namespace
2465 * python/_dbus.py (Bus::__init__): Add code run the main loop
2466 setup function on creation
2468 * python/examples/example-service.py,
2469 python/examples/example-signal-emitter.py: update examples
2471 * python/examples/gconf-proxy-service.py,
2472 python/examples/gconf-proxy-service2.py: TODO fix these up
2474 * doc/TODO: Addition
2475 - Added a Python Bindings 1.0 section
2476 - added "Add match on args or match on details to match rules"
2479 2005-07-12 Colin Walters <walters@verbum.org>
2481 * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h)
2482 (statemachine-glue.h):
2483 * glib/examples/Makefile.am (example-service-glue.h)
2484 (example-signal-emitter-glue.h):
2485 * glib/Makefile.am (dbus-glib-error-switch.h):
2486 Add libtool --mode=execute so we use the built library instead
2487 of any installed one.
2489 2005-07-11 Colin Walters <walters@verbum.org>
2491 * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2492 (dbus_g_value_types_init): Remove assertion.
2493 (dbus_g_value_get_g_type, dbus_g_value_open)
2494 (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2495 (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2496 functions related to DBusGValue. Now we marshal/demarshal
2497 structures as GValueArray.
2498 (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2500 (signature_iter_to_g_type_array): Don't call
2501 signature_iter_to_g_type_struct.
2502 (signature_iter_to_g_type_struct): Delete.
2503 (dbus_gvalue_to_signature): Delete.
2504 (dbus_gvalue_to_signature): New function with same name as other
2505 one; we can convert structures to signatures.
2506 (demarshal_valuearray): New function.
2507 (get_type_demarshaller): Use it.
2508 (demarshal_recurse): Delete.
2509 (marshal_proxy): New function.
2510 (marshal_map): Warn if we can't determine signature from type.
2511 (marshal_collection_ptrarray): Ditto.
2512 (marshal_collection_array): Ditto.
2513 (get_type_marshaller): Use marshal_valuearray.
2514 (marshal_recurse): Delete.
2515 (_dbus_gvalue_test): Add some tests.
2517 * dbus/dbus-glib.h (struct _DBusGValueIterator):
2518 (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2519 (dbus_g_value_open, dbus_g_value_iterator_get_value)
2520 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2521 (dbus_g_value_free): Remove prototypes.
2523 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2526 * glib/examples/example-service.c:
2527 * glib/examples/example-client.c: Implement GetTuple.
2529 * test/glib/test-dbus-glib.c:
2530 * test/glib/test-service-glib.c:
2531 * test/glib/test-service-glib.xml: Add structure tests.
2533 2005-07-10 Colin Walters <walters@verbum.org>
2535 * doc/TODO: Knock off some GLib items with this patch.
2537 * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error)
2538 (_dbus_gvalue_signals_error): New functions.
2540 * glib/dbus-gvalue-utils.h: Prototype them.
2542 * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2543 and change to not output const/retval flags for input args. All
2545 (invoke_object_method): Refactor to handle return values. Add
2546 some more comments in various places. Remove debug g_print.
2548 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2550 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2552 (compute_gsignature): New function; refactored from code from
2553 compute_marshaller and compute_marshaller_name. Enhance to
2554 handle return values and async ops more cleanly. Update for
2555 async ops returning NONE instead of BOOLEAN.
2556 (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2557 and output appropriate string.
2558 (generate_glue): Handle return value annotation. Also don't dump
2559 constness flag for input arguments.
2561 * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2562 files shared between installed library and utilities.
2563 (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2564 (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2565 binding tool can access gtype utility functions.
2567 * test/glib/test-service-glib.c:
2568 * test/glib/test-service-glib.xml:
2569 * test/glib/test-dbus-glib.c: Add some tests for return values.
2571 2005-07-09 Colin Walters <walters@verbum.org>
2573 * glib/dbus-gparser.c (parse_annotation): Add annotations to
2574 argument if available, not method.
2576 * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2577 (invoke_object_method): First, remove some redundant
2578 GValues (object_value, error_value) in favor of working on
2579 array directly. Second, rework constness to be less buggy.
2580 Now we iterate directly over the argument metadata instead
2581 of parallel iterating over output signature and metadata.
2583 * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2585 * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2586 annotation on input args.
2588 2005-07-09 Colin Walters <walters@verbum.org>
2590 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2593 * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2596 * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2597 (method_dir_signature_from_object_info): Handle arg_iterate change.
2598 (write_interface): Ditto.
2599 (lookup_object_info): Don't barf if format_version is > 0.
2600 (invoke_object_method): Handle arg constness.
2602 * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2603 (arg_info_new): Create.
2604 (arg_info_unref): Destroy.
2605 (arg_info_get_annotations, arg_info_get_annotation)
2606 (arg_info_add_annotation): New functions.
2608 * glib/dbus-gidl.h: Prototype them.
2610 * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2611 args, disallow them in properties.
2612 (parse_annotation): Handle arg annotations.
2614 * test/glib/test-service-glib.xml:
2615 * test/glib/test-service-glib.c: Update to make some methods
2618 2005-07-08 Colin Walters <walters@verbum.org>
2620 * test/glib/test-service-glib.xml:
2621 * test/glib/test-service-glib.c:
2622 * test/glib/test-dbus-glib.c: Test a{sv}.
2624 * glib/examples/statemachine/statemachine.c:
2625 * glib/examples/statemachine/statemachine-server.c:
2626 * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2627 add progress bar, etc.
2629 * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2630 needed anymore due to generic array/map marshalling.
2631 (dbus_g_value_types_init): Don't register basic arrays or the
2633 (dbus_gtype_from_signature_iter): Don't try to recurse into
2635 (dbus_gtype_to_signature): Check collection/map before type
2637 (demarshal_garray_basic): Renamed to demarshal_collection_array.
2638 (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2639 generic map creation/append functions instead of hash table
2641 (get_type_demarshaller): Handle maps.
2642 (demarshal_collection): Dispatch on collection type to either
2643 demarshal_collection_ptrarray or demarshal_collection_array.
2644 (get_type_marshaller): Handle maps.
2645 (marshal_collection): Dispatch collection type to either
2646 marshal_collection_ptrarray or marshal_collection_array.
2647 (_dbus_gvalue_test): New test.
2649 * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2650 (hash_free_from_gtype): Use it to free GValues.
2651 (hashtable_append): New function.
2652 (ptrarray_append): Fix prototype.
2653 (slist_append): Ditto.
2654 (_dbus_gvalue_utils_test): Extend tests.
2656 * glib/dbus-gtype-specialized.c
2657 (dbus_g_type_specialized_init_append): Renamed from
2658 dbus_g_type_specialized_collection_init_append. Remove const from
2659 value, since we steal it.
2660 (dbus_g_type_specialized_map_append): New function.
2662 * glib/dbus-gtype-specialized.h: Update prototypes.
2663 Add DBusGTypeSpecializedMapAppendFunc.
2665 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2668 * glib/dbus-gtest.h: Prototype it.
2670 2005-07-08 Ross Burton <ross@openedhand.com>
2673 Add DBysGAsyncData for the async bindings.
2675 * glib/dbus-binding-tool-glib.c:
2676 Re-enable the async bindings.
2678 * test/glib/test-dbus-glib.c:
2679 Add a test for the generated async bindings.
2681 2005-07-08 Colin Walters <walters@verbum.org>
2683 * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2686 2005-07-08 Colin Walters <walters@verbum.org>
2688 * tools/Makefile.am: Kill of print-introspect in favor of using
2689 dbus-send --print-reply=literal.
2691 * test/glib/test-service-glib.xml:
2692 * test/glib/test-service-glib.c (my_object_get_objs): New test
2695 * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2696 (main): Test GetObjs.
2698 * glib/examples/statemachine/Makefile.am:
2699 * glib/examples/statemachine/sm-marshal.list:
2700 * glib/examples/statemachine/statemachine-client.c:
2701 * glib/examples/statemachine/statemachine-server.c:
2702 * glib/examples/statemachine/statemachine-server.xml:
2703 * glib/examples/statemachine/statemachine.c:
2704 * glib/examples/statemachine/statemachine.h:
2705 * glib/examples/statemachine/statemachine.xml:
2709 * glib/examples/example-service.c (main): Move invocation
2710 of dbus_g_object_type_install_info earlier, to emphasize it
2711 should only be done once.
2713 * glib/examples/example-signal-emitter.c (main): Ditto.
2715 * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2717 * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2718 (dbus_gvalue_marshal): Update prototypes.
2720 * glib/dbus-gvalue.c: Update all marshalling functions to take
2721 const GValue instead of GValue.
2722 (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2724 (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2726 (dbus_gtype_to_signature): Handle generic collecitons and maps.
2727 Return a newly-allocated string.
2728 (demarshal_proxy, demarshal_object_path, demarshal_object)
2729 (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2730 we get the wrong types from message.
2731 (get_type_demarshaller): New function, extracted from
2732 dbus_gvalue_demarshal.
2733 (demarshal_collection): New function, demarshals generic
2735 (dbus_gvalue_demarshal): Just invoke result of
2736 get_type_demarshaller. Throw error if we don't have one.
2737 (marshal_garray_basic): Abort on OOM.
2738 (get_type_marshaller): New function, extracted from
2739 dbus_gvalue_marshal.
2740 (collection_marshal_iterator, marshal_collection): New functions;
2741 implements generic marshalling for an iteratable specialized
2743 (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2745 * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2747 (ptrarray_value_from_gvalue): Ditto.
2748 (ptrarray_append, ptrarray_free): New functions.
2749 (slist_constructor, slist_iterator, slist_copy_elt, slist_copy)
2750 (slist_append, slist_end_append, slist_free): New functions.
2751 (dbus_g_type_specialized_builtins_init): Add append fuctions
2752 for GPtrArray and GSList. Register GSList.
2753 (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2755 * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2757 (dbus_g_type_specialized_collection_init_append)
2758 (dbus_g_type_specialized_collection_append)
2759 (dbus_g_type_specialized_collection_end_append): Prototype.
2760 (DBusGTypeSpecializedCollectionVtable): Add append_func and
2763 * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append)
2764 (dbus_g_type_specialized_collection_append)
2765 (dbus_g_type_specialized_collection_end_append): New functions.
2766 (dbus_g_type_map_value_iterate): Take const GValue.
2767 (dbus_g_type_collection_value_iterate): Ditto.
2769 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2770 _dbus_gvalue_utils_test.
2772 * glib/dbus-gtest.h: Prototype it.
2774 * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2775 using uninitialized owner_list.
2776 (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2778 (dbus_g_proxy_end_call_internal): Update to use error set
2779 from dbus_gvalue_demarshal instead of setting it here.
2780 (dbus_g_proxy_begin_call): Move return_if_fail here.
2782 * glib/dbus-gobject.c (write_interface): Update for
2783 dbus_gtype_to_signature returning new string.
2785 * configure.in: Add glib/examples/statemachine.
2787 2005-07-08 Joe Shaw <joeshaw@novell.com>
2789 * configure.in: Add a configure option, --with-console-auth-dir
2791 * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2792 new setting. Patch from Kay Sievers.
2794 2005-07-06 Colin Walters <walters@verbum.org>
2796 * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2797 (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2798 (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2799 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2800 Delete in favor of dbus_g_proxy_begin_call and
2801 dbus_g_proxy_cancel_call.
2802 (DBusGProxyCall, DBusGProxyCallNotify): New.
2803 (dbus_g_proxy_begin_call): Change prototype to take callback, user
2804 data, and destroy function. This replaces
2805 dbus_g_pending_call_set_notify.
2806 (dbus_g_proxy_cancel_call): Prototype.
2807 (DBusGAsyncData): Delete, shouldn't be needed anymore.
2809 * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
2811 (struct _DBusGProxyManager): Add bus_proxy member, which is an
2812 internal proxy for calls to the bus. Remove
2813 pending_nameowner_calls, now the internal proxy keeps track.
2814 (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
2815 pending_nameowner_calls.
2816 (got_name_owner_cb): Update prototype, and use
2817 dbus_g_proxy_end_call.
2818 (got_name_owner_cb): Remove reference to pending_nameowner_calls.
2819 (dbus_g_proxy_manager_register): Delete directly libdbus code in
2820 favor of using internal proxy.
2821 (dbus_g_proxy_manager_unregister): Update to use
2822 dbus_g_proxy_cancel_call for any pending GetNameOwner call.
2823 (dbus_g_proxy_init): Initialize pending calls map.
2824 (dbus_g_proxy_constructor): New.
2825 (dbus_g_proxy_class_init): Add get/set property functions,
2826 constructor, and add NAME, PATH, and INTERFACE properties.
2827 (cancel_pending_call): New function.
2828 (dbus_g_proxy_dispose): Iterate over any outstanding calls and
2830 (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
2831 (GPendingNotifyClosure): New structure.
2832 (d_pending_call_notify, d_pending_call_free): Moved here from
2834 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
2836 (manager_begin_bus_call): New internal function for talking to
2838 (dbus_g_proxy_new): Construct object using GObjet properties.
2839 (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
2840 Create closure of same, and insert call into map of pending calls.
2841 (dbus_g_proxy_end_call_internal): Take call id instead of pending
2842 call. Look up pending call in current set. Remove it when we've
2844 (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
2845 (dbus_g_proxy_begin_call): Change API to take callback, user data,
2846 and destroy function directly.
2847 (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
2848 (dbus_g_proxy_call): Invoke with NULL callback.
2849 (dbus_g_proxy_cancel_call): New function, replaces
2850 dbus_g_pending_call_cancel.
2852 * glib/dbus-gparser.c (validate_signature): Fix call to
2855 * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
2856 New quark for attaching metadata to GType.
2857 (info_hash): Delete.
2858 (lookup_object_info): Look up using quark.
2859 (dbus_g_object_type_install_info): Check that a type is classed,
2860 not that it's an object. Also just install type data using quark
2861 instead of using global hash.
2863 * glib/dbus-glib.c (dbus_g_pending_call_ref)
2864 (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
2865 (GPendingNotifyClosure): Delete.
2866 (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
2867 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
2869 * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
2870 client method generation until we can fix it...
2872 * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
2873 (load_from_service_thread_func): Ditto.
2875 * tools/dbus-names-model.c (struct NamesModel): Hold
2877 (have_names_notify): Update prototype, use
2878 dbus_g_proxy_cancel_call.
2879 (names_model_reload): Update for new dbus_g_proxy_begin_call API.
2881 * tools/dbus-monitor.c (filter_func): Update for print_message
2884 * test/glib/test-dbus-glib.c: Add more tests for async
2885 invocations. Update many begin_call/end_call pairs to just use
2888 * tools/dbus-send.c (main): Add --print-reply=literal mode. This
2889 allows us to dump print-introspect.c.
2891 * tools/dbus-print-message.h (print_message): Add literal argument
2892 to print_message which is intended to allow printing arguments without
2893 metadata like "string=".
2895 * tools/dbus-print-message.c (print_iter): Add literal argument.
2896 (print_message): Allow printing string messages literally.
2898 2005-07-05 Colin Walters <walters@verbum.org>
2900 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2901 Remove value refcount leak, original patch from Jorn Baayen
2902 <jorn@openedhand.com>. Also remove useless extra value in favor
2903 of prepending to value array directly.
2905 2005-07-02 Colin Walters <walters@verbum.org>
2907 * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
2909 2005-07-01 Colin Walters <walters@verbum.org>
2911 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2913 * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
2914 (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
2915 G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
2916 and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
2918 2005-06-30 Colin Walters <walters@verbum.org>
2920 * test/glib/test-dbus-glib.c:
2921 * test/glib/test-service-glib.c:
2922 * test/glib/test-service-glib.xml: Update tests for new error
2923 setting bits, also add async tests (patch from Ross Burton).
2925 * test/glib/Makefile.am (test_service_glib_LDADD): Add
2926 DBUS_GLIB_THREADS_LIBS.
2928 * glib/dbus-gproxy.c (get_name_owner)
2929 (dbus_g_pending_call_end_valist): Ditto.
2931 * glib/dbus-gobject.c (error_metadata): New mapping from GError
2932 domain (GQuark) to DBusGErrorInfo.
2933 (gerror_domaincode_to_dbus_error_name): Attempt to look up error
2934 quark in error_metadata. Take message interface as default
2935 error message interface.
2936 (gerror_to_dbus_error_message): Pass message interface.
2937 (dbus_set_g_error): Resurrected.
2938 (dbus_g_error_info_free): New function.
2939 (dbus_g_object_type_install_info): Use g_type_class_ref instead
2940 of _peek to actually create the object class if it hasn't been
2942 (dbus_g_error_domain_register): New function.
2944 * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
2946 * glib/dbus-gparser.c (validate_signature): Ditto.
2948 * dbus/dbus-glib.h (dbus_g_error_set): Delete.
2949 (dbus_g_error_domain_register): Prototype.
2951 * glib/dbus-glib.c (dbus_g_error_set): Delete.
2954 2005-06-29 Colin Walters <walters@verbum.org>
2956 * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY. Add
2957 DBUS_TYPE_G_OBJECT_PATH.
2959 * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
2960 for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
2961 be handled more generically). Add DBUS_TYPE_G_OBJECT_PATH.
2962 (dbus_g_object_path_get_g_type): New function.
2963 (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
2964 to DBUS_TYPE_G_OBJECT_PATH by default.
2965 (demarshal_proxy): Remove unused name variable.
2966 (demarshal_object_path, marshal_object_path): New functions.
2967 (demarshal_proxy_array, marshal_proxy_array): Delete.
2969 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
2970 DBUS_TYPE_G_OBJECT_PATH to char *.
2971 (dbus_g_type_get_lookup_function): Map builtin
2972 DBUS_TYPE_G_OBJECT_PATH.
2974 * test/glib/test-dbus-glib.c
2975 * test/glib/test-service-glib.c (my_object_objpath):
2976 Adapt tests to new object path marshalling.
2978 2005-06-29 John (J5) Palmieri <johnp@redhat.com>
2980 * configure.in: force check for Python >= 2.4
2982 2005-06-29 Colin Walters <walters@verbum.org>
2984 Patch from Ross Burton <ross@openedhand.com>
2986 * glib/dbus-gobject.c (invoke_object_method): Unset object
2987 value in all cases, not only in async case.
2989 2005-06-29 Colin Walters <walters@verbum.org>
2991 * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2992 name_call for keeping track of any outgoing GetNameOwner call.
2993 Also add for_owner and associated.
2994 (struct _DBusGProxyManager): Add owner_names, which is hash table
2995 that maps a base name to a list of names it owns (that we're
2996 interested in). Add pending_nameowner_calls which is a list of
2997 all outstanding GetNameOwner; avoids us having to iterate over
2998 every proxy. Add unassociated_proxies which keeps track of name
2999 proxies with no associated name owner.
3000 (dbus_g_proxy_manager_unref): Destroy owner_names.
3001 (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3003 (find_name_in_info, name_owner_foreach)
3004 (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3005 (dbus_g_proxy_manager_monitor_name_owner)
3006 (dbus_g_proxy_manager_unmonitor_name_owner)
3007 (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3008 New functions; they manipulate the owner_names mapping.
3009 (got_name_owner_cb): New function.
3010 (get_name_owner): New function, extracted from
3011 dbus_g_proxy_new_for_name_owner.
3012 (dbus_g_proxy_manager_register): For now we need to keep track of
3013 all NameOwnerChanged. Also if the proxy is for a name, if we
3014 don't already know the name owner, queue a new GetNameOwner
3015 request and add it to our list of unassociated proxies. Otherwise
3017 (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3018 cancel any pending GetNameOwner call, etc.
3019 (dbus_g_proxy_manager_filter): Handle NameOwnerChanged. Also use
3020 the owner_names mapping to look up the current names for the
3021 signal source, and dispatch to any proxies for that name.
3022 (dbus_g_proxy_new): Initialize new members.
3023 (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3024 (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3025 (dbus_g_pending_call_end_valist): New function, extracted from
3026 dbus_g_proxy_end_call_internal. Useful when we don't have a proxy
3027 but want to use the GLib infrastructure. Also note how many
3028 arguments in reply were over.
3029 (dbus_g_pending_call_end): New function, just call
3030 dbus_g_pending_call_end_valist.
3031 (dbus_g_proxy_end_call_internal): Just call
3032 dbus_g_pending_call_end_valist.
3034 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3035 of builtin marshaller for STRING_STRING_STRING.
3037 * test/glib/test-dbus-glib.c:
3038 * test/glib/test-service-glib.c:
3039 * test/glib/test-service-glib.xml:
3040 Extend tests to cover name proxies, destruction of owner proxies,
3043 * glib/examples/example-signal-recipient.c
3044 (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3046 * tools/dbus-send.c (main): Print D-BUS error name in addition
3049 2005-06-28 John (J5) Palmieri <johnp@redhat.com>
3051 * python/dbus_bindings.pyx.in (cunregister_function_handler,
3052 cmessage_function_handler): Patch from
3053 Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3054 by using the Py_GILState_Ensure/Release to synchronize with the
3057 2005-06-28 Ray Strode <rstrode@redhat.com>
3059 * dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3060 babysitter helper process on last unref, bug #2813.
3062 2005-06-27 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:
3067 Test hash table signal emitting.
3069 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3070 types to their fundamental basis types, since this is what
3071 marshallers operate on. Also add an entry for VOID__BOXED.
3072 (dbus_g_object_register_marshaller_array): Convert to fundamental.
3074 2005-06-26 Havoc Pennington <hp@redhat.com>
3076 * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3079 2005-06-26 Colin Walters <walters@verbum.org>
3081 * glib/dbus-glib.c (dbus_set_g_error): Delete.
3082 (dbus_g_error_set): New public function from its ashes; used by
3083 both service-side method implementation and GLib bindings
3085 (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3086 (_dbus_glib_test): Add some tests.
3088 * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3090 * test/glib/test-service-glib.c (my_object_throw_error): Use
3093 * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3094 errors thrown by dbus_g_error_set.
3096 * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3098 * glib/dbus-gparser.c (validate_signature): Ditto.
3100 * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner)
3101 (dbus_g_proxy_end_call_internal): Ditto.
3103 * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3104 converts DBUS_ERROR_x to DBUS_GERROR_x.
3105 (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3107 * doc/TODO: Remove error TODO.
3109 * doc/dbus-tutorial.xml: Update with documentation about error
3112 * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3113 sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3114 GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION.
3116 2005-06-22 Colin Walters <walters@verbum.org>
3118 Patch from Ross Burton <ross@openedhand.com>
3120 * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3122 2005-06-20 Colin Walters <walters@verbum.org>
3124 * configure.in: Add glib/examples.
3126 * glib/Makefile.am: Add examples/
3128 * glib/examples/.cvsignore
3129 * glib/examples/Makefile.am
3130 * glib/examples/example-client.c
3131 * glib/examples/example-service.c
3132 * glib/examples/example-service.xml
3133 * glib/examples/example-signal-emitter.c
3134 * glib/examples/example-signal-emitter.xml
3135 * glib/examples/example-signal-recipient.c:
3136 New files; GLib binding examples, ported from
3139 2005-06-20 Colin Walters <walters@verbum.org>
3142 * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3145 * glib/dbus-binding-tool-glib.c:
3146 * doc/dbus-tutorial.xml:
3147 * test/glib/test-dbus-glib.c: Update for rename.
3149 2005-06-20 Colin Walters <walters@verbum.org>
3151 Patch suggested by Ross Burton <ross@openedhand.com>
3153 * glib/dbus-gobject.c (export_signals): Free signal name.
3154 (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3155 memory leak. Add a bit of documentation.
3156 (dbus_g_method_return_error): Free context, and note we do
3159 2005-06-18 Murray Cumming <murrayc@murrayc.com>
3162 * glib/dbus-gobject.c:
3163 * glib/dbus-gproxy.c:
3164 * glib/dbus-gvalue.c: Predeclare structs as
3165 typedef struct _Something Something instead of
3166 typedef struct Something Something, so we can
3167 redeclare the prototypes. Other GNOME libraries
3170 2005-06-17 Colin Walters <walters@verbum.org>
3172 * tools/dbus-names-model.c (have_names_notify): Fix call
3173 to dbus_g_proxy_end_call.
3175 2005-06-17 Colin Walters <walters@verbum.org>
3177 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3178 spew warnings if we get malformed remote signals.
3180 * glib/dbus-gobject.c (propsig_iterate): New function.
3181 (lookup_object_info): New function, extracted from
3182 lookup_object_and_method.
3183 (introspect_properties, introspect_signals): Delete; these
3184 are merged into write_interface.
3185 (write_interface): Write out signals and properties here;
3186 dump the org.gtk.object stuff and use the interface given
3187 in the introspection data blob. Also fix up property XML.
3188 (lookup_values): New function.
3189 (introspect_interfaces): Gather a mapping from interface to a
3190 list of its methods, signals, and properties, then write out
3192 (lookup_object_and_method): Use lookup_object_info.
3193 (struct DBusGSignalClosure): Add interface.
3194 (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3195 we can just use the constant data.
3196 (dbus_g_signal_closure_finalize): Don't free signal name.
3197 (signal_emitter_marshaller): Use interface from signal closure.
3198 (export_signals): Only export signals mentioned in introspection
3200 (dbus_g_connection_register_g_object): Warn if we have no
3201 introspection data for an object.
3202 (funcsig_equal): Remove unused variable.
3203 (dbus_g_object_register_marshaller): Take varargs instead of
3205 (dbus_g_object_register_marshaller_array): New function,
3206 extracted from old dbus_g_object_register_marshaller.
3208 * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3209 signals and property data.
3210 (write_quoted_string): New function, extracted from generate_glue.
3211 (generate_glue): Write signals and properties to introspection
3214 * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3215 exported_signals and exported_properties.
3216 (dbus_g_object_register_marshaller): Update prototype.
3217 (dbus_g_object_register_marshaller_array): Prototype.
3219 * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3221 * test/glib/test-service-glib.c: Add new test signals and method
3224 * test/glib/test-service-glib.xml: Add some test signals.
3226 * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3227 and my-object-marshal.h
3228 (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3229 my-object-marshal.c.
3230 (my-object-marshal.c, my-object-marshal.h): Implement.
3232 * test/glib/.cvsignore: Update.
3234 * doc/TODO: Remove two GLib TODO items fixed by this
3237 2005-06-16 Colin Walters <walters@verbum.org>
3239 * doc/TODO: Update for GLib bindings.
3241 2005-06-16 Colin Walters <walters@verbum.org>
3243 * glib/dbus-binding-tool-glib.c:
3244 * glib/dbus-gobject.c:
3245 * glib/dbus-gproxy.c: Add Nokia copyright; Patch
3246 from Ross Burton, for his GLib bindings work.
3248 2005-06-16 Colin Walters <walters@verbum.org>
3250 * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3251 to iterate instead of walking to G_TYPE_INVALID.
3253 Patch based on a patch from Ryan Gammon.
3255 2005-06-16 Colin Walters <walters@verbum.org>
3257 * bus/bus.c (bus_context_new): Set parser to NULL
3258 after we unref it (Patch from Chris Boscolo, #2174).
3260 2005-06-16 Colin Walters <walters@verbum.org>
3262 * python/dbus_bindings.pyx.in: Import size_t,
3263 __int64_t, __uint64_t, and __signed.
3265 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3266 Define cmsg struct, output it.
3267 (_dbus_read_credentials_unix_socket):
3270 Patch from Joe Markus Clarke for FreeBSD support.
3272 2005-06-16 Colin Walters <walters@verbum.org>
3274 * tools/dbus-send.c (append_array): Use strtok.
3275 (append_dict): New function.
3276 (type_from_name): New function, extracted from main.
3277 (main): Handle sending dicts.
3279 * tools/dbus-print-message.c (print_iter): Print dict
3282 2005-06-16 Colin Walters <walters@verbum.org>
3284 * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3285 values as the empty string (#2948).
3287 2005-06-16 Colin Walters <walters@verbum.org>
3290 * mono/doc/Makefile.am:
3291 * test/glib/Makefile.am:
3293 Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3295 2005-06-16 Colin Walters <walters@verbum.org>
3297 * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3298 header byte order from expected byte order (Patch from Chris Wilson, #3475).
3300 * dbus/dbus-marshal-byteswap.c (byteswap_body_helper):
3301 Increment pointer after swapping fixed array. Add assertion
3304 2005-06-15 Colin Walters <walters@verbum.org>
3306 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3307 Fix call to dbus_set_error. (Patch from Michael Banck, #3461)
3309 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3311 * NEWS: Update to 0.34
3313 2005-06-15 David Zeuthen <davidz@redhat.com>
3315 * configure.in (LT_CURRENT): Revert back to 1 as the library
3316 hasn't changed and we've certainly not committed to protocol
3317 stability yet. All this does is to break ABI. See commit note
3318 from hp@redhat.com 2005-05-05 for details.
3320 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3322 * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method
3323 (_dbus_connection_run_builtin_filters): New method
3324 (dbus_connection_dispatch): Run the builtin filters which in turn
3325 runs the peer filter which handles Ping messages.
3328 - Ping isn't handled: This patch fixes it
3330 - Add a test case for the Ping message: added TODO item
3332 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3334 * dbus/dbus-message.c:
3335 (dbus_message_has_path): New method
3336 (dbus_message_has_interface): New method
3337 (dbus_message_has_member): New method
3339 * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3342 * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that
3343 the keyring directory is private to the user
3346 - The convenience functions in dbus-bus.h should perhaps have
3347 the signatures that they would have if they were autogenerated
3348 stubs. e.g. the acquire service function. We should also evaluate
3349 which of these functions to include, in light of the fact that
3350 GLib/Qt native stubs will probably also exist.: Punted
3352 - add dbus_message_has_path(), maybe has_member/interface:
3355 - in dbus-keyring.c, enforce that the keyring dir is not
3356 world readable/writable: Fixed in this patch
3358 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
3360 * dbus/dbus-marshal-validate.h: Added a new validation
3361 error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for
3362 out of memory errors when validating signitures
3364 * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3365 in places where we previously used DBUS_VALID and a FALSE return
3366 value to indicate OOM
3368 * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3369 Use a stack to track the number of elements inside containers. The
3370 stack values are then used to validate that dict entries have only two
3371 elements within them.
3372 (validate_body_helper): check the reason for failure when validating
3375 * dbus/dbus-message.c (load_message): use
3376 DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used
3377 DBUS_VALID and a FALSE return value to indicate OOM
3379 * doc/TODO: remove "- validate dict entry number of fields" as this
3382 2005-06-14 David Zeuthen <davidz@redhat.com>
3384 * bus/bus.c (process_config_every_time): Drop existing conf-dir
3385 watches (if applicable) and add new watches
3387 * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3388 (main): Setup SIGIO signal handler if using D_NOTIFY
3390 * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3392 * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3393 (merge_included): Also merge conf_dirs list
3394 (bus_config_parser_unref): Clear conf_dirs list
3395 (include_dir): Add directory to conf_dirs list
3396 (bus_config_parser_get_conf_dirs): New function
3398 * bus/dir-watch.[ch]: New files
3400 * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3402 * configure.in: Add checks for D_NOTIFY on Linux
3404 2005-06-14 Colin Walters <walters@verbum.org>
3406 * glib/dbus-binding-tool-glib.c:
3407 * glib/dbus-gobject.c:
3408 * glib/dbus-gvalue.c: Fix indentation and brace style.
3410 2005-06-14 Ross Burton <ross@openedhand.com>.
3412 * glib/dbus-glib.h: Make DBusGMethodInvocation
3413 a private structure. Rearrange prototypes a bit.
3415 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3416 documentation for first_arg_type.
3418 * glib/dbus-gobject.c: Move DBusGMethodInvocation
3419 here, add documentation. Move dbus_g_method_return
3420 and dbus_g_method_return_error into public API
3423 2005-06-14 Colin Walters <walters@verbum.org>
3425 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3426 Add missing return statements, noticed by Ross Burton.
3428 2005-06-13 Ross Burton <ross@openedhand.com>.
3430 * glib/dbus-gobject.c: Handle errors on message
3431 demarshalling by sending error message back.
3432 * glib/dbus-gvalue.c: Initialize return variables.
3434 2005-06-13 Colin Walters <walters@verbum.org>
3436 * glib/Makefile.am: Fix thinko in last patch.
3438 2005-06-13 Colin Walters <walters@verbum.org>
3440 * glib/Makefile.am: Move dbus-gtype-specialized.c
3441 and dbus-gtype-specialized.h into a _HEADERS variable,
3444 2005-06-12 Colin Walters <walters@verbum.org>
3446 Async signals and various bugfixes and testing by
3447 Ross Burton <ross@openedhand.com>.
3449 * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3450 (dbus_gvalue_genmarshal_name_from_type)
3451 (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3452 (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3453 (dbus_g_value_types_init, dbus_gtype_from_signature)
3454 (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3455 (dbus_gtypes_from_arg_signature): New function prototypes.
3456 (dbus_gvalue_demarshal): Take context and error arguments.
3457 (dbus_gvalue_demarshal_variant): New function.
3458 (dbus_gvalue_demarshal_message): New function.
3459 (dbus_gvalue_store): Delete.
3461 * glib/dbus-gvalue.c:
3463 File has been almost entirely rewritten; now we special-case
3464 more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3465 hash tables correctly, etc. Full support for recursive values
3466 is not yet complete.
3468 * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3469 argument of signal to G_TYPE_POINTER since we now pass a
3471 (lookup_g_marshaller): Delete in favor of
3472 _dbus_gobject_lookup_marshaller.
3473 (marshal_dbus_message_to_g_marshaller): Use
3474 _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3475 to handle remote signal callbacks.
3476 (dbus_g_proxy_new_from_proxy): New function; creates a new
3477 DBusGProxy by copying an existing one.
3478 (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3479 (dbus_g_proxy_get_path): New functions.
3480 (dbus_g_proxy_marshal_args_to_message): New function;
3481 factored out of existing code.
3482 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3483 from a varargs array.
3484 (dbus_g_proxy_begin_call_internal): New function.
3485 (dbus_g_proxy_end_call_internal): New function.
3486 (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3487 as arguments; simply invoke dbus_g_proxy_begin_call_internal
3488 after collecting args into value array.
3489 (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3490 invoke dbus_g_proxy_end_call_internal.
3491 (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3493 (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3495 (array_free_all): New function.
3496 (dbus_g_proxy_add_signal): Take GTypes.
3498 * glib/dbus-gobject.h:
3499 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3500 (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3503 * glib/dbus-gobject.c: Add a global marshal_table hash which
3504 stores mappings from type signatures to marshallers. Change lots
3505 of invocations of dbus_gtype_to_dbus_type to
3506 dbus_gtype_to_signature.
3507 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3508 (introspect_signals): Fix test for query.return_type.
3509 (set_object_property): Update invocation of dbus_gvalue_demarshal.
3510 (invoke_object_method): Many changes. Handle asynchronous
3511 invocations. Convert arguments with
3512 dbus_gvalue_demarshal_message. Handle errors. Use
3513 DBusSignatureIter instead of strlen on args. Handle all arguments
3514 generically. Special-case variants.
3515 (dbus_g_method_return, dbus_g_method_return_error): New function.
3516 (DBusGSignalClosure): New structure, closes over signal
3518 (dbus_g_signal_closure_new): New function.
3519 (dbus_g_signal_closure_finalize): New function.
3520 (signal_emitter_marshaller): New function; is special marshaller
3521 which emits signals on bus.
3522 (export_signals): New function; introspects object signals and
3524 (dbus_g_object_type_install_info): Take GType instead of
3526 (dbus_g_connection_register_g_object): Invoke export_signals.
3527 (dbus_g_connection_lookup_g_object): New function.
3528 (DBusGFuncSignature) New structure; used for mapping type
3529 signatures to marshallers.
3530 (funcsig_hash): New function; hashes DBusGFuncSignature.
3531 (funcsig_equal): New function; compares DBusGFuncSignature.
3532 (_dbus_gobject_lookup_marshaller): New function.
3533 (dbus_g_object_register_marshaller): New function; used to
3534 register a marshaller at runtime for a particular signature.
3536 * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3538 * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3539 which notes a server method implementation should be
3542 * glib/dbus-binding-tool-glib.c
3543 (dbus_binding_tool_output_glib_server): Call
3544 dbus_g_value_types_init.
3545 (write_formal_parameters): Use dbus_gtype_from_signature. Handle
3547 (dbus_g_type_get_lookup_function): Turn GType into an invocation
3548 of a lookup function.
3549 (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3550 (write_untyped_out_args): New method; write output arguments.
3551 (write_formal_declarations_for_direction): Function for
3553 (write_formal_parameters_for_direction): Function for
3554 writing implementations.
3555 (write_typed_args_for_direction): Function for writing
3556 arguments prefixed with GTypes.
3557 (write_async_method_client): Write out async version
3560 * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3561 (dbus_g_type_get_marshal_name): Move mapping from GType
3562 to marshal name into here.
3563 (dbus_g_type_get_c_name): Move into here.
3564 (compute_marshaller): Convert signature to type with
3565 dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3566 (compute_marshaller_name): Ditto.
3567 (compute_marshaller): Handle async signal annotations.
3568 (gather_marshallers): Return if we don't have a known
3570 (generate_glue): Collect introspection blob here, and
3571 write all of the blob at the end. This allows an object
3572 with multiple interfaces to work.
3573 Mark async methods in introspection blob.
3575 * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3576 dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3577 dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3579 * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3580 avoids people accidentally using DBUS_TYPE_* which should
3581 not be necessary anymore.
3582 Do include dbus-gtype-specialized.h, which are utilities
3583 for GLib container types.
3584 Add various #defines for types such as
3585 DBUS_TYPE_G_BOOLEAN_ARRAY.
3586 (DBusGValueIterator, DBusGValue): Define, not fully used
3588 (dbus_g_value_get_g_type): Type for recursive value.
3589 (dbus_g_value_open, dbus_g_value_iterator_get_value)
3590 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3591 (dbus_g_value_free): Prototypes.
3592 (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3593 (dbus_g_proxy_set_interface): Prototype.
3594 (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3595 (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3597 (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3599 (DBusGAsyncData, DBusGMethodInvocation): Structures for
3600 doing async invocations.
3601 (dbus_g_method_return, dbus_g_method_return_error):
3603 * doc/dbus-tutorial.xml: Update GLib section.
3605 * tools/dbus-viewer.c (load_child_nodes): Update
3606 for new invocation type of dbus_g_proxy_end_call.
3607 (load_from_service_thread_func): Ditto.
3609 * tools/print-introspect.c (main): Ditto.
3611 * tools/dbus-names-model.c (have_names_notify)
3612 (names_model_reload, names_model_set_connection)
3615 * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3616 needed since Python bindings use GLib bindings.
3618 * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3619 Add --prefix argument.
3621 * tools/Makefile.am: Define DBUS_COMPILATION. Remove
3622 unneeded --ignore-unsupported arg.
3624 * test/glib/test-service-glib.c:
3625 * test/glib/test-service-glib.xml:
3626 * test/glib/test-dbus-glib.c: Add many more tests.
3628 2005-06-06 David Zeuthen <davidz@redhat.com>
3630 * doc/TODO: Add item about need to remove deprecated functions.
3632 * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3634 * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3635 to repair the ABI which was broken with the last commit.
3637 2005-06-02 John (J5) Palmieri <johnp@redhat.com>
3639 * dbus/dbus-connection.c, dbus/dbus-connection.h
3640 (dbus_connection_disconnect): renamed to dbus_connection_close
3641 for API symmetry with dbus_connection_open
3642 (_dbus_connection_open_internal):
3643 s/dbus_connection_disconnect/dbus_connection_close
3645 * dbus/dbus-bus.c (dbus_bus_get):
3646 s/dbus_connection_disconnect/dbus_connection_close
3648 * bus/connection.c (bus_connections_unref,
3649 bus_connections_setup_connection, bus_connections_expire_incomplete):
3650 s/dbus_connection_disconnect/dbus_connection_close
3652 * bus/dispatch.c (bus_dispatch, kill_client_connection,
3653 kill_client_connection_unchecked, check_hello_connection):
3654 s/dbus_connection_disconnect/dbus_connection_close
3656 * bus/bus.c (new_connection_callback):
3657 s/dbus_connection_disconnect/dbus_connection_close
3659 * tools/dbus-send.c (main):
3660 s/dbus_connection_disconnect/dbus_connection_close
3662 * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3663 s/dbus_connection_disconnect/dbus_connection_close
3665 * test/test-service.c (path_message_func, filter_func):
3666 s/dbus_connection_disconnect/dbus_connection_close
3668 * doc/TODO: remove connection_open/connection_disconnect lacks symmetry item that was just fixed
3670 2005-05-25 Colin Walters <walters@verbum.org>
3672 * dbus/dbus-protocol.h: Move various bus service #defines such
3673 as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3675 * dbus/dbus-shared.h: Various defines moved here.
3676 * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3678 2005-05-25 John (J5) Palmieri <johnp@redhat.com>
3680 * python/__init__.py: Python bindings deserve a minor version
3681 update. Upped to (0, 40, 2)
3683 2005-05-24 John (J5) Palmieri <johnp@redhat.com>
3685 * python/decorators.py: add explicitly_pass_message decorator
3686 for passing in the dbus message as keyword for edge case signal
3689 * python/matchrules.py (SignalMatchRule.__repr__): fix output
3690 to conform with what dbus expects for match rules
3691 (SignalMatchRule.execute): add the dbus message as a keyword
3692 if the signal handler has requested it
3694 * python/examples/example/signal-recipient.py: added some more
3695 examples on how to hook up to signals
3697 2005-05-23 John (J5) Palmieri <johnp@redhat.com>
3699 * python/decorators.py: import dbus_bindings
3701 * python/matchrules.py (SignalMatchRule, SignalMatchTree,
3702 SignalMatchNode): new classes that implement wildcard signal
3703 callback matching using a tree lookup. Heavily modified from a
3704 patch sent by Celso Pinto (fd.o bug #3241)
3706 * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3707 use new match classes to handle signals.
3709 2005-05-19 John (J5) Palmieri <johnp@redhat.com>
3711 * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3713 2005-05-18 Havoc Pennington <hp@redhat.com>
3715 * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3716 gettext. Not really worth requiring yet perhaps, but any
3717 production quality 1.0 would require it so we should go ahead and
3718 get things set up. We do have a couple token calls to
3719 bindtextdomain in the code already.
3721 2005-05-16 John (J5) Palmieri <johnp@redhat.com>
3723 * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3724 when using recursive g_main_loops
3726 * python/_dbus.py (class Bus): add the ProxyObjectClass
3727 alias for ProxyObject to make it easier for the Twisted
3728 networking framework to integrate dbus.
3730 * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3731 alias for ProxyMethod to make it easier for the Twisted
3732 networking framework to integrate dbus.
3734 2005-05-11 Ross Burton <ross@openedhand.com>
3736 * glib/dbus-glib-tool.c: Add --prefix argument.
3737 * glib/dbus-binding-tool-glib.h: Add prefix argument.
3738 * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3739 Add prefix argument.
3740 (generate_glue): Pass prefix argument down.
3741 (dbus_binding_tool_output_glib_server): Pass prefix to
3744 2005-05-11 Colin Walters <walters@verbum.org>
3746 * tools/dbus-send.c (append_array): New function.
3747 (append_arg): Broken out from main.
3748 (main): Add cheesy hack to send arrays and variants.
3750 * tools/dbus-print-message.c (print_iter): Broken out
3753 2005-05-11 Colin Walters <walters@verbum.org>
3755 * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3756 New function, returns signature string for signature iter.
3757 * dbus/dbus-signature.h: Prototype it.
3758 * dbus/dbus-message.c (dbus_message_iter_get_signature):
3759 New function, returns signature string for message iter.
3760 (dbus_message_iter_get_array_len): New function, returns
3762 (dbus_message_iter_get_fixed_array): Fix assertion; this
3763 function should be used when the iter is pointing to the
3764 contents of an array
3765 * dbus/dbus-message.h: Prototypes.
3766 * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3767 New function; returns length of an array.
3768 * dbus/dbus-marshal-recursive.h: Prototype it.
3770 2005-05-11 Colin Walters <walters@verbum.org>
3772 * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3775 2005-05-08 Havoc Pennington <hp@redhat.com>
3777 * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3778 daemon's pid, not the parent's pid, to the file descriptor.
3779 Reported by Taj Morton.
3781 2005-05-05 Havoc Pennington <hp@redhat.com>
3783 * configure.in (LT_*): add notes on how the libtool versioning
3784 works to save thinking. Increment soname to indicate protocol
3785 breakage (though really the library interface hasn't changed I
3788 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3789 verify the GUID received from server matches what we were
3790 expecting, if we had an expectation
3792 * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3793 (_dbus_auth_get_guid_from_server): new function
3794 (send_begin): parse the OK args
3796 * doc/dbus-specification.xml: add GUID to the auth protocol
3798 2005-05-05 John (J5) Palmieri <johnp@redhat.com>
3800 * Fix my name in previous changelog ;)
3802 * python/proxies.py (ProxyObject.__getattr__): add further patch
3803 from Anthony Baxter to throw an AttributeError when python
3804 __special__ functions are called instead of marshling them over
3805 the bus (Bug#1685 comment 3).
3807 2005-05-04 John (J5) Palmieri <johnp@redhat.com>
3809 * python/Makefile.am: changed to use pyexecdir for the binding
3810 shared libraries (Bug#2494)
3812 * python/exceptions.py: bring exceptions over from the bindings
3813 so they can be used in applications (Bug#2036)
3814 Make all exceptions derive from DBusException
3816 * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
3817 of classes so that print obj doesn't throw an exception (Bug #1685)
3819 2005-05-03 Ross Burton <ross@openedhand.com>
3821 * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
3822 Return if we get an error during registration. Set up a
3823 weak reference on object to unregister if object is destroyed.
3824 (unregister_gobject): New function.
3826 2005-05-01 John (J5) Palmieri <johnp@redhat.com>
3828 * python/dbus_bindings.pyx.in:
3829 - added new type classes for hinting to the marashaler what type
3830 to send over the wire
3831 - added int16 and uint16 marshalers
3832 - Fixed a bug in the type constants that caused int32 to go out
3833 as uint16 over the wire
3834 * python/dbus.py: split up into different files and renamed _dbus.py
3835 * python/__init__.py, python/_util.py, python/decorators.py,
3836 python/exceptions.py, python/proxies.py, python/services.py,
3837 python/types.py: new files split off from dbus.py
3838 * python/Makefile.am: Add new files, remove dbus.py and
3839 install all python files to <python module dir>/dbus
3840 * python/examples/*: Added #!/usr/bin/env python to the top of
3841 every example. Patch provided by Tatavarty Kalyan
3843 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
3845 * NEWS: Update to 0.33
3847 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
3849 * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
3850 method for doing async calls
3851 (_pending_call_notification): New C function for handling pendning call
3853 (set_notify): New method for setting pending call notification
3855 * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
3856 Async capabilities added to remote method calls
3857 (Sender): class removed
3858 (RemoteService): class removed
3859 (ObjectTree): class removed for now
3860 (RemoteObject): Renamed to ProxyObject
3861 (RemoteMethod): Renamed to ProxyMethod
3862 (method): Decorator added for decorating python methods as dbus methods
3863 (signal): Decorator added for decorating python methods as signal emitters
3864 (ObjectType): Metaclass added for generating introspection data and the
3865 method callback vtable
3866 (Interface): Wrapper class added to wrap objects in a dbus interface
3867 (Object): Uses ObjectType as its metaclass and exports Introspect
3868 of the org.freedesktop.DBus.Introspectable interface
3869 (ValidationException, UnknownMethodException): new exceptions
3871 * python/examples/*: Modified to fit with the new bindings
3873 2005-04-23 Havoc Pennington <hp@redhat.com>
3875 * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
3876 reported by Tony Houghton
3878 * test/test-service.c (main): test
3879 dbus_connection_get_object_path_data()
3881 * dbus/dbus-object-tree.c (find_handler): be sure we always init
3883 (_dbus_object_tree_get_user_data_unlocked): new function used by
3884 dbus_connection_get_object_path_data()
3885 (do_register): add assertion test for get_user_data_unlocked
3886 (object_tree_test_iteration): more tests
3888 * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
3889 new function from Dan Reed to let you get the user data from
3890 dbus_connection_register_object_path()
3892 2005-04-23 John (J5) Palmieri <johnp@redhat.com>
3894 * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
3895 in numerous places that did not account for the NULL terminator
3896 (signature_from_seed): changed the manual string copy loop to
3897 just use strcpy instead
3898 make check should now pass
3900 2005-04-19 John (J5) Palmieri <johnp@redhat.com>
3902 * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
3903 so that it allows messages that are not signals to pass in
3904 NULL as the interface.
3906 2005-04-18 David Zeuthen <davidz@redhat.com>
3908 * glib/dbus-gmain.c (io_handler_destroy_source):
3909 (timeout_handler_destroy_source, connection_setup_free):
3910 Also unref the source to avoid memory leaks.
3912 2005-04-13 David Zeuthen <davidz@redhat.com>
3914 * bus/config-parser.c (bus_config_parser_new): Bump this to a
3915 more reasonable, yet still totally arbitrary, value :-).
3917 2005-04-13 David Zeuthen <davidz@redhat.com>
3919 * doc/TODO: Added an "important for 1.0" item about selinux
3922 2005-04-13 David Zeuthen <davidz@redhat.com>
3924 * bus/selinux.c: Add c-file-style to top of file
3925 (log_audit_callback): Don't free the data here anymore
3926 (bus_selinux_check): Don't take spid and tpid since appending
3927 that to auxdata may OOM.
3928 (bus_selinux_allows_acquire_service): Handle OOM and signal back
3929 to the caller if we are OOM by taking an error object.
3930 (bus_selinux_allows_send): -do-
3932 * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
3933 and bus_selinux_allows_send
3935 * bus/bus.c (bus_context_check_security_policy): Pass error and
3936 pass on OOM thrown by bus_selinux_allows_send()
3938 * bus/services.c (bus_registry_acquire_service): Pass error and
3939 pass on OOM thrown by bus_selinux_allows_acquire_service()
3941 2005-04-13 Havoc Pennington <hp@redhat.com>
3943 * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
3944 message at a time to avoid monopolizing the main loop, bug
3945 #2953 from Benjamin Otte
3947 2005-04-09 Havoc Pennington <hp@redhat.com>
3949 * dbus/dbus-string.c (copy): change a memcpy to memmove due to
3950 possible overlap, fix from Daniel Reed
3951 (fixup_alignment): fix signedness warnings
3952 (_dbus_string_append_unichar): ditto
3954 2005-04-09 Havoc Pennington <hp@redhat.com>
3956 * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
3958 * glib/dbus-glib-tool.c (main): fix warning
3960 * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
3962 * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
3963 add a new function that can be used in simple applications that
3964 don't have a main loop and are willing to block
3966 2005-04-05 David Zeuthen <davidz@redhat.com>
3968 Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
3970 * glib/dbus-gmain.c:
3971 (io_handler_destroy_source): Remove from list of IO handlers
3972 of the ConnectionSetup object
3973 (timeout_handler_destroy_source): -do- for timeout handlers
3974 (io_handler_source_finalized): Don't remove from list since
3975 we now do that in io_handler_destroy_source(). Renamed from
3976 io_handler_source_destroyed
3977 (timeout_handler_source_destroyed): -do- for timeout handlers
3978 (connection_setup_free): It is now safe to iterate over all
3979 IO and timeout handlers as the _destroy_source removes them
3980 from the list synchronously
3982 2005-03-30 Havoc Pennington <hp@redhat.com>
3984 * configure.in: change check to gtk 2.4
3986 * tools/dbus-viewer.c (name_combo_changed_callback): remove
3987 gtk_combo_box_get_active_text() usage to decrement GTK requirement
3990 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
3994 * HACKING: Fixed realease instructions. configure.in should be updated to
3995 the next release by the person who made the last release.
3997 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
3999 * python/lvalue_cast_post_process.py - removed. Patch has been
4000 submitted to Pyrex maintainers that fixes gcc4.0 errors
4002 * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4004 2005-03-24 Daniel Reed <n@ml.org>
4006 * tools/Makefile.am: Make print-introspect and
4007 dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4009 2005-03-22 John (J5) Palmieri <johnp@redhat.com>
4011 * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4013 * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have
4014 had in Red Hat packages for a while but for some reason never
4016 (_dbus_is_a_number): New checks if a string
4017 can be converted to a number and does the conversion if it can
4018 (_dbus_user_database_lookup): Add check to see if the given username
4019 is a udi. This allows udi's to be used instead of usernames in the
4021 (_dbus_user_database_lookup_group): Add check to see if the given groupname
4022 is a gdi. This allows gdi's to be used instead of groupnames in the
4025 2005-03-21 John (J5) Palmieri <johnp@redhat.com>
4027 * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4028 code so that it compiles with gcc4.0
4030 * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4031 run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4032 results back to dbus_binding.c
4034 2005-03-20 Colin Walters <walters@verbum.org>
4036 Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4038 * configure.in: Require GTK+ 2.6.
4040 2005-03-20 Colin Walters <walters@verbum.org>
4042 * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4044 2005-03-17 Tom Parker <palfrey@tevp.net>
4046 * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4047 print DBUS_UID_UNSET; instead print passed username. Also
4048 be sure to actually use gid looked up in cache.
4050 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4051 for DBUS_GID_UNSET and groupname.
4053 2005-03-17 Colin Walters <walters@verbum.org>
4055 * bus/print-introspect.c: Move to tools/.
4056 * bus/run-with-tmp-session-bus.sh: Ditto.
4058 * glib/Makefile.am (dbus-glib-bindings.h): Move
4059 generation to tools/Makefile.am.
4061 * test/glib/run-test.sh: Update to handle move
4062 of run-with-tmp-session-bus.sh.
4064 * test/glib/test-service-glib.c: Update to handle
4065 move of dbus-glib-bindings.h.
4067 * tools/print-introspect.c: Moved here
4068 from bus/, and ported to GLib bindings.
4070 * tools/run-with-tmp-session-bus.sh: Moved here
4073 * tools/Makefile.am: Generate dbus-glib-bindings.h
4074 and dbus-bus-introspect.xml here.
4076 * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4079 2005-03-17 Colin Walters <walters@verbum.org>
4081 * bus/driver.c (write_args_for_direction): Use
4082 _dbus_string_get_const_data to retrieve string;
4083 _dbus_string_get_const_data_len doesn't actually return
4084 a NULL-terminated substring.
4086 * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4087 (main): Change to use org_freedesktop_DBus_request_name
4088 instead of using g_proxy_begin_call/end_call.
4090 2005-03-15 Joe Shaw <joeshaw@novell.com>
4092 * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4093 generating the finalizer. Fixes from Ben Maurer.
4095 2005-03-12 Joe Shaw <joeshaw@novell.com>
4097 * mono/BusDriver.cs: Update method names: ListServices
4098 becomes ListNames; GetOwner becomes GetNameOwner.
4100 * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4101 onto the eval stack when removing the delegate.
4103 2005-03-12 Joe Shaw <joeshaw@novell.com>
4105 * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4106 LT_CURRENT. Set it to the autoconf variable.
4108 * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4109 classes that disconnects the signal handler delegate from the
4110 service object. Fixes a big leak of proxy objects on the
4111 client side of things. Patch from Ben Maurer
4112 <bmaurer@ximian.com>
4114 2005-03-12 Colin Walters <walters@verbum.org>
4116 * bus/driver.c (write_args_for_direction): New function,
4117 parses a type signature into arguments and outputs to
4119 (bus_driver_handle_introspect): Use it instead of
4120 hardcoding XML for certain signatures.
4122 * bus/Makefile.am (dbus-bus-introspect.xml): Add
4123 dependency on dbus-daemon.
4125 * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4126 argument, pass it to dbus_binding_tool_output_glib_client.
4128 * glib/dbus-binding-tool-glib.c
4129 (generate_client_glue): Protect against multiple inclusion.
4130 (dbus_binding_tool_output_glib_client): Add
4131 G_BEGIN_DECLS/G_END_DECLS.
4133 * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4134 Change to just take iface prefix directly.
4135 (write_formal_parameters): Clarify error message.
4136 (check_supported_parameters): New function; checks to see type
4137 signatures of method parameters are supported.
4138 (generate_client_glue): Handle ignore_unsupported flag.
4139 (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4142 * glib/Makefile.am (dbus-glib-bindings.h): Pass
4143 --ignore-unsupported by default until glib bindings
4146 2005-03-11 Colin Walters <walters@verbum.org>
4148 * glib/Makefile.am: Generate dbus-glib-bindings.h and
4151 * bus/print-introspect.c: New file; prints introspection
4152 data for a given name and object path.
4154 * bus/run-with-tmp-session-bus.sh: New file, refactored
4155 from test/glib/run-test.sh. Creates a temporary session
4156 bus and runs another program.
4158 * test/glib/run-test.sh: Refactor to invoke
4159 run-with-tmp-session-bus.sh.
4161 * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4162 introspection format. Also change to use DBUS_TYPE_x_AS_STRING
4163 macros instead of hardcoding.
4165 * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4167 2005-03-11 Joe Shaw <joeshaw@novell.com>
4169 * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4170 this unref; it doesn't match up evenly in some codepaths.
4171 (_dbus_connection_block_pending_call): Unref at every exitpoint;
4172 this evenly matches with the ref near the top of this function.
4174 2005-03-09 Joe Shaw <joeshaw@novell.com>
4176 * dbus/dbus-object-tree.c
4177 (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4178 and we try to unregister a path that's not registered, still go
4179 through the process of unlocking and don't just return.
4181 2005-03-09 Colin Walters <walters@verbum.org>
4183 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4184 to this are generated for client-side wrappers. Invokes a
4185 D-BUS method and returns reply values.
4187 * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4188 function; writes signature string for argument direction.
4189 (write_args_for_direction): Change to pass input values directly
4190 instead of via address, and fix indentation.
4191 (generate_client_glue): Change to invoke dbus_g_proxy_invoke. Also
4192 make generated wrappers inlineable.
4194 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4195 note about using dbus_type_is_fixed.
4197 * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4198 dbus/dbus-signature.c as dbus_type_is_fixed.
4200 All callers updated.
4202 * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4203 from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4205 * dbus/dbus-signature.h: Prototype.
4207 * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4210 * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4211 appropriate instead of just freeing it.
4212 (main): Free returned strings using g_free.
4214 * test/glib/Makefile.am (test-service-glib-glue.h)
4215 (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4217 * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4218 simply maps a simple D-BUS type to GType.
4219 (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4221 (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4222 initialize the value with it.
4223 (dbus_gvalue_binding_type_from_type): Unused, delete.
4224 (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4225 various types instead of unmarshalling to value data directly.
4226 Remove can_convert boolean.
4227 (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4228 returning directly instead of using can_convert boolean.
4229 (dbus_gvalue_store): New function; not related to D-BUS per-se.
4230 Stores a GValue in a pointer to a value of its corresponding C
4233 * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4234 add dbus_gvalue_store.
4236 2005-03-08 Joe Shaw <joeshaw@novell.com>
4238 Fix a bunch of lifecycle and memory management problems
4239 in the mono bindings.
4241 * mono/Arguments.cs (Arguments): Implement IDisposable
4243 * mono/Bus.cs (Bus): Don't allow public instantiation. This is
4244 strictly a static class.
4246 * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4247 delegates into this file.
4248 (Connection): Implement IDisposable.
4249 (Dispose): Disconnect the connection and set the raw connection
4250 pointer to IntPtr.Zero.
4251 (~Connection): Call Dispose().
4252 (RegisterObjectPath): Added. Manages the registration of object
4253 paths so we can cleanly disconnect them at dispose/finalize time.
4254 (UnregisterObjectPath): Ditto.
4255 (set_RawConnection): Unregister all of the object paths when
4256 changing the underlying DBusConnection. Add them back onto the
4257 new connection, if any.
4259 * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4260 more unmanaged resources anymore, so it's not necessary. Move all
4261 the DBusObjectPathVTable stuff out of here.
4262 (Handler): Save references to our delegates so that they don't get
4263 finalized. Call Connection.RegisterObjectPath() instead of
4264 dbus_connection_register_object_path() directly.
4265 (Message_Called): Dispose the message after we're finished with
4268 * mono/Message.cs (Message): Implement IDisposable.
4269 (Dispose): Dispose the Arguments, and set the RawMessage to
4271 (SendWithReplyAndBlock): We own the ref to the reply that comes
4272 back from dbus_connection_send_with_reply_and_block() so add a
4273 comment about that and unref it after we've constructed a managed
4274 MethodReturn class around it. Fixes a big, big leak.
4276 * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4278 (BuildSignalHandler): After we've sent the Signal message, dispose
4280 (BuildMethod): Dispose of the method call and reply messages after
4281 we've sent the message and extracted the data we want from the
4284 * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4286 (Service_FilterCalled): Dispose of the message after we're
4289 2005-03-08 Joe Shaw <joeshaw@novell.com>
4291 * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4292 After we attach our pending call to the connection, unref
4295 * mono/Connection.cs (set_RawConnection): Disconnect our
4296 filter and match callbacks from the old connection and
4297 reconnect them to the new connection, if any.
4299 * mono/DBusType/Array.cs: "Code" is a static member, so
4300 don't use "this" to refer to it. Fix for stricter checking
4303 * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4304 object path that we pass into unmanaged code.
4306 * mono/DBusType/String.cs (Append): Don't leak the string
4307 that we pass into unmanged code.
4309 2005-03-07 John (J5) Palmieri <johnp@redhat.com>
4310 * NEWS: Update for 0.31
4312 * configure.in: Release 0.31
4313 add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4315 * qt/Makefile.am: fixed build
4317 * dbus/Makefile.am: soname bump for libdbus
4319 * glib/Makefile.am: soname bump for libdbus-glib
4321 2005-03-05 Havoc Pennington <hp@redhat.com>
4323 * dbus/dbus-sysdeps.c:
4324 (pseudorandom_generate_random_bytes_buffer): fix to have no return
4326 (_dbus_generate_random_bytes_buffer): fix return value
4328 * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4329 checks actually work, from Tom Parker <fdo@tevp.net>
4331 2005-03-01 Colin Walters <walters@verbum.org>
4333 * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4334 functions copied from dbus-glib-tool.c.
4335 (main): Convert lots of error code to use them.
4336 Also add some testing for introspection bits.
4338 2005-03-01 Colin Walters <walters@verbum.org>
4340 * doc/TODO: Remove introspection signature TODO.
4342 2005-02-27 Colin Walters <walters@verbum.org>
4344 * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4345 Change return value to const char * instead of int so we can do
4347 (struct PropertyInfo, struct ArgInfo): Store char *.
4348 (property_info_new, arg_info_new): Update parameters, strdup.
4349 (property_info_unref, arg_info_unref): Free.
4351 * glib/dbus-gidl.h: Update prototypes.
4353 * glib/dbus-gparser.c (basic_type_from_string): Delete.
4354 (validate_signature): New function, just validates signature and
4356 (parse_property, parse_arg): Invoke validate_signature. Store
4357 signature instead of just type code.
4359 * glib/dbus-gvalue.c (base_type_from_signature): New utility
4360 function to return a primary type for a signature, dropping
4361 information about types in container types.
4362 (dbus_gvalue_genmarshal_name_from_type)
4363 (dbus_gvalue_binding_type_from_type)
4364 (dbus_gvalue_ctype_from_type): Update to take full signature
4365 instead of type code.
4366 (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4368 * glib/dbus-gvalue.h: Update prototypes for above.
4370 * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4371 glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4372 (introspect_properties, introspect_signals, write_interface):
4373 Update to handle signatures, and remove usage of
4374 _dbus_gutils_type_to_string.
4375 (handle_introspect): Print out type codes instead of e.g. "string"
4376 in hardcoded introspection XML; also use x_AS_STRING constants
4377 instead of hardcoding in string.
4379 * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4380 to string. Remove usage of _dbus_gutils_type_to_string.
4382 * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4384 * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4387 * glib/dbus-binding-tool-glib.c (compute_marshaller)
4388 (compute_marshaller_name, generate_glue): Handle signature change
4390 (write_formal_parameters, write_args_for_direction): Ditto, and
4393 * tools/dbus-tree-view.c (type_to_string): Delete.
4394 (info_set_func_text): Update to print full signatures.
4396 * test/glib/test-service-glib.xml: Change types to new
4397 introspection format.
4399 2005-02-26 Havoc Pennington <hp@redhat.com>
4401 * doc/TODO: remove the "guid" item
4403 * test/glib/test-profile.c (no_bus_thread_func): use open_private
4404 (with_bus_thread_func): use open_private
4406 * dbus/dbus-connection.c (dbus_connection_open_private): new
4407 function that works like the old dbus_connection_open()
4408 (dbus_connection_open): now returns an existing connection if
4411 * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4412 through the GUID to the transport
4414 * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4415 GUID in hex-encoded form.
4417 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4418 pass GUID argument in to the transport
4420 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4423 * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4425 * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4427 2005-02-25 Havoc Pennington <hp@redhat.com>
4429 * doc/dbus-specification.xml: document the GUID thing
4431 * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4432 globally unique ID for the server, and put a "guid=hexencoded"
4433 field in the address
4435 * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4437 * dbus/dbus-message.c: ditto
4439 * dbus/dbus-dataslot.c: ditto
4441 * dbus/dbus-list.c: ditto
4443 * dbus/dbus-internals.h: wait, just include
4444 dbus-threads-internal.h here
4446 * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4449 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4451 2005-02-24 Colin Walters <walters@verbum.org>
4453 * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4455 2005-02-24 John (J5) Palmieir <johnp@redhat.com>
4457 * glib/Makefile.am: added dbus-gobject.h to sources list
4458 so distcheck doesn't fail
4460 2005-02-24 Havoc Pennington <hp@redhat.com>
4462 * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4463 you must disconnect before unref, since locking and other things
4464 are screwed up otherwise. Fix assorted other locking stuff.
4466 * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4469 * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4470 into a private header and don't export from the library
4472 * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4474 2005-02-24 Colin Walters <walters@verbum.org>
4476 * dbus/dbus-signature.c: New file; implements various functions
4477 related to type signatures. Includes an interator for parsing,
4478 validation functions.
4479 (dbus_type_is_basic): Moved here from
4480 dbus-marshal-basic.c:_dbus_type_is_basic.
4481 (dbus_type_is_container): Moved here from
4482 dbus-marshal-basic.c:_dbus_type_is_container.
4484 All callers of _dbus_type_is_container and _dbus_type_is_basic
4485 updated, and include dbus-signature.h.
4487 * dbus/dbus-signature.h: New file; prototypes for the above.
4489 * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4492 * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4493 function factored out of _dbus_first_type_in_signature.
4494 (_dbus_first_type_in_signature_c_str): New function; returns first
4495 type code for a type signature character.
4497 * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4498 handle function moves.
4500 * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4502 * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4503 function; skips to next complete type in type signature.
4504 Implemented using previous skip_one_complete_type. Now
4505 skip_one_complete_type just delegates to
4506 _dbus_type_signature_next.
4508 * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4510 (_dbus_type_is_container): Ditto.
4512 * doc/dbus-specification.xml: Update introspection sample to
4513 use real type signatures.
4515 * dbus/dbus-test.h: Prototype signature test.
4517 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4520 * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4522 2005-02-23 John (J5) Palmieri <johnp@redhat.com>
4524 * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4525 s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4527 2005-02-21 Colin Walters <walters@verbum.org>
4529 * dbus/dbus-test-main.c (main): Take optional specific test
4532 * dbus/dbus-test.c (run_test): New function, runs a test function
4533 with no data directory.
4534 (run_data_test): Like above, but takes data directory.
4535 (dbus_internal_do_not_use_run_tests): Take
4536 specific test argument. Replace lots of cut n' paste code
4537 with run_test and run_data_test.
4539 * dbus/dbus-test.h: Update prototype for
4540 dbus_internal_do_not_use_run_tests.
4542 2005-02-20 Havoc Pennington <hp@redhat.com>
4544 Fix bugs reported by Daniel P. Berrange
4546 * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4547 (protected_change_watch): new function
4548 (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4549 (_dbus_server_add_watch): change to work like the
4550 dbus-connection.c equivalents; like those, probably kind of
4551 busted, but should at least mostly work for now
4552 (dbus_server_disconnect): drop the lock if we were already
4553 disconnected, patch from Daniel P. Berrange
4555 * dbus/dbus-server.c (_dbus_server_toggle_timeout)
4556 (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4559 * doc/TODO: todo about unscrewing this mess
4561 2005-02-19 Colin Walters <walters@verbum.org>
4563 * glib/dbus-binding-tool-glib.c
4564 (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4566 * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4567 as errno.h and sys/stat.h.
4568 (lose): New function, prints error with
4570 (lose_gerror): Similar, but takes GError for message.
4571 (main): Add --output argument to specify output file to write to,
4572 instead of always printing to stdout. In this mode, determine
4573 timestamps on source files to see whether any are newer than the
4574 target file. If not, exit. Also convert a number of error
4575 messages to use lose (since it's shorter), and switch to using
4576 g_io_channel_shutdown.
4578 2005-02-19 Havoc Pennington <hp@redhat.com>
4580 * glib/dbus-gobject.c
4581 (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4583 * glib/dbus-glib.c: fix doxygen warnings
4585 * glib/dbus-gparser.c (parse_annotation): error if an annotation
4586 is found on an <arg>
4588 2005-02-17 Colin Walters <walters@verbum.org>
4590 * glib/dbus-gobject.h: Don't export
4591 _dbus_glib_marshal_dbus_message_to_gvalue_array.
4593 * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4594 (invoke_object_method): Handle it.
4596 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4599 2005-02-17 Colin Walters <walters@verbum.org>
4601 * bus/.cvsignore, doc/.cvsignore
4602 * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4605 2005-02-17 Colin Walters <walters@verbum.org>
4607 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4608 Rename to DBUS_SERVICE_DBUS.
4609 (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4610 (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4611 Change the value from "org.freedesktop.Local"
4612 to "org.freedesktop.DBus.Local".
4613 (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4614 (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4615 DBUS_INTERFACE_INTROSPECTABLE.
4616 Change the value from "org.freedesktop.Introspectable"
4617 to "org.freedesktop.DBus.Introspectable".
4618 (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4619 DBUS_INTERFACE_PROPERTIES.
4620 Change the value from "org.freedesktop.Properties"
4621 to "org.freedesktop.DBus.Properties".
4622 (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4623 DBUS_INTERFACE_PEER.
4624 Change the value from "org.freedesktop.Peer"
4625 to "org.freedesktop.DBus.Peer".
4626 (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL):
4627 DBUS_INTERFACE_LOCAL.
4628 Change the value from "org.freedesktop.Local"
4629 to "org.freedesktop.DBus.Local".
4631 All other users of those constants have been changed.
4633 * bus/driver.c (bus_driver_handle_introspect): Use constants.
4635 * glib/dbus-gobject.c (handle_introspect): Use constants.
4637 * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4639 2005-02-17 Colin Walters <walters@verbum.org>
4641 * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4642 (parse_node, parse_interface, parse_method, parse_signal)
4643 (parse_property, parse_annotation): Lose if we're currently in an
4645 (parse_annotation): New function.
4646 (parser_start_element, parser_end_element): Handle annotation.
4647 (parse_method, parse_interface): Remove support for c_name attribute,
4648 switch to annotations.
4650 * glib/dbus-gidl.h (interface_info_get_binding_names)
4651 (method_info_get_binding_names)
4652 (interface_info_get_binding_name, method_info_get_binding_name)
4653 (interface_info_set_binding_name, method_info_set_binding_name):
4655 (interface_info_get_annotations, method_info_get_annotations)
4656 (interface_info_get_annotation, method_info_get_annotation)
4657 (interface_info_add_annotation, method_info_add_annotation):
4660 * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4662 (struct MethodInfo): Ditto.
4663 Straightfoward conversion of binding methods into annotation methods
4666 * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4668 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4670 * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4671 Use new annotation API.
4673 * doc/introspect.dtd: Fix a number of DTD syntax errors. Add
4676 * doc/dbus-specification.xml: Discuss introspection annotations,
4677 include list of well-known annotations.
4679 * test/glib/test-service-glib.xml: Make validate against new DTD.
4681 2005-02-17 Colin Walters <walters@verbum.org>
4683 This patch is based on initial work from
4684 Paul Kuliniewicz <kuliniew@purdue.edu>.
4686 * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4687 initialization of GValue from dbus type to here.
4688 (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4689 for the "glib-genmarshal" program from a DBus type.
4690 (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4691 into the C name for it we use in the glib bindings.
4692 (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4693 glib C type (not GValue).
4694 (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4696 * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4697 from dbus-gobject.c.
4699 * glib/dbus-gutils.h: Prototype it.
4701 * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4702 (marshal_dbus_message_to_g_marshaller): Use new shared function
4703 dbus_glib_marshal_dbus_message_to_gvalue_array.
4705 * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4706 Will be changed once we have annotations.
4708 * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4709 GStaticRWLock. Callers updated.
4710 (wincaps_to_uscore): Move to dbus-gutils.c. Callers updated.
4711 (string_table_next): New function for iterating over zero-terminated
4713 (string_table_lookup): New function; retrieves specific entry in
4715 (get_method_data): New function; look up method data in object data chunk.
4716 (object_error_domain_prefix_from_object_info)
4717 (object_error_code_from_object_info): New functions, but not implemented yet.
4718 (method_interface_from_object_info): New function; retrieve interface name.
4719 (method_name_from_object_info): New function; retrieve method name.
4720 (method_arg_info_from_object_info): New function; retrieve argument data.
4721 (arg_iterate): New function; iterates over serialized argument data.
4722 (method_dir_signature_from_object_info): New function; returns a
4723 GString holding type signature for arguments for just one
4724 direction (input or output).
4725 (method_input_signature_from_object_info)
4726 (method_output_signature_from_object_info): New functions.
4727 (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4728 converts dbus message arguments into a GValue array. Used for both
4729 signal handling and method invocation.
4730 (struct DBusGlibWriteIterfaceData): New utility structure.
4731 (write_interface): New function; generate introspection XML for
4733 (introspect_interfaces): New function; gathers all interface->methods,
4734 generates introspection XML for them.
4735 (handle_introspect): Invoke introspect_interfaces.
4736 (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4737 (lookup_object_and_method): New function; examines an incoming message
4738 and attempts to match it up (via interface, method name, and argument
4739 signature) with a known object and method.
4740 (gerror_domaincode_to_dbus_error_name): New function; converts a
4741 GError domain and code into a DBus error name. Needs GError data
4742 added to object introspection to work well.
4743 (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4745 (invoke_object_method): New function to invoke an object method
4746 looked up via lookup_object_and_method. Parses the incoming
4747 message, turns it into a GValue array, then invokes the marshaller
4748 specified in the DBusGMethodInfo. Creates a new message with
4749 either return values or error message as appropriate.
4750 (gobject_message_function): Invoke lookup_object_and_method and
4751 invoke_object_method.
4753 * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4754 (enum DBusBindingOutputMode): New enum for binding output modes.
4755 (pretty_print): Print binding names.
4756 (dbus_binding_tool_error_quark): GError bits.
4757 (version): Fix typo.
4758 (main): Create GIOChannel for output. Parse new --mode argument,
4759 possible values are "pretty-print", "glib-server", "glib-client".
4760 Use mode to invoke appropriate function.
4762 * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4764 * glib/dbus-glib-tool.h: New header, just includes GError bits
4767 * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4768 maps binding style to name.
4769 (struct MethodInfo): Ditto.
4770 (get_hash_keys, get_hash_key): Utility function, returns keys for
4772 (interface_info_new, method_info_new): Initialize bindings.
4773 (interface_info_unref, method_info_unref): Destroy bindings.
4774 (method_info_get_binding_names, method_info_get_binding_name)
4775 (interface_info_get_binding_names, interface_info_get_binding_name):
4776 Functions for retrieving binding names.
4777 (method_info_set_binding_name, interface_info_set_binding_name):
4778 Functions for setting binding names.
4780 * glib/dbus-binding-tool-glib.h: New file, has prototypes
4781 for glib binding generation.
4783 * glib/dbus-binding-tool-glib.c: New file, implements server-side
4784 and client-side glib glue generation.
4786 * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4787 dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4790 * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4791 of using GClosureMarshal directly.
4792 (struct DBusGObjectInfo): Add n_infos member.
4794 * test/glib/test-service-glib.xml: New file; contains introspection data
4795 for MyTestObject used in test-service-glib.c.
4797 * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4798 (my_object_do_nothing, my_object_increment, my_object_throw_error)
4799 (my_object_uppercase, my_object_many_args): New test methods.
4800 (main): Use dbus_g_object_class_install_info to include generated object
4803 * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
4804 as well as client-side bindings.
4806 * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
4807 (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
4808 using both the dbus_gproxy stuff directly as well as the generated bindings.
4810 2005-02-15 Havoc Pennington <hp@redhat.com>
4812 * dbus/dbus-connection.c (dbus_connection_dispatch): always
4813 complete a pending call, don't run filters first.
4815 * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
4816 dbus_pending_call_steal_reply
4818 * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
4819 _dbus_connection_block_pending_call
4820 (dbus_pending_call_get_reply): change to steal_reply and return a
4823 * dbus/dbus-connection.c
4824 (dbus_connection_send_with_reply_and_block): port to work in terms
4826 (_dbus_connection_block_pending_call): replace block_for_reply
4829 2005-02-14 Havoc Pennington <hp@redhat.com>
4831 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
4832 properly handle looking up group information by name; fix
4835 2005-02-13 Havoc Pennington <hp@redhat.com>
4837 * dbus/dbus-connection.c (dbus_connection_return_message)
4838 (dbus_connection_borrow_message): hold dispatch lock while message
4840 (_dbus_connection_block_for_reply): hold dispatch lock while we
4841 block for the reply, so nobody steals our reply
4842 (dbus_connection_pop_message): hold the dispatch lock while we
4845 2005-02-13 Havoc Pennington <hp@redhat.com>
4847 * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
4848 (_dbus_connection_release_dispatch)
4849 (_dbus_connection_acquire_io_path)
4850 (_dbus_connection_release_io_path): make the mutex and condvar
4851 control access to the "acquired" flag. Drop the connection lock
4852 while waiting on the condvar. Hopefully these are baby steps in
4853 roughly the right direction.
4855 2005-02-13 Havoc Pennington <hp@redhat.com>
4857 * dbus/dbus-connection.c: use separate mutexes for the condition
4858 variables; this is some kind of baseline for sanity, but the
4859 condition variables still aren't used correctly afaict
4861 2005-02-13 Havoc Pennington <hp@redhat.com>
4863 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4866 * dbus/dbus-connection.c
4867 (_dbus_connection_detach_pending_call_unlocked): add this
4869 Initial semi-correct pass through to fix thread locking; there are
4870 still some issues with the condition variable paths I'm pretty
4873 * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
4876 * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
4877 rename to add _unlocked
4878 (struct DBusConnection): move "dispatch_acquired" and
4879 "io_path_acquired" to use only one bit each.
4880 (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
4881 (dbus_connection_set_watch_functions): hacky fix to reentrancy
4882 (_dbus_connection_add_watch, _dbus_connection_remove_watch)
4883 (_dbus_connection_toggle_watch, _dbus_connection_add_timeout)
4884 (_dbus_connection_remove_timeout)
4885 (_dbus_connection_toggle_timeout): drop lock when calling out to
4886 user functions; done in a hacky/bad way.
4887 (_dbus_connection_send_and_unlock): add a missing unlock
4888 (_dbus_connection_block_for_reply): add a missing unlock
4890 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4891 drop lock in a hacky probably unsafe way to call out to user
4894 2005-02-12 Havoc Pennington <hp@redhat.com>
4896 * tools/dbus-tree-view.c (info_set_func_text): display more
4899 * bus/driver.c (bus_driver_handle_list_services): list the bus
4902 * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
4904 * glib/dbus-gidl.c (signal_info_get_n_args): new function
4905 (method_info_get_n_args): new function
4907 2005-02-12 Havoc Pennington <hp@redhat.com>
4909 * bus/driver.c (bus_driver_handle_introspect): add introspection
4912 2005-02-12 Havoc Pennington <hp@redhat.com>
4914 * bus/driver.c: put the signature of each bus driver method in the
4915 table of handlers and check it on incoming calls; this isn't
4916 really useful, but going to add introspect support in a minute.
4918 2005-02-11 Joe Shaw <joeshaw@novell.com>
4920 * mono/Connection.cs: The unpredictability of finalizers in mono
4921 prevents us from deterministically disconnecting the filters from
4922 the Service class's finalizer, so move tracking of filters and
4923 matches here. Add API for that.
4925 * mono/Service.cs: Remove the code, add code which calls the
4926 methods now on the Connection class.
4928 2005-02-11 John (J5) Palmieri <johnp@redhat.com>
4930 * python/dbus.py (class Sender): added to support dbus signals better
4931 (Bus::add_signal_receiver): added expand_args parameter which defaults
4932 to True. When expand args is True the signal handler will pass the
4933 message arguments as parameters to the signal handler. If False
4934 revert to previous behavior where the signal handler must get the
4935 argument list from the message. This is to help port applications
4936 like HAL that have a tendancy to send variable length argument lists.
4937 self._match_rule_to_receivers is now a dict of dicts.
4938 (Bus::remove_signal_receiver): pop handler off the dict intead of
4939 removing it from a list
4940 (Bus::_signal_func): change signal handlers so that interface,
4941 signal_name, service, path and message are packed into a Sender
4942 object and that is passed to the handler. If expand_args is True
4943 extract the args list from the message and append it to the parameter
4946 * python/dbus_bindings.pyx.in (class Signature): added to support
4948 (MessageIter::__init__): changed iteration limit to match D-BUS
4949 (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY,
4950 STRUCT and VARIENT type support
4951 (MessageIter::python_value_to_dbus_sig): made recursive to support
4953 (MessageIter::append*): added Signature, dict, tuple
4956 * python/examples/example-client.py: added examples of getting tuples
4959 * python/examples/example-service.py: added examples of sending tuples
4962 * python/examples/example-signal-recipient.py: Fixed to handle new
4963 signal callback format
4965 2005-02-10 Havoc Pennington <hp@redhat.com>
4967 * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
4968 (call dbus_g_proxy_add_signal)
4970 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
4972 (_dbus_server_new_for_domain_socket): escape the path
4974 * dbus/dbus-address.c (dbus_address_escape_value): new
4975 (dbus_address_unescape_value): new
4976 (dbus_parse_address): unescape values
4978 * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
4980 * doc/dbus-specification.xml: explain how to escape values in
4983 2005-02-10 Havoc Pennington <hp@redhat.com>
4985 * dbus/dbus-message-factory.c (generate_special): modify test to
4986 avoid using a non-basic dict key
4988 * dbus/dbus-marshal-validate-util.c: add test for the below
4990 * doc/dbus-specification.xml: require that dict keys are a basic
4993 * dbus/dbus-marshal-validate.c
4994 (_dbus_validate_signature_with_reason): require that dict key is a
4997 2005-02-10 Havoc Pennington <hp@redhat.com>
4999 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5000 change to be _and_unlock instead of _unlocked
5002 * dbus/dbus-connection.c
5003 (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5004 have no_update so we can find this bug quickly in future
5006 2005-02-10 Havoc Pennington <hp@redhat.com>
5008 * dbus/dbus-message-util.c (verify_test_message): tests for string
5011 * dbus/dbus-message.c (dbus_message_append_args_valist): add
5012 support for arrays of string/signature/path
5014 2005-02-10 Joe Shaw <joeshaw@novell.com>
5016 * dbus/dbus-connection.c
5017 (_dbus_connection_queue_received_message_link,
5018 _dbus_connection_message_sent): Add the path to
5020 (_dbus_connection_send_preallocated_and_unlock): Added. Calls
5021 _dbus_connection_send_preallocated_unlocked(), updated the
5022 dispatch status, and unlocks. Fixes a bug where certain
5023 situations (like a broken pipe) could cause a Disconnect message
5024 to not be sent, tricking the bus into thinking a service was still
5025 there when the process had quit.
5026 (_dbus_connection_send_preallocated): Call
5027 _dbus_connection_send_preallocated_and_unlock().
5028 (_dbus_connection_send_and_unlock): Added. Calls
5029 _dbus_connection_send_preallocated_and_unlock().
5030 (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5031 (dbus_connection_send_with_reply): Update the dispatch status and
5034 * mono/Service.cs (~Service): Added. Removes the filter so that
5035 we don't get unmanaged code calling back into a GCed delegate.
5036 (RemoveFilter); Added.
5038 2005-02-09 John (J5) Palmieri <johnp@redhat.com>
5040 * dbus/dbus-message.c (dbus_message_iter_open_container):
5041 - Removed check for iterator type being an array because
5042 get_arg_type does not work with writer iterators
5043 - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5045 2005-02-07 Havoc Pennington <hp@redhat.com>
5047 * doc/dbus-specification.xml: some more language cleanups; add
5048 stuff about how to deal with invalid protocol and extension
5049 points; add _ to allowed chars in auth commands; add EXTENSION_
5052 2005-02-06 Havoc Pennington <hp@redhat.com>
5054 * s/expected/required/ in a couple places for clarity
5056 2005-02-07 Colin Walters <walters@verbum.org>
5058 * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5059 sender or proposed_recipient.
5061 2005-02-06 Havoc Pennington <hp@redhat.com>
5063 * dbus/dbus-message-factory.c (generate_special): more tests
5065 * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5066 array length that exceeds the maximum
5068 2005-02-05 Havoc Pennington <hp@redhat.com>
5070 * dbus/dbus-message-factory.c (generate_special): more test cases,
5073 * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5074 reason why a signature was invalid
5076 * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5077 skip the length of the string before we look at it in validation
5079 * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5082 * dbus/dbus-message.c (_dbus_message_loader_new): default
5083 max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5085 2005-02-05 Havoc Pennington <hp@redhat.com>
5087 * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5088 if the signature of a variant was empty
5089 (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5090 struct with no element type)
5092 * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5093 mangled messages to break things
5095 2005-02-04 Havoc Pennington <hp@redhat.com>
5097 * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5098 g_quark_try_string() so it actually can return 0
5099 (dbus_g_proxy_connect_signal): ditto
5101 2005-02-04 Havoc Pennington <hp@redhat.com>
5103 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5105 (tristring_from_message): assert cleanly on null path/interface
5106 (should not be possible though I decided later)
5107 (dbus_g_proxy_dispose): move proxy manager unregistration here
5108 (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5109 g_return_if_fail() checks
5111 2005-02-04 Havoc Pennington <hp@redhat.com>
5113 * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5115 * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5116 (with some minor changes)
5118 * doc/dbus-specification.xml: add deprecated attribute to
5119 introspection format
5121 2005-01-31 Havoc Pennington <hp@redhat.com>
5123 * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5124 think it's sort of right
5126 2005-01-30 Havoc Pennington <hp@redhat.com>
5128 * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5130 2005-01-30 Havoc Pennington <hp@redhat.com>
5132 * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5134 * autogen.sh: change to autotools 1.9
5136 * glib/dbus-gproxy.c: completely change how signals work
5137 (dbus_g_proxy_add_signal): new function to specify signature of a
5139 (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5140 and g_warning if the incoming message has the wrong signature.
5142 2005-01-30 Havoc Pennington <hp@redhat.com>
5144 * tools/dbus-names-model.c (have_names_notify): fix this
5146 * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5147 up the string array handling a bit
5149 2005-01-30 Havoc Pennington <hp@redhat.com>
5151 * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5152 (dbus_g_pending_call_cancel): new function
5154 * dbus/dbus-glib.h: move GType decls for connection/message here;
5155 * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5156 here, just kind of rationalizing how we handle all that
5158 * tools/dbus-names-model.c: new file for a tree model listing the
5161 * tools/dbus-tree-view.c (model_new): use proper typing on the
5164 2005-01-30 Havoc Pennington <hp@redhat.com>
5166 * glib/dbus-gmain.c: add a custom GSource back that just checks
5167 whether the message queue has anything in it; otherwise, there are
5168 cases where we won't see messages in the queue since there was no
5169 IO visible to the glib main loop
5171 * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5172 increase default message timeout to 25 seconds
5174 2005-01-30 Havoc Pennington <hp@redhat.com>
5176 * test/glib/test-profile.c (no_bus_stop_server): remove the
5177 warning about the g_warning that I just fixed
5179 * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5180 custom source, seems to be a lot easier to understand and work
5183 2005-01-30 Havoc Pennington <hp@redhat.com>
5185 I think this main loop thing is conceptually broken, but here are
5186 some band aids. I'll maybe rewrite it in a minute.
5188 * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5189 custom GSource, so don't pass it in; confusing
5190 (gsource_server_finalize, gsource_connection_finalize): add
5191 finalize handlers that remove all the watches.
5193 2005-01-30 Havoc Pennington <hp@redhat.com>
5195 * glib/dbus-gobject.c (introspect_properties): fix the XML
5198 * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5199 which effectively detects the use of freed messages
5201 * glib/dbus-gobject.c (handle_introspect): modify and return the
5202 reply message instead of the incoming message
5204 * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5205 gee, maybe it should SEND THE XML instead of just making a string
5206 and freeing it again ;-)
5208 * tools/dbus-print-message.c (print_message): improve printing of
5211 * configure.in: add debug-glib.service to the output
5213 2005-01-30 Havoc Pennington <hp@redhat.com>
5215 dbus-viewer introspected and displayed the bus driver
5217 * dbus/dbus-object-tree.c
5218 (object_tree_test_iteration): add tests for a handler registered on "/"
5220 * dbus/dbus-object-tree.c
5221 (_dbus_decompose_path): fix to handle path "/" properly
5222 (run_decompose_tests): add tests for path decomposition
5224 * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5227 * glib/dbus-gobject.c (handle_introspect): fix quotes
5229 * test/glib/run-test.sh: support launching the bus, then running
5232 * test/glib/test-service-glib.c (main): put in a trivial gobject
5233 subclass and register it on the connection
5235 * bus/driver.c (bus_driver_handle_introspect): implement
5236 introspection of the bus driver service
5238 * dbus/dbus-protocol.h: add #defines for the XML namespace,
5239 identifiers, doctype decl
5241 * bus/driver.c (bus_driver_handle_get_service_owner): handle
5242 attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by
5243 returning the service unchanged.
5244 (bus_driver_handle_message): remove old check for reply_serial in
5245 method calls, now the message type deals with that
5246 (bus_driver_handle_message): handle NULL interface
5248 * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5250 * glib/dbus-gloader-expat.c (description_load_from_string): allow
5253 * tools/dbus-viewer.c: add support for introspecting a service on
5256 * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5257 (dbus_g_pending_call_unref): add
5259 2005-01-29 Havoc Pennington <hp@redhat.com>
5261 * tools/dbus-tree-view.c: add support for displaying properties.
5262 (run dbus-viewer with an introspect xml file as arg, then resize
5263 the window so the tree elements show up, not sure what that is)
5265 * glib/dbus-gobject.c (handle_introspect): return
5266 org.freedesktop.Properties and org.freedesktop.Introspectable
5267 interfaces when we are introspected.
5269 * doc/dbus-specification.xml: allow empty interface name when
5272 2005-01-29 Havoc Pennington <hp@redhat.com>
5274 * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5275 though it uses glib, it could be extended for any binding in
5278 * glib/dbus-gobject.c (gobject_message_function): change to the
5279 new way properties work
5281 * dbus/dbus-protocol.h: add the new interfaces
5283 * doc/dbus-specification.xml: document the introspection format,
5284 Introspectable interface, and add an org.freedesktop.Properties
5287 * glib/dbus-gparser.c: add support for a <property> element
5289 * glib/dbus-gidl.c: add PropertyInfo
5291 * glib/dbus-gobject.c (handle_introspect): put the outermost
5292 <node> outside the signal and property descriptions.
5293 (introspect_properties): export properties as <property> rather
5294 than as method calls
5296 2005-01-28 Havoc Pennington <hp@redhat.com>
5298 * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5299 related to authentication protocol
5301 2005-01-28 John (J5) Palmieri <johnp@redhat.com>
5303 * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5304 - BUS_ACTIVATION -> BUS_STARTER
5305 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5306 - class MessageIter (__init__): Added recursion checking
5307 so we throw a nice error instead of just disconnecting from the
5309 (get): Added arg_type parameter for recursion.
5310 Removed the nil type
5311 Added signiture type placeholder (not implemented)
5312 Added struct type placeholder (not implemented)
5313 Added varient type placeholder (not implemented)
5314 Commented out dict type for now
5315 (get_element_type): renamed from get_array_type
5316 (get_*): changed to use the dbus_message_iter_get_basic API
5317 (get_*_array): removed in favor of recursive get_array method
5318 (get_array): new recursive method which calls get to marshal
5319 the elements of the array
5320 (value_to_dbus_sig): New method returns the corrasponding
5321 dbus signiture to a python value
5322 (append): Comment out dict handling for now
5323 Handle lists with the new recursive API
5324 Comment out None handling for now
5325 (append_nil): removed
5326 (append_*): changed to use dbus_message_iter_append_basic API
5327 (append_*_array): removed in favor of recursive append_array
5329 (__str__): Make it easier to print out recursive iterators
5331 - class Message (__str__): moved type inspection to the
5332 MessageIter class' __str__ method
5333 (get_iter): Added an append parameter wich defaults to False
5334 If True use the new API's to create an append iterator
5336 * python/dbus.py: Update to use new bindings API
5337 - TYPE_ACTIVATION -> TYPE_STARTER
5338 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5339 - class ActivationBus -> class StarterBus
5340 - class RemoteObject (__call__): get an append iterator
5341 - (_dispatch_dbus_method_call): get an append iterator
5342 - class Object (emit_signal): get an append iterator
5344 * python/examples/: Fixed up the examples to work with the new API
5346 2005-01-28 Joe Shaw <joeshaw@novell.com>
5348 * configure.in: Bump version up to 0.30.
5350 * HACKING: Add a release item to bump the version number up after
5353 2005-01-28 Havoc Pennington <hp@redhat.com>
5355 * doc/dbus-specification.xml: update to describe 16-bit types and
5358 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5361 * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5364 * dbus/dbus-marshal-recursive.c: implement
5366 2005-01-27 Havoc Pennington <hp@redhat.com>
5368 * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5370 * configure.in: find the right type for 16 and 32 bit ints as well
5373 * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5374 the 16-bit types so people don't have to stuff them in 32-bit or
5377 2005-01-27 Havoc Pennington <hp@redhat.com>
5379 * dbus/dbus-message.c: byteswap the message if you init an
5380 iterator to read/write from it
5382 * dbus/dbus-marshal-byteswap.c: new file implementing
5383 _dbus_marshal_byteswap()
5385 * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5387 2005-01-26 Havoc Pennington <hp@redhat.com>
5389 * dbus/dbus-marshal-validate-util.c: break this out (and fix
5390 build, apparently - nobody noticed?)
5392 2005-01-26 Havoc Pennington <hp@redhat.com>
5394 * dbus/dbus-marshal-recursive.h: remove todo comment
5396 2005-01-25 Joe Shaw <joeshaw@novell.com>
5398 * Land the mono binding changes to conform to the new APIs.
5400 * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5401 DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5403 * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus
5404 type code as a string.
5405 (InitAppending): Rename dbus_message_append_iter_init() to
5406 dbus_message_iter_init_append().
5408 * mono/BusDriver.cs: Rename ServiceEventHandler to
5409 NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner.
5410 Rename ServiceOwnerChanged to NameOwnerChanged.
5412 * mono/Connection.cs: Rename BaseService to UniqueName, and the
5415 * mono/Custom.cs: Removed. The CUSTOM type has been removed.
5417 * mono/Service.cs: Rename Exists to HasOwner, internally rename
5418 dbus_bus_acquire_service() to dbus_bus_request_name().
5420 * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5421 of Type.UnderlyingSystemType to get the correct element type for
5423 (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5424 dbus_message_get_{element|arg}_type() instead of
5425 dbus_message_iter_init_array_iterator().
5426 (Append): Replace dbus_message_iter_append_array() with
5427 dbus_message_iter_open_container() and
5428 dbus_message_iter_close_container().
5430 * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These
5431 types have been removed.
5433 * mono/DBusType/*.cs: Replace calls of
5434 dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5435 but specify the type in the DllImport extern declaration. Ditto
5436 for dbus_message_iter_append_[type]() ->
5437 dbus_message_iter_append_basic().
5439 * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5440 NameOwnerChangedHandler.
5442 2005-01-25 John (J5) Palmieri <johnp@redhat.com>
5444 * python/dbus_bindings.pyx.in: Rename of methods and bindings
5445 - get_base_service -> get_unique_name
5446 - bus_get_base_service -> bus_get_unique_name
5447 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5448 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS
5449 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5450 - bus_activate_service -> bus_start_service_by_name
5451 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5452 - bus_acquire_service -> bus_request_name
5453 - dbus_bus_acquire_service -> dbus_bus_request_name
5454 - bus_service_exists -> bus_name_has_owner
5455 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5457 * python/dbus.py: Rename of methods
5458 - activate_service -> start_service_by_name
5459 - bus_acquire_service -> bus_request_name
5460 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS
5461 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5464 2005-01-24 Joe Shaw <joeshaw@novell.com>
5466 * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5467 signature for the method that can't be found.
5469 * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5470 the message has any arguments, we need to call
5471 _dbus_type_reader_get_current_type(), not
5472 _dbus_type_reader_has_next().
5474 2005-01-24 Havoc Pennington <hp@redhat.com>
5476 * dbus/dbus-message-factory.c: more testing of message validation
5478 * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5481 2005-01-23 Havoc Pennington <hp@redhat.com>
5483 * dbus/dbus-message-factory.c, dbus/dbus-message-util.c:
5484 get this all working, not many tests in the framework yet though
5486 2005-01-22 Havoc Pennington <hp@redhat.com>
5488 * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5489 tutorial, based on work from David Wheeler.
5491 2005-01-21 Havoc Pennington <hp@redhat.com>
5493 * dbus/dbus-bus.c: add more return_if_fail checks
5495 * dbus/dbus-message.c (load_message): have the "no validation"
5496 mode (have to edit the code to toggle the mode for now though)
5498 * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5499 skips all validation; I want to use this at least for benchmark
5500 baseline, I'm not sure if it should be a publicly-available switch.
5502 2005-01-21 Havoc Pennington <hp@redhat.com>
5504 * glib/dbus-gmain.c: don't put the GLib bindings in the same
5505 toplevel doxygen group as the low-level API stuff
5507 * dbus/dbus.h: note that libdbus is the low-level API
5509 2005-01-20 Havoc Pennington <hp@redhat.com>
5511 * update-dbus-docs.sh: script to update docs on the web site, only
5512 works for me though. neener.
5514 2005-01-20 Havoc Pennington <hp@redhat.com>
5516 * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5517 code can reveal bugs in it
5519 2005-01-20 Havoc Pennington <hp@redhat.com>
5521 * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5522 select() version, patches from Tor Lillqvist
5524 2005-01-20 Havoc Pennington <hp@redhat.com>
5526 * doc/dbus-tutorial.xml: replace > with >
5528 * bus/services.c (bus_registry_acquire_service): validate the name
5529 and return a better error if it's no good.
5531 * doc/dbus-specification.xml: note NO_AUTO_START change
5533 * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5534 from AUTO_START, we're toggling the default
5536 * bus/dispatch.c: adapt the tests to change of auto-start default
5538 2005-01-18 Havoc Pennington <hp@redhat.com>
5540 * rename dbus-daemon-1 to dbus-daemon throughout
5542 2005-01-18 Havoc Pennington <hp@redhat.com>
5544 * Throughout, grand renaming to strip out the use of "service",
5545 just say "name" instead (or "bus name" when ambiguous). Did not
5546 change the internal code of the message bus itself, only the
5547 programmer-facing API and messages.
5549 * doc/dbus-specification.xml: further update the message bus section
5551 * bus/config-parser.c (all_are_equiv): fix bug using freed string
5554 2005-01-17 Havoc Pennington <hp@redhat.com>
5556 * dbus/dbus-types.h: remove 16-bit types since we don't use them
5559 * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5560 "invalid name character" not only non-ASCII
5562 * doc/dbus-specification.xml: further update spec, message bus
5563 parts are still out-of-date but the marshaling etc. stuff is now
5566 2005-01-17 Havoc Pennington <hp@redhat.com>
5568 * doc/dbus-specification.xml: partially update spec
5570 2005-01-17 Havoc Pennington <hp@redhat.com>
5572 * Throughout, align variant bodies according to the contained
5573 type, rather than always to 8. Should save a fair bit of space in
5576 * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5577 fix handling of case where p == end
5579 * doc/TODO: remove the dbus_bool_t item and variant alignment items
5581 2005-01-17 Havoc Pennington <hp@redhat.com>
5583 * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5585 * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5586 of an 8-bit type. Now dbus_bool_t is the type to use whenever you
5587 are marshaling/unmarshaling a boolean.
5589 2005-01-16 Havoc Pennington <hp@redhat.com>
5591 This is about it on what can be disabled/deleted from libdbus
5592 easily, back below 150K anyhow. Deeper cuts are more work than
5593 just turning the code off as I've done here.
5595 * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5596 signed int convenience funcs
5598 * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5601 * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5602 things out of libdbus
5604 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5606 * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5607 tests-enabled-only, though it should probably be deleted)
5609 * dbus/dbus-message-util.c: same stuff
5611 * dbus/dbus-auth-util.c: same stuff
5613 2005-01-16 Havoc Pennington <hp@redhat.com>
5615 * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5617 * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5618 way for stripping down dbus-userdb.c stuff included in libdbus.
5619 Rename _dbus_parse_uid for consistency.
5621 2005-01-16 Havoc Pennington <hp@redhat.com>
5623 * dbus/dbus-internals.c (_dbus_real_assert): print the function
5624 name the assertion failed in
5626 * dbus/dbus-internals.h (_dbus_return_if_fail)
5627 (_dbus_return_val_if_fail): assert that the name of the function
5628 containing the check doesn't start with '_', since we only want to
5629 use checks on public functions
5631 * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5632 checks to assertions
5634 * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5635 change checks to asserts for private function
5637 * dbus/dbus-message.c (_dbus_message_set_serial): checks
5638 to asserts for private function
5640 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5641 broken assertion that was breaking make check
5642 (_dbus_type_reader_array_is_empty): remove this rather than fix
5643 it, was only used in assertions
5645 2005-01-16 Havoc Pennington <hp@redhat.com>
5647 * test/unused-code-gc.py: hacky script to find code that's used
5648 only by the bus (not libdbus) or used only by tests or not used at
5649 all. It has some false alarms, but looks like we can clean up a
5650 lot of size from libdbus.
5652 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5653 dbus/Makefile.am: initially move 10K of binary size out of libdbus
5655 2005-01-16 Havoc Pennington <hp@redhat.com>
5657 * Add and fix docs according to Doxygen warnings throughout
5660 * dbus/dbus-marshal-recursive.c
5661 (_dbus_type_reader_array_is_empty): change this to just call
5662 array_reader_get_array_len() and make it static
5664 * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5666 (dbus_message_iter_init_append): rename from append_iter_init
5668 * dbus/dbus-marshal-recursive.c
5669 (_dbus_type_reader_get_element_type): rename from
5670 _dbus_type_reader_get_array_type
5672 2005-01-15 Havoc Pennington <hp@redhat.com>
5674 * test/glib/test-profile.c (with_bus_server_filter): fix crash
5676 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5677 when DBUS_DISABLE_ASSERT
5678 (_dbus_marshal_set_basic): be sure we align for the string length
5680 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5683 * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5684 inline macro version
5685 (_dbus_string_set_byte): provide inline macro version
5687 2005-01-15 Havoc Pennington <hp@redhat.com>
5689 * Land the new message args API and type system.
5691 This patch is huge, but the public API change is not
5692 really large. The set of D-BUS types has changed somewhat,
5693 and the arg "getters" are more geared toward language bindings;
5694 they don't make a copy, etc.
5696 There are also some known issues. See these emails for details
5698 http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5699 http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5701 * dbus/dbus-marshal-*: all the new stuff
5703 * dbus/dbus-message.c: basically rewritten
5705 * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5706 freed blocks to be all non-nul bytes so using freed memory is less
5707 likely to work right
5709 * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5710 DBUS_FAIL_MALLOC=N environment variable, so you can do
5711 DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5712 DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5715 * qt/message.cpp: port to the new message args API
5716 (operator<<): use str.utf8() rather than str.unicode()
5717 (pretty sure this is right from the Qt docs?)
5719 * glib/dbus-gvalue.c: port to the new message args API
5721 * bus/dispatch.c, bus/driver.c: port to the new message args API
5723 * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5724 "locked" flag to TRUE and align_offset to 0; I guess we never
5725 looked at these anyhow, but seems cleaner.
5727 * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5728 move allocation padding macro to this header; use it to implement
5729 (_DBUS_STRING_STATIC): ability to declare a static string.
5731 * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5732 change to return TRUE if the interface is not set.
5734 * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5735 to dbus-marshal-validate.[hc]
5737 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5740 * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5741 to dbus-marshal-*.[hc]
5743 * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5744 function here from dbus-marshal.c
5746 2005-01-12 Joe Shaw <joeshaw@novell.com>
5748 * NEWS: Update for 0.23.
5750 * configure.in: Release 0.23.
5752 2005-01-12 Joe Shaw <joeshaw@novell.com>
5754 * mono/Makefile.am, mono/example/Makefile.am: Always build the
5755 dbus DLL with --debug. Clean up after the .mdb files this leaves
5758 * mono/doc/Makefile.am: Need to uninstall the docs on "make
5761 * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5762 is an enum, get the enum's underlying type. Another mono
5765 2005-01-11 Joe Shaw <joeshaw@novell.com>
5767 Patch from Sjoerd Simons <sjoerd@luon.net>
5769 * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5770 DESTDIR. It breaks stuff.
5772 2005-01-11 Joe Shaw <joeshaw@novell.com>
5774 Patch from Tambet Ingo <tambet@ximian.com>
5776 * mono/DBusType/Array.cs (Get): Get the underlying element type by
5777 calling type.GetElementType(). The code previously depended on
5778 broken Mono behavior, which was fixed in Mono 1.1.3.
5780 * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5781 Activator.CreateInstance() so that the class's constructor is
5782 called with the right parameters.
5784 2005-01-11 Joe Shaw <joeshaw@novell.com>
5786 Patch from Timo Teräs <ext-timo.teras@nokia.com>
5788 * dbus/dbus-connection.c
5789 (_dbus_connection_queue_received_message_link): Call
5790 _dbus_connection_remove_timeout() instead of the _locked()
5791 variant, since it's always called from
5792 _dbus_connection_handle_watch(), which handles the locking.
5793 Removed the _locked() variant since it's no longer used.
5795 2005-01-03 Havoc Pennington <hp@redhat.com>
5797 * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5800 2004-12-26 Havoc Pennington <hp@redhat.com>
5802 * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
5804 2005-01-03 Havoc Pennington <hp@redhat.com>
5806 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
5809 * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
5811 2005-01-02 Havoc Pennington <hp@redhat.com>
5813 * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
5815 2005-01-01 Havoc Pennington <hp@redhat.com>
5817 * configure.in: add -Wfloat-equal
5819 2005-01-01 Havoc Pennington <hp@redhat.com>
5821 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro,
5822 for a variety of reasons '==' doesn't do this.
5824 2004-12-31 Havoc Pennington <hp@redhat.com>
5826 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
5827 I keep wishing I had
5829 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
5831 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
5833 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
5835 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
5836 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
5837 dbus-protocol.h. Because they are defines and not enums they are not
5840 2004-12-26 John (J5) Palmieri <johnp@redhat.com>
5842 * python/dbus_bindings.pyx.in (bus_activate_service): Bind
5843 dbus_bus_activate_service
5845 * python/dbus.py (Bus.activate_service): activate a service on the
5848 2004-12-24 Havoc Pennington <hp@redhat.com>
5850 * test/decode-gcov.c: change to use .gcno and .gcda files, but the
5851 file format has also changed and I haven't adapted to that yet
5853 * Makefile.am: load .gcno files from latest gcc
5855 2004-12-23 John (J5) Palmieri <johnp@redhat.com>
5856 * Patch from Rob Taylor <robtaylor@fastmail.fm>
5858 * python/dbus_bindings.pyx.in (bus_get_unix_user): New
5861 * python/dbus.py (get_unix_user): Added binding to
5862 call dbus_bindings.bus_get_unix_user
5864 * python/extract.py: Modified the proto_pat regex to
5865 handle unsigned long
5867 2004-12-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
5869 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
5870 better POSIX compliance.
5872 2004-12-19 Havoc Pennington <hp@redhat.com>
5874 * dbus/dbus-string.c (_dbus_string_insert_4_aligned)
5875 (_dbus_string_insert_8_aligned): new functions
5877 * dbus/dbus-string.c (_dbus_string_alloc_space): new function
5879 2004-12-18 Havoc Pennington <hp@redhat.com>
5881 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
5884 * dbus/dbus-message.c: fix a comment, and add a still-unused
5885 not-implemented function
5887 * dbus/dbus-marshal.h: fix comment
5889 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
5891 2004-12-17 Joe Shaw <joeshaw@novell.com>
5893 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
5894 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
5895 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
5896 Type.UnderlyingSystemType to get the actual system type
5897 underneath. This code previously depended on the broken Mono
5898 behavior, which was fixed in 1.1.3.
5900 2004-11-27 Havoc Pennington <hp@redhat.com>
5902 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
5904 (_dbus_string_get_const_data): inline when asserts are disabled
5906 * dbus/dbus-message.c: record the _dbus_current_generation of
5907 creation so we can complain if dbus_shutdown() is used improperly.
5908 Do this only if checks are enabled.
5910 * dbus/dbus-connection.c: ditto
5912 2004-11-26 Havoc Pennington <hp@redhat.com>
5914 * test/glib/test-profile.c: add with_bus mode to profile echoes
5915 that go through the bus.
5917 * test/glib/run-test.sh: add ability to run test-profile
5919 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
5922 2004-11-26 Havoc Pennington <hp@redhat.com>
5924 * test/glib/test-profile.c: clean up how the fake_malloc_overhead
5925 thing was implemented
5927 2004-11-26 Havoc Pennington <hp@redhat.com>
5929 * test/glib/test-profile.c: tweak a bit, add support for some
5930 made-up minimal malloc overhead with plain sockets, since in
5931 real life some sort of buffers are unavoidable thus we could
5932 count them in the theoretical best case
5934 2004-11-26 Havoc Pennington <hp@redhat.com>
5936 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
5937 where I was trying to cache one too many messages
5939 2004-11-26 Havoc Pennington <hp@redhat.com>
5941 * dbus/dbus-message.c: reimplement message cache as an array which
5942 makes the cache about twice as fast and saves maybe 1.5% overall
5944 2004-11-26 Havoc Pennington <hp@redhat.com>
5946 * dbus/dbus-threads.c (init_global_locks): forgot to put the
5947 message cache lock here
5949 2004-11-26 Havoc Pennington <hp@redhat.com>
5951 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
5952 the "char byte_order" next to each other to save 4 bytes
5953 (dbus_message_new_empty_header): reduce preallocation, since the
5954 message cache should achieve a similar effect
5955 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
5956 message cache that keeps a few DBusMessage around in a pool,
5957 another 8% speedup or so.
5959 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
5961 2004-11-25 Havoc Pennington <hp@redhat.com>
5963 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
5964 to write, without reading or blocking, try it before the poll()
5965 and skip the poll() if nothing remains to write. This is about a
5966 3% speedup in the echo client/server
5968 2004-11-25 Havoc Pennington <hp@redhat.com>
5970 The primary change here is to always write() once before adding
5971 the write watch, which gives us about a 10% performance increase.
5973 * dbus/dbus-transport-unix.c: a number of modifications to cope
5974 with removing messages_pending
5975 (check_write_watch): properly handle
5976 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
5977 messages_pending stuff
5978 (check_read_watch): properly handle WAITING_FOR_MEMORY and
5980 (unix_handle_watch): after writing, see if the write watch can be
5982 (unix_do_iteration): assert that write_watch/read_watch are
5983 non-NULL rather than testing that they aren't, since they
5984 aren't allowed to be NULL. check_write_watch() at the end so
5985 we add the watch if we did not finish writing (e.g. got EAGAIN)
5987 * dbus/dbus-transport-protected.h: remove messages_pending call,
5988 since it resulted in too much inefficient watch adding/removing;
5989 instead we now require that the transport user does an iteration
5990 after queueing outgoing messages, and after trying the first
5991 write() we add a write watch if we got EAGAIN or exceeded our
5992 max bytes to write per iteration setting
5994 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5997 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5998 freed and then accessed, valgrind flagged this bug, fix it
6000 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6001 as the last valid field plus 1, where really it is equal to the
6002 last valid field. Corrects some message corruption issues.
6004 * dbus/dbus-mainloop.c: verbosity changes
6006 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6007 instead of aborting in one of the test codepaths
6009 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6010 caused not printing the pid ever again if a verbose was missing
6011 the newline at the end
6012 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6014 * dbus/dbus-connection.c: verbosity changes;
6015 (dbus_connection_has_messages_to_send): new function
6016 (_dbus_connection_message_sent): no longer call transport->messages_pending
6017 (_dbus_connection_send_preallocated_unlocked): do one iteration to
6018 try to write() immediately, so we can avoid the write watch. This
6019 is the core purpose of this patchset
6020 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6021 dump the outgoing message queue, so nobody will get confused
6022 trying to send them or thinking stuff is pending to be sent
6024 * bus/test.c: verbosity changes
6026 * bus/driver.c: verbosity/assertion changes
6028 * bus/dispatch.c: a bunch of little tweaks to get it working again
6029 because this patchset changes when/where you need to block.
6031 2004-11-23 Havoc Pennington <hp@redhat.com>
6033 * test/glib/test-profile.c: modify to accept a plain_sockets
6034 argument in which case it will bench plain sockets instead of
6035 libdbus, for comparison purposes.
6037 2004-11-22 Havoc Pennington <hp@redhat.com>
6039 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6040 threads for more time, so sysprof can get a grip on it.
6042 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6045 2004-11-13 Havoc Pennington <hp@redhat.com>
6047 * test/glib/test-profile.c: fix this thing up a bit
6049 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6050 preallocation sizes by a fair bit; not sure if this will be an
6051 overall performance win or not, but it does reduce reallocs.
6053 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6054 the test hack that forced constant realloc if asserts are
6055 disabled, so we can profile sanely. Sprinkle in some
6056 _DBUS_UNLIKELY() which are probably pointless, but before I
6057 noticed the real performance problem I put them in.
6058 (_dbus_string_validate_utf8): micro-optimize this thing a little
6059 bit, though callgrind says it didn't help; then special-case
6060 ascii, which did help a lot; then be sure we detect nul bytes as
6061 invalid, which is a bugfix.
6062 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6063 superstition; use memset to nul the padding instead of a manual
6065 (_dbus_string_get_length): inline this as a
6066 macro; it showed up in the profile because it's used for loop
6069 2004-11-10 Colin Walters <walters@verbum.org>
6071 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6074 2004-11-09 Colin Walters <walters@verbum.org>
6076 * dbus/dbus-string.c (_dbus_string_get_length): New
6077 function, writes DBusString to C buffer.
6079 * dbus/dbus-string.h: Prototype it.
6081 * dbus/dbus-message.c (dbus_message_type_to_string): New
6082 function, converts message type into C string.
6084 * dbus/dbus-message.h: Prototype it.
6086 * bus/selinux.c (bus_selinux_check): Take source pid,
6087 target pid, and audit data. Pass audit data to
6089 (log_audit_callback): New function, appends extra
6091 (bus_selinux_allows_acquire_service): Also take
6092 service name, add it to audit data.
6093 (bus_selinux_allows_send): Also take message
6094 type, interface, method member, error name,
6095 and destination, and add them to audit data.
6096 (log_cb): Initialize func_audit.
6098 * bus/selinux.h (bus_selinux_allows_acquire_service)
6099 (bus_selinux_allows_send): Update prototypes
6101 * bus/services.c (bus_registry_acquire_service): Pass
6102 service name to bus_selinux_allows_acquire_service.
6104 * bus/bus.c (bus_context_check_security_policy): Pass
6105 additional audit data. Move assignment of dest
6108 2004-11-07 Colin Walters <walters@verbum.org>
6110 * dbus/dbus-transport-unix.c (do_authentication): Always
6111 initialize auth_completed.
6113 2004-11-07 Colin Walters <walters@verbum.org>
6115 * bus/bus.c (load_config): Break into three
6116 separate functions: process_config_first_time_only,
6117 process_config_every_time, and process_config_postinit.
6118 (process_config_every_time): Move call of
6119 bus_registry_set_service_context_table into
6120 process_config_postinit.
6121 (process_config_postinit): New function, does
6122 any processing that needs to happen late
6123 in initialization (and also on reload).
6124 (bus_context_new): Instead of calling load_config,
6125 open config parser here and call process_config_first_time_only
6126 and process_config_every_time directly. Later, after
6127 we have forked but before changing UID,
6128 invoke bus_selinux_full_init, and then call
6129 process_config_postinit.
6130 (bus_context_reload_config): As in bus_context_new,
6131 load parse file inside here, and call process_config_every_time
6132 and process_config_postinit.
6134 * bus/services.h, bus/services.c
6135 (bus_registry_set_service_context_table): Rename
6136 from bus_registry_set_sid_table. Take string hash from config
6137 parser, and convert them here into SIDs.
6139 * bus/config-parser.c (struct BusConfigParser): Have
6140 config parser only store a mapping of service->context
6142 (merge_service_context_hash): New function.
6143 (merge_included): Merge context string hashes instead
6144 of using bus_selinux_id_table_union.
6145 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6146 simply create a new string hash.
6147 (bus_config_parser_unref): Unref it.
6148 (start_selinux_child): Simply insert strings into hash,
6149 don't call bus_selinux_id_table_copy_over.
6151 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6152 (bus_selinux_id_table_copy_over): Delete.
6154 2004-11-03 Colin Walters <walters@verbum.org>
6156 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6159 2004-11-03 Colin Walters <walters@verbum.org>
6161 * bus/test-main.c (test_pre_hook): Fix test logic,
6162 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6164 2004-11-02 Colin Walters <walters@redhat.com>
6166 * bus/selinux.c (bus_selinux_init): Split into two functions,
6167 bus_selinux_pre_init and bus_selinux_post_init.
6168 (bus_selinux_pre_init): Just determine whether SELinux is
6170 (bus_selinux_post_init): Do everything else.
6172 * bus/main.c (main): Call bus_selinux_pre_init before parsing
6173 config file, and bus_selinux_post_init after. This ensures that
6174 we don't lose the policyreload notification thread that
6175 bus_selinux_init created before forking previously.
6177 * bus/test-main.c (test_pre_hook): Update for split.
6179 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
6181 Patch from Johan Fischer <linux@fischaz.com>
6183 * mono/doc/Makefile.am (install-data-local): Added directory
6186 2004-10-29 Colin Walters <walters@redhat.com>
6188 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6189 parameter for fd to write pid to.
6191 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6193 * bus/bus.c (bus_context_new): Pass print_pid_fd
6194 to _dbus_become_daemon (bug #1720)
6196 2004-10-29 Colin Walters <walters@redhat.com>
6198 Patch from Ed Catmur <ed@catmur.co.uk>
6200 * mono/doc/Makefile.am (install-data-local): Handle
6203 2004-10-29 Colin Walters <walters@redhat.com>
6205 * bus/.cvsignore, qt/.cvsignore: Update.
6207 2004-10-29 Colin Walters <walters@redhat.com>
6209 Patch from Kristof Vansant <de_lupus@pandora.be>
6211 * configure.in: Detect Slackware.
6212 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6213 * bus/rc.messagebus.in: New file.
6215 2004-10-29 Colin Walters <walters@redhat.com>
6217 * tools/dbus-monitor.c (filter_func): Return
6218 DBUS_HANDLER_RESULT_HANDLED in filter function
6220 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6222 2004-10-29 Colin Walters <walters@redhat.com>
6224 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6226 * bus/services.c (bus_registry_acquire_service):
6227 Correctly retrieve service name from DBusString
6230 2004-10-29 Colin Walters <walters@redhat.com>
6232 * dbus/dbus-glib.h: Update documentation to not
6233 refer to internal APIs.
6235 2004-10-27 Joe Shaw <joeshaw@novell.com>
6237 * mono/Arguments.cs (GetDBusTypeConstructor):
6238 type.UnderlyingSystemType will return "System.Byte" if you do it
6239 on "byte[]", which is not what we want. So check the type.IsArray
6240 property and use System.Array instead.
6242 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
6244 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6245 the DBusUserInfo structure since this is passed into the function.
6246 This would cause a double free when the function that allocated
6247 the structure would try to free it when an error occured.
6249 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6250 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6251 for service activation to avoid 32bit/64bit parallel install issues
6253 2004-10-21 Colin Walters <walters@verbum.org>
6255 * AUTHORS: Fix my email address, the @gnu.org one
6256 has been bouncing for some time. Also add J5.
6258 2004-10-21 Colin Walters <walters@verbum.org>
6260 * dbus/dbus-transport-unix.c (do_authentication): Return
6261 authentication status to callers.
6262 (unix_handle_watch): If we completed authentication this round,
6263 don't do another read. Instead wait until the next iteration,
6264 after we've read any pending data in the auth buffer.
6265 (unix_do_iteration): Ditto.
6266 (unix_handle_watch): Updated for new do_authentication prototype.
6268 2004-10-18 Colin Walters <walters@verbum.org>
6270 * bus/selinux.c (bus_selinux_enabled): Handle
6271 --disable-selinux case.
6273 2004-10-18 Colin Walters <walters@verbum.org>
6275 * bus/selinux.h: Add bus_selinux_enabled.
6277 * bus/selinux.c (bus_selinux_enabled): Implement it.
6279 * bus/config-parser.c (struct include): Add
6280 if_selinux_enabled member.
6281 (start_busconfig_child): Parse if_selinux_enabled
6282 attribute for include.
6283 (bus_config_parser_content): Handle it.
6285 * bus/session.conf.in, bus/system.conf.in: Add
6286 inclusion of context mapping to default config files;
6287 conditional on SELinux being enabled.
6289 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6291 * test/data/invalid-config-files/badselinux-1.conf,
6292 test/data/invalid-config-files/badselinux-2.conf:
6293 Test files for bad syntax.
6295 2004-10-17 Colin Walters <walters@verbum.org>
6297 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6298 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6299 format specifier mismatches.
6301 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
6303 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6306 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6307 pointer (bug #1540, Leonardo Boiko).
6309 2004-09-28 Jon Trowbridge <trow@ximian.com>
6311 * mono/BusDriver.cs: Changed BusDriver struct to remove
6312 the ServiceCreated and ServiceDeleted events and replace them
6313 with the new ServiceOwnerChanged event.
6315 * mono/example/BusListener.cs: Added a new example program,
6316 which listens for and reports any ServiceOwnerChanged events
6319 * mono/example/Makefile.am (DESTDIR): Build changes for the
6320 new BusListener.cs example.
6322 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
6324 * bus/signals.c (bus_match_rule_parse): validate the components of
6325 match rules (bug #1439).
6327 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6329 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
6331 * doc/dbus-specification.xml: document ServiceOwnerChanged
6334 * bus/driver.c, bus/driver.h, bus/services.c: Use
6335 ServiceOwnerChanged signal instead of ServiceCreated and
6338 * bus/dispatch.c: update testcase for the new signal.
6340 2004-09-20 Jon Trowbridge <trow@ximian.com>
6342 Patch from Nat Friedman <nat@novell.com>
6344 * mono/Makefile.am: A number of small build fixes to allow "make
6345 distcheck" to succeed.
6347 * mono/example/Makefile.am: "make distcheck" fixes.
6349 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6352 * test/Makefile.am: "make distcheck" fixes.
6354 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
6356 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6358 * doc/busconfig.dtd: update the DTD for the at_console attribute.
6360 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6361 messages after the first one (bug #1389).
6363 * bus/dispatch.c (check_double_hello_message): add a test case for
6364 the double hello message bug.
6365 (check_existent_service_activation): fix check of spawning error.
6367 2004-09-16 David Zeuthen <david@fubar.dk>
6369 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6371 2004-09-12 David Zeuthen <david@fubar.dk>
6373 Patch from Kay Sievers <kay.sievers@vrfy.org>
6375 * bus/bus.c (bus_context_new):
6377 * bus/main.c (usage)
6379 Add commandline option --nofork to override configuration file
6382 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
6384 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6385 compilers don't like it (bug #974).
6387 2004-09-04 Harald Fernengel <harry@kdevelop.org>
6389 * qt/connection.*: Applied patch by Jérôme Lodewyck
6390 <lodewyck@clipper.ens.fr> to integrate an existing
6391 connection into the Qt eventloop
6393 2004-08-30 Jon Trowbridge <trow@ximian.com>
6395 * mono/BusDriver.cs: Added. This is a class for interacting with
6396 the org.freedesktop.DBus service.
6398 * mono/Message.cs: Added a mechanism to expose the message that is
6399 currently being dispatched via the static Message.Current
6400 property. Added Message.Sender and Message.Destination
6403 * mono/Handler.cs: Expose the dispatched message via
6404 Message.Current when handling method calls.
6406 * mono/Service.cs: Expose the dispatched message via
6407 Message.Current when handling signal emissions.
6409 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6410 Connection.BaseService property.
6412 2004-08-28 Havoc Pennington <hp@redhat.com>
6414 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6416 More fixes from Steve Grubb
6418 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6419 (_dbus_listen_tcp_socket): fix fd leak
6421 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6422 EINTR to a bit lower in the code
6424 2004-08-26 Jon Trowbridge <trow@ximian.com>
6426 * bus/driver.c (bus_driver_handle_service_exists): Respond with
6427 TRUE if we are inquiring about the existence of the built-in
6428 org.freedesktop.DBus service.
6430 2004-08-25 John Palmieri <johnp@redhat.com>
6431 * bus/config-parser.c:
6432 (struct PolicyType): Add POLICY_CONSOLE
6433 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6434 (start_busconfig_child): Sets up console element when
6435 <policy at_console=""> is encountered in a policy file
6436 (append_rule_from_element): Convert console elements to console
6440 (bus_policy_create_client_policy): Add console rules to the client
6441 policy based on if the client is at the console
6442 (bus_policy_append_console_rule): New function for adding a
6443 console rule to a policy
6444 (bus_policy_merge): Handle console rule merging
6446 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6447 where we check for console user files
6449 * dbus/dbus-sysdeps.c:
6450 (_dbus_file_exists): New function which checks if the given
6452 (_dbus_user_at_console): New function which does the system
6453 specific process of checking if the user is at the console
6455 * dbus/dbus-userdb.c:
6456 (_dbus_is_console_user): New function converts a UID to user name
6457 and then calls the system specific _dbus_user_at_console to
6458 see if the user is at the console and therefor a console user
6460 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
6462 * bus/config-parser.c (set_limit):
6463 * bus/dbus-daemon-1.1.in:
6464 * test/data/valid-config-files/many-rules.conf: set the
6465 max_match_rules_per_connection limt from the config file.
6467 * doc/busconfig.dtd: update the DTD.
6469 * bus/driver.c: remove some unused variables.
6471 2004-08-24 Mikael Hallendal <micke@imendio.com>
6473 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
6474 it's been replaced by dbus_g_bus_get
6476 2004-08-23 Colin Walters <walters@redhat.com>
6478 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6480 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6482 * bus/selinux.c: Create a thread for policy reload notification.
6483 (bus_selinux_get_policy_root): Implement.
6485 * bus/config-parser.c (start_busconfig_child)
6486 (bus_config_parser_content): Support SELinux-root relative
6489 * configure.in <HAVE_SELINUX>: Add -lpthread.
6491 * bus/test-main.c (test_pre_hook, test_post_hook): New.
6492 (test_post_hook): Move memory checking into here.
6493 (test_pre_hook, test_post_hook): Move SELinux checks in
6494 here, but conditional on a DBUS_TEST_SELINUX environment
6495 variable. Unfortunately we can't run the SELinux checks
6496 as a normal user, since they won't have any permissions
6497 for /selinux. So this will have to be tested manually
6498 for now, until we have virtualization for most of
6501 2004-08-23 Havoc Pennington <hp@redhat.com>
6503 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6504 drop supplementary groups, suggested by Steve Grubb
6506 2004-08-20 Colin Walters <walters@redhat.com>
6508 * bus/config-parser.c (start_busconfig_child): Remove some unused
6511 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6514 2004-08-17 Joe Shaw <joeshaw@novell.com>
6516 * configure.in: If --enable-mono is passed in, if we can't find
6519 * mono/Makefile.am: Use /gacutil to install assemblies into the
6522 2004-08-12 Havoc Pennington <hp@redhat.com>
6524 * NEWS: update for 0.22
6526 * configure.in: release 0.22
6528 2004-08-11 Colin Walters <walters@redhat.com>
6530 * tools/dbus-send.c (main, usage): Add --reply-timeout
6533 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
6535 * bus/bus.c (process_config_first_time_only): get rid of an unused
6536 DBusError that was causing a memoy leak (bug #989).
6538 * dbus/dbus-keyring.c, dbus/dbus-message.c:
6539 fix compilation on Solaris/Forte C (bug #974)
6541 * bus/main.c (main): plug two minuscule memleaks.
6543 2004-08-10 Havoc Pennington <hp@redhat.com>
6545 * doc/dbus-tutorial.xml: add some more info on GLib bindings
6547 2004-08-09 Havoc Pennington <hp@redhat.com>
6549 * COPYING: switch to Academic Free License version 2.1 instead of
6550 2.0, to resolve complaints about patent termination clause.
6552 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
6554 * README: added documentation for the --enable-python
6557 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
6559 * bus/config-parser.c (bus_config_parser_new): fix an invalid
6560 _unref in the SELinux support.
6562 * doc/busconfig.dtd: update DTD for SELinux support.
6564 * bus/config-loader-libxml.c: fix error handler and parser
6565 initialisation/cleanup. OOM test now works with libxml2 HEAD.
6567 * configure.in: remove the warning about libxml2.
6569 * dbus/dbus-bus.c: silence doxygen warning.
6571 2004-07-31 Colin Walters <walters@redhat.com>
6573 * configure.in: Move #error in SELinux check to its own line.
6575 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
6577 * dbus/dbus-internals.h (_DBUS_SET_OOM):
6578 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6581 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6582 broken by the change in the _SET_OOM macros.
6584 2004-07-31 Colin Walters <walters@redhat.com>
6586 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6589 2004-07-31 Colin Walters <walters@redhat.com>
6591 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6592 to correctly detect DBUS__ACQUIRE_SVC. Also add an
6595 2004-07-24 Havoc Pennington <hp@redhat.com>
6597 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6599 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6602 * configure.in: add --enable-selinux
6604 * bus/policy.c (bus_policy_merge): add FIXME to a comment
6606 * bus/main.c (main): initialize and shut down selinux
6608 * bus/connection.c: store SELinux ID on each connection, to avoid
6609 repeated getting of the string context and converting it into
6612 * bus/bus.c (bus_context_get_policy): new accessor, though it
6614 (bus_context_check_security_policy): check whether the security
6615 context of sender connection can send to the security context of
6616 recipient connection
6618 * bus/config-parser.c: add parsing for <selinux> and <associate>
6620 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6621 implement dbus_connection_get_unix_fd()
6623 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6624 function, used by the selinux stuff
6626 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
6628 * bus/config-loader-libxml.c: complete the implementation of
6629 libxml backend for config file loader. Doesn't work with full OOM
6632 * configure.in: change error when selecting libxml into a warning.
6634 * test/data/invalid-config-files: add two non-well-formed XML
6637 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6639 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6640 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6641 be necessary to read all the buffer. (bug #894)
6643 * bus/activation.c (bus_activation_activate_service): fix a
6644 potential assertion failure (bug #896). Small optimization in the
6645 case of auto-activation messages.
6647 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6648 add test case for byte-through-vararg bug (#901). patch by Kimmo
6651 2004-07-28 Anders Carlsson <andersca@gnome.org>
6654 * python/dbus_bindings.pyx.in:
6655 Add dbus.init_gthreads (), allow emit_signal to pass
6656 arguments to the signal.
6658 2004-07-24 Havoc Pennington <hp@redhat.com>
6660 * AUTHORS: add some people, not really comprehensively, let me
6661 know if I missed you
6663 2004-07-24 Havoc Pennington <hp@redhat.com>
6665 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6668 * test/Makefile.am (DIST_SUBDIRS): here also
6670 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
6672 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6673 breaking build on Solaris, reported by Farhad Saberi on the ML.
6675 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6676 va_arg invocation to account for integer promotion in the case of
6677 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6679 * bus/services.c (bus_service_remove_owner): fix bug #902, use
6680 _dbus_list_get_first_link, not _dbus_list_get_first.
6682 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6684 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6685 handler functions so that the asserts in _dbus_object_subtree_unref
6688 * dbus/dbus-transport-unix.c (do_reading):
6689 _dbus_transport_queue_messages return value is of type
6690 dbus_bool_t, not DBusDispatchStatus.
6692 2004-07-19 David Zeuthen <david@fubar.dk>
6694 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6697 (check_get_connection_unix_user): Debug says GetProperty; but the
6698 method is called GetConnectionUnixUser
6699 (check_get_connection_unix_process_id): New function
6700 (bus_dispatch_test): Actually call check_get_connection_unix_user();
6701 also call check_get_connection_unix_process_id()
6704 (bus_driver_handle_get_connection_unix_process_id): New function,
6705 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6709 (handle_server_data_external_mech): Set pid from the credentials
6710 obtained from the socket
6712 * dbus/dbus-connection.c:
6713 (dbus_connection_get_unix_process_id): New function
6715 * dbus/dbus-connection.h:
6716 Add prototype for dbus_connection_get_unix_process_id
6718 * dbus/dbus-transport.c:
6719 (_dbus_transport_get_unix_process_id): New function
6721 * dbus/dbus-transport.h:
6722 Add prototype for _dbus_transport_get_unix_process_id
6724 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
6726 * dbus/dbus-message.c: Message counter fix, patch by Christian
6727 Hammond <chipx86@gnupdate.org>
6729 2004-07-18 Seth Nickell <seth@gnome.org>
6732 * python/dbus_bindings.pyx.in:
6733 * python/tests/test-client.py:
6735 Add dbus.ByteArray and dbus_bindings.ByteArray
6736 types so that byte streams can be passed back.
6738 Give jdahlin the heaps of credit that are so
6741 2004-07-12 Seth Nickell <seth@gnome.org>
6745 Add message argument to the default object_method_handler
6748 * python/dbus_bindings.pyx.in:
6750 Automatically return NIL when passed an empty list
6751 (we can't pass back a list since lists are typed
6752 and we don't have any idea what type the the client
6753 intended the list to be... :-( )
6755 2004-07-10 Seth Nickell <seth@gnome.org>
6757 * python/examples/Makefile.am:
6759 Fix distcheck breakage caused by new examples.
6761 2004-07-10 Seth Nickell <seth@gnome.org>
6765 Add "message" argument to service-side dbus.Object
6766 methods. This will break existing services written
6767 using the python bindings, but will allow extraction
6768 of all the message information (e.g. who its from).
6770 Add improved "object oriented" signal handling/emission.
6772 * python/examples/example-service.py:
6776 * python/examples/example-signal-emitter.py:
6777 * python/examples/example-signal-recipient.py:
6779 Two new examples that show how to emit and receive
6780 signals using the new APIs.
6782 * python/examples/example-signals.py:
6783 * python/examples/gconf-proxy-service.py:
6784 * python/examples/gconf-proxy-service2.py:
6786 Add "message" argument to service methods.
6788 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
6790 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6791 * dbus/bus.c (dbus_bus_get_unix_user)
6792 * doc/dbus-specification.xml: implement GetConnectionUnixUser
6793 method of org.freedesktop.DBus interface.
6795 * bus/dispatch.c: test case
6797 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
6799 * python/Makefile.am: switched include directory from glib/ to dbus/
6800 since dbus-glib.h moved
6802 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
6804 * configure.in: prevent building the gcj stuff and libxml loader
6805 since they are broken.
6807 2004-06-20 Havoc Pennington <hp@redhat.com>
6809 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
6810 codes from the dbus error names
6812 * glib/dbus-glib.h: move to subdir dbus/ since it's included
6813 as dbus/dbus-glib.h and that breakage is now visible due to
6814 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
6816 * glib/dbus-glib.h: s/gproxy/g_proxy/
6818 * dbus/dbus-shared.h: new header to hold stuff shared with
6821 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
6824 * glib/dbus-glib.h (dbus_set_g_error): move to
6825 dbus-glib-lowlevel.h
6827 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
6828 of stuff to enable this
6830 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
6832 * a bunch of other changes with the same basic "separate glib
6833 bindings from dbus.h" theme
6835 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
6837 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
6839 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
6841 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
6843 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
6844 the reply value of the ServiceExists message.
6846 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
6848 * python/dbus_bindings.pyx.in: No longer need to parse path
6849 elements and pass them as arrays of strings. The C API now
6850 accepts plain path strings.
6851 (_build_parsed_path): removed
6853 2004-06-07 Havoc Pennington <hp@redhat.com>
6855 * doc/TODO: remove auto-activation item since it's done; sort
6856 items by importance/milestone
6858 2004-06-07 Havoc Pennington <hp@redhat.com>
6860 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
6861 random signature when using REQUIRED_FIELDS (this hack won't work
6864 * dbus/dbus-message.c: change the signature to be a header field,
6865 instead of message->signature special-case string. Incremental
6866 step forward. Then we can fix up code to send the signature in the
6867 message, then fix up code to validate said signature, then fix up
6868 code to not put the typecodes inline, etc.
6869 (load_one_message): don't make up the signature after the fact
6870 (decode_header_data): require signature field for the known
6873 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
6875 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
6877 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
6879 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
6881 * mono/Handler.cs: Updated to follow new path argument for
6882 (un-)registering objects.
6884 * mono/example/Makefile.am:
6886 * configure.in: Bumped required version for mono and use new -pkg
6889 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
6891 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
6892 registration functions take the path argument as char* instead of
6895 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
6896 split off the path decompostion part of
6897 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
6900 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
6902 2004-06-02 Kristian Høgsberg <krh@redhat.com>
6904 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
6905 machine approach. A state is implemented as a function that
6906 handles incoming events as specified for that state.
6908 * doc/dbus-specification.xml: Update auth protocol state machine
6909 specification to match implementation. Remove some leftover
6912 2004-06-02 Kristian Høgsberg <krh@redhat.com>
6914 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
6915 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
6918 * Doxyfile.in: remove deprecated options.
6920 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
6921 glib/test-thread.h, glib/test-thread-client.c,
6922 glib/test-thread-server.c, glib/test-profile.c,
6923 glib/test-dbus-glib.c: remove these unused files.
6925 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
6927 * dbus/dbus-object-tree.c
6928 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
6929 non-fallback handlers (bug #684).
6930 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
6931 (find_subtree_recurse): report wether the returned subtree is an
6932 exact match or a "fallback" match higher up in the tree.
6933 (object_tree_test_iteration): update test case.
6935 2004-06-01 Seth Nickell <seth@gnome.org>
6937 * python/dbus_bindings.pyx.in:
6938 * python/tests/test-client.py:
6940 Round off basic type support. Add dicts (yay!), and
6941 remaining array types.
6943 Make MessageIter more general so it works for dicts too.
6945 Mark all loop variables as C integers.
6947 2004-05-31 Havoc Pennington <hp@redhat.com>
6949 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
6952 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
6954 * glib/dbus-glib-tool.c (main): set up to have a --self-test
6955 option that runs the tests, and start filling in some code
6956 including for starters just dumping the interfaces to stdout
6958 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
6960 * test/data/valid-introspection-files/lots-of-types.xml: test of
6961 an example introspection file
6963 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
6966 2004-05-31 Seth Nickell <seth@gnome.org>
6968 * python/dbus_bindings.pyx.in:
6969 * python/tests/test-client.py:
6974 Fix string array memory trashing bug... oops...
6976 2004-05-30 Seth Nickell <seth@gnome.org>
6980 Add a nicer-but-less-flexible alternate API for handling
6981 calls to virtual objects in dbus.ObjectTree.
6983 Screw up the argument order to the dbus.Object constructor
6984 for consistency with dbus.ObjectTree (and to make dbus_methods
6985 optional for future extension)
6987 * python/examples/Makefile.am:
6988 * python/examples/gconf-proxy-service.py:
6989 * python/examples/gconf-proxy-service2.py:
6991 Alternate implementation of gconf-proxy-service using the
6992 nicer dbus.ObjectTree API.
6994 * python/examples/example-service.py:
6995 * python/tests/test-server.py
6997 Reverse the argument order to deal with dbus.Object constructor
7000 2004-05-30 Seth Nickell <seth@gnome.org>
7002 * python/examples/example-client.py:
7003 * python/examples/example-service.py:
7005 Take it back. Lists seem to work but they're broken
7006 in the test suite. Make the base examples use
7009 2004-05-30 Seth Nickell <seth@gnome.org>
7011 * python/dbus_bindings.pyx.in:
7012 * python/tests/test-client.py:
7014 Add some more tests and fix errors that crop up.
7015 Unfortunately, currently it seems like marshalling
7016 and unmarshalling of lists is completely broken :-(
7018 2004-05-30 Seth Nickell <seth@gnome.org>
7020 * python/dbus_bindings.pyx.in:
7022 Add support for ObjectPath type.
7026 Refactor message handling code to a common function.
7028 * python/tests/test-client.py:
7029 * python/tests/test-server.py:
7031 Add tests that check to make sure values of all types
7032 can be echoed from a service w/o mangling.
7034 2004-05-29 Seth Nickell <seth@gnome.org>
7038 Add ObjectTree class which allows implementation
7039 of trees of "virtual" objects. Basically the python
7040 wrapper for "register_fallback".
7042 * python/examples/Makefile.am
7043 * python/examples/gconf-proxy-client.py:
7044 * python/examples/gconf-proxy-service.py:
7046 Implement a simple GConf proxy service that supports
7047 get/set on string and int GConf keys using the ObjectTree.
7049 2004-05-29 Seth Nickell <seth@gnome.org>
7052 * python/examples/example-client.py:
7053 * python/examples/example-service.py:
7054 * python/examples/list-system-services.py:
7056 Add SessionBus, SystemBus and ActivationBus classes
7057 so you don't need to know the special little BUS_TYPE
7060 2004-05-29 Havoc Pennington <hp@redhat.com>
7062 * bus/config-parser.c (process_test_valid_subdir): temporarily
7063 stop testing config parser OOM handling, since expat has issues
7064 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7066 * bus/dbus-daemon-1.1.in: change requested_reply to
7067 send_requested_reply/receive_requested_reply so we can send the
7068 replies, not just receive them.
7070 * bus/config-parser.c: parse the new
7071 send_requested_reply/receive_requested_reply
7073 * bus/policy.c (bus_client_policy_check_can_send): add
7074 requested_reply argument and use it
7076 * bus/bus.c (bus_context_check_security_policy): pass through
7077 requested_reply status to message send check
7079 * bus/system.conf.in: adapt to requested_reply change
7081 2004-05-28 Havoc Pennington <hp@redhat.com>
7083 * test/glib/test-service-glib.c (main): remove unused variable
7085 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7087 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7088 from the enum, no longer in use.
7090 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7093 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7094 whether error_name passed in is a valid error name.
7096 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
7098 * dbus/dbus-message.c (dbus_message_get_args): Added support for
7099 OBJECT_PATH and OBJECT_PATH_ARRAY
7101 2004-05-28 Seth Nickell <seth@gnome.org>
7103 * python/examples/Makefile.am:
7105 Forget to add Makefile.am. Do not pass go.
7107 2004-05-28 Michael Meeks <michael@ximian.com>
7109 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
7112 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7114 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7115 (_dbus_message_iter_get_basic_type_array): impl.
7116 drastically simplify ~all relevant _get methods to use these.
7117 (_dbus_message_iter_append_basic_array),
7118 (dbus_message_iter_append_basic): impl
7119 drastically simplify ~all relevant _append methods to use these.
7121 * dbus/dbus-message-builder.c (parse_basic_type)
7122 (parse_basic_array, lookup_basic_type): impl.
7123 (_dbus_message_data_load): prune scads of duplicate /
7126 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
7127 (_dbus_demarshal_basic_type): implement,
7128 (demarshal_and_validate_len/arg): beef up debug.
7129 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7131 2004-05-27 Seth Nickell <seth@gnome.org>
7134 * python/Makefile.am:
7136 Include the example python apps in the tarball.
7138 * python/examples/list-system-services.py
7140 Add a python new example that fetches the list of services
7141 from the system bus.
7143 2004-05-27 Seth Nickell <seth@gnome.org>
7146 * python/dbus_bindings.pyx.in:
7148 Fix failure to notify that a signal was not handled,
7149 resulted in hung functions.
7151 2004-05-25 Colin Walters <walters@redhat.com>
7153 * tools/dbus-monitor.c (main): Monitor all types of messages.
7155 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
7157 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7158 which unregisters the object path and disposes the handler.
7160 2004-05-23 Kristian Høgsberg <krh@redhat.com>
7162 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7164 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7165 operands to && so we call dbus_message_iter_next () for the last
7168 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
7170 * dbus/dbus-object-tree.c
7171 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7172 children even if the requested path isn't registered.
7173 (object_tree_test_iteration): test object_tree_list_registered.
7175 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7178 2004-05-20 Kristian Høgsberg <krh@redhat.com>
7180 * doc/TODO: Remove resolved items.
7182 * bus/expirelist.h (struct BusExpireList): remove unused n_items
7185 * bus/connection.c (bus_connections_expect_reply): Enforce the
7186 per-connection limit on pending replies.
7188 Patch from Jon Trowbridge <trow@ximian.com>:
7190 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
7191 up a watch that triggers a config reload when one end of the pipe
7193 (signal_handler): Instead of doing the config reload in our SIGHUP
7194 handler, just write to the reload pipe and let the associated
7195 watch handle the reload when control returns to the main loop.
7197 * bus/driver.c (bus_driver_handle_reload_config): Added.
7198 Implements a ReloadConfig method for requesting a configuration
7199 file reload via the bus driver.
7201 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
7203 * HACKING: Updated release instructions concerning the wiki page.
7205 2004-05-18 Kristian Høgsberg <krh@redhat.com>
7207 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7208 filter against auth->allowed_mechs; we only add allowed mechs in
7209 record_mechanisms().
7211 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7212 ALLOWED_MECHS to auth-script format so we can set the list of
7215 * data/auth/client-out-of-mechanisms.auth-script: New test to
7216 check client disconnects when it is out of mechanisms to try.
7218 * dbus/dbus-auth.c (process_command): Remove check for lines
7219 longer that 1 MB; we only buffer up maximum 16 kB.
7221 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7222 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7223 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7224 assume there might be unused bytes.
7226 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7227 client-out-of-mechs, it is handled in process_reject(). Move check
7228 for max failures to send_rejected(), as it's a server-only thing.
7230 * dbus/dbus-auth.c: Factor out protocol reply code into functions
7231 send_auth(), send_data(), send_rejected(), send_error(),
7232 send_ok(), send_begin() and send_cancel().
7234 2004-05-17 Kristian Høgsberg <krh@redhat.com>
7236 Remove base64 encoding, replace with hex encoding. Original patch
7237 from trow@ximian.com, added error handling.
7239 * dbus/dbus-string.c (_dbus_string_base64_encode)
7240 (_dbus_string_base64_decode): Remove.
7241 (_dbus_string_hex_decode): Add end_return argument so we can
7242 distinguish between OOM and invalid hex encoding.
7243 (_dbus_string_test): Remove base64 tests and add test case for
7246 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7247 Replace base64 with hex.
7249 * test/data/auth/invalid-hex-encoding.auth-script: New test case
7250 for invalid hex encoded data in auth protocol.
7252 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
7254 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7257 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
7259 * mono/dbus-sharp.dll.config.in: Added for GAC
7260 * mono/dbus-sharp.snk: Added for GAC
7261 * mono/Assembly.cs.in: Added for GAC
7262 * mono/Makefile.am: Changes for GAC installation
7263 * configure.in: Added refs for dbus-sharp.dll.config.in and
7264 Assembly.cs.in. More fixes for mono testing
7265 * mono/example/Makefile.am: Changed var to CSC
7266 * Makefile.am: Changed flag name to DBUS_USE_CSC
7268 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
7270 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7271 * mono/doc/*: Added documentation framework
7272 * configure.in: Added monodoc check
7273 * README: Added description of mono configure flags
7275 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
7277 * doc/dbus-specification.xml: Added a "Required" column to the
7278 header fields table and changed the "zero or more" verbage in
7279 the above paragraph to read "The header must contain the required
7280 named header fields and zero or more of the optional named header
7282 * test/data/invalid-messages/*.message: Added the required PATH
7283 named header field to the tests so that they don't fail on
7284 'Missing path field'
7286 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
7288 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7289 the stack by implicitly defining variable and parameter types and
7290 removing the hack of defining C pointers as python objects and later
7293 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
7295 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7297 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
7299 * mono/DBusType/Dict.cs: Handle empty dicts
7300 * mono/DBusType/Array.cs: Handle empty arrays
7301 * mono/Arguments.cs: Handle empty arguments
7303 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
7305 * dbus-sharp.pc.in: Modified to include include Libs and Requires
7308 2004-04-25 Kristian Høgsberg <krh@redhat.com>
7310 * test/data/valid-messages/standard-*.message: Update message
7311 test scripts to new header field names.
7313 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
7315 * test/break-loader.c (randomly_do_n_things): tracked down buffer
7316 overflow to times_we_did_each_thing array which would chop off the
7317 first character of the failure_dir string. Increased the size of
7318 the array to 7 to reflect the number of random mutation functions
7321 2004-04-21 Kristian Høgsberg <krh@redhat.com>
7323 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7324 unix_server->watch here, it is unreffed in disconnect.
7325 (_dbus_server_new_for_tcp_socket): convert NULL host to
7326 "localhost" here so we don't append NULL to address.
7328 * dbus/dbus-server.c (_dbus_server_test): Add test case for
7329 various addresses, including tcp with no explicit host.
7331 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
7333 * dbus/dbus-message.c (decode_header_data, decode_string_field):
7334 fix incorrect setting of .name_offset in the HeaderField (it was
7335 off by two bytes, positioned right after the name and typecode)
7337 * bus/bus.c (bus_context_new, bus_context_unref): test before
7338 calling dbus_server_free_data_slot and _dbus_user_database_unref
7339 in case of an error.
7341 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7344 2004-04-19 Kristian Høgsberg <krh@redhat.com>
7346 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7347 _dbus_poll() instead of select().
7349 2004-04-15 Jon Trowbridge <trow@ximian.com>
7351 * bus/main.c (signal_handler): Reload the configuration files
7353 (main): Set up our SIGHUP handler.
7355 * bus/bus.c (struct BusContext): Store the config file, user and
7356 fork flag in the BusContext.
7357 (process_config_first_time_only): Added. Contains the code
7358 (previously in bus_context_new) for setting up the BusContext from
7359 the BusConfigParser that should only be run the first time the
7360 config files are read.
7361 (process_config_every_time): Added. Contains the code (previously
7362 in bus_context_new) for setting up the BusContext from the
7363 BusConfigParser that should be run every time the config files are
7365 (load_config): Added. Builds a BusConfigParser from the config
7366 files and passes the resulting structure off to
7367 process_config_first_time_only (assuming this is the first time)
7368 and process_config_every_time.
7369 (bus_context_new): All of the config-related code has been moved
7370 to process_config_first_time_only and process_config_every_time.
7371 Now this function just does the non-config-related initializations
7372 and calls load_config.
7373 (bus_context_reload_config): Added.
7375 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
7377 * bus/driver.c (bus_driver_handle_get_service_owner):
7378 implement a GetServiceOwner method.
7379 * doc/dbus-specification.xml: document it.
7380 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7382 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7383 implement, using the bus GetServiceOwner method.
7385 * test/glib/test-dbus-glib.c:
7386 use dbus_gproxy_new_for_service_owner so that we can receive the
7389 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
7391 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7392 dbus/dbus-message.c, dbus/dbus-protocol.h
7393 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7395 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7396 dbus/dbus-message.c, dbus/dbus-protocol.h
7397 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7399 * dbus/dbus-internals.c (_dbus_header_field_to_string):
7400 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7401 DBUS_HEADER_FIELD_SENDER resolves to "sender"
7403 * doc/dbus-specification.xml (Header Fields Table):
7404 s/SERVICE/DESTINATION
7405 s/SENDER_SERVICE/SENDER
7408 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
7410 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7413 2004-04-13 Michael Meeks <michael@ximian.com>
7415 * glib/dbus-gobject.c (handle_introspect): split out
7416 (introspect_properties): this.
7417 (handle_introspect): implement this.
7419 * test/glib/Makefile.am: use the absolute path so the bus
7420 daemon's chdir ("/") doesn't kill us dead.
7422 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7424 2004-04-12 Jon Trowbridge <trow@ximian.com>
7426 * bus/config-parser.c (struct BusConfigParser): Added
7427 included_files field.
7428 (seen_include): Added. Checks whether or not a file has already
7429 been included by any parent BusConfigParser.
7430 (bus_config_parser_new): Copy the parent's included_files.
7431 (include_file): Track which files have been included, and fail on
7432 circular inclusions.
7433 (process_test_valid_subdir): Changed printf to report if we are
7434 testing valid or invalid conf files.
7435 (all_are_equiv): Changed printf to be a bit clearer about
7436 what we are actually doing.
7437 (bus_config_parser_test): Test invalid configuration files.
7439 2004-04-09 Jon Trowbridge <trow@ximian.com>
7441 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7442 argument. If non-null, the newly-constructed BusConfigParser will
7443 be initialized with the parent's BusLimits instead of the default
7445 (include_file): When including a config file, pass in
7446 the current parser as the parent and then copy the BusLimits
7447 from the included BusConfigParser pack to the current parser.
7448 (process_test_valid_subdir): Renamed from process_test_subdir.
7449 (process_test_equiv_subdir): Added. Walks through a directory,
7450 descending into each subdirectory and loading the config files
7451 it finds there. If any subdirectory contains two config files
7452 that don't produce identical BusConfigParser structs, fail.
7453 For now, the BusConfigParser's BusPolicies are not compared.
7454 (bus_config_parser_test): Call both process_test_valid_subdir and
7455 process_test_equiv_subdir.
7457 * bus/config-loader-libxml.c (bus_config_load): Take a parent
7458 argument and pass it along to the call to bus_config_parser_new.
7459 Also made a few small changes to allow this code to compile.
7461 * bus/config-loader-expat.c (bus_config_load): Take a parent
7462 argument and pass it along to the call to bus_config_parser_new.
7464 * bus/bus.c (bus_context_new): Load the config file
7465 with a NULL parent argument.
7467 2004-03-29 Michael Meeks <michael@ximian.com>
7469 * glib/dbus-gobject.c (introspect_properties): split
7470 out, fix mangled 'while' flow control.
7471 (introspect_signals): implement.
7472 (handle_introspect): update.
7474 2004-03-29 Michael Meeks <michael@ximian.com>
7476 * glib/dbus-gobject.c (set_object_property): split out /
7477 re-work, use the property type, and not the message type(!)
7478 (get_object_property): ditto.
7480 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7481 (dbus_gvalue_marshal): make this code re-usable, needed
7482 for signals too, also on both proxy and server side.
7483 Re-write for more efficiency / readability.
7485 2004-03-29 Michael Meeks <michael@ximian.com>
7487 * dbus/dbus-message.c
7488 (dbus_message_new_error_printf): impl.
7490 * dbus/dbus-connection.c
7491 (dbus_connection_unregister_object_path): fix warning.
7493 * configure.in: fix no-mono-installed situation.
7495 2004-03-27 Havoc Pennington <hp@redhat.com>
7497 Patch from Timo Teräs:
7499 * tools/dbus-send.c (main): if --print-reply, assume type is
7500 method call; support boolean type args
7502 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7503 bunch of memleak and logic bugs
7505 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
7507 * mono/Arguments.cs:
7508 * mono/Introspector.cs:
7510 * mono/InterfaceProxy.cs:
7512 * mono/ProxyBuilder.cs:
7514 Added InterfaceProxy class to avoid building proxies for every
7518 * dbus-message.c (dbus_message_append_args_valist)
7519 (dbus_message_iter_get_object_path)
7520 (dbus_message_iter_get_object_path_array)
7521 (dbus_message_iter_append_object_path)
7522 (dbus_message_iter_append_object_path_array):
7523 Added object_path iter functions to handle OBJECT_PATH arguments
7525 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
7527 First checkin of mono bindings.
7530 Build stuff for the bindings
7531 * dbus-sharp.pc.in: Added for pkgconfig
7533 2004-03-21 Havoc Pennington <hp@redhat.com>
7535 * test/test-service.c (main): remove debug spew
7537 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
7539 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7542 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7543 (dbus_message_iter_init_array_iterator)
7544 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7545 indicate whether the iterator is empty
7547 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7550 2004-03-19 Havoc Pennington <hp@redhat.com>
7552 * NEWS: 0.21 updates
7554 * configure.in: 0.21
7556 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7558 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7559 you don't need pyrex to make dist
7561 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7564 2004-03-18 Richard Hult <richard@imendio.com>
7566 * dbus/dbus-message.c (dbus_message_get_auto_activation)
7567 (dbus_message_set_auto_activation): Add doxygen docs.
7569 2004-03-16 Richard Hult <richard@imendio.com>
7571 * bus/activation.c: (bus_activation_service_created),
7572 (bus_activation_send_pending_auto_activation_messages),
7573 (bus_activation_activate_service):
7575 * bus/dispatch.c: (bus_dispatch),
7576 (check_nonexistent_service_auto_activation),
7577 (check_service_auto_activated),
7578 (check_segfault_service_auto_activation),
7579 (check_existent_service_auto_activation), (bus_dispatch_test):
7580 * bus/driver.c: (bus_driver_handle_activate_service):
7581 * bus/services.c: (bus_registry_acquire_service):
7582 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7583 (dbus_message_get_auto_activation):
7584 * dbus/dbus-message.h:
7585 * dbus/dbus-protocol.h: Implement auto-activation.
7587 * doc/dbus-specification.xml: Add auto-activation to the spec.
7589 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
7591 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7592 fix a bug with CUSTOM types.
7594 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7595 a unit test for this bug (used to fail).
7597 2004-03-12 Mikael Hallendal <micke@imendio.com>
7600 (babysitter_watch_callback): notify all pending activations waiting for
7601 the same exec that the activation failed.
7602 (bus_activation_activate_service): shortcut the activation if we
7603 already waiting for the same executable to start up.
7605 2004-03-12 Mikael Hallendal <micke@imendio.com>
7608 - Added service file reloading.
7609 Each service files directory is kept in an hash table in
7610 BusActivation and each BusActivationEntry knows what .service-file it
7611 was read from. So when you try to activate a service the bus will
7612 check if it's been updated, removed or if new .service-files has
7614 - Test code at the bottom for the service file reloading.
7615 * bus/test-main.c: (main):
7617 - added service reloading test.
7618 * dbus/dbus-sysdeps.c:
7619 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7621 2004-03-08 Michael Meeks <michael@ximian.com>
7623 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
7624 bail immediately if disconnected, to avoid busy loop.
7626 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7627 cleanup cut/paste/inefficiency.
7629 2004-03-01 David Zeuthen <david@fubar.dk>
7631 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7632 bug where args were used twice. This bug resulted in a segfault
7633 on a Debian/PPC system when starting the messagebus daemon. Include
7634 dbus-sysdeps.h for DBUS_VA_COPY
7636 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7638 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7639 appropriate va_copy implementation. From GLib
7641 2004-02-24 Joe Shaw <joe@ximian.com>
7643 * bus/services.c (bus_registry_acquire_service): We need to pass
7644 in the service name to dbus_set_error() to prevent a crash.
7646 2003-12-26 Anders Carlsson <andersca@gnome.org>
7648 * AUTHORS: Reveal my True identity.
7650 2003-12-17 Mikael Hallendal <micke@imendio.com>
7652 * dbus/dbus-message.c: (dbus_message_append_args_valist):
7653 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7655 2003-12-13 Mikael Hallendal <micke@imendio.com>
7657 * doc/TODO: Added not about better error check of configuration files.
7659 2003-12-02 Richard Hult <richard@imendio.com>
7661 * Update AFL version to 2.0 throughout the source files to reflect
7662 the update that was done a while ago.
7664 2003-12-02 Richard Hult <richard@imendio.com>
7666 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7667 wrote_dict_key to FALSE on the iter that the dict is appended to,
7668 just like when appending other types. Fixes a bug where a dict
7669 couldn't be put inside a dict.
7670 (dbus_message_iter_append_dict_key): Fix typo in warning message.
7671 (message_iter_test, _dbus_message_test): Add test case for dict
7674 2003-12-01 David Zeuthen <david@fubar.dk>
7676 * python/dbus.py: Add the actual message when calling the reciever
7677 of a signal such that parameters can be inspected. Add the method
7678 remove_signal_receiver
7680 2003-11-26 Mikael Hallendal <micke@imendio.com>
7684 * glib/*.[ch]: Made ref functions return the pointer
7686 2003-11-25 Zack Rusin <zack@kde.org>
7688 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7690 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
7693 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
7694 the Integrator and to better fit with the server,
7696 2003-11-24 Zack Rusin <zack@kde.org>
7698 * qt/connection.h, qt/connection.cpp: removing initDbus method since
7699 the integrator handles it now
7701 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7702 since QTimer wasn't really meant to be used the way DBusTimeout is
7704 2003-11-24 Zack Rusin <zack@kde.org>
7706 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
7707 Integrator class which integrates D-BUS with the Qt event loop,
7709 * qt/connection.h, qt/connection.cpp: Move all the code which
7710 was dealing with D-BUS integration to the Integrator class,
7711 and start using Integrator,
7713 2003-11-23 Zack Rusin <zack@kde.org>
7715 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
7718 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7719 switching namespaces to DBusQt, reworking the class,
7721 * Makefile.cvs: switching dependencies so that it matches KDE
7724 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
7727 2003-11-19 Havoc Pennington <hp@redhat.com>
7731 * configure.in: bump version to 0.20
7733 * configure.in (have_qt): add yet another place to look for qt
7734 (someone hand trolltech a .pc file...)
7736 2003-11-01 Havoc Pennington <hp@redhat.com>
7738 * doc/dbus-specification.xml: add state machine docs on the auth
7739 protocol; just a first draft, I'm sure it's wrong.
7741 2003-10-28 David Zeuthen <david@fubar.dk>
7743 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7744 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7746 2003-10-28 Havoc Pennington <hp@redhat.com>
7748 * dbus/dbus-message.c (get_next_field): delete unused function
7750 2003-10-28 Havoc Pennington <hp@redhat.com>
7752 * bus/expirelist.c (do_expiration_with_current_time): detect
7753 failure of the expire_func due to OOM
7755 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7757 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7758 NoReply error that's now created by the bus when the service exits
7760 2003-10-28 Havoc Pennington <hp@redhat.com>
7762 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7763 tests for set_path, set_interface, set_member, etc.
7765 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7767 * dbus/dbus-message.c (set_string_field): always just delete and
7768 re-append the field; accept NULL for deletion
7769 (re_align_fields_recurse): reimplement
7771 2003-10-26 Havoc Pennington <hp@redhat.com>
7773 * dbus/dbus-connection.c: fix docs to properly describe the
7774 disconnected message
7775 (_dbus_connection_notify_disconnected): remove this function;
7776 we can't synchronously add the disconnected message, we have to
7777 do it after we've queued any remaining real messages
7778 (_dbus_connection_get_dispatch_status_unlocked): queue the
7779 disconnect message only if the transport has finished queueing all
7780 its real messages and is disconnected.
7781 (dbus_connection_disconnect): update the dispatch status here
7783 2003-10-22 Havoc Pennington <hp@redhat.com>
7785 * bus/bus.c (bus_context_check_security_policy): fix up assertion
7787 * bus/connection.c (bus_transaction_send_from_driver): set the
7788 destination to the connection's base service
7790 2003-10-20 Havoc Pennington <hp@redhat.com>
7792 hmm, make check is currently not passing.
7794 * doc/dbus-specification.xml: add requirement that custom type
7795 names follow the same rules as interface names.
7797 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7798 duplication and allow 'c' to be 'custom'; dict is now 'm' for
7801 * doc/dbus-specification.xml: update type codes to match
7802 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
7803 CUSTOM. Add type OBJECT_PATH to the spec.
7805 2003-10-17 Havoc Pennington <hp@redhat.com>
7807 * bus/driver.c (create_unique_client_name): use "." as separator
7808 in base service names instead of '-'
7810 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
7811 byte at the end of the string
7813 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
7814 optimization macros since string validation seems to be a slow
7817 * doc/dbus-specification.xml: restrict valid
7818 service/interface/member/error names. Add test suite code for the
7821 * dbus/dbus-string.c: limit service/interface/member/error names
7824 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
7825 format arg to verbose spew
7827 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
7828 memory, return instead of g_error
7830 * test/test-service.c (path_message_func): support emitting a
7833 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
7834 activation bus type if DBUS_BUS_ACTIVATION was set; default to
7835 assuming the activation bus was the session bus so that services
7836 started manually will still register.
7837 (init_connections_unlocked): fix so that in OOM situation we get
7838 the same semantics when retrying the function
7840 * test/test-service.c (main): change to use path registration, to
7841 test those codepaths; register with DBUS_BUS_ACTIVATION rather
7842 than DBUS_BUS_SESSION
7844 2003-10-16 Havoc Pennington <hp@redhat.com>
7846 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
7848 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
7849 coverage of the tests
7850 (coverage-report.txt): don't move the .da and .bbg files around
7852 2003-10-16 Havoc Pennington <hp@redhat.com>
7854 * bus/bus.c (struct BusContext): remove struct field I didn't mean
7857 2003-10-16 Havoc Pennington <hp@redhat.com>
7859 * bus/connection.c (bus_pending_reply_expired): either cancel or
7861 (bus_connections_check_reply): use unlink, not remove_link, as we
7862 don't want to free the link; fixes double free mess
7864 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
7865 where no reply was received
7867 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
7870 * bus/signals.c (match_rule_matches): add special cases for the
7871 bus driver, so you can match on sender/destination for it.
7873 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
7874 DBUS_PRINT_BACKTRACE is set
7876 * dbus/dbus-internals.c: add pid to assertion failure messages
7878 * dbus/dbus-connection.c: add message type code to the debug spew
7880 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
7881 sender=foo not service=foo
7883 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
7884 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
7885 DBUS_ACTIVATION_ADDRESS instead
7887 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
7888 DBUS_SYSTEM_BUS_ADDRESS if appropriate
7890 * bus/bus.c (bus_context_new): handle OOM copying bus type into
7893 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
7894 (dbus_message_iter_get_object_path_array): new function (half
7895 finished, disabled for the moment)
7897 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
7898 DBUS_MESSAGE_TYPE_ERROR
7900 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
7901 avoid redirecting stderr to /dev/null
7902 (babysit): close stdin if not doing the "exit_with_session" thing
7904 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
7905 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
7906 stdout/stdin, so things don't get confused
7908 * bus/system.conf.in: fix to allow replies, I modified .conf
7909 instead of .conf.in again.
7911 2003-10-14 David Zeuthen <david@fubar.dk>
7913 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
7914 argtype to arg_type when raising unknown arg type exception.
7915 Changed type list to reflect the changes in dbus-protocol.h so
7916 the bindings actually work.
7918 2003-10-14 Havoc Pennington <hp@redhat.com>
7920 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
7921 to have a bug keeping it from outputting the .da files sometimes
7922 (string_get_string): don't append garbage nul bytes to the string.
7924 2003-10-15 Seth Nickell <seth@gnome.org>
7926 * python/Makefile.am:
7928 Include dbus_h_wrapper.h in the dist tarball.
7930 2003-10-14 Havoc Pennington <hp@redhat.com>
7932 * bus/bus.c (bus_context_check_security_policy): revamp this to
7933 work more sanely with new policy-based requested reply setup
7935 * bus/connection.c (bus_transaction_send_from_driver): set bus
7936 driver messages as no reply
7938 * bus/policy.c (bus_client_policy_check_can_receive): handle a
7939 requested_reply attribute on allow/deny rules
7941 * bus/system.conf: add <allow requested_reply="true"/>
7943 * bus/driver.c (bus_driver_handle_message): fix check for replies
7944 sent to the bus driver, which was backward. How did this ever work
7945 at all though? I think I'm missing something.
7947 * dbus/dbus-message.c (decode_header_data): require error and
7948 method return messages to have a reply serial field to be valid
7949 (_dbus_message_loader_queue_messages): break up this function;
7950 validate that reply serial and plain serial are nonzero;
7951 clean up the OOM/error handling.
7952 (get_uint_field): don't return -1 from this
7953 (dbus_message_create_header): fix signed/unsigned bug
7955 * bus/connection.c (bus_connections_expect_reply): save serial of
7956 the incoming message, not reply serial
7958 2003-10-14 Havoc Pennington <hp@redhat.com>
7960 * bus/connection.c: implement pending reply tracking using
7963 * bus/bus.c (bus_context_check_security_policy): verify that a
7964 reply is pending in order to allow a reply to be sent. Deny
7965 messages of unknown type.
7967 * bus/dbus-daemon-1.1.in: update to mention new resource limits
7969 * bus/bus.c (bus_context_get_max_replies_per_connection): new
7970 (bus_context_get_reply_timeout): new
7972 2003-10-13 Seth Nickell <seth@gnome.org>
7974 * python/Makefile.am:
7976 Pass "make distcheck": remove a couple files from DIST_FILES
7977 that weren't included in the final version.
7979 2003-10-12 Havoc Pennington <hp@pobox.com>
7981 Added test code that 1) starts an actual bus daemon and 2) uses
7982 DBusGProxy; fixed bugs that were revealed by the test. Lots
7983 more testing possible, but this is the basic framework.
7985 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7986 empty proxy lists from the proxy list hash
7988 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7989 couple of return_if_fail checks
7991 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7992 to allocate, so everything is cleared to NULL as it should be.
7994 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7995 source as data to dbus_connection_set_timeout_functions() as the
7996 timeout functions expected
7998 * test/glib/run-test.sh: add a little script to start up a message
7999 bus and run tests using it
8001 * tools/dbus-launch.1: updates
8003 * tools/dbus-launch.c (main): add --config-file option
8005 * tools/dbus-launch.c (main): remove confusing else if (runprog)
8006 that could never be reached.
8008 * dbus/dbus-message.c (dbus_message_new_method_return)
8009 (dbus_message_new_error, dbus_message_new_signal): set the
8010 no-reply-expected flag on all these. Redundant, but may
8011 as well be consistent.
8013 2003-10-11 Havoc Pennington <hp@pobox.com>
8015 * test/decode-gcov.c (function_solve_graph): make broken block
8016 graph a nonfatal error since it seems to be broken. Need to debug
8019 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8020 can't just check type > INVALID < LAST anymore
8022 * dbus/dbus-message.c (dbus_message_get_signature): new function
8023 (dbus_message_has_signature): new function
8024 (struct DBusMessage): add signature field (right now it isn't sent
8025 over the wire, just generated on the fly)
8026 (dbus_message_copy): copy the signature, and init strings to
8027 proper length to avoid some reallocs
8028 (dbus_message_iter_init_array_iterator): return void, since it
8030 (dbus_message_iter_init_dict_iterator): return void since it can't fail
8031 (_dbus_message_loader_queue_messages): add silly temporary hack to
8032 fill in message->signature on load
8034 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8035 characters, so they are relatively human-readable.
8037 2003-10-11 Havoc Pennington <hp@pobox.com>
8039 * dbus/dbus-message.c (_dbus_message_test): add more test
8040 coverage, but #if 0 for now since they uncover a bug
8041 not fixed yet; I think in re_align_field_recurse()
8042 (re_align_field_recurse): add FIXME about broken assertion
8044 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8046 * bus/connection.c: share a couple code bits with expirelist.c
8048 * bus/expirelist.h, bus/expirelist.c: implement a generic
8049 expire-items-after-N-seconds facility, was going to share between
8050 expiring connections and replies, decided not to use for expiring
8051 connections for now.
8053 * COPYING: include AFL 2.0 (still need to change all the file headers)
8055 2003-10-09 Havoc Pennington <hp@redhat.com>
8057 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8058 gcc 3.3. Not that we do anything about it yet.
8060 * bus/signals.c (bus_match_rule_parse): impose max length on the
8063 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8065 2003-10-09 Havoc Pennington <hp@redhat.com>
8067 Make matching rules theoretically work (add parser).
8069 * bus/bus.c (bus_context_check_security_policy): fix up to handle
8070 the case where destination is explicitly specified as bus driver
8071 and someone else is eavesdropping.
8073 * bus/policy.c (bus_client_policy_check_can_receive): fix up
8074 definition of eavesdropping and assertion
8076 * tools/dbus-send.c (main): use dbus_message_type_from_string
8078 * bus/signals.c (bus_match_rule_parse): implement
8080 * dbus/dbus-message.c (dbus_message_type_from_string): new
8082 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8084 2003-10-02 Havoc Pennington <hp@pobox.com>
8086 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8087 dbus_gproxy_oneway_call
8089 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
8090 (dbus_server_setup_with_g_main): fix to allow calling them more
8091 than once on the same args
8092 (dbus_bus_get_with_g_main): new function
8094 2003-10-02 Havoc Pennington <hp@redhat.com>
8096 * doc/dbus-tutorial.xml: write some stuff
8098 2003-09-29 Havoc Pennington <hp@pobox.com>
8100 * configure.in: split checks for Doxygen from XML docs, check for
8103 * doc/Makefile.am: XML-ify all the docs, and add a blank
8106 2003-09-29 Havoc Pennington <hp@pobox.com>
8108 * Merge dbus-object-names branch. To see the entire patch
8109 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8110 it's huuuuge though.
8111 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8113 2003-09-28 Havoc Pennington <hp@pobox.com>
8115 * HACKING: update to reflect new server
8117 2003-09-26 Seth Nickell <seth@gnome.org>
8120 * python/examples/example-signals.py:
8122 Start implementing some notions of signals. The API
8123 is really terrible, but they sort of work (with the
8124 exception of being able to filter by service, and to
8125 transmit signals *as* a particular service). Need to
8126 figure out how to make messages come from the service
8129 * python/dbus_bindings.pyx.in:
8131 Removed duplicate message_handler callbacks.
8133 2003-09-25 Havoc Pennington <hp@redhat.com>
8135 * bus/session.conf.in: fix my mess
8137 2003-09-25 Havoc Pennington <hp@pobox.com>
8139 * bus/session.conf.in: fix security policy, reported by Seth Nickell
8141 2003-09-25 Seth Nickell <seth@gnome.org>
8143 * python/examples/example-service.py:
8145 Johan notices complete wrong code in example-service, but
8146 completely wrong in a way that works exactly the same (!).
8147 Johan is confused, how could this possibly work? Example
8148 code fails to serve purpose of making things clear.
8151 2003-09-25 Mark McLoughlin <mark@skynet.ie>
8153 * doc/dbus-specification.sgml: don't require header fields
8154 to be 4-byte aligned and specify that fields should be
8155 distinguished from padding by the fact that zero is not
8158 * doc/TODO: remove re-alignment item and add item to doc
8159 the OBJECT_PATH type.
8161 * dbus/dbus-message.c:
8162 (HeaderField): rename the original member to value_offset
8163 and introduce a name_offset member to keep track of where
8164 the field actually begins.
8165 (adjust_field_offsets): remove.
8166 (append_int_field), (append_uint_field),
8167 (append_string_field): don't align the start of the header
8168 field to a 4-byte boundary.
8169 (get_next_field): impl finding the next marhsalled field
8170 after a given field.
8171 (re_align_field_recurse): impl re-aligning a number of
8172 already marshalled fields.
8173 (delete_field): impl deleting a field of any type and
8174 re-aligning any following fields.
8175 (delete_int_or_uint_field), (delete_string_field): remove.
8176 (set_int_field), (set_uint_field): no need to re-check
8177 that we have the correct type for the field.
8178 (set_string_field): ditto and impl re-aligning any
8180 (decode_header_data): update to take into account that
8181 the fields aren't 4-byte aligned any more and the new
8182 way to distinguish padding from header fields. Also,
8183 don't exit when there is too much header padding.
8184 (process_test_subdir): print the directory.
8185 (_dbus_message_test): add test to make sure a following
8186 field is re-aligned correctly after field deletion.
8188 * dbus/dbus-string.[ch]:
8189 (_dbus_string_insert_bytes): rename from insert_byte and
8190 allow the insert of multiple bytes.
8191 (_dbus_string_test): test inserting multiple bytes.
8193 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8194 warning note to docs about having to re-align any
8195 marshalled values following the string.
8197 * dbus/dbus-message-builder.c:
8198 (append_string_field), (_dbus_message_data_load):
8199 don't align the header field.
8201 * dbus/dbus-auth.c: (process_test_subdir): print the
8204 * test/break-loader.c: (randomly_add_one_byte): upd. for
8207 * test/data/invalid-messages/bad-header-field-alignment.message:
8210 * test/data/valid-messages/unknown-header-field.message: shove
8211 a dict in the unknown field.
8213 2003-09-25 Seth Nickell <seth@gnome.org>
8216 * python/dbus_bindings.pyx.in:
8218 Handle return values.
8220 * python/examples/example-client.py:
8221 * python/examples/example-service.py:
8223 Pass back return values from the service to the client.
8225 2003-09-24 Seth Nickell <seth@gnome.org>
8229 Connect Object methods (when you are sharing an object) up... pass
8230 in a list of methods to be shared. Sharing all the methods just
8231 worked out too weird. You can now create nice Services over the
8234 * python/dbus_bindings.pyx.in:
8236 Keep references to user_data tuples passed into C functions so
8237 Python doesn't garbage collect on us.
8239 Implement MethodReturn and Error subclasses of Message for creating
8240 DBusMessage's of those types.
8242 * python/examples/example-client.py:
8243 * python/examples/example-service.py:
8245 Simple example code showing both how create DBus services and objects,
8246 and how to use them.
8248 2003-09-23 Havoc Pennington <hp@pobox.com>
8250 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8252 2003-09-23 Havoc Pennington <hp@redhat.com>
8254 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8255 (dbus_gproxy_disconnect_signal): implement
8256 (dbus_gproxy_manager_remove_signal_match): implement
8257 (dbus_gproxy_manager_add_signal_match): implement
8258 (dbus_gproxy_oneway_call): implement
8260 2003-09-23 Havoc Pennington <hp@pobox.com>
8262 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8263 subclass. This means dropping the transparent thread safety of the
8264 proxy; you now need a separate proxy per-thread, or your own
8265 locking on the proxy. Probably right anyway.
8266 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8268 2003-09-22 Havoc Pennington <hp@redhat.com>
8270 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8272 2003-09-21 Seth Nickell <seth@gnome.org>
8274 First checkin of the Python bindings.
8276 * python/.cvsignore:
8277 * python/Makefile.am:
8278 * python/dbus_bindings.pyx.in:
8279 * python/dbus_h_wrapper.h:
8281 Pieces for Pyrex to operate on, building a dbus_bindings.so
8282 python module for low-level access to the DBus APIs.
8286 High-level Python module for accessing DBus objects.
8291 Build stuff for the python bindings.
8295 Extra macro needed for finding the Python C header files.
8297 2003-09-21 Havoc Pennington <hp@pobox.com>
8299 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8300 implementing the proxy manager, didn't get very far.
8302 * dbus/dbus-bus.c (dbus_bus_add_match): new
8303 (dbus_bus_remove_match): new
8305 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8306 path_name argument; adjust the other not-yet-implemented
8307 gproxy constructors to be what I think they should be.
8309 2003-09-21 Havoc Pennington <hp@pobox.com>
8311 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8312 by default for message bus connections.
8314 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8315 exit_on_disconnect flag is set and we process the disconnected
8317 (dbus_connection_set_exit_on_disconnect): new function
8319 2003-09-21 Havoc Pennington <hp@pobox.com>
8321 Get matching rules mostly working in the bus; only actually
8322 parsing the rule text remains. However, the client side of
8323 "signal connections" hasn't been started, this patch is only the
8326 * dbus/dispatch.c: fix for the matching rules changes
8328 * bus/driver.c (bus_driver_handle_remove_match)
8329 (bus_driver_handle_add_match): send an ack reply from these
8332 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8333 arguments, reported by Seth Nickell
8335 * bus/config-parser.c (append_rule_from_element): support
8336 eavesdrop=true|false attribute on policies so match rules
8337 can be prevented from snooping on the system bus.
8339 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8340 and "destination" in attribute names; fix some docs bugs;
8341 add eavesdrop=true|false attribute
8343 * bus/driver.c (bus_driver_handle_add_match)
8344 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8347 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8348 rid of broadcast service concept, signals are just always broadcast
8350 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8351 mostly implement matching rules stuff (currently only exposed as signal
8354 2003-09-21 Mark McLoughlin <mark@skynet.ie>
8356 * doc/dbus-specification.sgml: Change the header field name
8357 to be an enum and update the rest of the spec to reference
8358 the fields using the conventinal name.
8360 * dbus/dbus-protocol.h: update to reflect the spec.
8362 * doc/TODO: add item to remove the 4 byte alignment requirement.
8364 * dbus/dbus-message.c: Remove the code to generalise the
8365 header/body length and serial number header fields as named
8366 header fields so we can reference field names using the
8368 (append_int_field), (append_uint_field), (append_string_field):
8369 Append the field name as a byte rather than four chars.
8370 (delete_int_or_uint_field), (delete_string_field): reflect the
8371 fact that the field name and typecode now occupy 4 bytes instead
8373 (decode_string_field), (decode_header_data): update to reflect
8374 protocol changes and move the field specific encoding from
8375 decode_string_field() back into decode_header_data().
8377 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8378 Add utility to aid debugging.
8380 * dbus/dbus-message-builder.c:
8381 (append_string_field), (_dbus_message_data_load): Update to
8382 reflect protocol changes; Change the FIELD_NAME directive
8383 to HEADER_FIELD and allow it to take the field's conventional
8384 name rather than the actual value.
8386 * test/data/*/*.message: Update to use HEADER_FIELD instead
8387 of FIELD_NAME; Always align the header on an 8 byte boundary
8388 *before* updating the header length.
8390 2003-09-15 Havoc Pennington <hp@pobox.com>
8392 * dbus/dbus-pending-call.c: add the get/set object data
8393 boilerplate as for DBusConnection, etc. Use generic object data
8394 for the notify callback.
8396 * glib/dbus-gparser.c (parse_node): parse child nodes
8398 * tools/dbus-viewer.c: more hacking on the dbus-viewer
8400 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8401 contain functions shared between the convenience lib and the
8404 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8405 -export-symbols-regex to the GLib library
8407 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8408 fix the locking in here, and add a default handler for
8409 Introspect() that just returns sub-nodes.
8411 2003-09-14 Havoc Pennington <hp@pobox.com>
8413 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8414 rather than gfoo consistent
8416 * glib/dbus-gproxy.h: delete for now, move contents to
8417 dbus-glib.h, because the include files don't work right since we
8418 aren't in the dbus/ subdir.
8420 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8421 (dbus_gproxy_end_call): finish
8422 (dbus_gproxy_begin_call): finish
8424 * glib/dbus-gmain.c (dbus_set_g_error): new
8426 * glib/dbus-gobject.c (handle_introspect): include information
8427 about child nodes in the introspection
8429 * dbus/dbus-connection.c (dbus_connection_list_registered): new
8430 function to help in implementation of introspection
8432 * dbus/dbus-object-tree.c
8433 (_dbus_object_tree_list_registered_and_unlock): new function
8435 2003-09-12 Havoc Pennington <hp@pobox.com>
8437 * glib/dbus-gidl.h: add common base class for all the foo_info
8440 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8443 * test/Makefile.am: try test srcdir -ef . in addition to test
8444 srcdir = ., one of them should work (yeah lame)
8446 * glib/Makefile.am: build the "idl" parser stuff as a convenience
8449 * glib/dbus-gparser.h: make description_load routines return
8450 NodeInfo* not Parser*
8452 * Makefile.am (SUBDIRS): build test dir after all library dirs
8454 * configure.in: add GTK+ detection
8456 2003-09-07 Havoc Pennington <hp@pobox.com>
8458 * Make Doxygen contented.
8460 2003-09-07 Havoc Pennington <hp@pobox.com>
8462 * doc/dbus-specification.sgml: more updates
8464 2003-09-06 Havoc Pennington <hp@pobox.com>
8466 * doc/dbus-specification.sgml: partial updates
8468 * bus/dbus-daemon-1.1.in: fix the config file docs for the
8469 zillionth time; hopefully I edited the right file this time.
8471 * bus/config-parser.c (append_rule_from_element): support
8472 send_type, send_path, receive_type, receive_path
8474 * bus/policy.c: add message type and path to the list of things
8475 that can be "firewalled"
8477 2003-09-06 Havoc Pennington <hp@pobox.com>
8479 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8480 (dbus_connection_register_object_path): make this not handle
8481 messages to paths below the given path
8483 2003-09-03 Havoc Pennington <hp@pobox.com>
8485 * test/glib/Makefile.am: add this with random glib-linked test
8488 * glib/Makefile.am: remove the random test programs from here,
8489 leave only the unit tests
8491 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
8492 uscore/javacaps conversion, and fix
8493 (get_object_property, set_object_property): change to .NET
8494 convention for mapping props to methods, set_FooBar/get_FooBar,
8495 since one language has such a convention we may as well copy it.
8496 Plus real methods in either getFooBar or get_foo_bar style won't
8497 collide with this convention.
8499 2003-09-01 Havoc Pennington <hp@pobox.com>
8501 * glib/dbus-gparser.c: implement
8503 * glib/dbus-gobject.c: start implementing skeletons support
8505 * configure.in: when disabling checks/assert, also define
8506 G_DISABLE_ASSERT and G_DISABLE_CHECKS
8508 2003-09-01 Havoc Pennington <hp@pobox.com>
8510 * glib/Makefile.am: rearrange a bunch of files and get "make
8511 check" framework set up
8513 2003-08-31 Havoc Pennington <hp@pobox.com>
8515 * fix build with --disable-tests
8517 2003-08-30 Havoc Pennington <hp@pobox.com>
8519 * dbus/dbus-connection.c: purge DBusMessageHandler
8521 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
8522 use callbacks everywhere
8524 2003-08-30 Havoc Pennington <hp@pobox.com>
8526 * test/data/valid-config-files/system.d/test.conf: change to
8527 root for the user so warnings don't get printed
8529 * dbus/dbus-message.c: add dbus_message_get_path,
8530 dbus_message_set_path
8532 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8533 dispatching to a path
8535 * dbus/dbus-string.c (_dbus_string_validate_path): add
8537 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8538 (_dbus_marshal_object_path): implement
8540 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
8541 to contain the path to the target object
8542 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8543 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8545 2003-08-30 Havoc Pennington <hp@pobox.com>
8547 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8549 2003-08-29 Havoc Pennington <hp@pobox.com>
8551 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8553 (struct DBusObjectSubtree): shrink this
8554 a lot, since we may have a lot of them
8555 (_dbus_object_tree_free_all_unlocked): implement
8556 (_dbus_object_tree_dispatch_and_unlock): implement
8558 2003-08-29 Havoc Pennington <hp@pobox.com>
8560 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8562 2003-08-28 Havoc Pennington <hp@pobox.com>
8566 * dbus/dbus-connection.c: port to no ObjectID, create a
8567 DBusObjectTree, rename ObjectTree to ObjectPath in public API
8569 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
8570 everything except UnregisterFunction and MessageFunction
8572 * dbus/dbus-marshal.c: port away from DBusObjectID,
8573 add DBUS_TYPE_OBJECT_PATH
8575 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
8576 dbus/dbus-objectid.[hc]: remove these, we are moving to
8577 path-based object IDs
8579 2003-08-25 Havoc Pennington <hp@pobox.com>
8581 Just noticed that dbus_message_test is hosed, I wonder when I
8582 broke that. I thought make check was passing earlier...
8584 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
8585 container tree, will replace most of dbus-object-registry
8587 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8590 2003-08-19 Havoc Pennington <hp@pobox.com>
8592 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8593 (dbus_message_is_error): fix this function
8595 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8598 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8599 reflect clarified man page
8600 (bus_client_policy_check_can_send): ditto
8602 * bus/session.conf.in: fixup
8604 * bus/system.conf.in: fixup
8606 2003-08-18 Havoc Pennington <hp@redhat.com>
8608 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8610 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8611 dumb bug created earlier (wrong order of args to
8612 decode_header_data())
8614 * tools/dbus-send.c: port
8616 * tools/dbus-print-message.c (print_message): port
8618 * test/data/*messages: port all messages over
8620 * dbus/dbus-message-builder.c: support including
8623 * bus/driver.c: port over
8625 * bus/dispatch.c: port over to new stuff
8627 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8628 rename disconnect signal to "Disconnected"
8630 2003-08-17 Havoc Pennington <hp@pobox.com>
8632 This doesn't compile yet, but syncing up so I can hack on it from
8633 work. What are branches for if not broken code? ;-)
8635 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8636 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8637 DBUS_HEADER_FIELD_ERROR_NAME
8639 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8640 for the interface+member pairs
8641 (string_hash): change to use g_str_hash algorithm
8642 (find_direct_function, find_string_function): refactor these to
8645 * dbus/dbus-message.c: port all of this over to support
8646 interface/member fields instead of name field
8648 * dbus/dbus-object-registry.c: port over
8650 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8651 from _dbus_string_validate_name
8653 * bus/dbus-daemon-1.1: change file format for the
8654 <deny>/<allow> stuff to match new message naming scheme
8656 * bus/policy.c: port over
8658 * bus/config-parser.c: parse new format
8660 2003-08-16 Havoc Pennington <hp@pobox.com>
8662 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8665 * glib/dbus-gproxy.c: some hacking
8667 2003-08-15 Havoc Pennington <hp@redhat.com>
8669 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8671 * dbus/dbus-connection.c
8672 (dbus_connection_send_with_reply_and_block): factor out internals;
8673 change to convert any error replies to DBusError instead of
8674 returning them as a message
8676 2003-08-15 Havoc Pennington <hp@pobox.com>
8678 * dbus/dbus-connection.c,
8679 dbus/dbus-pending-call.c: Finish the pending call stuff
8681 2003-08-14 Havoc Pennington <hp@redhat.com>
8683 * dbus/dbus-pending-call.c: start on new object that will replace
8684 DBusMessageHandler and ReplyHandlerData for tracking outstanding
8687 * dbus/dbus-gproxy.c: start on proxy object used to communicate
8688 with remote interfaces
8690 * dbus/dbus-gidl.c: do the boring boilerplate in here
8692 2003-08-12 Havoc Pennington <hp@pobox.com>
8694 * bus/dispatch.c (bus_dispatch): make this return proper
8695 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8697 * dbus/dbus-errors.c (dbus_set_error): use
8698 _dbus_string_append_printf_valist
8700 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8701 (_dbus_string_append_printf): new
8703 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8706 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8707 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8708 message is unhandled.
8710 2003-08-11 Havoc Pennington <hp@pobox.com>
8712 * bus/test.c (client_disconnect_handler): change to return
8713 HANDLED (would have been REMOVE_MESSAGE)
8715 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8716 HANDLED/NOT_YET_HANDLED instead of
8717 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
8720 2003-08-10 Havoc Pennington <hp@pobox.com>
8722 * tools/dbus-send.c (main): add --type argument, for now
8723 supporting only method_call and signal types.
8725 * tools/dbus-print-message.c: print message type
8727 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8728 init connection->objects
8730 * doc/dbus-specification.sgml: fix sgml
8732 * bus/*.c: port over to object-instance API changes
8734 * test/test-service.c: ditto
8736 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8737 name, we will have to fix up the rest of the code to also handle
8739 (dbus_message_new): generic message-creation call
8740 (set_string_field): allow appending name field
8742 2003-08-06 Havoc Pennington <hp@pobox.com>
8744 * dbus/dbus-object-registry.c: implement signal connection
8747 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8749 * dbus/dbus-internals.c (_dbus_memdup): new function
8751 2003-08-02 Havoc Pennington <hp@pobox.com>
8753 * dbus/dbus-message.c (dbus_message_get_no_reply)
8754 (dbus_message_set_no_reply): add these and remove
8755 set_is_error/get_is_error
8757 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
8758 remove the ERROR flag, since there's now an ERROR type
8760 2003-08-01 Havoc Pennington <hp@pobox.com>
8762 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8765 * dbus/dbus-message.c (dbus_message_get_type): new function
8767 * doc/dbus-specification.sgml: add "type" byte to messages
8769 2003-08-01 Havoc Pennington <hp@pobox.com>
8771 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8772 a message type enum to distinguish kinds of message
8773 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
8774 that need not be replied to
8776 2003-08-01 Havoc Pennington <hp@pobox.com>
8778 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8779 (unpack_8_octets): fix no-64-bit-int bug
8781 * dbus/dbus-object-registry.c (validate_id): validate the
8782 connection ID bits, not just the instance ID.
8784 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8785 the connection-global 33 bits of the object ID
8787 * dbus/dbus-object-registry.c (info_from_entry): fill in
8788 object ID in the new way
8790 * dbus/dbus-objectid.h: rather than high/low bits, specifically
8791 define server/client/instance bits.
8793 2003-07-30 Havoc Pennington <hp@pobox.com>
8795 * dbus/dbus-connection.c (dbus_connection_register_object): fix
8798 2003-07-13 Havoc Pennington <hp@pobox.com>
8800 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8801 fields to DBusObjectVTable and DBusObjectInfo
8803 2003-07-12 Havoc Pennington <hp@pobox.com>
8805 * dbus/dbus-object-registry.c: implement unit test,
8806 fix bugs discovered in process
8808 * dbus/dbus-connection.c: remove handler_table and
8809 register_handler(), add DBusObjectRegistry usage
8811 * dbus/dbus-objectid.c (dbus_object_id_is_null)
8812 (dbus_object_id_set_null): new functions
8814 2003-07-08 Havoc Pennington <hp@pobox.com>
8816 * dbus/dbus-object.c: implement some of this
8818 * dbus/dbus-object-registry.c
8819 (_dbus_object_registry_add_and_unlock): fill in the object_id out
8821 (_dbus_object_registry_new): handle OOM
8823 2003-07-08 Havoc Pennington <hp@pobox.com>
8825 * dbus/dbus-object.h: sketch out an API for registering objects
8826 with a connection, that allows us to use as little as 24 bytes
8827 per object and lets application code represent an object in
8828 any conceivable way.
8830 * dbus/dbus-object-registry.c: implement the hard bits of the
8831 DBusConnection aspect of object API. Not yet wired up.
8833 2003-07-06 Havoc Pennington <hp@pobox.com>
8835 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
8836 (_dbus_marshal_object_id): new
8837 (_dbus_demarshal_object_id): new
8838 (_dbus_marshal_get_arg_end_pos): support object ID type, and
8839 consolidate identical switch cases. Don't conditionalize handling
8840 of DBUS_TYPE_UINT64, need to handle the type always.
8841 (_dbus_marshal_validate_arg): consolidate identical cases, and
8842 handle DBUS_TYPE_OBJECT_ID
8844 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
8846 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
8848 2003-09-28 Havoc Pennington <hp@pobox.com>
8852 2003-09-28 Havoc Pennington <hp@pobox.com>
8854 * doc/Makefile.am (dbus-specification.html): testing a funky hack
8855 to work with Debian db2html
8857 2003-09-28 Havoc Pennington <hp@pobox.com>
8859 * configure.in: 0.13
8861 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
8862 stylesheet-images for benefit of Debian
8864 Change back to using filesystem-linked sockets for the system
8865 bus, so only root can create the default system bus address.
8867 * bus/system.conf.in: change to use
8868 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8870 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
8873 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
8874 here, and AC_DEFINE DBUS_SYSTEM_PATH
8876 2003-08-09 Anders Carlsson <andersca@codefactory.se>
8879 * doc/busconfig.dtd:
8882 2003-08-09 Anders Carlsson <andersca@codefactory.se>
8884 * doc/dbus-specification.sgml:
8885 Add activation reply values.
8887 2003-08-05 Havoc Pennington <hp@redhat.com>
8889 * configure.in: 0.12
8891 2003-08-05 Anders Carlsson <andersca@codefactory.se>
8893 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
8894 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
8895 (add_watch), (remove_watch), (create_source):
8896 Refcount fds, fixes some reentrancy issues.
8898 2003-07-30 Havoc Pennington <hp@redhat.com>
8900 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
8901 bus address to be abstract if we have abstract sockets
8905 2003-07-28 Havoc Pennington <hp@redhat.com>
8907 * bus/messagebus.in: fix to avoid processname/servicename
8908 confusion, from Michael Kearey
8909 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
8911 2003-07-23 Havoc Pennington <hp@pobox.com>
8913 * dbus/dbus-message.c (dbus_message_iter_get_named):
8914 fix from Andy Hanton to remove broken "+1"
8916 2003-07-16 Havoc Pennington <hp@pobox.com>
8918 * tools/dbus-launch.c (babysit): close stdout/stderr in the
8919 babysitter process, as suggested by Thomas Leonard, so
8920 an "eval `dbus-launch --exit-with-session`" will actually
8923 2003-07-16 Havoc Pennington <hp@pobox.com>
8925 * configure.in: print out EXPANDED_* variables in the summary at
8926 the end; clean up the code that computes EXPANDED_ variables and
8927 get the ones using exec_prefix right. Should make things work
8928 when you build without --prefix
8930 2003-06-29 Havoc Pennington <hp@pobox.com>
8932 * mono/Test.cs (class Test): fire up a main loop and run it
8934 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
8935 done once, the app has to do it
8937 2003-06-26 Havoc Pennington <hp@pobox.com>
8939 * mono/Connection.cs: set up connection with the glib main loop
8941 2003-07-01 Havoc Pennington <hp@redhat.com>
8943 * doc/dbus-specification.sgml: clarify the format of a type code,
8944 change suggested by Jim Blandy
8946 2003-06-29 Miloslav Trmac <mitr@volny.cz>
8949 * tools/Makefile.am: Don't assume srcdir == builddir.
8951 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
8952 the allocated block.
8953 (_dbus_memory_test): New function.
8954 * dbus/dbus-test.h: Add _dbus_memory_test ().
8955 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
8957 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
8959 (dbus_message_new): Remove obsolete @todo.
8961 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
8962 (_dbus_marshal_set_uint64): Fix comment.
8964 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
8965 hardcode FIELD_REPLY_SERIAL.
8967 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
8968 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
8970 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
8971 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
8973 2003-06-24 Havoc Pennington <hp@pobox.com>
8975 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
8977 2003-06-23 Anders Carlsson <andersca@codefactory.se>
8983 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8984 * gcj/org/.cvsignore:
8985 * gcj/org/Makefile.am:
8986 * gcj/org/freedesktop/.cvsignore:
8987 * gcj/org/freedesktop/Makefile.am:
8988 * gcj/org/freedesktop/dbus/.cvsignore:
8989 * gcj/org/freedesktop/dbus/Makefile.am:
8990 * gcj/org/freedesktop/dbus/Message.java: (Message),
8992 * gcj/org/freedesktop/dbus/natMessage.cc:
8993 Fix the build system.
8995 2003-06-22 Havoc Pennington <hp@pobox.com>
8997 * mono/Connection.cs: add more bindings
8999 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9002 2003-06-22 Havoc Pennington <hp@pobox.com>
9004 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9005 Start wrapping more stuff.
9007 2003-06-22 Havoc Pennington <hp@pobox.com>
9009 * mono/Message.cs: implement Message.Wrap() that ensures we only
9010 have a single C# wrapper per DBusMessage, assuming it works which
9011 it probably doesn't.
9013 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9014 (dbus_message_free_data_slot): new
9015 (dbus_message_set_data): new
9016 (dbus_message_get_data): new
9018 2003-06-22 Havoc Pennington <hp@pobox.com>
9020 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9021 (_dbus_data_slot_allocator_alloc): rework these to keep a
9022 reference count on each slot and automatically manage a global
9023 slot ID variable passed in by address
9025 * bus/bus.c: convert to new dataslot API
9027 * dbus/dbus-bus.c: convert to new dataslot API
9029 * dbus/dbus-connection.c: convert to new dataslot API
9031 * dbus/dbus-server.c: convert to new dataslot API
9033 * glib/dbus-gmain.c: ditto
9037 * bus/connection.c: ditto
9039 2003-06-22 Anders Carlsson <andersca@codefactory.se>
9041 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9042 after the gcj checks so that the correct configuration tags
9043 will be added to libtool.
9045 * dbus-glib-1.pc.in: No need to specify any includes since
9046 dbus-1.pc.in has those.
9048 2003-06-22 Havoc Pennington <hp@pobox.com>
9050 * mono/*, gcj/*, configure.in, Makefile.am:
9051 Check in makefiles and subdirs for mono and gcj bindings.
9052 Neither binding actually exists, just trying to get through
9053 all the build and other boring bits.
9055 2003-06-21 Philip Blundell <philb@gnu.org>
9057 * tools/dbus-monitor.1: Updated.
9059 * tools/dbus-send.1: Likewise.
9061 2003-06-20 Anders Carlsson <andersca@codefactory.se>
9063 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9064 for hangup and error after checking read so we won't discard
9065 pending data if both hangup and read are set.
9067 2003-06-19 Philip Blundell <philb@gnu.org>
9069 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9071 * tools/dbus-send.c: Accept both --system and --session.
9073 * tools/dbus-monitor.c: Same here.
9075 2003-06-19 Anders Carlsson <andersca@codefactory.se>
9077 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9078 from C++ (Patch by Miloslav Trmac).
9080 2003-06-15 Joe Shaw <joe@assbarn.com>
9082 * configure.in: Check for socklen_t.
9084 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9086 * test/test-segfault.c: Add #include <sys/time.h>
9088 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9089 dbus-launch needs it.
9091 2003-06-09 Havoc Pennington <hp@redhat.com>
9093 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9094 SUN_LEN, it breaks abstract socket usage
9096 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9099 2003-06-04 Havoc Pennington <hp@pobox.com>
9101 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9102 using unix:abstract=/foo, and when listening in a tmpdir
9103 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9105 * dbus/dbus-transport.c (_dbus_transport_open): support
9108 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9109 support abstract sockets
9111 * dbus/dbus-transport-unix.c
9112 (_dbus_transport_new_for_domain_socket): support abstract sockets
9114 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9115 toggle as an argument, implement abstract namespace support
9116 (_dbus_listen_unix_socket): ditto
9118 * configure.in: add --enable-abstract-sockets and implement
9119 a configure check for autodetection of the right value.
9121 2003-06-01 Havoc Pennington <hp@pobox.com>
9123 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9124 in /tmp (though on Linux this will end up being useless,
9125 when we add abstract namespace support)
9127 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9130 2003-05-28 Colin Walters <walters@verbum.org>
9132 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9134 2003-05-18 Anders Carlsson <andersca@codefactory.se>
9136 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9138 2003-05-17 Colin Walters <walters@gnu.org>
9140 * tools/dbus-send.c: Don't exit with an error code if --help was
9141 passed. Default to using the session bus instead of the system
9144 * tools/dbus-launch.c: Ditto.
9146 * tools/dbus-monitor.c: Ditto.
9148 * tools/dbus-send.1: Update with new arguments.
9150 * tools/dbus-launch.c: Emit code to export variables. New
9151 arguments -s and -c to specify shell syntax, and a bit of code to
9152 autodetect syntax. Also, allow specifying a program to run.
9154 * tools/dbus-launch.1: Update with new arguments.
9156 * tools/dbus-send.1: Ditto.
9158 * tools/dbus-monitor.1: Ditto.
9160 2003-05-17 Havoc Pennington <hp@pobox.com>
9162 * bus/config-parser.c (merge_included): merge in policies from
9163 child configuration file.
9165 * bus/policy.c (bus_policy_merge): function to merge two policies
9168 2003-05-16 Havoc Pennington <hp@redhat.com>
9170 * dbus/dbus-connection.c: disable verbose lock spew
9172 * tools/dbus-send.c: add --print-reply command line option
9174 * tools/dbus-print-message.h (print_message): new util function
9175 shared by dbus-send and dbus-monitor
9177 * tools/dbus-monitor.c (handler_func): exit on disconnect
9179 * dbus/dbus-transport-unix.c (do_reading): if the transport is
9180 disconnected, don't try to use the read_watch
9182 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9183 so we can find this bug more easily
9185 2003-05-16 Havoc Pennington <hp@redhat.com>
9187 * bus/policy.c (free_rule_list_func): avoid a crash when passed
9188 NULL as DBusHashTable is annoyingly likely to do.
9190 2003-05-16 Colin Walters <walters@verbum.org>
9192 * tools/dbus-monitor.c: Add --session argument and usage()
9195 * tools/dbus-monitor.1: Update with new --session arg.
9197 * bus/Makefile.am (install-data-hook): Create
9198 $(libdir)/dbus-1.0/services so that the session bus is happy.
9200 2003-05-15 Havoc Pennington <hp@redhat.com>
9202 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9203 on non-x86. ifdef's are evil.
9205 2003-05-15 Havoc Pennington <hp@redhat.com>
9207 * configure.in: 0.11
9211 * bus/Makefile.am (initddir): apparently we are supposed to put
9212 init scripts in /etc/rc.d/init.d not /etc/init.d
9214 * bus/Makefile.am: remove the "you must --enable-tests to make
9215 check" as it broke distcheck
9217 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9219 2003-05-13 James Willcox <jwillcox@gnome.org>
9222 * bus/activation.c: (bus_activation_service_created),
9223 (bus_activation_activate_service):
9224 * bus/driver.c: (bus_driver_send_service_deleted),
9225 (bus_driver_send_service_created), (bus_driver_send_service_lost),
9226 (bus_driver_send_service_acquired),
9227 (bus_driver_send_welcome_message),
9228 (bus_driver_handle_list_services):
9229 * bus/session.conf.in:
9230 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9231 (dbus_bus_service_exists), (dbus_bus_activate_service):
9234 Add some convenience API which lets you activate a service, and did a
9235 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9236 and dbus_message_get_args()
9238 2003-05-11 Havoc Pennington <hp@pobox.com>
9240 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9241 calling _dbus_marshal_validate_arg() for every byte in a byte
9244 * dbus/dbus-message-handler.c: use atomic reference counting to
9245 reduce number of locks slightly; the global lock in here sucks
9247 * dbus/dbus-connection.c
9248 (_dbus_connection_update_dispatch_status_and_unlock): variant of
9249 update_dispatch_status that can be called with lock held; then use
9250 in a couple places to reduce locking/unlocking
9251 (dbus_connection_send): hold the lock over the whole function
9252 instead of acquiring it twice.
9254 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9256 * bus/connection.c (bus_connections_setup_connection): fix access
9257 to already-freed memory.
9259 * dbus/dbus-connection.c: keep a little cache of linked list
9260 nodes, to avoid using the global linked list alloc lock in the
9261 normal send-message case. Instead we just use the connection lock
9262 that we already have to take.
9264 * dbus/dbus-list.c (_dbus_list_find_last): new function
9266 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9267 change to use a struct for the atomic type; fix docs,
9268 they return value before increment, not after increment.
9270 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9271 (_dbus_string_append_8_aligned): new functions to try to
9272 microoptimize this operation.
9273 (reallocate_for_length): break this out of set_length(), to
9274 improve profile info, and also so we can consider inlining the
9277 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9278 strings with some preallocation, cuts down on our calls to realloc
9279 a fair bit. Though if we can get the "move entire string to empty
9280 string" optimization below to kick in here, it would be better.
9282 * dbus/dbus-string.c (_dbus_string_move): just call
9283 _dbus_string_move_len
9284 (_dbus_string_move_len): add a special case for moving
9285 an entire string into an empty string; we can just
9286 swap the string data instead of doing any reallocs.
9287 (_dbus_string_init_preallocated): new function
9289 2003-05-11 Havoc Pennington <hp@pobox.com>
9291 Write a "test-profile" that does echo client-server with threads;
9292 profile reveals lock contention, memcpy/realloc of buffers, and
9293 UTF-8 validation as hot spots. 20% of lock contention eliminated
9294 with dbus_atomic_inc/dec implementation on x86. Much remaining
9295 contention is global mempool locks for GList and DBusList.
9297 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9300 * dbus/dbus-connection.c (struct DBusConnection): use
9301 dbus_atomic_t for the reference count
9303 * dbus/dbus-message.c (struct DBusMessage): declare
9304 dbus_atomic_t values as volatile
9306 * configure.in: code to detect ability to use atomic integer
9307 operations in assembly, from GLib patch
9309 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9310 time, tired of it being wrong in threads and forked processes
9312 * glib/test-profile.c: a little program to bounce messages back
9313 and forth between threads and eat CPU
9315 * dbus/dbus-connection.c: add debug spew macros for debugging
9316 thread locks; include config.h at top; fix deadlock in
9317 dbus_connection_flush()
9319 2003-05-08 Havoc Pennington <hp@pobox.com>
9321 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9322 data from getting written, and there wasn't a good reason to
9325 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9326 dbus_verbose lines in test coverage
9327 (main): add list of functions sorted by # of untested blocks
9328 to the coverage report
9330 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9332 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9334 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9335 extend test coverage
9337 * test/data/auth/cancel.auth-script: test canceling an
9340 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9341 aren't used. in CVS history if we end up needing them.
9343 2003-05-04 Havoc Pennington <hp@pobox.com>
9345 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9348 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9349 function, which assumed length was in # of strings, not bytes
9351 * dbus/dbus-message.c (_dbus_message_test): add tests for some
9354 * dbus/dbus-connection.c
9355 (_dbus_connection_queue_received_message): disable function for
9356 now, we are only using it in test mode
9358 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9359 remove a mistaken FIXME
9361 2003-05-04 Havoc Pennington <hp@pobox.com>
9363 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9364 unlock mutex on successful return, patch from Anders Gustafsson
9366 2003-05-04 Havoc Pennington <hp@pobox.com>
9368 * dbus-glib-1.pc.in (Requires): fix dependencies, from
9371 2003-05-04 Havoc Pennington <hp@pobox.com>
9373 * tools/dbus-launch.c: implement
9375 * bus/main.c (main), bus/bus.c (bus_context_new):
9376 implement --print-pid and --fork
9378 2003-05-03 Havoc Pennington <hp@redhat.com>
9380 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9381 the address had no value, and add to test suite. Fix and
9382 regression test from Miloslav Trmac
9384 2003-05-03 Havoc Pennington <hp@pobox.com>
9386 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9387 watch is invalid when handled
9389 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9390 dbus-launch utility to launch the bus from a shell script. Didn't
9391 actually implement dbus-launch yet, it's just a placeholder still.
9393 2003-05-03 Havoc Pennington <hp@pobox.com>
9395 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9396 daemon; also documents daemon config file, so replaces
9397 doc/config-file.txt. Corrected some stuff from config-file.txt in
9398 the process of moving it.
9400 2003-05-03 Havoc Pennington <hp@pobox.com>
9402 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9405 2003-05-03 Colin Walters <walters@verbum.org>
9407 * dbus/dbus-sysdeps.c (fill_user_info): Test against
9408 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9410 * Makefile.am: Update to use new .pc versioning scheme.
9412 2003-05-02 Havoc Pennington <hp@redhat.com>
9414 * bus/system.conf.in: allow send/receive to/from message bus
9417 2003-04-30 Havoc Pennington <hp@redhat.com>
9419 * configure.in: print a note when building with unit tests and
9422 2003-04-30 Havoc Pennington <hp@redhat.com>
9424 * Makefile.am: add a check-local that complains if you didn't
9425 configure with --enable-tests
9427 2003-04-29 Havoc Pennington <hp@redhat.com>
9429 * glib/dbus-gmain.c: docs cleanups
9431 * dbus/dbus-types.h: add docs on int64 types
9433 * dbus/dbus-memory.c: fix docs to avoid putting private API in
9434 public API docs section
9436 2003-04-29 Havoc Pennington <hp@redhat.com>
9438 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9439 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9440 parallel install API version, not with the D-BUS package version.
9442 * HACKING: move some of README over here
9444 * README: updates, and document API/ABI policy
9446 * configure.in: reindentation
9448 2003-04-29 Havoc Pennington <hp@redhat.com>
9450 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9451 to use this library" to be sure people have the right
9454 2003-04-28 Havoc Pennington <hp@redhat.com>
9456 * configure.in: add --enable-docs which by default is auto yes if
9457 doxygen and db2html found, no otherwise; but can be forced on/off
9459 * doc/Makefile.am: conditionalize whether to build docs on
9462 2003-04-28 Havoc Pennington <hp@redhat.com>
9464 * configure.in: 0.10
9468 * bus/system.conf.in: add <includedir>system.d</includedir>
9470 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9471 username was provided but not uid
9473 * bus/config-parser.c (struct BusConfigParser): keep track of
9474 whether the parser is toplevel or was included; change some
9475 of the error handling if it's included.
9477 2003-04-27 Havoc Pennington <hp@pobox.com>
9481 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9482 report correct status if we finish processing authentication
9483 inside this function.
9485 * bus/activation.c (try_send_activation_failure): use
9486 bus_transaction_send_error_reply
9488 * bus/connection.c (bus_connection_get_groups): return an error
9489 explaining the problem
9491 * bus/bus.c (bus_context_check_security_policy): implement
9492 restriction here that inactive connections can only send the
9493 hello message. Also, allow bus driver to send anything to
9496 * bus/connection.c (bus_connection_complete): create the
9497 BusClientPolicy here instead of on-demand.
9498 (bus_connection_get_policy): don't return an error
9500 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9501 sender field in message being replied to
9503 * bus/bus.c (bus_context_check_security_policy): fix silly typo
9504 causing it to return FALSE always
9506 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9507 we checked sender rather than destination
9509 2003-04-25 Havoc Pennington <hp@redhat.com>
9511 test suite is slightly hosed at the moment, will fix soon
9513 * bus/connection.c (bus_connections_expire_incomplete): fix to
9514 properly disable the timeout when required
9515 (bus_connection_set_name): check whether we can remove incomplete
9516 connections timeout after we complete each connection.
9518 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9519 probably still broken.
9521 * bus/services.c (bus_registry_acquire_service): implement max
9522 number of services owned, and honor allow/deny rules on which
9523 services a connection can own.
9525 * bus/connection.c (bus_connection_get_policy): report errors here
9527 * bus/activation.c: implement limit on number of pending
9530 2003-04-25 Havoc Pennington <hp@redhat.com>
9532 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9533 where we used >= 0 instead of != DBUS_UID_UNSET.
9535 2003-04-25 Havoc Pennington <hp@redhat.com>
9537 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9538 were toggled without add/remove, fix from Anders Gustafsson
9540 2003-04-24 Havoc Pennington <hp@redhat.com>
9542 * test/data/valid-config-files/basic.conf: add <limit> tags to
9545 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9546 <limit> tag in configuration file.
9548 2003-04-24 Havoc Pennington <hp@redhat.com>
9550 * bus/dispatch.c: somehow missed some name_is
9552 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9553 (_dbus_timeout_set_interval): new
9555 * bus/connection.c (bus_connections_setup_connection): record time
9556 when each connection is first set up, and expire them after the
9557 auth timeout passes.
9559 2003-04-24 Havoc Pennington <hp@redhat.com>
9561 * dbus/dbus-message.c (dbus_message_name_is): rename
9562 (dbus_message_service_is): rename
9563 (dbus_message_sender_is): rename
9564 (dbus_message_get_service): rename
9566 2003-04-24 Havoc Pennington <hp@redhat.com>
9568 * configure.in: add --enable-checks
9570 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9572 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9573 to use thread locks.
9574 (_dbus_connection_handler_destroyed_locked): move some private
9575 functions into proper docs group
9577 * dbus/dbus-internals.h: add _dbus_return_if_fail,
9578 _dbus_return_val_if_fail
9580 Throughout: use dbus_return_if_fail
9582 2003-04-23 James Willcox <jwillcox@gnome.org>
9585 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9586 (dbus_connection_setup_with_g_main),
9587 (dbus_server_setup_with_g_main):
9588 * glib/test-dbus-glib.c: (main):
9589 * glib/test-thread-client.c: (main):
9590 * glib/test-thread-server.c: (new_connection_callback), (main):
9591 * tools/dbus-monitor.c: (main):
9593 Added a GMainContext argument to dbus_connection_setup_with_g_main()
9594 and dbus_server_setup_with_g_main().
9596 2003-04-20 Havoc Pennington <hp@pobox.com>
9598 * doc/dbus-specification.sgml: document the restrictions on
9599 message and service names
9601 2003-04-22 Havoc Pennington <hp@redhat.com>
9603 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9604 support, and do some code cleanups to share more code and
9605 speed up array marshal/demarshal.
9607 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9609 * configure.in: generate dbus-arch-deps.h
9611 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9614 2003-04-22 Havoc Pennington <hp@redhat.com>
9616 * test/data/valid-messages/opposite-endian.message: fix test
9617 to use proper type for rply field
9619 * test/data/invalid-messages: add tests for below validation
9621 * dbus/dbus-message.c (decode_header_data): validate field types,
9622 and validate that named fields are valid names
9623 (decode_name_field): consider messages in the
9624 org.freedesktop.Local. namespace to be invalid.
9626 * dbus/dbus-string.c (_dbus_string_validate_name): new
9628 2003-04-19 Havoc Pennington <hp@pobox.com>
9630 * bus/driver.c (bus_driver_handle_hello): check limits and
9631 return an error if they are exceeded.
9633 * bus/connection.c: maintain separate lists of active and inactive
9634 connections, and a count of each. Maintain count of completed
9635 connections per user. Implement code to check connection limits.
9637 * dbus/dbus-list.c (_dbus_list_unlink): export
9639 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9640 number of bytes in the message queue for a connection
9642 2003-04-18 Havoc Pennington <hp@pobox.com>
9644 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9646 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9649 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9650 on realloc be sure to update the pointer in the keyring
9652 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9653 offset to avoid writing to unallocated memory
9655 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9656 try the next mechanism, so we properly handle OOM
9658 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9660 (_dbus_keyring_new): fix OOM bug
9661 (_dbus_keyring_new_homedir): always set error; impose a maximum
9662 number of keys we'll load from the file, mostly to speed up the
9663 test suite and make its OOM checks more useful, but also for
9666 * dbus/dbus-auth.c (process_error_server): reject authentication
9667 if we get an error from the client
9668 (process_cancel): on cancel, send REJECTED, per the spec
9669 (process_error_client): send CANCEL if we get an error from the
9672 2003-04-18 Havoc Pennington <hp@pobox.com>
9674 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9677 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9680 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9681 about DBUS_TEST_HOMEDIR once
9683 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9686 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9687 config file so we test the right thing
9689 Throughout: assorted docs improvements
9691 2003-04-18 Havoc Pennington <hp@pobox.com>
9693 * glib/dbus-gmain.c: adapt to watch changes
9695 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9697 * dbus/dbus-server.h: remove dbus_server_handle_watch
9699 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9701 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9702 like DBusTimeout, so we don't need dbus_connection_handle_watch
9705 2003-04-17 Havoc Pennington <hp@redhat.com>
9707 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9708 database usage so it all goes via the DBusUserDatabase cache.
9710 2003-04-17 Havoc Pennington <hp@redhat.com>
9712 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9713 there was an OOM watch we skipped, we always return TRUE so we
9714 iterate again to have a look at it again. Fixes test suite hang.
9715 Code rearrangement also lets us lose some memset and only iterate
9716 over callbacks once.
9718 * bus/driver.c (bus_driver_handle_message): sense of test for
9721 2003-04-16 Havoc Pennington <hp@pobox.com>
9723 * doc/dbus-specification.sgml: make spec say serials are unsigned
9725 * dbus/dbus-message.h: change message serials to unsigned
9727 * dbus/dbus-connection.c: adapt to message serials being unsigned
9729 2003-04-15 Havoc Pennington <hp@pobox.com>
9731 * bus/bus.c: create and keep around a shared DBusUserDatabase
9734 * bus/connection.c (bus_connection_get_groups): don't cache
9735 groups for user in the connection object, since user database
9736 object now does that.
9738 2003-04-16 Havoc Pennington <hp@redhat.com>
9740 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9741 list of size counters
9742 (_dbus_message_loader_putback_message_link): put back a popped link
9744 * dbus/dbus-connection.c
9745 (dbus_connection_set_max_live_messages_size): rename
9747 (dbus_connection_get_outgoing_size): get size of outgoing
9749 (_dbus_connection_set_connection_counter): remove this cruft
9751 2003-04-14 Havoc Pennington <hp@redhat.com>
9753 * dbus/dbus-userdb.c: user database abstraction, mostly to get
9754 caching, but at some point we might want to be able to use a
9757 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9758 SHA1 conf file to test the sha1 auth mechanism, since the regular
9759 test always uses EXTERNAL when available.
9762 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9763 add conf file that requires use of sha1 auth
9765 2003-04-13 Havoc Pennington <hp@pobox.com>
9767 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9768 from Philip Blundell to send messages and monitor them.
9770 2003-04-13 Havoc Pennington <hp@pobox.com>
9772 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9775 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9778 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9779 fix to only recover unused bytes if we're already authenticated
9780 (_dbus_transport_get_is_authenticated): fix to still mark us
9781 authenticated if there are unused bytes.
9783 * bus/dispatch.c: implement security policy checking
9785 * bus/connection.c (bus_transaction_send_from_driver): new
9787 * bus/bus.c (bus_context_check_security_policy): new
9789 * bus/dispatch.c (send_service_nonexistent_error): delete this,
9790 now we just set the DBusError and it gets converted to an error
9793 * bus/connection.c (allow_user_function): enable code using actual
9794 data from the config file
9796 * bus/policy.c (list_allows_user): handle wildcard rules for
9797 user/group connection perms
9799 2003-04-13 Havoc Pennington <hp@pobox.com>
9801 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
9803 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
9805 * bus/policy.c (bus_policy_append_mandatory_rule)
9806 (bus_policy_append_default_rule, bus_policy_append_user_rule)
9807 (bus_policy_append_group_rule): new functions
9809 2003-04-12 Havoc Pennington <hp@pobox.com>
9811 * bus/config-parser.c (bus_config_parser_new): fix a memleak
9813 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
9814 the pid/gid/uid, just for paranoia.
9816 * test/break-loader.c (randomly_do_n_things): find a byte
9817 containing a type code, and randomly change it to a different
9820 2003-04-12 Havoc Pennington <hp@pobox.com>
9822 * bus/policy.h: change BusPolicy to be the thing from the config
9823 file, and rename old BusPolicy to BusClientPolicy
9825 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
9826 match change in how policy works
9828 * dbus/dbus-internals.h: mark assert_not_reached as
9829 __attribute((noreturn))__
9831 2003-04-11 Havoc Pennington <hp@redhat.com>
9833 * doc/dbus-specification.sgml: fix a spot with the wrong name for
9834 the broadcast service. Use boolean return for ServiceExists.
9836 2003-04-11 Havoc Pennington <hp@redhat.com>
9838 * configure.in: add another directory to look for qt in.
9840 2003-04-11 Havoc Pennington <hp@redhat.com>
9842 * AUTHORS: add Colin Walters
9844 2003-04-11 Havoc Pennington <hp@redhat.com>
9850 2003-04-11 Havoc Pennington <hp@redhat.com>
9852 * bus/messagebus.in: remove pid file when stopping the
9853 message bus, since the bus won't have privileges to remove it
9856 2003-04-11 Havoc Pennington <hp@redhat.com>
9858 * bus/bus.c (bus_context_new): move credentials change after
9861 2003-04-11 Havoc Pennington <hp@pobox.com>
9863 * test/decode-gcov.c: add "below average functions" to the
9864 coverage report, and change how some of the code works.
9866 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
9867 not in the coverage stats.
9869 * test/test-service.c (main): use _dbus_verbose not fprintf in a
9870 couple places so running the test suite doesn't result in megaspam.
9872 2003-04-11 Havoc Pennington <hp@pobox.com>
9874 * bus/dispatch.c (check_existent_service_activation): accept a no
9875 memory error in a place we didn't before
9877 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
9878 in case the first one failed," since the test suite is less
9881 2003-04-10 Havoc Pennington <hp@pobox.com>
9883 * bus/dispatch.c (check_segfault_service_activation): add test
9884 for launching an executable that just crashes.
9886 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
9887 don't leave a million cores. We'll see how portable this is.
9889 2003-04-10 Havoc Pennington <hp@pobox.com>
9891 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
9892 the possible parent failures before we fork, so that we don't
9893 fail to create a babysitter after creating the child.
9895 * bus/activation.c (bus_activation_activate_service): kill child
9896 if we don't successfully complete the activation.
9898 2003-04-10 Havoc Pennington <hp@redhat.com>
9900 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
9901 the connection if it's disconnected
9903 * bus/activation.c (bus_activation_service_created): use new
9904 transaction features to roll back removal of pending activation if
9905 we don't successfully create the service after all. Don't remove
9906 pending activation if the function fails.
9908 * dbus/dbus-list.c (_dbus_list_insert_before_link)
9909 (_dbus_list_insert_after_link): new code to facilitate
9912 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
9913 new functionality, so we can preallocate the ability to insert
9916 * bus/connection.c (bus_transaction_add_cancel_hook): new function
9917 allowing us to put custom hooks in a transaction to be used for
9918 cancelling said transaction
9920 * doc/dbus-specification.sgml: add some discussion of secondary
9921 service owners, and disallow zero-length service names
9923 * bus/services.c (bus_registry_acquire_service): new function,
9924 splits out part of bus_driver_handle_acquire_service() and fixes
9925 a bug where we didn't remove the service doing the acquiring
9926 from the secondary queue if we failed to remove the current owner
9927 from the front of the queue.
9929 2003-04-10 Alexander Larsson <alexl@redhat.com>
9931 * doc/dbus-specification.sgml:
9932 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
9934 2003-04-10 Alexander Larsson <alexl@redhat.com>
9939 Added files to cvsignore
9941 * dbus/dbus-message.h:
9942 * dbus/dbus-message.c: (dbus_message_iter_get_named):
9943 Make get_named() take two out argument and return a boolean.
9944 (dbus_message_iter_get_args_valist):
9945 Update usage of get_named().
9946 (dbus_message_iter_append_byte):
9948 (dbus_message_iter_append_named)
9950 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
9953 2003-04-10 Alexander Larsson <alexl@redhat.com>
9955 * dbus/dbus-marshal.[ch]:
9956 Add array_type_pos argument to _dbus_marshal_validate_arg.
9957 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
9959 * dbus/dbus-message.[ch]:
9960 Multi-dimensional arrays have full type specification in the
9961 outermost array. Iter code re-arranged to handle this.
9962 Added some more iter tests.
9964 * doc/dbus-specification.sgml:
9967 Update new array encoding description.
9968 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
9970 * test/data/invalid-messages/array-with-mixed-types.message:
9971 * test/data/valid-messages/array-of-array-of-uint32.message:
9972 Change to the new array format.
9974 * test/data/invalid-messages/too-short-dict.message:
9977 * test/data/valid-messages/recursive-types.message:
9978 Fix up and extend test.
9980 2003-04-10 Havoc Pennington <hp@pobox.com>
9982 * bus/dispatch.c: lots of fixes
9984 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9985 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9986 that was crack, broke the test service.
9988 * dbus/dbus-transport.c (_dbus_transport_open): fix error
9989 handling to avoid piling up errors if we get a failure on the
9992 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9993 pid in assertion failures.
9995 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9996 to some fixed size of file descriptor array. Don't return TRUE
9997 anytime a timeout exists, that led to lots of busy loop silliness
10000 2003-04-09 Havoc Pennington <hp@redhat.com>
10002 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10003 I'd checked this in earlier but hadn't.
10005 2003-04-09 Havoc Pennington <hp@redhat.com>
10007 * bus/dispatch.c (bus_dispatch_test): get a bit further through
10008 the activation test (man this is getting old!)
10010 2003-04-09 Havoc Pennington <hp@redhat.com>
10012 * test/test-utils.c: use dispatch status function to fix this up
10014 * bus/connection.c (connection_watch_callback): don't dispatch
10016 (connection_timeout_callback): don't dispatch from here
10017 (bus_connections_setup_connection): set the dispatch status function
10018 (bus_connection_disconnected): unset it
10020 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10021 used to add a connection to be dispatched
10022 (_dbus_loop_iterate): do the dispatching at the end of each
10025 * dbus/dbus-connection.c
10026 (dbus_connection_set_dispatch_status_function): new function
10027 allowing us to fix up main loop usage
10028 (_dbus_connection_last_unref): free all the various function
10030 (dbus_connection_dispatch): call the DispatchStatusFunction
10031 whenever this function returns
10032 (dbus_connection_handle_watch): call DispatchStatusFunction
10033 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10034 (reply_handler_timeout): call DispatchStatusFunction
10035 (dbus_connection_flush): call DispatchStatusFunction
10037 2003-04-09 Havoc Pennington <hp@redhat.com>
10039 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10042 * bus/dispatch.c (check_service_activated): fix bug in test
10044 * dbus/dbus-mainloop.c (check_timeout): fix this up
10046 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10047 verbose output so we can sort out output from different processes,
10048 e.g. in the activation case.
10050 2003-04-08 Colin Walters <walters@gnu.org>
10052 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10054 (bus_context_new): Set it.
10055 (bus_context_unref): Use it to delete the pid file.
10057 2003-04-08 Havoc Pennington <hp@redhat.com>
10059 * test/data/invalid-messages/array-with-mixed-types.message:
10060 regression test that fails for the moment
10062 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10063 tests for convenience
10065 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10066 array of nil, it broke things.
10068 * test/data/invalid-messages/array-of-nil.message: regression test
10070 * test/data/valid-messages/array-of-array-of-uint32.message:
10071 happened to write this so added it to suite
10073 2003-04-08 Havoc Pennington <hp@redhat.com>
10075 * bus/driver.c (bus_driver_handle_acquire_service): init
10076 retval/reply before checking name
10078 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10079 recursion depth argument
10081 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10082 in the public struct for future extension
10084 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10087 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10090 * doc/dbus-specification.sgml: fix typo
10092 2003-04-08 Alexander Larsson <alexl@redhat.com>
10094 Implemented recursive types, named types and new-style iters
10097 * glib/test-thread-client.c: (thread_func):
10098 * glib/test-thread-server.c: (handle_test_message):
10099 * test/test-service.c: (handle_echo):
10102 * dbus/Makefile.am:
10103 * dbus/dbus-dict.c:
10104 * dbus/dbus-dict.h:
10108 * dbus/dbus-internals.c: (_dbus_type_to_string):
10109 Update for new types.
10111 * dbus/dbus-marshal.[ch]:
10112 Implement recursive types and the new marshalling format.
10113 Remove hardcoded dict marshalling.
10114 Marshal named types.
10116 * dbus/dbus-message-builder.c:
10118 Remove references to old types
10120 * dbus/dbus-message.[ch]:
10121 New non-refcounted iter API that supports recursive iters.
10122 Use iters for appending, including support for recursive
10124 Add byte and named type support.
10125 Update everything to new marshalling formats.
10126 Add tests for new API.
10128 * dbus/dbus-protocol.h:
10129 Remove old array types.
10130 Add types: BYTE, ARRAY, DICT, NAMED
10132 * dbus/dbus-string.c:
10133 * dbus/dbus-sysdeps.c:
10134 Make parse_double locale safe.
10136 * dbus/dbus-test-main.c:
10139 * dbus/dbus-test.c:
10142 * doc/dbus-specification.sgml:
10145 * test/data/incomplete-messages/missing-body.message:
10146 * test/data/invalid-messages/bad-boolean.message:
10147 * test/data/invalid-messages/bad-boolean-array.message:
10148 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10149 * test/data/invalid-messages/boolean-has-no-value.message-raw:
10150 * test/data/invalid-messages/too-short-dict.message:
10151 * test/data/valid-messages/dict-simple.message:
10152 * test/data/valid-messages/dict.message:
10153 * test/data/valid-messages/emptiness.message:
10154 * test/data/valid-messages/lots-of-arguments.message:
10155 * test/data/valid-messages/no-padding.message:
10156 * test/data/valid-messages/recursive-types.message:
10157 Add missing NAME fields
10158 Fix up dicts & arrays
10160 * test/data/invalid-messages/dict-with-nil-value.message:
10161 Removed, this is not invalid anymore.
10163 * test/data/valid-messages/recursive-types.message:
10164 Add new test for deeply recursive types.
10166 2003-04-07 Havoc Pennington <hp@pobox.com>
10168 * bus/driver.c (bus_driver_handle_acquire_service): return an
10169 error if you try to acquire a service that starts with ':'
10171 2003-04-07 Havoc Pennington <hp@redhat.com>
10173 * doc/dbus-specification.sgml: require that base service names
10174 start with ':' and that the base service is created/deleted
10175 as first and last things a connection does on the bus
10177 * bus/dispatch.c (check_existent_service_activation): lots more
10178 work on the activation test; it doesn't fully pass yet...
10180 * test/test-service.c (main): fix so we don't memleak the
10181 connection to the message bus
10182 (filter_func): accept a message asking us to exit
10184 2003-04-06 Havoc Pennington <hp@pobox.com>
10186 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10189 * configure.in: fixes to Qt detection from Colin Walters
10191 * doc/Makefile.am: Only remove generated docbook dirs if they
10192 exist, from Colin Walters
10194 * dbus/dbus-bus.c: change how we set well-known connections to
10195 NULL, so that it works if a single connection is stored in
10196 two well-known array slots.
10198 * test/Makefile.am: remove a lot of stuff that isn't immediately
10199 useful, it's in CVS history if we want it.
10201 * test/test-service.c: use dbus-mainloop instead of that
10204 2003-04-06 Havoc Pennington <hp@pobox.com>
10206 * dbus/Makefile.am: split lists of sources into stuff that goes in
10207 the library, util functions that go in the lib and are also used
10208 elsewhere, and util functions that are used in tests/daemon but
10209 don't go in the lib.
10211 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10212 here so it can be used in test binaries also
10214 2003-04-06 Havoc Pennington <hp@pobox.com>
10216 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10217 here in the parent process, so we can return an error if it
10218 fails. Also, move some of the code into the child so the parent
10219 is less hosed if we fail midway through.
10221 * bus/bus.c (bus_context_new): move pidfile detection further up
10222 in the function, before we start overwriting sockets and such.
10224 * bus/messagebus.in: adjust this a bit, not sure if it will work.
10226 * configure.in: add --with-system-pid-file and --with-system-socket
10228 2003-04-06 Colin Walters <walters@verbum.org>
10230 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10232 * bus/system.conf.in: Declare a pidfile.
10234 * bus/bus.c (bus_context_new): Test for an existing pid file, and
10235 create one (if appropriate).
10237 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10238 (struct BusConfigParser) [pidfile]: New.
10239 (element_type_to_name, merge_included, start_busconfig_child)
10240 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10241 (bus_config_parser_unref): Free it.
10242 (bus_config_parser_get_pidfile): New function.
10244 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10246 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10248 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10250 * dbus/dbus-sysdeps.h: Prototype it.
10252 2003-04-06 Havoc Pennington <hp@pobox.com>
10254 * bus/bus.c (bus_context_new): print the address in here, rather
10255 than in main(), because we need to do it before forking the daemon
10257 * bus/dispatch.c (send_service_nonexistent_error): set the sender
10258 on the service nonexistent error
10260 * bus/driver.c (bus_driver_handle_acquire_service): set the
10261 sender on the AcquireService reply
10263 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10264 server also listen on a UNIX socket so services can connect to it.
10266 2003-04-06 Havoc Pennington <hp@pobox.com>
10268 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10269 so it detects deadlocks and also we actually init threads when
10272 2003-04-06 Havoc Pennington <hp@pobox.com>
10274 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10275 save the domain socket name, and unlink it when we disconnect the
10276 server. Means that at least when we exit normally, we won't leave
10277 a bunch of junk in /tmp
10279 * dbus/dbus-transport-unix.c
10280 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10281 memory management). (I was making a real change here but then
10284 2003-04-06 Havoc Pennington <hp@pobox.com>
10286 * bus/bus.c (bus_context_new): fix wrong handling of
10287 server_data_slot_unref() in the error case.
10289 * dbus/dbus-internals.h (_dbus_assert): change so it passes
10290 "(condition) != 0" to _dbus_real_assert so that
10291 "_dbus_assert (pointer)" doesn't cause a warning
10293 * bus/main.c (main): accept --print-address option to print out
10294 the message bus address
10296 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10298 * dbus/dbus-transport.c (_dbus_transport_open): special error for
10299 "tmpdir" option to unix: address on client side
10301 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10304 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10305 we can use to create sockets in the test suite.
10307 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10308 cleanly. To be used for testing.
10310 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10312 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10314 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10315 handle trying to call this when there's no servers active
10317 2003-04-05 Havoc Pennington <hp@pobox.com>
10321 * configure.in: 0.8
10323 2003-04-05 Havoc Pennington <hp@pobox.com>
10325 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10326 crash on startup. Need to get "try starting the daemon"
10327 in the test suite I guess. ;-)
10329 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10330 tracked the number of open connections; it's better done in
10331 application-specific code as you want it to span all servers etc.
10333 2003-04-05 Havoc Pennington <hp@pobox.com>
10335 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10336 patch from Colin Walters
10338 2003-04-05 Havoc Pennington <hp@pobox.com>
10340 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10341 reality; in fact multiple mechanisms are allowed.
10343 * dbus/dbus-internals.c (_dbus_real_assert)
10344 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10345 _dbus_assert_not_reached() into functions, so that they don't show
10346 up in basic block counts for test coverage, and don't use up as
10347 much disk space. Does mean slower execution speed though, so
10348 assumes --disable-asserts is the normal production case.
10350 2003-04-05 Havoc Pennington <hp@pobox.com>
10352 * test/Makefile.am (dist-hook): also dist *.in files
10356 * configure.in: 0.7
10358 2003-04-05 Havoc Pennington <hp@pobox.com>
10360 * dbus/dbus-string.c: docs warning
10362 * dbus/dbus-spawn.c: missing docs
10364 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10366 2003-04-05 Havoc Pennington <hp@pobox.com>
10368 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10371 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10372 to -1 once we've reaped the babysitter
10373 (_dbus_babysitter_handle_watch): do as much work as we can, not
10376 * bus/activation.c: add code using DBusBabysitter so that we
10377 handle it when a service fails to start up properly.
10378 (bus_activation_service_created): don't remove the activation
10379 entries as we go, just let them get removed when we free the pending
10380 activation. Unref reply messages after sending them.
10382 2003-04-05 Havoc Pennington <hp@pobox.com>
10384 * test/decode-gcov.c (main): print per-directory stats in the report
10386 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10388 2003-04-05 Havoc Pennington <hp@pobox.com>
10390 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10392 * test/decode-gcov.c: hack up a little program to suck data
10393 out of gcov files. Yes this is sort of silly.
10395 * configure.in: define something in config.h and do an
10396 AM_CONDITIONAL when gcov is enabled
10398 2003-04-04 Havoc Pennington <hp@redhat.com>
10400 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10401 return a "babysitter" object that is used to monitor the status of
10402 the spawned process and reap it when required.
10404 * test/test-segfault.c, test/test-exit.c,
10405 test/test-sleep-forever.c: binaries that do various lame things,
10406 used in the test suite.
10408 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10410 2003-04-03 Havoc Pennington <hp@pobox.com>
10412 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10413 in preparation for modifying it, dbus-sysdeps is getting
10414 a bit unmanageable.
10416 2003-04-03 Havoc Pennington <hp@redhat.com>
10418 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10421 * bus/*.[hc]: adapt to mainloop change
10423 2003-04-03 Havoc Pennington <hp@redhat.com>
10425 * bus/activation.c (load_directory): fix up memleaks
10426 (bus_activation_entry_free): free the entry
10428 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10429 we get one from the message bus; fix memleaks.
10431 * dbus/dbus-message.c (dbus_set_error_from_message): new function
10433 2003-04-03 Havoc Pennington <hp@pobox.com>
10435 * bus/config-parser.c (bus_config_parser_unref): free
10436 list of mechanisms, bug discovered by test suite enhancements
10437 (putting system.conf and session.conf into suite)
10439 * test/Makefile.am, test/test-service.c: add placeholder for a
10440 test service that we'll activate as part of test suite. Doesn't
10443 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10444 setting NULL value, and use system malloc not dbus_malloc()
10445 when we have unavoidable memleakage.
10447 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10448 didn't work, and support DBUS_BUS_ACTIVATION.
10450 * bus/activation.c (child_setup): pass our well-known bus type to
10453 * bus/config-parser.c: support <type> to specify well-known type
10455 * doc/dbus-specification.sgml: document the env variables to
10456 locate well-known buses and find service activator
10458 2003-04-02 Havoc Pennington <hp@redhat.com>
10460 * test/Makefile.am (all-local): add a rule to copy tests to
10461 builddir, so we can have generated tests. Use this to remove the
10462 silly hack for testing system.conf and session.conf. Will use this
10463 shortly to generate .service files pointing to test binaries.
10465 2003-04-02 Havoc Pennington <hp@redhat.com>
10467 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10468 current alloc and needed new length, not max of the doubled
10469 allocation and needed new length. Also, when building tests,
10470 don't do the double-allocation stuff, just realloc every time.
10472 2003-04-02 Havoc Pennington <hp@redhat.com>
10474 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10476 (_dbus_string_get_dirname): new
10477 (_dbus_sysdeps_test): new
10478 (_dbus_directory_open): include dirnames in error messages
10480 * bus/config-parser.c: interpret <include> and <includedir> and
10481 <servicedir> relative to config file location if the given
10482 filename is not absolute.
10484 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10486 2003-04-02 Havoc Pennington <hp@redhat.com>
10488 * bus/connection.c (bus_transaction_send_error_reply): set sender
10489 service for the error, and unref the reply on success
10491 * bus/activation.c: convert to use BusTransaction so OOM can be
10493 (bus_activation_service_created): set sender of the message
10495 2003-04-01 Havoc Pennington <hp@redhat.com>
10497 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10498 <includedir> (at least mostly)
10500 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10501 first, then the user ID
10503 2003-04-01 Havoc Pennington <hp@pobox.com>
10505 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10508 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10510 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10512 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10513 socket 0777, and unlink any existing socket.
10515 * bus/bus.c (bus_context_new): change our UID/GID and fork if
10516 the configuration file so specifies; set up auth mechanism
10519 * bus/config-parser.c (bus_config_parser_content): add support
10520 for <fork> option and fill in code for <auth>
10522 * bus/system.conf.in: add <fork/> to default configuration,
10523 and limit auth mechanisms to EXTERNAL
10525 * doc/config-file.txt (Elements): add <fork>
10527 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10528 (_dbus_change_identity): new function
10530 2003-03-31 Havoc Pennington <hp@redhat.com>
10532 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10533 (_dbus_listen_unix_socket): fix off-by-one error in null
10534 termination spotted by Nalin
10536 2003-03-31 Havoc Pennington <hp@redhat.com>
10538 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10539 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10540 having a real home directory available.
10542 2003-03-31 Havoc Pennington <hp@redhat.com>
10544 * bus/Makefile.am (install-data-hook): create /var/run/dbus
10546 * bus/messagebus.in: add init script for Red Hat /etc/init.d
10548 * configure.in: add support for specifying a style of init script
10551 2003-03-31 Havoc Pennington <hp@redhat.com>
10553 Fix some annoying DBusString API and fix all affected code.
10555 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10556 max_length argument
10557 (_dbus_string_get_data): change to return string instead of using
10559 (_dbus_string_get_const_data): ditto
10560 (_dbus_string_get_data_len): ditto
10561 (_dbus_string_get_const_data_len): ditto
10563 2003-03-31 Havoc Pennington <hp@redhat.com>
10565 * bus/main.c (main): fix up the command line arguments to be nicer
10567 2003-03-31 Havoc Pennington <hp@redhat.com>
10569 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10570 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10571 final location that lands in the config file
10573 * bus/config-loader-expat.c (bus_config_load): fix type of
10574 XML_Parser variable
10576 * doc/TODO: remove TODO item for dbus_bus_get()
10578 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10580 2003-03-31 Havoc Pennington <hp@pobox.com>
10582 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10583 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10584 argument since they are always client side
10586 * dbus/dbus-server.c (dbus_server_get_address): new function
10588 * bus/main.c (main): take the configuration file as an argument.
10590 * test/data/valid-config-files/debug-allow-all.conf: new file to
10591 use with dispatch.c tests for example
10593 * bus/test-main.c (main): require test data dir
10595 * bus/bus.c (bus_context_new): change this to take a
10596 configuration file name as argument
10598 * doc/config-file.txt (Elements): add <servicedir>
10600 * bus/system.conf, bus/session.conf: new files
10602 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10603 well-known socket if none set
10605 * configure.in: create system.conf and session.conf
10607 2003-03-30 Havoc Pennington <hp@pobox.com>
10609 * bus/config-parser.c: hacking
10611 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10612 to shut down, since it could cause weirdness with the DBusList
10615 * dbus/dbus-list.c (_dbus_list_test): add tests for the
10616 link-oriented stack routines
10617 (alloc_link): free the mempool if the first alloc from it fails
10619 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10621 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10623 (_dbus_string_skip_white): new
10625 * doc/config-file.txt (Elements): add <includedir>
10627 2003-03-28 Havoc Pennington <hp@pobox.com>
10629 * dbus/dbus-string.c (_dbus_string_copy_data_len)
10630 (_dbus_string_copy_data): new functions
10632 2003-03-28 Anders Carlsson <andersca@codefactory.se>
10634 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10638 * dbus/dbus-memory.c:
10641 2003-03-28 Havoc Pennington <hp@pobox.com>
10643 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10644 I think it may have just been superstition. Not sure.
10646 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10647 failures that were not being handled.
10649 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10651 * dbus/dbus-memory.c: add ability to set number of mallocs in a
10652 row that will fail on out-of-memory.
10654 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10655 function for testing out-of-memory handling.
10657 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10658 allocation functions, they do map exactly to the expat ones.
10660 2003-03-27 Havoc Pennington <hp@redhat.com>
10662 * bus/config-loader-libxml.c (bus_config_load): add another error
10665 2003-03-26 Anders Carlsson <andersca@codefactory.se>
10668 Add note about automatic service activation.
10670 * doc/dbus-specification.sgml:
10671 Rename the specification and clarify a few things.
10673 2003-03-26 Anders Carlsson <andersca@codefactory.se>
10676 * dbus/dbus-address.c:
10677 * dbus/dbus-dict.c:
10678 * dbus/dbus-marshal.c:
10679 * dbus/dbus-server-debug-pipe.c:
10680 * dbus/dbus-transport-unix.c:
10681 Fix documentation warnings.
10683 2003-03-26 Havoc Pennington <hp@pobox.com>
10685 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10686 after every test so it's quick and easy to see which leaked, and
10687 so we test multiple dbus_shutdown() calls
10689 * configure.in: change configure.in XML stuff to also support
10692 * config-loader-libxml.c: some hacking
10694 * config-loader-expat.c: some hacking
10696 * config-parser.c: some hacking, plus tests
10698 2003-03-25 Havoc Pennington <hp@redhat.com>
10700 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10702 * configure.in: add --with-xml option to specify XML library,
10703 right now only libxml is supported.
10705 * bus/config-loader-libxml.c, config-parser.c: sync some minor
10706 nonworking code between home and work, still just stubs
10708 2003-03-24 Havoc Pennington <hp@redhat.com>
10710 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10713 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10714 NULL argument for "message" if the error is a well-known one,
10715 fill in a generic message in this case.
10717 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10720 * bus/test.c (bus_test_flush_bus): add
10722 * bus/policy.c (bus_policy_test): test code stub
10724 2003-03-24 Havoc Pennington <hp@pobox.com>
10726 * bus/connection.c (bus_connections_setup_connection): set up
10727 the "can this user connect" function, but it always returns
10728 TRUE until we have a config file parser so we can have a config
10729 file that allows connections.
10731 2003-03-23 Havoc Pennington <hp@pobox.com>
10733 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10734 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10735 the mutex, so we can check for proper memory management
10738 * dbus/dbus-dataslot.c: remove the mutex from
10739 DBusDataSlotAllocator and lock it manually when using it,
10740 to simplify fitting it into the global slots framework.
10742 * dbus/dbus-threads.c (init_static_locks): rework how we're
10743 handling global locks so they are easily shut down.
10745 * bus/policy.c (bus_policy_append_rule): fix
10747 * bus/test-main.c (main): check for memleaks
10749 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10750 test suite check for memleaks
10752 * dbus/dbus-memory.c: add support in test mode for tracking
10753 number of outstanding blocks
10755 2003-03-23 Havoc Pennington <hp@pobox.com>
10757 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10760 * dbus/dbus-hash.h: add ULONG hash keys
10762 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10763 (_dbus_get_group_id): new function
10765 2003-03-20 Havoc Pennington <hp@redhat.com>
10767 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10769 (dbus_connection_get_unix_user): new function
10771 2003-03-20 Havoc Pennington <hp@pobox.com>
10773 * bus/connection.c (bus_connection_send_oom_error): assert that
10774 message has a sender
10775 (connection_execute_transaction): ditto
10776 (bus_connection_preallocate_oom_error): fix to set the sender, and
10777 set recipient to the destination service, not the bus driver
10779 * bus/policy.c: hacking
10781 * dbus/dbus-message.c (dbus_message_service_is): new function
10782 (dbus_message_sender_is): new
10784 2003-03-19 Havoc Pennington <hp@redhat.com>
10786 * bus/policy.c: start sketching code for policy restrictions on
10787 what connections can do.
10789 2003-03-18 Havoc Pennington <hp@redhat.com>
10791 * doc/TODO: some notes on high-level todo items. Little nitpick
10792 stuff is all in @todo, so no need to add it here.
10794 * doc/config-file.txt: some notes on how config file might look
10796 2003-03-18 Anders Carlsson <andersca@codefactory.se>
10798 * configure.in: 0.6
10802 2003-03-17 Havoc Pennington <hp@redhat.com>
10804 * dbus/dbus-internals.h: add gcc attributes so that
10805 our printf-style functions warn on bad arguments to
10808 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
10811 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10814 2003-03-17 Havoc Pennington <hp@redhat.com>
10816 * bus/test-main.c (main): make it print something as it runs
10817 so make check doesn't look stuck
10819 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
10820 from CVS, now obsolete
10822 2003-03-17 Anders Carlsson <andersca@codefactory.se>
10824 * bus/dispatch.c: (bus_dispatch):
10825 Refetch the service name since it may have been reallocated
10826 when dbus_message_set_sender was called.
10828 * dbus/dbus-sysdeps.c: (_dbus_accept):
10829 Add address and address length variables and use them to stop
10830 valgrind from complaining.
10832 2003-03-17 Havoc Pennington <hp@pobox.com>
10834 All tests pass, no memleaks, no valgrind complaints.
10836 * bus/test.c: refcount handler_slot
10838 * bus/connection.c (bus_connections_new): refcount
10839 connection_data_slot
10841 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
10842 bytes so that auth scripts pass.
10844 * bus/dispatch.c: init message_handler_slot so it gets allocated
10847 * bus/dispatch.c (message_handler_slot_ref): fix memleak
10849 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
10850 dealloc server_pipe_hash when no longer used for benefit of
10853 * dbus/dbus-auth.c (process_command): memleak fix
10855 * bus/dispatch.c (check_hello_message): memleak fix
10857 2003-03-16 Havoc Pennington <hp@pobox.com>
10859 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
10861 2003-03-17 Anders Carlsson <andersca@codefactory.se>
10863 * bus/activation.c (bus_activation_activate_service): Append
10864 the pending activation entry to the list of pending activations.
10866 2003-03-16 Havoc Pennington <hp@pobox.com>
10868 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
10871 * dbus/dbus-address.c (create_entry): fix OOM handling when
10872 failing to alloc entry->method
10874 2003-03-16 Havoc Pennington <hp@pobox.com>
10876 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
10879 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10880 add some missing dbus_set_result
10882 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
10883 alloc the DBusMessageHandler
10885 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
10886 the transport here, since we call this from the finalizer; it
10887 resulted in a double-finalize.
10889 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
10890 where we tried to use transport->connection that was NULL,
10891 happened when transport was disconnected early on due to OOM
10893 * bus/*.c: adapt to handle OOM for watches/timeouts
10895 * dbus/dbus-transport-unix.c: port to handle OOM during
10898 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
10899 reference to unused bytes instead of a copy
10901 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
10904 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
10907 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
10910 2003-03-16 Anders Carlsson <andersca@codefactory.se>
10912 * doc/dbus-specification.sgml:
10913 Document reply message for ActivateService.
10915 2003-03-16 Anders Carlsson <andersca@codefactory.se>
10917 * bus/activation.c: (bus_pending_activation_entry_free),
10918 (bus_pending_activation_free), (bus_activation_new),
10919 (bus_activation_unref), (bus_activation_service_created),
10920 (bus_activation_activate_service):
10921 * bus/activation.h:
10922 * bus/bus.c: (bus_context_new):
10923 * bus/desktop-file.c: (new_section):
10924 * bus/driver.c: (bus_driver_send_service_deleted),
10925 (bus_driver_handle_activate_service):
10926 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
10928 * dbus/dbus-connection.c:
10929 (dbus_connection_send_with_reply_and_block):
10930 * dbus/dbus-message.c: (dbus_message_append_args_valist):
10931 * dbus/dbus-protocol.h:
10932 Make activation work better. Now pending activations will be queued
10933 and the daemon won't try to activate services that are already registered.
10935 2003-03-16 Havoc Pennington <hp@pobox.com>
10937 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
10940 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
10941 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
10943 2003-03-16 Havoc Pennington <hp@pobox.com>
10945 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
10946 this. always run the test suite before commit...
10948 * bus/*: adapt to DBusConnection API changes
10950 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
10951 requires renaming stuff to avoid dbus_connection_dispatch name
10954 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
10957 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10958 separate from _dbus_message_loader_return_buffer()
10960 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
10961 this, because it's now always broken to use; the number of
10962 messages in queue vs. the number still buffered by the message
10963 loader is undefined/meaningless. Should use
10964 dbus_connection_get_dispatch_state().
10965 (dbus_connection_dispatch): rename from
10966 dbus_connection_dispatch_message
10968 2003-03-16 Havoc Pennington <hp@pobox.com>
10970 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
10973 2003-03-16 Anders Carlsson <andersca@codefactory.se>
10975 * dbus/dbus-connection.c:
10976 (dbus_connection_send_with_reply_and_block):
10977 Decrease connection->n_incoming when removing an entry
10979 * dbus/dbus-dict.c: (dbus_dict_entry_free),
10980 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10981 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10982 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10983 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10984 (dbus_dict_get_byte_array):
10985 Handle NULL arrays and strings. Also add support for byte arrays.
10987 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10988 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10989 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10990 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10991 (_dbus_demarshal_dict), (demarshal_and_validate_len),
10992 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10993 * dbus/dbus-marshal.h:
10994 Add support for marshalling and demarshalling empty arrays and strings.
10996 * dbus/dbus-message.c: (dbus_message_append_args_valist),
10997 (dbus_message_append_string_array),
10998 (dbus_message_iter_get_boolean),
10999 (dbus_message_iter_get_boolean_array),
11000 (dbus_message_iter_get_int32_array),
11001 (dbus_message_iter_get_uint32_array),
11002 (dbus_message_iter_get_double_array),
11003 (dbus_message_iter_get_byte_array),
11004 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11005 (check_message_handling):
11006 Add support for getting empty arrays and dicts.
11008 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11009 Don't do any validation at all for now, that's better than just checking
11012 * test/data/valid-messages/emptiness.message:
11013 New test message with lots of empty arrays.
11015 2003-03-16 Havoc Pennington <hp@pobox.com>
11017 * dbus/dbus-connection.c
11018 (_dbus_connection_queue_received_message_link): new function that
11019 can't fail due to OOM
11021 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11022 new function pops a message together with a list link
11025 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11026 message queuing functions to avoid needing to alloc memory
11028 2003-03-16 Havoc Pennington <hp@pobox.com>
11030 Oops - test code was only testing failure of around 30 of the
11031 mallocs in the test path, but it turns out there are 500+
11032 mallocs. I believe this was due to misguided linking setup such
11033 that there was one copy of dbus_malloc etc. in the daemon and one
11034 in the shared lib, and only daemon mallocs were tested. In any
11035 case, the test case now tests all 500+ mallocs, and doesn't pass
11036 yet, though there are lots of fixes in this patch.
11038 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11039 this so that it doesn't need to allocate memory, since it
11040 has no way of indicating failure due to OOM (and would be
11041 annoying if it did).
11043 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11045 * bus/Makefile.am: rearrange to create two self-contained
11046 libraries, to avoid having libraries with overlapping symbols.
11047 that was resulting in weirdness, e.g. I'm pretty sure there
11048 were two copies of global static variables.
11050 * dbus/dbus-internals.c: move the malloc debug stuff to
11053 * dbus/dbus-list.c (free_link): free list mempool if it becomes
11056 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11058 * dbus/dbus-address.c (dbus_parse_address): free list nodes
11061 * bus/dispatch.c (bus_dispatch_add_connection): free
11062 message_handler_slot when no longer using it, so
11063 memory leak checkers are happy for the test suite.
11065 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11067 * bus/bus.c (new_connection_callback): disconnect in here if
11068 bus_connections_setup_connection fails.
11070 * bus/connection.c (bus_connections_unref): fix to free the
11072 (bus_connections_setup_connection): if this fails, don't
11073 disconnect the connection, just be sure there are no side
11076 * dbus/dbus-string.c (undo_alignment): unbreak this
11078 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11080 (_dbus_auth_new): fix the order in which we free strings
11083 * bus/connection.c (bus_connection_disconnected): fix to
11084 not send ServiceDeleted multiple times in case of memory
11087 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11088 get the base service name
11089 (dbus_bus_register_client): don't return base service name,
11090 instead store it on the DBusConnection and have an accessor
11092 (dbus_bus_register_client): rename dbus_bus_register()
11094 * bus/dispatch.c (check_hello_message): verify that other
11095 connections on the bus also got the correct results, not
11096 just the one sending hello
11098 2003-03-15 Havoc Pennington <hp@pobox.com>
11100 Make it pass the Hello handling test including all OOM codepaths.
11101 Now to do other messages...
11103 * bus/services.c (bus_service_remove_owner): fix crash when
11104 removing owner from an empty list of owners
11105 (bus_registry_ensure): don't leave service in the list of
11106 a connection's owned services if we fail to put the service
11109 * bus/connection.c (bus_connection_preallocate_oom_error): set
11110 error flag on the OOM error.
11112 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11113 handle _dbus_transport_set_connection failure
11115 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11116 to create watches up front and simply enable/disable them as
11118 (unix_connection_set): this can now fail on OOM
11120 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11121 of enabling/disabling a watch or timeout.
11123 * bus/loop.c (bus_loop_iterate): don't touch disabled
11126 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11128 2003-03-15 Havoc Pennington <hp@pobox.com>
11130 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11131 write useful test code, after all that futzing around ;-)
11133 Test does not yet pass because we can't handle OOM in
11134 _dbus_transport_messages_pending (basically,
11135 dbus_connection_preallocate_send() does not prealloc the write
11136 watch). To fix this, I think we need to add new stuff to
11137 set_watch_functions, namely a SetEnabled function so we can alloc
11138 the watch earlier, then enable it later.
11140 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11141 dbus-memory.c to the convenience lib
11143 * bus/test.c: rename some static functions to keep them clearly
11144 distinct from stuff in connection.c. Handle client disconnection.
11146 2003-03-14 Havoc Pennington <hp@pobox.com>
11148 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11149 transport, tests more of the real codepath. Set up clients
11150 with bus_setup_debug_client.
11152 * bus/test.c (bus_setup_debug_client): function to set up debug
11153 "clients" on the main loop
11155 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11158 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11161 * dbus/dbus-server-debug.c: support a debug server based on pipes
11163 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11164 (_dbus_close): new function
11166 * configure.in: check for socketpair
11168 2003-03-14 Havoc Pennington <hp@redhat.com>
11170 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11173 * dbus/dbus-transport-debug.c: rework this a good bit to be
11174 less complicated. hopefully still works.
11176 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11179 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11182 * dbus/dbus-message.c (dbus_message_copy): rename from
11183 dbus_message_new_from_message, fix it up to copy
11184 all the message fields, add test case
11186 * bus/dispatch.c (bus_dispatch_test): add some more test code,
11187 not quite passing yet
11189 2003-03-14 Havoc Pennington <hp@pobox.com>
11191 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11192 until no work remains" in test code. (the large diff here
11193 is just code movement, no actual changes)
11195 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11196 1, no point waiting around for test code.
11197 (_dbus_server_debug_accept_transport): unref the timeout
11198 after adding it (right?)
11200 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11202 2003-03-13 Havoc Pennington <hp@redhat.com>
11204 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11207 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11210 * dbus/dbus-connection.h: Make AddWatchFunction and
11211 AddTimeoutFunction return a bool so they can fail on out-of-memory
11213 * bus/bus.c (bus_context_new): set up timeout handlers
11215 * bus/connection.c (bus_connections_setup_connection): set up
11218 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11221 * bus/bus.c (bus_context_new): adapt to changes
11223 * bus/connection.c: adapt to changes
11225 * test/watch.c: adapt to DBusWatch changes
11227 * bus/dispatch.c (bus_dispatch_test): started adding this but
11230 2003-03-14 Anders Carlsson <andersca@codefactory.se>
11232 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11234 2003-03-13 Havoc Pennington <hp@pobox.com>
11236 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11237 set up a test framework as for the library
11239 2003-03-12 Havoc Pennington <hp@pobox.com>
11241 Throughout: purge global variables, introduce BusActivation,
11242 BusConnections, BusRegistry, etc. objects instead.
11244 * bus/bus.h, bus/bus.c: introduce BusContext as a global
11247 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11248 going to redo this a bit differently I think
11250 2003-03-12 Havoc Pennington <hp@redhat.com>
11252 Mega-patch that gets the message bus daemon initially handling
11253 out-of-memory. Work still needed. Also lots of random
11254 moving stuff to DBusError instead of ResultCode.
11256 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11258 * dbus/dbus-connection.c
11259 (dbus_connection_send_with_reply_and_block): use DBusError
11261 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11264 * dbus/dbus-connection.c (dbus_connection_send): drop the result
11265 code here, as the only failure possible is OOM.
11267 * bus/connection.c (bus_connection_disconnect):
11268 rename bus_connection_disconnected as it's a notification only
11270 * bus/driver.c (bus_driver_handle_acquire_service): don't free
11271 "name" on get_args failure, should be done by get_args;
11272 don't disconnect client for bad args, just return an error.
11273 (bus_driver_handle_service_exists): ditto
11275 * bus/services.c (bus_services_list): NULL-terminate returned array
11277 * bus/driver.c (bus_driver_send_service_lost)
11278 (bus_driver_send_service_acquired): send messages from driver to a
11279 specific client to the client's unique name, not to the broadcast
11282 * dbus/dbus-message.c (decode_header_data): reject messages that
11283 contain no name field
11284 (_dbus_message_get_client_serial): rename to
11285 dbus_message_get_serial and make public
11286 (_dbus_message_set_serial): rename from set_client_serial
11287 (_dbus_message_set_reply_serial): make public
11288 (_dbus_message_get_reply_serial): make public
11290 * bus/connection.c (bus_connection_foreach): allow stopping
11291 iteration by returning FALSE from foreach function.
11293 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11294 (dbus_connection_free_preallocated_send)
11295 (dbus_connection_preallocate_send): new API for sending a message
11296 without possibility of malloc failure.
11297 (dbus_connection_send_message): rename to just
11298 dbus_connection_send (and same for whole function family)
11300 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11302 * dbus/dbus-sysdeps.c (_dbus_exit): new function
11304 * bus/activation.c: handle/return errors
11306 * dbus/dbus-errors.h: add more DBUS_ERROR #define
11308 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11309 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11310 (_dbus_result_from_errno): move to this file
11312 2003-03-10 Anders Carlsson <andersca@codefactory.se>
11314 * dbus/dbus-marshal.c:
11315 (_dbus_marshal_set_string):
11316 Take a length argument so we can marshal the correct string
11319 (_dbus_marshal_dict), (_dbus_demarshal_dict),
11320 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11321 (_dbus_marshal_test):
11322 * dbus/dbus-marshal.h:
11323 Add support for marshalling and demarshalling dicts.
11325 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11326 Add support for TYPE DICT.
11328 * dbus/dbus-message.c: (set_string_field):
11329 Adjust header padding.
11331 (dbus_message_append_args_valist), (dbus_message_append_dict),
11332 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11333 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11334 (check_message_handling), (check_have_valid_message):
11335 * dbus/dbus-message.h:
11336 Add functions for setting and getting dicts.
11338 * dbus/dbus-protocol.h:
11339 Add DBUS_TYPE_DICT.
11344 * doc/dbus-specification.sgml:
11345 Add information about how dicts are marshalled.
11347 * test/data/invalid-messages/dict-with-nil-value.message:
11348 * test/data/invalid-messages/too-short-dict.message:
11349 * test/data/valid-messages/dict-simple.message:
11350 * test/data/valid-messages/dict.message:
11351 Add sample messages containing dicts.
11353 2003-03-08 Anders Carlsson <andersca@codefactory.se>
11355 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11357 2003-03-07 Anders Carlsson <andersca@codefactory.se>
11359 * dbus/Makefile.am:
11360 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11361 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11362 (dbus_dict_set_int32), (dbus_dict_set_uint32),
11363 (dbus_dict_set_double), (dbus_dict_set_string),
11364 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11365 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11366 (dbus_dict_set_string_array), (_dbus_dict_test):
11367 * dbus/dbus-dict.h:
11368 Fix according to comments from Havoc.
11370 2003-03-06 Michael Meeks <michael@server.home>
11372 * configure.in: if we don't have kde-config, disable have_qt.
11374 2003-03-07 Anders Carlsson <andersca@codefactory.se>
11376 * dbus/Makefile.am:
11379 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11380 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11381 (dbus_dict_remove), (dbus_dict_get_value_type),
11382 (dbus_dict_get_keys), (dbus_dict_put_boolean),
11383 (dbus_dict_put_int32), (dbus_dict_put_uint32),
11384 (dbus_dict_put_double), (dbus_dict_put_string),
11385 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11386 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11387 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11388 (dbus_dict_get_int32), (dbus_dict_get_uint32),
11389 (dbus_dict_get_double), (dbus_dict_get_string),
11390 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11391 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11392 (dbus_dict_get_string_array), (_dbus_dict_test):
11393 * dbus/dbus-dict.h:
11394 Add DBusDict implementation
11396 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11397 * dbus/dbus-test.h:
11398 Add _dbus_dict_test
11400 2003-03-04 Havoc Pennington <hp@pobox.com>
11402 * test/data/auth/*: adapt to changes
11404 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11405 USERID_BASE64 and change USERNAME_BASE64 to put in username not
11408 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11409 more stuff from being in a context name, to make the protocol
11410 simpler to deal with
11412 * dbus/dbus-errors.c (dbus_error_has_name): new function
11413 (dbus_error_is_set): new function
11415 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11416 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11418 * dbus/dbus-connection.c (dbus_connection_flush): also read
11419 messages during a flush operation
11421 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11423 2003-03-05 Anders Carlsson <andersca@codefactory.se>
11425 * configure.in: Check for gethostbyname on Solaris.
11427 * dbus/dbus-transport.c: (_dbus_transport_open):
11428 Remove duplicate "tcp" entry.
11430 * doc/dbus-specification.sgml:
11431 Clarify some things.
11433 2003-03-05 Anders Carlsson <andersca@codefactory.se>
11435 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11436 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11437 (_dbus_keyring_test):
11438 * dbus/dbus-md5.c: (_dbus_md5_compute):
11439 * dbus/dbus-sha.c: (_dbus_sha_compute):
11442 2003-03-05 Anders Carlsson <andersca@codefactory.se>
11444 * README: Add some things.
11446 2003-03-04 Anders Carlsson <andersca@codefactory.se>
11448 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11449 after case DBUS_TYPE_BOOELAN.
11451 2003-03-02 Havoc Pennington <hp@pobox.com>
11453 * test/break-loader.c (randomly_set_extreme_ints): add test that
11454 sets really huge and small integers
11456 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11457 that length of boolean array fits in the string, and that
11458 string has room for boolean value in single-bool case.
11460 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11461 optional value to "ALIGN" command which is what to fill the
11464 * test/data/valid-messages/no-padding.message: add regression
11465 test for the message padding problem
11467 2003-03-02 Havoc Pennington <hp@pobox.com>
11469 * dbus/dbus-message.c (decode_header_data): fix to always init
11470 message_padding, from Benjamin Dauvergne
11472 2003-03-02 Havoc Pennington <hp@pobox.com>
11474 * configure.in: 0.5
11478 2003-03-01 Joe Shaw <joe@assbarn.com>
11480 * configure.in: Check for "struct cmsgcred" and try to access its
11481 members for BSD-like unices.
11483 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11484 _dbus_read_credentials_unix_socket().
11485 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11486 read() for reading the credential byte off the unix socket. Use
11487 struct cmsgcred on systems that support it.
11489 2003-02-27 Alexander Larsson <alexl@redhat.com>
11491 * glib/Makefile.am:
11493 Make gthreads-2.0 dependency optional. Don't build thread test if
11496 2003-02-27 Havoc Pennington <hp@pobox.com>
11498 * dbus/dbus-connection.c
11499 (dbus_connection_send_message_with_reply_and_block): fix doh!
11500 doh! doh! bug that resulted in never removing a reply from the
11501 queue, no wonder we called get_reply_serial so much ;-)
11503 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11504 and client serial instead of demarshaling them every time
11506 2003-02-27 Havoc Pennington <hp@pobox.com>
11508 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11509 more inlined, using dbus-string-private.h, speeds things up
11512 * dbus/dbus-string.c (_dbus_string_free): apply align offset
11513 when freeing the string
11514 (_dbus_string_steal_data): fix for align offset
11515 (undo_alignment): new function
11517 2003-02-26 Havoc Pennington <hp@redhat.com>
11519 All kinds of audit fixes from Owen, plus initial attempt to
11520 handle unaligned memory returned from malloc.
11522 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11523 leave room for align_offset and nul byte
11524 (fixup_alignment): function to track an align_offset and
11525 ensure real->str is aligned
11526 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11527 to allow a nul byte plus align offset
11528 (_dbus_string_lock): fix overflow issue
11529 (_dbus_string_init_const_len): add assertions on sanity of len,
11530 assign allocated to be ALLOCATION_PADDING larger than len
11531 (set_length): fixup the overflow handling
11532 (_dbus_string_get_data_len): fix overflow in assertion
11533 (open_gap): detect overflow in size of gap to be opened
11534 (_dbus_string_lengthen): add overflow check
11535 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11536 (_dbus_string_append): add overflow check
11537 (_dbus_string_append_unichar): overflow
11538 (_dbus_string_delete): fix overflow in assertion
11539 (_dbus_string_copy_len): overflow in assertion
11540 (_dbus_string_replace_len): overflows in assertions
11541 (_dbus_string_find): change to implement in terms of
11542 _dbus_string_find_to
11543 (_dbus_string_find_to): assorted fixage
11544 (_dbus_string_equal_c_str): assert c_str != NULL,
11545 fix logic so the function works
11546 (_dbus_string_ends_with_c_str): fix overflow thingy
11547 (_dbus_string_base64_encode): overflow fix
11548 (_dbus_string_validate_ascii): overflow
11549 (_dbus_string_validate_nul): overflow
11551 2003-02-26 Havoc Pennington <hp@redhat.com>
11553 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11555 2003-02-26 Alexander Larsson <alexl@redhat.com>
11558 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11560 * dbus/dbus-connection.c:
11561 * dbus/dbus-connection.h:
11562 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11563 Add dbus_connection_set_wakeup_main_function and use it when queueing
11564 incoming and outgoing messages.
11567 * dbus/dbus-dataslot.c:
11568 Threadsafe usage of DBusDataSlotAllocator
11570 * dbus/dbus-message.c: (dbus_message_get_args_iter):
11573 * dbus/dbus-server-unix.c:
11576 * glib/dbus-gmain.c:
11577 Implement the new wakeup functions for glib.
11579 * glib/Makefile.am:
11580 * glib/test-thread-client.c:
11581 * glib/test-thread-server.c:
11582 * glib/test-thread.h:
11583 Initial cut at some thread test code. Not really done yet.
11585 2003-02-26 Havoc Pennington <hp@pobox.com>
11587 * dbus/dbus-connection.c
11588 (dbus_connection_send_message_with_reply_and_block): fix crash
11589 where we ref'd the outgoing message instead of the returned reply
11591 * dbus/dbus-transport-unix.c (do_authentication): check read watch
11592 at the end of this function, so if we didn't need to read for
11593 authentication, we reinstall it for receiving messages
11595 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11596 a NULL sender for peer-to-peer case
11598 * dbus/dbus-transport-unix.c (check_read_watch): handle
11599 !authenticated case correctly
11601 * glib/dbus-gmain.c: add support for DBusServer
11603 * dbus/dbus-server.c: add data slot support
11605 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11606 return values and handle errors
11608 * dbus/dbus-dataslot.c: factor out the data slot stuff from
11611 * Doxyfile.in (INPUT): add glib subdir
11613 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11614 setup_with_g_main instead of hookup_with_g_main; write docs
11616 2003-02-24 Anders Carlsson <andersca@codefactory.se>
11618 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11619 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11620 * dbus/dbus-message.c: (dbus_message_append_boolean),
11621 (dbus_message_append_boolean_array),
11622 (dbus_message_get_args_valist), (_dbus_message_test):
11623 * dbus/dbus-message.h:
11624 * doc/dbus-specification.sgml:
11625 Various fixes as pointed out by Havoc.
11627 * test/data/invalid-messages/bad-boolean-array.message:
11628 * test/data/invalid-messages/bad-boolean.message:
11629 Add invalid boolean value test cases.
11631 2003-02-24 Anders Carlsson <andersca@codefactory.se>
11633 * dbus/dbus-internals.c: (_dbus_type_to_string):
11634 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11635 (_dbus_marshal_validate_arg):
11636 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11637 * dbus/dbus-message.c: (dbus_message_append_args_valist),
11638 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11639 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11640 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11641 (dbus_message_iter_get_double),
11642 (dbus_message_iter_get_boolean_array), (message_iter_test):
11643 * dbus/dbus-message.h:
11644 * dbus/dbus-protocol.h:
11645 * doc/dbus-specification.sgml:
11646 * test/data/valid-messages/lots-of-arguments.message:
11647 Add support for boolean and boolean array types.
11649 2003-02-23 Havoc Pennington <hp@pobox.com>
11651 * dbus/dbus-keyring.c: finish most of this implementation and
11654 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11655 these barf if the error isn't cleared to NULL
11657 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11658 (_dbus_create_directory): new function
11660 * dbus/dbus-errors.c (dbus_set_error): fix warning
11662 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11663 (_dbus_string_hex_decode): new function
11664 (test_hex_roundtrip): test code
11666 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11668 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11670 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11671 the save-to-temp/rename trick to atomically write the new file
11672 (_dbus_string_parse_uint): new function
11674 2003-02-22 Havoc Pennington <hp@pobox.com>
11676 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11678 2003-02-22 Havoc Pennington <hp@pobox.com>
11680 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11681 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11683 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11685 * dbus/test/data/sha-1: add US government test suite for SHA-1
11687 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11689 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11690 Make string arrays NULL-terminated.
11692 * dbus/dbus-memory.c: (dbus_free_string_array):
11693 * dbus/dbus-memory.h:
11694 New function for freeing NULL-terminated string arrays.
11696 * dbus/dbus-message-builder.c: (append_quoted_string),
11697 (_dbus_message_data_load):
11698 Add support for array types.
11700 * dbus/dbus-message.c: (check_message_handling):
11701 Add more types as test cases.
11703 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11704 (_dbus_string_parse_double):
11705 Add the start offset to the end offset.
11707 * test/data/valid-messages/lots-of-arguments.message:
11708 New test message with lots of arguments.
11710 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11712 * dbus/dbus-message.c: (dbus_message_append_nil),
11713 (dbus_message_append_int32), (dbus_message_append_uint32),
11714 (dbus_message_append_double), (dbus_message_append_string),
11715 (dbus_message_append_int32_array),
11716 (dbus_message_append_uint32_array),
11717 (dbus_message_append_double_array),
11718 (dbus_message_append_byte_array),
11719 (dbus_message_append_string_array):
11720 Fix all out-of-memory handling in these functions.
11722 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11724 * dbus/dbus-message.c: (dbus_message_append_nil):
11727 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11729 * dbus/dbus-message.c: (dbus_message_append_args_valist),
11730 (dbus_message_append_nil), (dbus_message_append_int32_array),
11731 (dbus_message_append_uint32_array),
11732 (dbus_message_append_double_array),
11733 (dbus_message_append_byte_array),
11734 (dbus_message_append_string_array), (dbus_message_get_args_valist),
11735 (dbus_message_iter_get_int32_array),
11736 (dbus_message_iter_get_uint32_array),
11737 (dbus_message_iter_get_double_array),
11738 (dbus_message_iter_get_byte_array),
11739 (dbus_message_iter_get_string_array):
11741 * dbus/dbus-message.h:
11742 Add functions for appending and getting arrays.
11744 2003-02-21 Anders Carlsson <andersca@codefactory.se>
11746 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11747 element size at least 8 bytes, fixes mempool tests on
11750 2003-02-20 Alexander Larsson <alexl@redhat.com>
11752 * dbus/dbus-transport-unix.c (unix_do_iteration):
11753 Unlock the connection mutex during a blocking select call.
11754 Add todo about how we need a way to wake up the select.
11756 * dbus/dbus-connection-internal.h:
11757 * dbus/dbus-connection.c:
11758 Add _dbus_connection_lock and _dbus_connection_unlock.
11760 2003-02-19 Havoc Pennington <hp@pobox.com>
11762 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11763 Doxyfile.in, not Doxyfile
11765 * dbus/dbus-keyring.c: do some hacking on this
11767 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11769 * dbus/dbus-errors.c (dbus_set_error_const): do not call
11771 (dbus_set_error): remove dbus_error_init, check for message ==
11772 NULL *before* we sprintf into it, and add @todo about including
11773 system headers in this file
11775 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11777 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11779 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11780 get various bits of user information based on either username
11782 (_dbus_homedir_from_username): new function
11784 2003-02-19 Anders Carlsson <andersca@codefactory.se>
11787 Add check for nonposix getpwnam_r
11789 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11790 Align the pool element size to a sizeof (void *) boundary.
11792 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11793 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11794 General Solaris fixes.
11796 * test/data/valid-messages/simplest-manual.message:
11797 Explicitly state that we want little-endian packing.
11799 2003-02-19 Mikael Hallendal <micke@codefactory.se>
11801 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11803 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
11804 Added to create a transport connecting using a tcp/ip socket.
11806 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
11807 to a tcp socket at given host and port.
11808 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
11811 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
11813 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
11814 Added to create a server listening on a TCP/IP socket.
11816 2003-02-19 Havoc Pennington <hp@pobox.com>
11818 Throughout: mop up all the Doxygen warnings and undocumented
11821 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
11822 to search any paths.
11824 * dbus/dbus-threads.c: move global mutex initializers to
11825 dbus-internals.h, multiple prototypes was confusing doxygen
11826 besides being kind of ugly
11828 * Doxyfile (PREDEFINED): have Doxygen define
11829 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
11830 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
11831 (do not abuse the feature! it's for stuff like the autogenerated
11832 macros in dbus-md5.c, not just for things you don't feel like
11835 2003-02-18 Havoc Pennington <hp@pobox.com>
11837 * dbus/dbus-string.c (_dbus_string_zero): new function
11839 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
11840 wrap it in some dbus-friendly API
11842 * dbus/dbus-types.h: add 16-bit types
11844 2003-02-18 Joe Shaw <joe@assbarn.com>
11846 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
11847 credentials from our currently running process.
11848 (get_word): Fix a buglet where we were copying the entire length
11849 instead of relative to our position.
11851 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
11852 keys on the stack... it's 640k of data.
11854 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
11855 read the credentials byte off the socket, even if we don't have
11857 (_dbus_poll): Implement poll() using select() for systems which
11860 * glib/test-dbus-glib.c (main): Print out an error if no
11861 parameters are given.
11863 * test/data/auth/fallback.auth-script: Added. Tests that a client
11864 can fallback to a secondary auth mechanism if the first fails.
11866 2003-02-18 Havoc Pennington <hp@pobox.com>
11868 * AUTHORS: add Alex
11870 2003-02-17 Havoc Pennington <hp@pobox.com>
11872 * doc/dbus-specification.sgml: lots of cosmetic
11873 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
11874 env variable to DBUS_BUS_ADDRESS, s/client/application/,
11875 s/server/bus/ (except in authentication section). Add a section
11876 "Message Bus Message Routing"
11878 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
11884 2003-02-17 Anders Carlsson <andersca@codefactory.se>
11886 * doc/dbus-specification.sgml:
11887 Specification updates.
11889 2003-02-17 Anders Carlsson <andersca@codefactory.se>
11891 * bus/activation.c: (bus_activation_init), (child_setup),
11892 (bus_activation_activate_service):
11893 * bus/activation.h:
11894 * bus/main.c: (main):
11895 Set DBUS_ADDRESS environment variable.
11897 * dbus/dbus-errors.c: (dbus_set_error):
11898 Don't use va_copy since that's a C99 feature.
11900 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
11901 (_dbus_spawn_async):
11902 * dbus/dbus-sysdeps.h:
11903 Add child_setup_func to _dbus_spawn_async.
11905 * doc/dbus-specification.sgml:
11906 Update specification.
11908 * test/spawn-test.c: (setup_func), (main):
11911 2003-02-17 Alexander Larsson <alexl@redhat.com>
11913 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
11916 2003-02-17 Anders Carlsson <andersca@codefactory.se>
11920 * doc/dbus-test-plan.sgml:
11921 Add test plan document.
11923 * test/Makefile.am:
11926 2003-02-17 Anders Carlsson <andersca@codefactory.se>
11928 * dbus/dbus-message.c: (decode_header_data),
11929 (_dbus_message_loader_return_buffer):
11930 Set the header padding amount when loading a message.
11932 2003-02-16 Anders Carlsson <andersca@codefactory.se>
11934 * bus/dispatch.c: (send_one_message):
11935 Only send broadcast messages to registered connections.
11937 * dbus/dbus-message.c: (dbus_message_name_is):
11938 * dbus/dbus-message.h:
11939 New convenience function.
11941 * dbus/dbus-transport-debug.c: (do_reading):
11942 Only dispatch one message per run.
11944 * test/Makefile.am:
11945 * test/bus-test.c: (new_connection_callback), (die),
11946 (test_hello_client1_handler), (test_hello_client2_handler),
11947 (test_hello_replies), (main):
11949 * test/bus-test-loop.[ch]:
11952 2003-02-16 Havoc Pennington <hp@pobox.com>
11954 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11955 backward conditional
11957 2003-02-16 Alexander Larsson <alexl@redhat.com>
11959 * dbus/dbus-connection.c:
11960 Implement sent_message_with_reply. (with_reply_and block is still
11962 Made dispatch_message not lose message if OOM.
11964 * dbus/dbus-errors.h:
11965 Add NoReply error (for reply timeouts).
11967 2003-02-16 Alexander Larsson <alexl@redhat.com>
11969 * dbus/dbus-hash.c (_dbus_hash_table_unref):
11970 Actually free keys and values when destroying hashtable.
11972 2003-02-16 Anders Carlsson <andersca@codefactory.se>
11974 * dbus/dbus-auth.c: (client_try_next_mechanism):
11977 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
11978 Return TRUE if there's no thread implementation around.
11980 * glib/dbus-gmain.c: (free_source),
11981 (dbus_connection_hookup_with_g_main):
11982 Make sure to remove the GSource when the connection is finalized.
11984 2003-02-16 Anders Carlsson <andersca@codefactory.se>
11986 * bus/dispatch.c: (bus_dispatch_message_handler):
11987 * dbus/dbus-errors.h:
11988 Return an error if someone tries to send a message to a service
11989 that doesn't exist.
11991 2003-02-16 Anders Carlsson <andersca@codefactory.se>
11993 * bus/activation.c: (load_directory), (bus_activation_init),
11994 (bus_activation_activate_service):
11995 * bus/activation.h:
11997 (bus_driver_handle_activate_service), (bus_driver_handle_message):
11998 More work on the activation handling.
12000 * dbus/dbus-errors.h:
12001 Add some error messages
12003 * dbus/dbus-message.c: (dbus_message_new_error_reply):
12004 * dbus/dbus-message.h:
12005 New function that creates an error message.
12007 * dbus/dbus-protocol.h:
12008 Add ACTIVATE_SERVER message.
12010 * dbus/dbus-server-unix.c: (unix_handle_watch),
12011 (_dbus_server_new_for_domain_socket):
12012 Call _dbus_fd_set_close_on_exec.
12014 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12015 (_dbus_spawn_async), (_dbus_disable_sigpipe),
12016 (_dbus_fd_set_close_on_exec):
12017 * dbus/dbus-sysdeps.h:
12018 Add _dbus_fd_set_close_on exec function. Also add function that checks
12019 that all open fds are set to close-on-exec and warns otherwise.
12021 * dbus/dbus-transport-unix.c:
12022 (_dbus_transport_new_for_domain_socket):
12023 Call _dbus_fd_set_close_on_exec.
12025 2003-02-16 Havoc Pennington <hp@pobox.com>
12027 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12028 allow people to avoid setting SIGPIPE to SIG_IGN
12029 (_dbus_connection_new_for_transport): disable SIGPIPE unless
12030 we've been asked not to
12032 2003-02-15 Anders Carlsson <andersca@codefactory.se>
12034 * dbus/dbus-list.c: (_dbus_list_append_link),
12035 (_dbus_list_prepend_link):
12036 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12040 2003-02-15 Anders Carlsson <andersca@codefactory.se>
12043 * bus/activation.c: (bus_activation_entry_free),
12044 (add_desktop_file_entry), (load_directory), (bus_activation_init):
12045 * bus/activation.h:
12046 * bus/main.c: (main):
12047 Add simple activation support, doesn't work yet though.
12049 2003-02-15 Zack Rusin <zack@kde.org>
12051 * qt/dbus-qthread.cpp: small casting fix
12053 2003-02-15 Anders Carlsson <andersca@codefactory.se>
12055 * dbus/dbus-errors.c: (dbus_set_error):
12056 * dbus/dbus-errors.h:
12057 Add a few errors and make dbus_set_error void.
12059 * dbus/dbus-sysdeps.c:
12060 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12061 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12062 * dbus/dbus-sysdeps.h:
12063 Add _dbus_spawn_async.
12065 * test/spawn-test.c: (main):
12066 Test for _dbus_spawn_async.
12068 2003-02-15 Anders Carlsson <andersca@codefactory.se>
12070 * dbus/dbus-internals.h:
12071 Fix build without tests.
12073 * dbus/dbus-list.c: (alloc_link):
12074 Fix a segfault when a malloc fails.
12076 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12077 (dbus_malloc0), (dbus_realloc):
12078 Add support for malloc debugging.
12080 2003-02-15 Alexander Larsson <alexl@redhat.com>
12082 * dbus/dbus-threads.c:
12083 * dbus/dbus-threads.h:
12084 Add condvars. Remove static mutext from API.
12085 Implement static mutexes by initializing them from threads_init.
12087 * glib/dbus-gthread.c:
12088 * qt/dbus-qthread.cpp:
12089 Update with the thread api changes.
12092 * dbus/dbus-list.c:
12093 * dbus/dbus-list.h:
12094 Turn StaticMutex into normal mutex + init function.
12095 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12096 _dbus_list_append_link, _dbus_list_prepend_link
12099 * dbus/dbus-sysdeps.c:
12100 * dbus/dbus-sysdeps.h:
12101 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12102 _dbus_atomic_dec. Only slow fallback implementation at the moment.
12104 * dbus/dbus-protocol.h:
12105 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12107 * dbus/dbus-message.c:
12108 Make ref/unref atomic.
12111 * dbus/dbus-connection-internal.h:
12112 * dbus/dbus-connection.c:
12113 * dbus/dbus-connection.h:
12115 Change _peek to _borrow,_return & _steal_borrowed.
12116 Change disconnect callback to event.
12117 Make dbus_connection_dispatch_messages reentrant.
12119 * dbus/dbus-transport.c:
12120 Don't ref the connection on calls to the transport
12123 * dbus/dbus-message-handler.c:
12126 * glib/dbus-gmain.c:
12127 Don't use peek_message anymore
12129 * test/Makefile.am:
12130 * test/debug-thread.c:
12131 * test/debug-thread.h:
12132 Simple thread implementation that asserts() on deadlocks in
12133 single-threaded code.
12136 (main) Call debug_threads_init.
12139 Use disconnect message instead of disconnect callback.
12141 * bus/connection.c:
12142 * bus/connection.h:
12143 Don't call dbus_connection_set_disconnect_function. Instead export
12144 bus_connection_disconnect.
12147 Call bus_connection_disconnect when we get a disconnected message.
12149 2003-02-15 Havoc Pennington <hp@pobox.com>
12151 * dbus/dbus-message.c (dbus_message_new): fool around with the
12154 2003-02-14 Havoc Pennington <hp@pobox.com>
12156 * dbus/dbus-mempool.c: fail if the debug functions so indicate
12158 * dbus/dbus-memory.c: fail if the debug functions indicate we
12161 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12162 (_dbus_decrement_fail_alloc_counter): debug functions to
12163 simulate memory allocation failures
12165 2003-02-14 Havoc Pennington <hp@pobox.com>
12167 * dbus/dbus-errors.h (struct DBusError): add a word of padding
12170 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12172 * bus/driver.c: (bus_driver_handle_hello):
12174 * bus/services.c: (bus_service_lookup):
12175 Reorder message sending so we get a more sane order.
12177 * test/bus-test.c: (message_handler):
12180 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12182 * bus/driver.c: (bus_driver_send_service_deleted),
12183 (bus_driver_send_service_created), (bus_driver_send_service_lost),
12184 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12185 (bus_driver_send_welcome_message),
12186 (bus_driver_handle_list_services),
12187 (bus_driver_handle_acquire_service),
12188 (bus_driver_handle_service_exists):
12189 * dbus/dbus-bus.c: (dbus_bus_register_client),
12190 (dbus_bus_acquire_service), (dbus_bus_service_exists):
12191 * dbus/dbus-errors.c: (dbus_result_to_string):
12192 * dbus/dbus-errors.h:
12193 * dbus/dbus-message.c: (dbus_message_append_args),
12194 (dbus_message_append_args_valist), (dbus_message_get_args),
12195 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12196 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12197 (dbus_message_iter_get_byte_array),
12198 (dbus_message_iter_get_string_array), (message_iter_test),
12199 (check_message_handling), (_dbus_message_test):
12200 * dbus/dbus-message.h:
12201 * test/bus-test.c: (main):
12202 Change fields to arguments in messages, so that they won't be
12203 confused with header fields.
12205 * glib/test-dbus-glib.c: (main):
12206 Remove append_fields from hello message.
12208 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12210 * dbus/dbus-errors.c:
12211 * dbus/dbus-message.c:
12212 * dbus/dbus-string.c:
12213 Documentation fixes.
12215 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12217 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12219 Implement support for timeouts in dbus-glib.
12221 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12223 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12224 * dbus/dbus-message.c: (process_test_subdir):
12225 * test/break-loader.c: (find_breaks_based_on):
12226 Plug some memory leaks.
12228 2003-02-13 Richard Hult <rhult@codefactory.se>
12230 * bus/main.c: Fix build.
12232 * dbus/dbus-errors.h:
12233 * dbus/dbus-errors.c: Fix copyright for Anders.
12235 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12240 * bus/connection.c: (bus_connection_foreach):
12243 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12244 (unescape_string), (new_section), (parse_section_start),
12245 (parse_key_value), (report_error), (bus_desktop_file_load),
12246 (bus_desktop_file_get_string):
12247 * bus/desktop-file.h:
12248 Use DBusError for error reporting.
12250 * bus/dispatch.c: (send_one_message),
12251 (bus_dispatch_message_handler):
12252 * bus/driver.c: (bus_driver_send_service_deleted),
12253 (bus_driver_send_service_created), (bus_driver_send_service_lost),
12254 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12255 (bus_driver_send_welcome_message),
12256 (bus_driver_handle_list_services),
12257 (bus_driver_handle_acquire_service),
12258 (bus_driver_handle_service_exists):
12259 * bus/loop.c: (bus_loop_run):
12261 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12263 * bus/utils.c: (bus_wait_for_memory):
12265 New files with general utility functions.
12267 * dbus/dbus-internals.h:
12268 Remove _DBUS_HANDLE_OOM.
12270 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12272 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12273 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12274 * dbus/dbus-errors.h:
12275 Add DBusError structure.
12277 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12279 * test/data/valid-messages/standard-acquire-service.message:
12280 * test/data/valid-messages/standard-hello.message:
12281 * test/data/valid-messages/standard-list-services.message:
12282 * test/data/valid-messages/standard-service-exists.message:
12283 Add some standard messages.
12285 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12287 * bus/driver.c: (bus_driver_send_welcome_message),
12288 (bus_driver_handle_list_services),
12289 (bus_driver_handle_acquire_service),
12290 (bus_driver_handle_service_exists), (bus_driver_handle_message):
12291 Update for API changes in libdbus.
12293 * dbus/dbus-message.c: (dbus_message_new_reply):
12294 * dbus/dbus-message.h:
12295 Remove the name argument. The spec states that replies shouldn't
12298 2003-02-13 Anders Carlsson <andersca@codefactory.se>
12300 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12301 (report_error), (bus_desktop_file_load), (lookup_section),
12302 (lookup_line), (bus_desktop_file_get_raw),
12303 (bus_desktop_file_get_string):
12304 * bus/desktop-file.h:
12305 Some fixes, and new functions for getting a key value from a section.
12307 2003-02-13 Havoc Pennington <hp@pobox.com>
12309 * test/data/auth/fail-after-n-attempts.auth-script: new test
12311 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12314 2003-02-13 Havoc Pennington <hp@pobox.com>
12316 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12317 dbus_credentials_match were backward
12319 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12320 NO_CREDENTIALS and ROOT_CREDENTIALS
12322 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12323 into here. Never process more commands after we've reached an
12324 end state; store further data as unused bytes.
12326 * test/data/auth/*: add more auth tests
12328 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12329 command to match exact string and EXPECT_UNUSED to match unused
12332 * test/Makefile.am (dist-hook): fix to dist all the test stuff
12334 2003-02-12 Havoc Pennington <hp@pobox.com>
12336 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12337 \r off of popped lines
12339 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12342 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12345 2003-02-12 Havoc Pennington <hp@pobox.com>
12347 * dbus/Makefile.am: remove break-loader from the build, since it
12350 * configure.in: add --enable-gcov to turn on coverage profiling
12351 flags and disable optimization
12353 2003-02-10 Havoc Pennington <hp@pobox.com>
12355 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12356 initial cut at test framework for DBusAuth from laptop.
12357 Doesn't quite work yet but it compiles and I need to get
12358 it off the 266mhz laptop. ;-)
12360 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12361 fix a memleak in error case
12363 2003-02-12 Anders Carlsson <andersca@codefactory.se>
12366 * bus/desktop-file.c:
12367 * bus/desktop-file.h:
12368 Add a desktop file parser.
12370 2003-02-11 Zack Rusin <zack@kde.org>
12372 * qt/message.[h|cpp]: sample implementation
12373 of the KDE wrapper for DBusMessage
12375 2003-02-09 Zack Rusin <zack@kde.org>
12377 * test/bus-test.c: make_it_compile
12378 * doc/dbus-specification.sgml: minimal semantic fix
12380 2003-02-06 Anders Carlsson <andersca@codefactory.se>
12386 2003-02-06 Anders Carlsson <andersca@codefactory.se>
12388 * dbus/Makefile.am:
12389 * dbus/dbus-break-loader.c:
12390 * test/Makefile.am:
12391 * test/break-loader.c:
12392 Move dbus-break-loader to test/ and rename it to break-loader.
12394 2003-02-02 Havoc Pennington <hp@pobox.com>
12396 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12397 for code to manage cookies in your home directory
12399 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12401 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12402 to authenticate, then disconnect the client.
12404 2003-02-03 Alexander Larsson <alexl@redhat.com>
12406 * dbus/dbus-message.c (dbus_message_append_fields):
12409 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12411 * doc/dbus-specification.sgml:
12412 Update address format section.
12414 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12416 * test/Makefile.am:
12417 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12418 (message_handler), (new_connection_callback), (loop_quit),
12419 (loop_run), (main):
12422 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12424 * bus/driver.c: (bus_driver_handle_service_exists):
12425 Simplify the code a bit.
12427 * dbus/dbus-bus.c: (dbus_bus_service_exists):
12430 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12433 Add libdbus-daemon.la and link to it.
12435 2003-02-01 James Willcox <jwillcox@gnome.org>
12437 * bus/driver.c: (bus_driver_handle_own_service):
12438 Actually include the service reply code in the message.
12440 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12442 * bus/driver.c: (bus_driver_handle_service_exists):
12443 Don't unref the incoming message.
12445 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12447 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12449 2003-02-02 Anders Carlsson <andersca@codefactory.se>
12451 * dbus/dbus-server.c: (dbus_server_listen):
12452 * dbus/dbus-transport.c: (_dbus_transport_open):
12453 ifdef out the calls to the debug transport and server.
12455 2003-02-02 Alexander Larsson <alexl@redhat.com>
12457 * dbus/dbus-watch.c (dbus_watch_get_flags):
12458 Add note in the docs that ERROR or HANGUP won't be returned
12459 and are assumed always on.
12461 * glib/dbus-gmain.c (add_watch):
12462 Always add IO_ERR | IO_HUP
12464 * dbus/dbus-message.h:
12465 Add semicolon after dbus_message_iter_get_string_array().
12466 Makes qt code build again
12468 2003-02-01 Anders Carlsson <andersca@codefactory.se>
12470 * bus/driver.c: (create_unique_client_name),
12471 (bus_driver_handle_hello):
12472 Don't take a name, just use a numeric id to identify
12475 * dbus/Makefile.am:
12476 * dbus/dbus-bus.c: (dbus_bus_register_client),
12477 (dbus_bus_acquire_service), (dbus_bus_service_exists):
12479 Add new convenience functions for communicating with the bus.
12481 * dbus/dbus-message.h:
12483 * dbus/dbus-protocol.h:
12486 2003-02-01 Alexander Larsson <alexl@redhat.com>
12488 * dbus/dbus-message.c (dbus_message_append_fields):
12489 Add some more doc comments.
12491 2003-02-01 Havoc Pennington <hp@pobox.com>
12493 * dbus/dbus-break-loader.c (randomly_modify_length): change
12494 a 4-byte value in the message as if it were a length
12496 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12497 execute bit on saved files
12499 2003-02-01 Havoc Pennington <hp@pobox.com>
12501 * dbus/dbus-break-loader.c (main): new program to find messages
12502 that break the loader.
12504 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12505 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12507 * dbus/dbus-string.c (_dbus_string_set_byte): new
12509 2003-01-31 Havoc Pennington <hp@pobox.com>
12511 * dbus/dbus-message.c: refactor the test code to be more general,
12512 in preparation for writing a "randomly permute test cases to
12513 try to break the loader" program.
12515 2003-01-31 Havoc Pennington <hp@pobox.com>
12517 * doc/dbus-specification.sgml: work on the specification
12519 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12520 the protocol version of the message.
12522 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12523 no longer specifies that.
12524 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12527 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12528 "break" for DBUS_TYPE_NIL, remove @todo
12530 2003-01-31 Havoc Pennington <hp@pobox.com>
12532 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12533 just set_is_error/get_is_error as this is a commonly-used
12534 function, and write docs.
12536 2003-01-31 Anders Carlsson <andersca@codefactory.se>
12538 * dbus/dbus-address.c: (dbus_address_entry_free):
12539 Free key and value lists.
12541 * dbus/dbus-internals.c: (_dbus_type_to_string):
12542 Add the types we didn't have.
12544 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12545 (_dbus_marshal_validate_arg):
12548 * dbus/dbus-message.c: (dbus_message_set_sender):
12549 Remove todo about being able to set sender to NULL.
12551 (dbus_message_set_is_error_reply),
12552 (dbus_message_get_is_error_reply):
12553 * dbus/dbus-message.h:
12556 * dbus/dbus-protocol.h:
12557 Add error reply flag.
12559 * test/data/valid-messages/opposite-endian.message:
12560 Add NIL type to test.
12562 2003-01-31 Havoc Pennington <hp@pobox.com>
12564 * doc/dbus-specification.sgml: fully specify the header. Add
12565 flags and major protocol version, and change header/body len to
12568 * dbus/dbus-message-builder.c (append_saved_length): append length
12571 * dbus/dbus-message.c (dbus_message_create_header): change header
12572 length and body length to unsigned. Add the new fields from the
12574 (_dbus_message_loader_return_buffer): unsigned header/body len
12576 2003-01-30 Havoc Pennington <hp@pobox.com>
12578 * dbus/dbus-auth.c: rework to use only REJECTED, no
12581 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12582 use REJECTED, suggested by Mark McLoughlin
12584 2003-01-30 Havoc Pennington <hp@pobox.com>
12586 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12587 a better way to report errors here. e.g. "unix address lacks
12588 path" or something. also "no such file" when the path doesn't
12591 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12593 (dbus_parse_address): add @todo about documenting address format,
12594 and allowing , and ; to be escaped
12596 2003-01-30 Anders Carlsson <andersca@codefactory.se>
12598 * dbus/Makefile.am:
12599 Add dbus-address.[ch]
12601 * dbus/dbus-address.c: (dbus_address_entry_free),
12602 (dbus_address_entries_free), (create_entry),
12603 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12604 (dbus_parse_address), (_dbus_address_test):
12605 * dbus/dbus-address.h:
12606 New files for dealing with address parsing.
12608 * dbus/dbus-connection.c:
12609 Document timeout functions.
12611 * dbus/dbus-message.c:
12612 Document dbus_message_new_from_message.
12614 * dbus/dbus-server-debug.c:
12617 * dbus/dbus-server.c: (dbus_server_listen):
12618 Parse address and use correct server implementation.
12620 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12621 * dbus/dbus-string.h:
12622 New function with test.
12624 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12625 * dbus/dbus-test.h:
12628 * dbus/dbus-transport-debug.c:
12631 * dbus/dbus-transport.c: (_dbus_transport_open):
12632 Parse address and use correct transport implementation.
12634 2003-01-30 Havoc Pennington <hp@pobox.com>
12636 * dbus/dbus-message.c: use message->byte_order instead of
12637 DBUS_COMPILER_BYTE_ORDER throughout.
12638 (dbus_message_create_header): pad header to align the
12639 start of the body of the message to 8-byte boundary
12641 * dbus/dbus-marshal.h: make all the demarshalers take const
12642 DBusString arguments.
12644 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12645 validate message args here, so we don't have to do slow validation
12646 later, and so we catch bad messages as they are incoming. Also add
12647 better checks on header_len and body_len. Also fill in
12648 message->byte_order
12650 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12651 implemented properly)
12652 (_dbus_string_validate_nul): new function to check all-nul
12654 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12655 get_arg_end_pos and remove all validation
12656 (_dbus_marshal_validate_arg): actually do validation here.
12658 2003-01-29 Havoc Pennington <hp@pobox.com>
12660 * dbus/dbus-message.c (check_message_handling): fix assertion
12661 failure on set_client_serial
12663 2003-01-28 Havoc Pennington <hp@pobox.com>
12665 * dbus/dbus-server-debug.c: Add doc section comments
12667 * dbus/dbus-transport-debug.c: add doc section comments
12669 2003-01-28 Havoc Pennington <hp@redhat.com>
12671 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12672 the reverse order from how I had it
12673 (_dbus_string_base64_encode): reverse encoding order. I was
12674 basically byteswapping everything during encoding.
12676 2003-01-28 Anders Carlsson <andersca@codefactory.se>
12678 * dbus/dbus-connection-internal.h:
12679 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12680 (_dbus_connection_remove_timeout):
12681 Add functions for adding and removing timeouts.
12683 * dbus/dbus-message.c: (dbus_message_new_from_message):
12684 Add new function that takes a message and creates an exact
12685 copy of it, but with the refcount set to 1.
12686 (check_message_handling):
12689 * dbus/dbus-server-protected.h:
12690 * dbus/dbus-server.c: (_dbus_server_init_base),
12691 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12692 (dbus_server_set_timeout_functions):
12693 (_dbus_server_remove_timeout):
12694 New functions so that a server can add and remove timeouts.
12696 (dbus_server_listen):
12697 Add commented out call to dbus_server_debug_new.
12699 * dbus/dbus-timeout.c: (_dbus_timeout_new):
12700 Actually set the handler, doh.
12702 * dbus/dbus-transport.c: (_dbus_transport_open):
12703 Add commented out call to dbus_transport_debug_client_new.
12705 * dbus/Makefile.am:
12706 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12708 2003-01-28 Havoc Pennington <hp@pobox.com>
12710 * dbus/dbus-message.c (check_message_handling): function to check
12711 on the loaded message, iterates over it etc.
12713 2003-01-28 Havoc Pennington <hp@pobox.com>
12715 * test/Makefile.am (dist-hook): fix make distdir
12717 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12719 2003-01-27 Havoc Pennington <hp@pobox.com>
12721 * dbus/dbus-mempool.c (time_for_size): replace printf with
12724 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12725 empty lines; fix the SAVE_LENGTH stuff to be
12726 START_LENGTH/END_LENGTH so it actually works; couple other
12729 * test/Makefile.am (dist-hook): add dist-hook for .message files
12731 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12732 can be constant or locked.
12733 (_dbus_string_free): allow freeing a const string as
12734 documented/intended
12736 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12738 * dbus/dbus-test-main.c (main): take an argument which is the
12739 directory containing test data
12741 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12742 argument to this and load all the messages in test/data/
12743 checking that they can be loaded or not loaded as appropriate.
12745 2003-01-27 Anders Carlsson <andersca@codefactory.se>
12747 * bus/dispatch.c: (bus_dispatch_message_handler):
12748 Dispatch messages sent to services.
12750 * bus/driver.c: (bus_driver_send_service_deleted),
12751 (bus_driver_send_service_created), (bus_driver_send_service_lost),
12752 (bus_driver_send_service_acquired):
12753 Add helper functions for sending service related messages.
12755 (bus_driver_send_welcome_message):
12756 Send HELLO_REPLY instead of WELCOME.
12758 (bus_driver_handle_list_services):
12759 Send LIST_SERVICES_REPLY instead of SERVICES.
12761 (bus_driver_handle_own_service),
12762 (bus_driver_handle_service_exists):
12763 New message handlers.
12765 (bus_driver_handle_message):
12766 Invoke new message handlers.
12768 (bus_driver_remove_connection):
12769 Don't remove any services here since that's done automatically
12770 by bus_service_remove_owner now.
12773 New function signatures.
12775 * bus/services.c: (bus_service_add_owner):
12776 Send ServiceAcquired message if we're the only primary owner.
12778 (bus_service_remove_owner):
12779 Send ServiceAcquired/ServiceLost messages.
12781 (bus_service_set_prohibit_replacement),
12782 (bus_service_get_prohibit_replacement):
12783 Functions for setting prohibit replacement.
12785 (bus_service_has_owner):
12786 New function that checks if a connection is in the owner queue of
12790 Add new function signatures.
12792 * dbus/dbus-list.c: (_dbus_list_test):
12793 Add tests for _dbus_list_remove_last and traversing the list backwards.
12795 * dbus/dbus-list.h:
12796 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12797 go any further, so return NULL then.
12799 * dbus/dbus-protocol.h:
12800 Add new messages, service flags and service replies.
12802 2003-01-26 Havoc Pennington <hp@pobox.com>
12804 * dbus/dbus-message-builder.c: implement, completely untested.
12806 * test/data/*: add data to be used in testing.
12807 ".message" files are our simple loadable text format.
12808 ".message-raw" will be binary dumps of messages.
12810 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
12812 2003-01-26 Havoc Pennington <hp@pobox.com>
12814 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
12816 * dbus/dbus-errors.c (dbus_result_to_string): add
12819 * dbus/dbus-message-builder.c: new file, will contain code to load
12820 up messages from files. Not implemented yet.
12822 2003-01-26 Havoc Pennington <hp@pobox.com>
12824 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
12825 the sender by setting to NULL
12827 2003-01-26 Havoc Pennington <hp@pobox.com>
12829 The unit tests pass, but otherwise untested. If it breaks, the
12830 tests should have been better. ;-)
12832 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
12835 * dbus/dbus-message.c: redo everything so we maintain
12836 message->header as the only copy of the various fields.
12837 This avoids the possibility of out-of-memory in some cases,
12838 for example dbus_message_lock() can't run out of memory anymore,
12839 and avoids extra copying. Figured I may as well go ahead and do
12840 this since it was busted for dbus_message_lock to not return
12841 failure on OOM, and dbus_message_write_header was totally
12842 unchecked for OOM. Also fixed some random other bugs.
12844 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
12845 that strings are nul-terminated. Also, end_pos can be equal
12846 to string length just not greater than, I think.
12847 (_dbus_marshal_set_int32): new function
12848 (_dbus_marshal_set_uint32): new function
12849 (_dbus_marshal_set_string): new function
12851 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
12852 a warning, init timeout_list to NULL
12853 (dbus_connection_send_message): don't use uninitialized variable
12856 * dbus/dbus-string.c (_dbus_string_replace_len): new function
12858 2003-01-26 Anders Carlsson <andersca@codefactory.se>
12860 * bus/driver.c: (bus_driver_handle_hello),
12861 (bus_driver_send_welcome_message):
12864 2003-01-26 Anders Carlsson <andersca@codefactory.se>
12866 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
12867 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12868 (dbus_connection_unref):
12869 * dbus/dbus-marshal.c: (_dbus_marshal_test):
12870 * dbus/dbus-message.c: (dbus_message_unref),
12873 (dbus_message_get_fields):
12874 Remove debugging printout.
12876 (_dbus_message_loader_return_buffer):
12877 Don't store the header string.
12879 (_dbus_message_test):
12882 2003-01-26 Richard Hult <rhult@codefactory.se>
12884 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
12885 the file descriptor list, since it can change under us.
12887 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12889 * glib/dbus-gmain.c: (dbus_connection_prepare),
12890 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
12891 (remove_watch), (dbus_connection_hookup_with_g_main):
12892 Rewrite the glib handling to use its own GSource instead of a
12893 GIOChannel so we can catch messages put in the queue while waiting
12896 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12899 * bus/connection.c: (connection_disconnect_handler),
12900 (connection_watch_callback), (bus_connection_setup):
12901 * bus/dispatch.c: (send_one_message),
12902 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
12903 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
12905 * bus/driver.c: (bus_driver_send_service_deleted),
12906 (bus_driver_send_service_created), (bus_driver_handle_hello),
12907 (bus_driver_send_welcome_message),
12908 (bus_driver_handle_list_services), (bus_driver_remove_connection),
12909 (bus_driver_handle_message):
12911 Refactor code, put the message dispatching in its own file. Use
12912 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
12915 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12917 * dbus/dbus-internals.h:
12918 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
12920 * dbus/dbus-message.c: (dbus_message_get_sender):
12921 * dbus/dbus-message.h:
12922 Implement dbus_message_get_sender.
12924 * dbus/dbus-protocol.h:
12925 Add message and service defines.
12927 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12929 * dbus/dbus-connection.c: (dbus_connection_send_message):
12930 * dbus/dbus-message-internal.h:
12931 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
12932 (dbus_message_write_header):
12933 Remove _dbus_messag_unlock and don't set the client serial on a
12934 message if one already exists.
12936 2003-01-24 Havoc Pennington <hp@pobox.com>
12938 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
12941 * bus/driver.c (bus_driver_handle_list_services): fix a leak
12944 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12946 * dbus/dbus-list.c: (alloc_link), (free_link):
12947 Use a memory pool for the links.
12949 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12951 * bus/connection.c: (bus_connection_foreach):
12952 * bus/connection.h:
12953 Add new bus_connection_foreach function.
12955 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
12956 Add function that broadcasts a message to all clients.
12958 (bus_driver_send_service_created), (bus_driver_handle_hello),
12959 (bus_driver_send_welcome_message),
12960 (bus_driver_handle_list_services), (bus_driver_message_handler):
12961 Implement functions that take care of listing services, and notifying
12962 clients when new services are created.
12964 * bus/services.c: (bus_services_list):
12966 Add new function that returns an array of strings with the currently
12967 registered services.
12969 * glib/dbus-glib.h:
12970 * glib/dbus-gmain.c:
12971 Update copyright year.
12973 2003-01-25 Anders Carlsson <andersca@codefactory.se>
12975 * dbus/dbus-connection.c: (dbus_connection_send_message):
12976 Unlock the message in case it was sent earlier.
12978 (dbus_connection_send_message_with_reply_and_block):
12979 Remove the reply message from the list.
12981 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12982 Set array_len and new_pos correctly.
12984 (_dbus_marshal_test):
12985 Remove debug output.
12987 * dbus/dbus-message-internal.h:
12988 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12989 New function that returns the reply serial.
12991 (_dbus_message_unlock):
12992 New function that unlocks a message and resets its header.
12994 (dbus_message_append_string_array),
12995 (dbus_message_get_fields_valist),
12996 (dbus_message_iter_get_field_type),
12997 (dbus_message_iter_get_string_array),
12998 (dbus_message_get_fields),
12999 (dbus_message_append_fields_valist):
13000 Handle string arrays.
13002 (dbus_message_set_sender):
13003 Make this function public since the bus daemon needs it.
13005 (decode_header_data):
13006 Set the reply serial to -1 initially.
13008 * dbus/dbus-message.h:
13009 Add dbus_message_set_sender.
13011 2003-01-24 Havoc Pennington <hp@pobox.com>
13013 * doc/dbus-specification.sgml: add some stuff
13015 2003-01-22 Havoc Pennington <hp@pobox.com>
13017 * doc/dbus-specification.sgml: Start to document the protocol.
13019 2003-01-22 Havoc Pennington <hp@pobox.com>
13021 * dbus/dbus-connection.c
13022 (dbus_connection_send_message_with_reply_and_block): add some @todo
13024 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13026 2003-01-21 Havoc Pennington <hp@pobox.com>
13028 (patch untested because can't compile)
13030 * bus/driver.c (create_unique_client_name): make this function
13031 never recycle client names. Also, caller should initialize
13034 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13036 2003-01-21 Anders Carlsson <andersca@codefactory.se>
13038 * dbus/dbus-marshal.c: (_dbus_marshal_double),
13039 (_dbus_marshal_int32), (_dbus_marshal_uint32),
13040 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13041 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13042 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13043 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13044 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13045 * dbus/dbus-marshal.h:
13046 * dbus/dbus-protocol.h:
13047 Add support for marshalling and demarshalling integer, double
13050 2003-01-21 Anders Carlsson <andersca@codefactory.se>
13055 * bus/connection.c: (connection_disconnect_handler):
13056 Remove the connection from the bus driver's list.
13058 (connection_watch_callback): Dispatch messages.
13060 (free_connection_data): Free connection name.
13062 (bus_connection_setup): Add connection to the bus driver's list.
13063 (bus_connection_remove_owned_service):
13064 (bus_connection_set_name), (bus_connection_get_name):
13065 Add functions for setting and getting the connection's name.
13067 * bus/connection.h:
13068 Add function headers.
13070 * bus/driver.c: (create_unique_client_name),
13071 (bus_driver_handle_hello_message),
13072 (bus_driver_send_welcome_message), (bus_driver_message_handler),
13073 (bus_driver_add_connection), (bus_driver_remove_connection):
13076 * bus/services.c: (bus_service_free):
13078 New file that handles communication and registreation with the bus
13081 2003-01-21 Anders Carlsson <andersca@codefactory.se>
13083 * dbus/dbus-connection.c: (dbus_connection_send_message):
13084 Add a new client_serial parameter.
13086 (dbus_connection_send_message_with_reply):
13087 Remove a @todo since we've implemented the blocking function.
13089 (dbus_connection_send_message_with_reply_and_block):
13090 New function that sends a message and waits for a reply and
13091 then returns the reply.
13093 * dbus/dbus-connection.h:
13096 * dbus/dbus-errors.c: (dbus_result_to_string):
13097 * dbus/dbus-errors.h:
13098 Add new DBUS_RESULT.
13100 * dbus/dbus-message-internal.h:
13101 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13102 (_dbus_message_set_sender), (dbus_message_write_header),
13103 (dbus_message_new_reply), (decode_header_data),
13104 (_dbus_message_loader_return_buffer), (_dbus_message_test):
13105 * dbus/dbus-message.h:
13106 Add new functions that set the reply serial and sender.
13107 Also marshal and demarshal them correctly and add test.
13109 * dbus/dbus-protocol.h:
13110 Add new DBUS_MESSAGE_TYPE_SENDER.
13112 * glib/dbus-glib.h:
13113 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13114 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13115 (dbus_connection_hookup_with_g_main):
13116 * glib/test-dbus-glib.c: (main):
13117 Rewrite to use GIOChannel and remove the GSource crack.
13119 * test/echo-client.c: (main):
13120 * test/watch.c: (check_messages):
13121 Update for changed APIs
13123 2003-01-19 Anders Carlsson <andersca@codefactory.se>
13125 * dbus/Makefile.am: Add dbus-timeout.[cħ]
13127 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13128 Create a DBusTimeoutList.
13129 (dbus_connection_set_timeout_functions): Add new function to
13130 set timeout callbacks
13132 * dbus/dbus-connection.h: Add public DBusTimeout API.
13134 * dbus/dbus-message.c: (dbus_message_get_service):
13135 * dbus/dbus-message.h: New function.
13137 * dbus/dbus-server.c: Fix small doc typo.
13139 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13141 2003-01-19 Anders Carlsson <andersca@codefactory.se>
13143 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13144 of the string, just as long as specified.
13146 2003-01-19 Havoc Pennington <hp@pobox.com>
13148 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13151 * dbus/dbus-server.c (dbus_server_set_max_connections)
13152 (dbus_server_get_max_connections, dbus_server_get_n_connections):
13153 keep track of current number of connections, and add API for
13154 setting a max (but haven't implemented enforcing the max yet)
13156 2003-01-18 Havoc Pennington <hp@pobox.com>
13158 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13159 reading/writing if read_watch != NULL or write_watch != NULL.
13161 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13162 the message loader code to actually load message->header and
13163 message->body into the newly-created message.
13165 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13168 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13169 (dbus_connection_get_max_message_size)
13170 (dbus_connection_set_max_live_messages_size)
13171 (dbus_connection_get_max_live_messages_size): implement some
13172 resource limitation functions
13174 * dbus/dbus-resources.c: new file implementing some of the
13175 resource limits stuff
13177 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13178 missing docs, add @todo to handle OOM etc.
13180 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13183 2003-01-18 Havoc Pennington <hp@pobox.com>
13185 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13186 connection if it hasn't been already.
13188 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13189 replace with DisconnectFunction.
13191 2003-01-18 Havoc Pennington <hp@pobox.com>
13193 Building --disable-verbose-mode --disable-asserts --disable-tests
13194 cuts the library from 112K to 45K or so
13196 * configure.in: check for varargs macro support,
13197 add --enable-verbose-mode, --enable-asserts.
13199 * dbus/dbus-internals.h (_dbus_assert): support
13200 DBUS_DISABLE_ASSERT
13201 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13203 2003-01-18 Havoc Pennington <hp@pobox.com>
13205 * dbus/dbus-test.c: include config.h so that tests actually run
13207 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13208 so the failure mode when that assumption fails will be plenty
13211 2003-01-18 Havoc Pennington <hp@pobox.com>
13213 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13215 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13218 * test/Makefile.am: don't use special variable "TESTS" for echo-*
13219 since we don't want to use those in make check
13221 2003-01-15 Havoc Pennington <hp@redhat.com>
13227 2003-01-15 Havoc Pennington <hp@redhat.com>
13229 * test/Makefile.am: fix so that test source code ends up in the
13230 distribution on make distcheck
13232 2003-01-15 Havoc Pennington <hp@redhat.com>
13238 2003-01-15 Havoc Pennington <hp@redhat.com>
13240 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13241 fix build when --disable-tests
13243 * Makefile.am (EXTRA_DIST): put HACKING in here
13245 * HACKING: document procedure for making a tarball release.
13247 2003-01-14 Anders Carlsson <andersca@codefactory.se>
13249 * bus/connection.c: (connection_error_handler),
13250 (bus_connection_setup):
13251 * bus/main.c: (main):
13252 Make sure that the DBusConnectionData struct is NULLed
13253 out to prevent a segfault.
13255 * dbus/dbus-errors.c: (dbus_result_to_string):
13256 * dbus/dbus-errors.h:
13257 * dbus/dbus-message.c: (dbus_message_get_fields),
13258 (dbus_message_get_fields_valist), (_dbus_message_test):
13259 * dbus/dbus-message.h:
13260 Make dbus_message_get_fields return a result code so we can
13261 track invalid fields as well as oom.
13263 2003-01-11 Havoc Pennington <hp@pobox.com>
13265 * configure.in: change --enable-test/--enable-ansi action-if-given
13266 to enable_foo=$enableval instead of enable_foo=yes
13268 2003-01-08 Havoc Pennington <hp@pobox.com>
13270 * dbus/dbus-string.c (_dbus_string_align_length): new function
13272 * dbus/dbus-test-main.c: move main() for test app here
13274 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13275 symbol to run tests, because dbus-test isn't in the main
13278 Code review nitpicks.
13280 * dbus/dbus-message.c (dbus_message_write_header): add newlines
13281 for people with narrow emacs ;-). Assert client_serial was filled
13282 in. Assert message->name != NULL.
13283 (dbus_message_append_fields): have "first_field_type" arg separate
13284 from va list, needed for C++ binding that also uses varargs IIRC
13285 and helps with type safety
13286 (dbus_message_new): add @todo about using DBusString to store
13287 service/name internally
13288 (dbus_message_new): don't leak ->service and ->name on OOM later
13290 (dbus_message_unref): free the service name
13291 (dbus_message_get_fields): same change to varargs
13292 i.e. first_field_type
13293 (_dbus_message_loader_return_buffer): assert that the message data
13294 is aligned (if not it's a bug in our code). Put in verbose griping
13295 about why we set corrupted = TRUE.
13296 (decode_header_data): add FIXME that char* is evil. Was going to
13297 add FIXME about evil locale-specific string.h strncmp, but just
13298 switched to wacky string-as-uint32 optimization. Move check for
13299 "no room for field name" above get_const_data_len() to avoid
13300 assertion failure in get_const_data_len if we have trailing 2
13301 bytes or the like. Check for service and name fields being
13302 provided twice. Don't leak service/name on error. Require field
13303 names to be aligned to 4 bytes.
13305 * dbus/dbus-marshal.c: move byte swap stuff to header
13306 (_dbus_pack_int32): uscore-prefix
13307 (_dbus_unpack_int32): uscore-prefix
13308 (_dbus_unpack_uint32): export
13309 (_dbus_demarshal_string): add @todo complaining about use of
13311 (_dbus_marshal_get_field_end_pos): add @todo about bad error
13312 handling allowing corrupt data to go unchecked
13314 2003-01-08 Havoc Pennington <hp@redhat.com>
13316 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13317 to the select() as needed for authentication. (should be using
13318 _dbus_poll() not select, but for another day)
13320 * dbus/dbus.h: include dbus/dbus-protocol.h
13322 2003-01-08 Anders Carlsson <andersca@codefactory.se>
13324 * dbus/Makefile.am (dbusinclude_HEADERS): Install
13327 2003-01-08 Anders Carlsson <andersca@codefactory.se>
13329 * dbus/dbus-internals.c: (_dbus_type_to_string):
13330 New function that returns a string describing a type.
13332 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13333 * dbus/dbus-marshal.h:
13334 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13335 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13336 (dbus_message_iter_get_byte_array):
13337 * dbus/dbus-message.h:
13338 Add new convenience functions for appending and getting message fields.
13339 Also add demarshalling routines for byte arrays.
13341 2003-01-07 Anders Carlsson <andersca@codefactory.se>
13343 * dbus/dbus-connection-internal.h:
13344 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13345 (_dbus_connection_get_next_client_serial),
13346 (dbus_connection_send_message):
13347 * dbus/dbus-internals.h:
13348 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13349 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13350 (_dbus_marshal_uint32), (_dbus_demarshal_double),
13351 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13352 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13353 (_dbus_verbose_bytes), (_dbus_marshal_test):
13354 * dbus/dbus-marshal.h:
13355 * dbus/dbus-message-internal.h:
13356 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13357 (dbus_message_write_header), (_dbus_message_lock),
13358 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13359 (dbus_message_get_name), (dbus_message_append_int32),
13360 (dbus_message_append_uint32), (dbus_message_append_double),
13361 (dbus_message_append_string), (dbus_message_append_byte_array),
13362 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13363 (dbus_message_iter_unref), (dbus_message_iter_has_next),
13364 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13365 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13366 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13367 (decode_header_data), (_dbus_message_loader_return_buffer),
13368 (message_iter_test), (_dbus_message_test):
13369 * dbus/dbus-message.h:
13370 * dbus/dbus-protocol.h:
13371 * dbus/dbus-test.c: (main):
13372 * dbus/dbus-test.h:
13373 * glib/test-dbus-glib.c: (message_handler), (main):
13374 * test/echo-client.c: (main):
13375 * test/watch.c: (check_messages):
13376 Make messages sendable and receivable for real.
13378 2003-01-07 Anders Carlsson <andersca@codefactory.se>
13380 * dbus/dbus-marshal.c: (_dbus_marshal_double),
13381 (_dbus_marshal_string), (_dbus_marshal_byte_array):
13382 * dbus/dbus-message.c: (dbus_message_append_int32),
13383 (dbus_message_append_uint32), (dbus_message_append_double),
13384 (dbus_message_append_string), (dbus_message_append_byte_array):
13385 Handle OOM restoration.
13387 2003-01-07 Anders Carlsson <andersca@codefactory.se>
13389 * dbus/dbus-marshal.c: (_dbus_marshal_string),
13390 (_dbus_demarshal_string), (_dbus_marshal_test):
13391 * dbus/dbus-marshal.h:
13392 * dbus/dbus-message.c: (dbus_message_get_name),
13393 Document these functions.
13395 (dbus_message_append_int32), (dbus_message_append_uint32),
13396 (dbus_message_append_double), (dbus_message_append_string),
13397 (dbus_message_append_byte_array):
13398 * dbus/dbus-message.h:
13399 Add functions for adding message fields of different types.
13401 * dbus/dbus-protocol.h:
13402 Add the different types.
13404 2003-01-05 Havoc Pennington <hp@pobox.com>
13406 * bus/connection.c: implement routines for handling connections,
13407 first thing is keeping a list of owned services on each connection
13408 and setting up watches etc.
13410 * bus/services.c: implement a mapping from service names to lists
13413 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13415 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13416 to use static mutexes for global data
13418 * dbus/dbus-connection.c (dbus_connection_set_data): add new
13419 collection of functions to set/get application-specific data
13420 on the DBusConnection.
13422 2003-01-04 Havoc Pennington <hp@pobox.com>
13424 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13425 (_dbus_poll): new function
13427 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13430 * bus/loop.c: initial code for the daemon main loop
13432 2003-01-04 Havoc Pennington <hp@pobox.com>
13434 * test/watch.c (error_handler): make it safe if the error handler
13435 is called multiple times (if we s/error handler/disconnect
13436 handler/ we should just guarantee it's called only once)
13438 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13439 error handler on disconnect (it's quite possible we should
13440 just change the error handler to a "disconnect handler," I'm
13441 not sure we have any other meaningful errors)
13443 * configure.in: check for getpwnam_r
13445 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13446 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13447 mechanism as in SASL spec, using socket credentials
13449 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13450 (_dbus_send_credentials_unix_socket): new function
13452 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13454 (_dbus_write): only check errno if <0 returned
13455 (_dbus_write_two): ditto
13457 2003-01-02 Anders Carlsson <andersca@codefactory.se>
13459 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13460 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13461 (_dbus_marshal_test):
13462 * dbus/dbus-marshal.h:
13463 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13464 to _dbus_marshal_utf8_string. Also fix some tests.
13466 2002-12-28 Harri Porten <porten@kde.org>
13468 * configure.in: added check for C++ compiler and a very cheesy
13469 check for the Qt integration
13471 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13473 * qt/Makefile.am: added
13475 * qt/.cvsignore: added
13477 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13478 latter, added #ifdef QT_THREAD_SUPPORT guard.
13480 * dbus/Makefile.am: added missing headers for make dist
13482 2002-12-28 Kristian Rietveld <kris@gtk.org>
13484 * dbus/Makefile.am: fixup export-symbols-regex.
13486 2002-12-27 Anders Carlsson <andersca@codefactory.se>
13488 * acinclude.m4: Add this file and put the
13489 PKG_CHECK_MODULE macro in it.
13491 2002-12-27 Anders Carlsson <andersca@codefactory.se>
13493 * dbus/dbus-marshal.c: (_dbus_marshal_string),
13494 (_dbus_demarshal_double), (_dbus_demarshal_int32),
13495 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13496 (_dbus_marshal_test):
13497 Make the demarshalling routines align the pos argument.
13498 Add string marshalling tests and fix the obvious bugs
13501 2002-12-26 Havoc Pennington <hp@pobox.com>
13503 * dbus/dbus-auth.c: fixes fixes fixes
13505 * dbus/dbus-transport-unix.c: wire up support for
13506 encoding/decoding data on the wire
13508 * dbus/dbus-auth.c (_dbus_auth_encode_data)
13509 (_dbus_auth_decode_data): append to target string
13510 instead of nuking it.
13512 2002-12-26 Havoc Pennington <hp@pobox.com>
13514 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13515 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13518 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13519 avoid swap_bytes() overhead (ignoring possible assembly stuff for
13520 now). Main point is because I wanted unpack_uint32 to implement
13521 _dbus_verbose_bytes
13522 (_dbus_verbose_bytes): new function
13524 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13526 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13527 mechanism to handle a corrupt message stream
13528 (_dbus_message_loader_new): fix preallocation to only prealloc,
13531 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13532 (_dbus_string_test): enhance tests for copy/move and fix the
13535 * dbus/dbus-transport-unix.c: Hold references in more places to
13536 avoid reentrancy problems
13538 * dbus/dbus-transport.c: ditto
13540 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13541 leak reference count in no-message case
13543 * test/watch.c (do_mainloop): handle adding/removing watches
13544 during iteration over the watches. Also, ref the connection/server
13545 stored on a watch, so we don't try to mangle a destroyed one.
13547 * dbus/dbus-transport-unix.c (do_authentication): perform
13550 * dbus/dbus-auth.c (get_state): add a state
13551 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13552 (_dbus_auth_get_unused_bytes): append the unused bytes
13553 to the passed in string, rather than prepend
13555 * dbus/dbus-transport.c (_dbus_transport_init_base): create
13556 the auth conversation DBusAuth
13558 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13559 (_dbus_transport_new_for_domain_socket): when creating a
13560 transport, pass in whether it's a client-side or server-side
13561 transport so we know which DBusAuth to create
13563 2002-12-03 Havoc Pennington <hp@pobox.com>
13565 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13566 _after_ finalizing the derived members
13567 (unix_connection_set): unref watch if we fail to add it
13569 * dbus/dbus-connection.c (dbus_connection_unref): delete the
13570 transport first, so that the connection owned by the
13571 transport will be valid as the transport finalizes.
13573 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13574 if necessary, and remove watches from the connection.
13576 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13578 2002-12-26 Anders Carlsson <andersca@codefactory.se>
13580 * dbus/dbus-marshal.c: (_dbus_marshal_string),
13581 (_dbus_demarshal_double), (_dbus_demarshal_int32),
13582 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13583 (_dbus_marshal_test):
13584 * dbus/dbus-marshal.h:
13585 Add string marshal functions and have the demarshal functions
13586 return the new position.
13588 2002-12-25 Havoc Pennington <hp@pobox.com>
13590 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13591 it is a simple protocol that just maps directly to SASL.
13593 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13594 initial implementation, not actually used yet.
13596 * dbus/dbus-string.c (_dbus_string_find): new function
13597 (_dbus_string_equal): new function
13598 (_dbus_string_base64_encode): new function
13599 (_dbus_string_base64_decode): new function
13601 2002-12-25 Anders Carlsson <andersca@codefactory.se>
13603 * dbus/Makefile.am:
13604 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13605 (_dbus_marshal_int32), (_dbus_marshal_uint32),
13606 (_dbus_demarshal_double), (_dbus_demarshal_int32),
13607 (_dbus_demarshal_uint32), (_dbus_marshal_test):
13608 * dbus/dbus-marshal.h:
13609 * dbus/dbus-protocol.h:
13610 * dbus/dbus-test.c: (main):
13611 * dbus/dbus-test.h:
13612 Add un-optimized marshalling/demarshalling routines.
13614 2002-12-25 Harri Porten <porten@kde.org>
13616 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13618 2002-12-24 Zack Rusin <zack@kde.org>
13620 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13621 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13624 2002-12-24 Havoc Pennington <hp@pobox.com>
13626 * glib/dbus-gthread.c: fix include
13628 * glib/dbus-glib.h: rename DBusMessageHandler for now.
13629 I think glib API needs to change, though, as you don't
13630 want to use DBusMessageFunction, you want to use the
13631 DBusMessageHandler object. Probably
13632 dbus_connection_open_with_g_main_loop()
13633 and dbus_connection_setup_g_main_loop() or something like that
13634 (but think of better names...) that just create a connection
13635 that has watch/timeout functions etc. already set up.
13637 * dbus/dbus-connection.c
13638 (dbus_connection_send_message_with_reply): new function just to
13639 show how the message handler helps us deal with replies.
13641 * dbus/dbus-list.c (_dbus_list_remove_last): new function
13643 * dbus/dbus-string.c (_dbus_string_test): free a string that
13646 * dbus/dbus-hash.c: use memory pools for the hash entries
13647 (rebuild_table): be more paranoid about overflow, and
13648 shrink table when we can
13649 (_dbus_hash_test): reduce number of sprintfs and write
13650 valid C89. Add tests for case where we grow and then
13651 shrink the hash table.
13653 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13655 * dbus/dbus-connection.c (dbus_connection_register_handler)
13656 (dbus_connection_unregister_handler): new functions
13658 * dbus/dbus-message.c (dbus_message_get_name): new
13660 * dbus/dbus-list.c: fix docs typo
13662 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13663 an object representing a handler for messages.
13665 2002-12-16 Anders Carlsson <andersca@codefactory.se>
13667 * glib/dbus-glib.h:
13668 * glib/dbus-gthread.c: (dbus_gthread_init):
13669 Don't use the gdbus prefix for public functions.
13671 2002-12-16 Anders Carlsson <andersca@codefactory.se>
13675 Add GLib checks and fixup .pc files
13677 * glib/Makefile.am:
13678 * glib/dbus-glib.h:
13679 * glib/dbus-gmain.c: (gdbus_connection_prepare),
13680 (gdbus_connection_check), (gdbus_connection_dispatch),
13681 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13682 (dbus_connection_gsource_new):
13683 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13684 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13685 * glib/test-dbus-glib.c: (message_handler), (main):
13688 2002-12-15 Harri Porten <porten@kde.org>
13690 * autogen.sh: check for libtoolize before attempting to use it
13692 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13695 * .cvsignore: ignore more stamp files
13697 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13699 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13700 without make install.
13702 2002-12-15 Havoc Pennington <hp@pobox.com>
13704 * dbus/dbus-threads.c: add thread stubs that a higher library
13705 layer can fill in. e.g. the GLib wrapper might fill them in with
13706 GThread stuff. We still need to use this thread API to
13707 thread-safe-ize the library.
13709 2002-12-12 Havoc Pennington <hp@pobox.com>
13711 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13712 below new interfaces and include fewer system headers.
13714 * dbus/dbus-sysdeps.c (_dbus_read): new function
13715 (_dbus_write): new function
13716 (_dbus_write_two): new function
13717 (_dbus_connect_unix_socket): new function
13718 (_dbus_listen_unix_socket): new function
13720 * dbus/dbus-message-internal.h: change interfaces to use
13723 2002-12-11 Havoc Pennington <hp@pobox.com>
13725 * dbus/dbus-types.h: add dbus_unichar
13727 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13729 * dbus/dbus-connection.c (dbus_connection_send_message): return
13732 * dbus/dbus-transport.c: include dbus-watch.h
13734 * dbus/dbus-connection.c: include dbus-message-internal.h
13736 * HACKING: add file with coding guidelines stuff.
13738 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13739 handling here, for security purposes (as in vsftpd). Not actually
13740 using this class yet.
13742 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13743 system/libc usage here, as in vsftpd, for ease of auditing (and
13744 should also simplify portability). Haven't actually moved all the
13745 system/libc usage into here yet.
13747 2002-11-25 Havoc Pennington <hp@pobox.com>
13749 * dbus/dbus-internals.c (_dbus_verbose): fix to not
13750 always print the first verbose message.
13752 2002-11-24 Havoc Pennington <hp@pobox.com>
13754 * test/echo-client.c, test/echo-server.c: cheesy test
13757 * configure.in (AC_CHECK_FUNCS): check for writev
13759 * dbus/dbus-message.c (_dbus_message_get_network_data): new
13762 * dbus/dbus-list.c (_dbus_list_foreach): new function
13764 * dbus/dbus-internals.c (_dbus_verbose): new function
13766 * dbus/dbus-server.c, dbus/dbus-server.h: public object
13767 representing a server that listens for connections.
13769 * dbus/.cvsignore: create
13771 * dbus/dbus-errors.h, dbus/dbus-errors.c:
13772 public API for reporting errors
13774 * dbus/dbus-connection.h, dbus/dbus-connection.c:
13775 public object representing a connection that
13776 sends/receives messages. (Same object used for
13777 both client and server.)
13779 * dbus/dbus-transport.h, dbus/dbus-transport.c:
13780 Basic abstraction for different kinds of stream
13781 that we might read/write messages from.
13783 2002-11-23 Havoc Pennington <hp@pobox.com>
13785 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13788 * dbus/dbus-test.c (main): add list test, and include
13789 dbus-test.h as intended
13791 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13792 (_dbus_hash_table_remove_int): return value indicates
13793 whether the entry existed to remove
13795 * dbus/dbus-list.c: add linked list utility class,
13796 with docs and tests
13798 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13801 2002-11-23 Havoc Pennington <hp@pobox.com>
13803 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
13804 DBUS_END_DECLS to nothing, that should fix this once and for all
13806 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
13808 * dbus/dbus-message.c, dbus/dbus-hash.c:
13809 add some missing @brief
13811 2002-11-23 Havoc Pennington <hp@pobox.com>
13813 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
13814 to avoid confusing Doxygen
13816 * dbus/dbus-hash.c: @} not }@
13818 * dbus/dbus-message.c (struct DBusMessage): split out
13821 2002-11-23 Havoc Pennington <hp@pobox.com>
13823 * configure.in: pile on more warning flags if using gcc
13825 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
13826 to document static functions
13828 * configure.in: add summary to end of configure so it
13829 looks nice and attractive
13831 * dbus/dbus-hash.c: finish implementation and write unit
13834 * configure.in: add --enable-tests to enable unit tests
13836 * dbus/dbus-test.c: test program to run unit tests
13837 for all files in dbus/*, initially runs a test for
13840 * dbus/dbus-internals.h: file to hold some internal utility stuff
13842 2002-11-22 Havoc Pennington <hp@redhat.com>
13844 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
13845 "ported" away from Tcl
13847 * dbus/dbus-types.h: header for types such as dbus_bool_t
13849 2002-11-22 Havoc Pennington <hp@redhat.com>
13851 * dbus/dbus.h: fixups for doc warnings
13853 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
13855 (QUIET): make it quiet so we can see warnings
13857 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
13859 2002-11-22 Havoc Pennington <hp@redhat.com>
13861 * Makefile.am: include "Doxyfile" target in all-local
13863 * configure.in: generate the Doxyfile
13865 * Doxyfile.in: move Doxyfile here, so we can use
13866 configure to generate a Doxyfile with the right
13867 version number etc.
13869 2002-11-22 Havoc Pennington <hp@redhat.com>
13871 * dbus/dbus-message.c: move inline docs into .c file
13873 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
13874 so all docs are under doc/
13875 (MAN_EXTENSION): generate man pages. Use extension
13876 ".3dbus" which matches ".3qt" on my system,
13877 I guess this is OK, I don't know really.
13878 (FILE_PATTERNS): look for .c files not .h, makes sense
13879 for plain C I think
13881 2002-11-22 Havoc Pennington <hp@pobox.com>
13883 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
13884 because any app can be a server, and any app can be a client,
13885 the bus is a special kind of server.
13887 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
13889 * Doxyfile : adding. Still needs Makefile rules to be generated
13890 automatically (just run "doxygen" in the toplevel dir for now to
13893 * dbus/dbus-message.h : Adding sample docs (javadoc since
13894 resembles gtk-doc a little more)
13896 * dbus/dbus.h : Adding sample docs
13898 2002-11-21 Havoc Pennington <hp@redhat.com>
13900 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
13901 so we can allow ourselves to include files directly,
13902 instead of having to use dbus.h
13904 * dbus/dbus.h: fill in
13906 * dbus/dbus-message.h: sketch out a sample header file.
13907 Include griping if you include it directly instead of
13910 * dbus/dbus-macros.h: new file with macros for extern "C",
13911 TRUE/FALSE, NULL, etc.
13913 * doc/file-boilerplate.c: put include guards in here
13915 2002-11-21 Havoc Pennington <hp@redhat.com>
13917 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
13919 * COPYING: include the GPL as well, and license code
13920 under both AFL and GPL.
13922 2002-11-21 Havoc Pennington <hp@redhat.com>
13924 * acconfig.h: get rid of this
13926 * autogen.sh (run_configure): add --no-configure option
13928 * configure.in: remove AC_ARG_PROGRAM to make
13929 autoconf complain less. add AC_PREREQ.
13930 add AC_DEFINE third arg.
13932 2002-11-21 Anders Carlsson <andersca@codefactory.se>
13935 Fix references so we can distcheck.
13937 2002-11-21 Havoc Pennington <hp@redhat.com>
13939 * Initial module creation